Leave them in your vehicle when shopping - when you see something you "just have to have" you have to walk to your vehicle to get them. It will allow you time to reconsider the purchase.
Plastic credit is very misleading. You don't actually touch the money so sometimes your sense of it just isn't there. If you withdraw weekly only what you actually budget for, you get to make your transactions with "real" money. When the money is gone, game over. No more spending.