If you only read the script carefully, you should be able to do make as much duplicates as you want without duplicating the whole script.
// Shop NPCs -- supplying no argument displays entire menu.
// callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
//============================================================
prt_in,32,114,5 script Tier 1 Quest#1 998,{ callfunc "qshop"; }
If you want the npc to load only SHOP ID 1, you should do something like :
map,x,y,f script Tier 1 Quest#1 998,{ callfunc "qshop", 1; } // Shows SHOP ID 1 only
Then for more examples:
map,x,y,f script Tier 2 Quest#1 998,{ callfunc "qshop", 1, 2; } // Shows SHOP ID 1 and 2
map,x,y,f script Tier 3 Quest#1 998,{ callfunc "qshop", 1, 3; } // Shows SHOP ID 1 and 3
.....
And so on...