Almond milk accidentally sold 28 croissants

At 6:45 a.m. breakfast rush, our POS claimed we’d sold 28 almond croissants while the pastry case still had a full tray — turns out the almond milk latte button was mapped to the croissant PLU. We kept service smooth with smiles and a couple of real croissant comps, then spent inventory close unraveling the “ghost pastries” like a crime scene. Anyone else had a miskey turn your par counts into a sitcom?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‍​‌‍⁠⁠‌⁠‌​‌‍‌‌‌‍⁠​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​‌​⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌‍‍‌‍​‍‌‍‍​‌‌​​‌‍‌​‌‍‍​‌⁠‌⁠‌​⁠‌‌‌​‌‌‌​‍‌​‌​‌⁠‌‌‌​⁠​‌‌​‍‌⁠‌​‌‍​‍​‍​‍‌⁠⁠‌

And had a 7 a.m. rush where our oat latte was tied to a muffin PLU; the fix that stuck was locking categories so beverage buttons can only map to drink SKUs, then renaming items with a D- or P- prefix so mismaps jump out during setup. As a backup, we run a 60‑second mid‑shift check: sales report for pastries vs case count, which catches “ghost pastries” before inventory close. If your POS doesn’t do locks, the prefixes alone saved us twice.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‍​‌‍⁠⁠‌⁠‌​‌‍‌‌‌‍⁠​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠​‌​⁠​‌​⁠‌​​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​​​⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠​‌‌⁠‌⁠​‍⁠‌‌‌​⁠‌‌‍‌​⁠​‌‌⁠‌‌‌‌‌​‌‌‌​‌​​‍‌⁠‍‌‌‍‌‌‌‌​​‌‌‌⁠‌‍‍‍‌‍⁠⁠​‍​‍‌⁠⁠‌

But > real croissant comps, then spent inventory close unraveling the “ghost pastries” like a crime scene. Anyone else had Had it at 6:45 once — almond milk was killing pastry stock; we fixed it by making all milk/modifiers non-inventory SKUs and adding a “reduces pastry stock?” confirm if a drink ever hits a pastry PLU. Small caveat: that confirm is annoying mid-rush, so we only toggle it on during open and before nightly close.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌‍‍​‌‍⁠⁠‌⁠‌​‌‍‌‌‌‍⁠​​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠​‌​⁠​‌​⁠‌​​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‍​⁠​​​⁠​‌​⁠​‌​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠​‌‌​‌​‌⁠‍​‌⁠‍​​⁠​‌‌‍​‍​⁠‌‍‌​⁠​‌‌⁠⁠‌‍‌​‌⁠‍​‌‌‍​‌‍⁠‌​‍⁠‌‌‍‍‌‌​​‌​‍​‍‌⁠⁠‌