I'm on the fence. I don't want to always be in control of which items my players get. Like, if the fighter wants a flaming sword, I'm going to let him seek one out. Maybe a caravan saw one get passed around, maybe the blacksmith knows a guy who does some enchanting. What I like to do is add in a time period in which they have to wait. This time period includes getting the necessary materials, prepping the enchantment, doing the actual enchantment, and making sure that it worked as promised. Usually a few days or a week. I'll also allow them to pay half now and half when they get it back. That way they can get some more necessary gold if needed.

I never do a "I buy this super weapon" "OK gold plz" interaction.