Feeling good while shopping makes it hard to resist impulsive purchases. So need to work harder to avoid that feeling. Recognize that not all sales are true bargains and that it is just a sign with the word “sale” on it.
If you know you will overspend if you use your credit cards, try using cash. It is a good way to keep track of your money for smaller purchases. You will feel pain more immediately and often are more judicious about your purchases.