As my DD has gotten older, I've given her a little more control over her money. the first few years, when she said "I want! I want! I want!" I would tell her let's wait, because you may find something you like better. If she persisted...I offered to take a picture of her with the item(s). Then, at the end of the day, we could scroll through pictures and she could pick the item that she really wants. And that works. We snap one picture, she puts the item down, and never thinks about it again.
We still do that when we need to. We talk about how much she has and how much she should spend (or how much $ she'll have left if she buys X item.) I've tried really hard to instill in her that she needs to take some time to think about it before she chooses something to buy -- if she walks away and still wants it, buy it if you have the $, but if you spend too much too soon, then come across one of those gotta have it items, you can't have it.
When we go on a short trip -- like, we went to Wild Adventures in Valdosta, GA, for 2 days on a Girl Scout trip -- I told her she could get one souvenir, and she could spend around $15 (because, hey, we're saving for Disney, right?) She said okay, not a problem, and one of the older girls looked at me and asked, "she can only get one thing?" My response? Yep. She knows how this works.
Now, if only the other kids could learn how to manage money and curb the spending (younger girls, anyhow). One was sent on that trip with $40 for food on the way there and back (2 meals), snacks in the park, and a souvenir. She bought a $20 toy gun -- she knew how much $ she had and that she needed to be able to get dinner that evening, and bought it anyway. Another girl was sent with $65. Now, the troop leader had control of that child's money. Where I told child A that no, you can't do that because you need the money for X (boy, she didn't like me, but she only went over by $5 or so because I wasn't going to let her go hungry...), child B was told that it was her money and she could spend it how she liked. B had around $35 left, bought souvenirs for her whole family, and overspent by $15, plus had to have her dinner bought for her. (But, yes, troop leader's fault for either not saying you don't have enough $$ for this -- put it back -- or for paying the remaining balance on those souvenirs...)