For example, you can make shopkeepers have a stock of money available, with which they can buy your items. It's better than infinite amount of money...
I really like the idea of vendor's finite money. I'll at least include that. Buying stuff would increase merchant's money.
I doubt this will really solve any design problems. To make this a consistent constraint on farming etc. throughout the game, the shopkeeper's money supply will have to change as the player advances (i.e. more will need to be added as the player progresses and the items available change -- otherwise, this creates no constraint in the early game and/or a silly constraint in the late game). It will also add to the challenges of balancing drop rates, especially gold drop rates.
If I were you, I would take another look at the traditional roguelike approach of limited, randomized item availability in stores and think carefully about why you don't think it will work in your game. If you're serious about the simplicity of your weapon model, I think you'll quickly see there's no reason randomized shop inventories can't work.