You're not considering that a lot of people might just prefer to be explicit and specific about purchases. If I see I've run out of pasta sauce, I might want to scan the empty one to reoder it, because it's precise. I definitely wouldn't want to risk vagueness and inaccuracy just for the privilege of using an abstraction like saying "I'm out of pasta sauce" into a phone. What would that achieve anyway? Outsourcing the bit of your brain that says "we need more pasta sauce", so you've only got to worry about thinking "oh there's no pasta sauce"..? Scanning a barcode is simple and precise.