I don't remember where I got this idea, but it's one I've been using more lately. The idea uses wishlists and a form of timeboxing to help me reduce my impulse spending, especially online. It's so, so easy to buy a Kindle ebook or an MP3 album on Amazon, especially when the items are priced in the cheap single-digits. The downside of this is that by the end of the month, I may have bought lots of little stuff and their total is in the double-digits.
So, as I run across these little gems I put them into my Amazon wishlist. The Amazon wishlist browser extension lets me put stuff on the list that Amazon doesn't sell (like shareware or recordings/books from small publishers). I also have a "splurge" tag in my Pinboard bookmarks, which is mainly a holdover from before I used the Amazon extension.
So when the impulse to buy something online strikes, I just click the button in my browser and, bah-dah-boom, that item is out of sight and, for a little while, out of mind. I can then move on to the next shiny object.
On the last day of the month, I get an email from Memotome.com that says, "Congratulations! You can now redeem an item or items from your splurge list for $25. Have fun!" I then spend a happy few minutes considering the items I might want to buy for myself. I also cull the list of stuff that I'm not interested in anymore.
I now can decide whether to blow the $25 on a single book, or two CDs, or a mix of cheaply priced ebooks and MP3s, whatever I like. The key, though, is that what I buy has to be fun or frivolous. That's the carrot and it's what makes this process doable for me. (It's similar to the idea of a cheat day or reward meal for dieters.)
This trick may not banish all impulse purchases, but it's been working for me this year. I believe the grown-ups refer to this practice as "delayed gratification," but I am only a recent and reluctant member of that grim tribe, so I cannot say for sure.