But I think the only natural way to prevent player party getting ridiculously rich is by doing the following tweaks:
1. not letting vendors buying everything;
2. not letting vendors' cashier box & inventory replenish every time we take long rest;
3. making the vendors to have reasonable inventory and cash amount;
4. not letting trash item to worth anything at all.
[...]
For example that paladin vendor, I can sell everything I have to her, take long rest, keep selling everything to her, then kill her and loot everything back, a repetitive dull work, but still easily getting ridiculously rich in the end. So, in fact, it doesn't work at all. Hope they can try harder. xD
Alternatively, make vendors appropriately powerful and/or the consequences for stealing severe enough.
A vendor that has magic (or any valuable) items should probably be some combination of personally powerful, has hired guards, and/or owns a hard-to-pick lockbox.
A vendor that routinely notices stuff missing (things are stolen from them 2 or maybe 3 times while you're in the area) stops doing business with you and becomes significantly more wary when you're around. Possibly they tell the guards/locals their suspicions, decreasing everyone's attitude toward you.