Same. Eventually, the players in my game will come to know that there's an old elf in the coastal Elven village that runs an "antique store" which is really a front for a barter-only magic item shop.
Even there, you should roll randomly for what treasure the Elf has to trade. Have items "age out" and new ones show up every few weeks.
And, naturally, next to none of it is on premises. He just knows people offering stuff.
Magic Item Merchant Mechanics:
The elf has 5 item "slots". You roll for it on a level-appropriate table. Fill 4 of them to start.
Every week, roll 1d6 for an item that ages out (on a 6, roll twice more, exploding).
Then, every week, roll 1d6 for a new item to arrive (on a 6, roll twice more, exploding), replacing any item in that slot.
If a month or a bit more has passed, roll 1d6 to see what item(s)
haven't been replaced (same method as above), then replace every other item, leaving 1 slot blank.
If significantly more than a month passes, just restart it with 4 random items.
---
If the players buy out the merchant, it takes weeks to restock. So this isn't a source of unlimited items, it is just a source of some variety and customization.
When you get a consumable, consider having 1d6 of them instead of 1. Decide on a case by case basis.