You could set up difficulties on each shop. Then you'll have to make the choices options for each item and setting the price. The, according to the shop, is the price you put is higher than X number( different number on each shop) the seller tell you something, and he sets up another value. Then you display again choices ,but something like:
-Buy
-Keep haggling
-Leave
If it's buy, just use a conditional branch to compare the price(inputted value) with you current gold.
If you choose Keep haggling, just repeat the step.
I think that wasn't too clear...
Hope it helps