It is my firm belief, after writing several books on fantasy economics and cities, that you cannot give the players a true shopping experience in game. No amount of effort would allow you to honestly list everything that could be purchased in a fantasy store in a fantasy city. OK, that is probably too broad a statement. The raw materials manufacturers would likely only have up to a dozen products and therefore could be detailed. This is the miller, the weaver, the brewer. Take the miller. Many people would think - The miller sells flour. Done. But even the miller would have wheat flour, probably in different styles, such as fine and course. He would also have corn meal, likely white and yellow. He might have buckwheat, grits, pancake mix, or even farina. What about rolled oats or possibly wild rice? While he’s at it, does he have his own farmland? Is he growing things himself, or possibly making maple syrup or honey? and that’s just the miller.
Imagine the cart of the common peddler. He has been picking up things for years, selling what he can. His cart would be filled with endless bric-a-brac. He would likely have things he bought from a tinker (forks, springs, hinges), stuff he picked up from the smith (nails, small tools, maybe horseshoes), some food items (jerky, fruit preserves, mustard), some leather goods (wine skins, belts, laces), some personal items (comb, brush, cup, pen), and a whole bunch of little wooden items that he carves while he travels from town to town (figurines, toggles/buttons, pipes). How do you decide what he has? Worse yet, what if it is a major store? What if it is a jewelry store? Are you able to document every stone, every setting, every bracelet, ear ring, bangle or bauble? If it could be done, it would not be worthwhile!
OK - so now what? Do you give up? Do you tell the players they cannot have anything, because you don’t know who has it? Of course not. My suggestion? Use a game system that allows for scrounging. Then, just let the player roll for his character. If he wants a ruby ring, have him roll to find one. Obviously it will be far more likely to find one in a jewelry store than in a feed store, so have him first scrounge up the jewelry store, then scrounge up what he wants within. If she’s looking for a leather long sword sheathe, she probably wants it custom made, but with a good scrounging, she may be able to find a serviceable one without waiting. Is she willing to take what she finds or does she have her heart set on a green dyed one? Well that affects the scrounging.
There are two advantages to this - #1 - Less work for you as GM trying to figure out your stores. Now you just say: Jewelry store, specializes in rubies and gold, but also carries other gems. That’s easy enough to use when they are scrounging. #2 - Since you’ll never write down everything they want, this allows you to be more capable of meeting their needs. When the wizard wants a robe made of purple linen, you just scrounge to see if he can find one. Oh, and by the way, just because they didn’t find it doesn’t mean it isn’t there. Scrounging can be tough, and things sometimes get overlooked.