I like to think of the stock as the most counted chocolate bars in the country. All stock being counted, over and over, all day long...
I agree that the supermarket comparisons are flawed, but a more similar comparison would be a corner shop with one member of staff on duty. I've never seen any corner shops closing for 20 minutes every two hours, counting up all their chocolate bars, counting up the cash, opening, closing, opening, closing. It's possible to keep a small shop open for much longer than 2 hours at a time. It's also possible to keep on-board train shops open for longer than 2 hours at a time, since it happens every day all around Europe. So the question is what makes Avanti so different that they can't do the same.
I appreciate that the staff are changing mid-route at Preston, but they also seem to change at London and Glasgow too (or at least they are happy to close the shop before arrival and wait until after departure to open). I've not seen anything similar travelling around Europe, with much longer than 2 hour journeys with the on-board shops open continuously. Perhaps Avanti can have per-staff cash boxes that could be swapped in seconds and counted off-train. Perhaps they can change the rostering so that there's a few minutes overlap between shifts (e.g. boarding northbound trains at Wigan). Or perhaps they can go to Germany or Poland and ask how they manage to keep the shop open for the whole journey, seemingly without any chaos ensuing.