The issue with magic shoppes with more or less on-demand items ...
This is the key element right here: on-demand.
3e dropped the ball here, either by design or not, in that magic available in a place was based simply on total value. Players were then often left to assume anything they wanted up to that total value was available, and thus it became an on-demand system - even more so with the ease of PC item creation starting at low-ish levels.
isn't simply that magic is no longer rare and mysterious - it warps how characters are equipped. Quirky, sometimes-useful items get sold for the ol', reliable Big 6 (or their closest equivalents in 5e). It didn't help that too many of the multi-function items in 3e were overpriced to exacerbate that problem. That ended up being a much bigger change to the way D&D was played when considering the evolution of the game from 1e through 3e than, I think, anybody expected.
Agreed.
If there's to be a magic item economy - and I've no problem at all if there is - what's available at any given time and place has to be largely randomized. And yes, making random tables that function well for this purpose, and that are easily expandable, and that are easy to use, is a lot of work*. But, as I often say about these things, it's work that really only has to be done once.
* - I know this because I've done most of it, with help from someone who knows Excel better than I do.
The most tedious part is entering all the data.
The hardest part is randomizing all the weapon and armour properties in such a way that they can combine. Weapons, for example, have to look at each of the following: weapon class (handheld, missile launcher, ammunition - each of these can have different properties), weapon type (e.g. longsword, hand axe, sling bullet), root '+' (which can be straight e.g. +2 or staggered e.g. +1 to hit, +3 damage), intelligence, lighting effects (does it glow all the time, or just when wielded, or never at all, or flash once on activation, etc.), and special properties and curses of which a weapon can - rarely - have multiples of each.
And then it has to assign prices to whatever it generates. Still haven't got this part 100% right but it's close enough for rock and roll.
So a party might walk into town and <
runs the program for 5 items> find the following items happen to be available at the moment:
Bardic instrument: Lute (8th level version as per DMG) - 8000 g.p.
Folding Boat - 11000 g.p.
Potion of Stone Giant Strength - 800 g.p.
Scroll: Nature Cleric (Druid), 2 spells - [the scroll's value is determined by what the spells are, this program doesn't give me those]
Gloves of Missile Snaring - 10000 g.p.
In the next town you might find <
two keystrokes, runs program for another 5 items>
Potion of Ventriloquism - 400 g.p.
Scale Mail +1 - 1500 g.p.
Sling Stone +1, batch of 2d6 - 60 g.p. each
Wand of Paralyzation, MU only - 8000 [here I'd have to randomly determine charges outside the program and adjust the price down if there aren't many left]
Bag of Devouring (cursed) - 0 g.p. [depending on circumstance and random roll I might present this as a cursed item or as a bag of holding]
Having available items randomized like this strips out the on-demand problem.
Lan-"taxes, tithes, brokerage fees and delivery not included; all purchases final sale; no warranty or suitability for use is either expressed or implied"-efan