well its possible, you just need invisible dummy shops...
example:
Note: this example is about a shop which sells different types of items... I hope you can pick it up from this...
-create the dummy shop (the visible one)
-create the real shops (invisible but selectable, will have the real items; preferably units with collision size of 0 and model of none.mdx or dummy.mdx, and have the invulnerable ability, movement type of none)
-create dummy items which will act as pointers (to be sold by the dummy shop, should have 0 cost)
-create the items that each real shop will sell and add them to the real shops
-Place the dummy shop on the map
-Place the real shops around it
then create a trigger in which when a unit buys a pointer item:
-remove the sold item
-clear selection for owner of buying unit
-add the real shop corresponding to the pointer item to the selection of that player