Decide on a monthly, weekly, or daily dudget and use cash only.
So back in the day, I had a 10$ daily budget. So every month I would withdrawal 310$, and take 10 every morning. All plastic cards stay at home. If I wanted to buy something for more than 10$, I would have to save up.
This way there are no surprises.
Also, it led me to DIY most of the non tech things in my life.