It's not for everyone, or even most people probably, but I deal with it by buying virtually the same thing every week, once a week. No impulse buying. So, I eat everything I buy, every week, because I know exactly how much I eat for each meal, each week. I waste nothing. I don't need a list, I know the path through the store I will take, and I'm in and out in about 20 minutes, including checkout.
I decided to stop thinking about food as entertainment or reward, and now think of food as only nutrition (as much as I can, it's not easy, but that's the idea.)