Donut Shop POS: Dawn Rush, Dozen Boxes, and Pre-Orders That Never Miss
Run a donut shop where the 6 AM rush flies, dozen-box pricing stays exact, and wholesale pre-orders pack out without shorting a single office run.
The NoPOS developer relations team writes practical guides for building on the NoPOS REST API — from first smoke test to production POS.
Dozen-box math: that is the whole reality of a donut shop. A Tuesday stacks a 6 AM commuter rush grabbing coffee and a single, a school fundraiser order for twenty dozen mixed boxes due at 8, a wholesale run of glazed rings for three corner cafes, and a wedding tower of stacked old-fashioneds for Saturday — while singles, half-dozens, and dozens each price differently, day-olds need markdown rules before they stale, and the fryer schedule decides what is even available to sell. A generic register sees only SKUs and prices, so mixed dozens get mispriced, pre-orders get forgotten in a notebook, and wholesale cases short the retail shelf. Build the flow around the case — dozen-aware pricing, pre-orders that pack out on time, wholesale kept honest, and day-old markdowns that move product instead of writing it off — and the dawn rush flies while every box leaves full.
Price singles, half-dozens, and mixed dozens exactly
The dozen grid is where donut margin lives or dies. Price every variety three ways — single, half-dozen, and dozen — with mixed-dozen rules that handle premium upcharges for filled and specialty donuts without a manager override at the counter. Handle the case reality: build-your-own dozen pickers on kiosks and online that count slots as customers tap, automatic downgrade logic when a customer orders eleven and the dozen price is cheaper, combo pricing that pairs coffee with any single at one price while still attributing revenue per item, and minimums on specialty runs so a one-off maple-bacon batch never sells at plain-glaze cost. When the dozen prices itself correctly, the morning line moves and nobody argues at the register.
Run the dawn rush on speed, not memory
The 5 to 8 AM window decides the day. Fire one-tap favorites for regulars, keep the top ten sellers on a single fast screen, and take contactless and mobile wallets without breaking stride. Handle the rush reality: case-count displays tied to live inventory so staff stop selling what the fryer has not made yet, call-ahead pickup shelves with name and time printed on the bag, drive-thru or walk-up window timing tracked per order so slowdowns surface before the line wraps, and cash drawers counted by tender type between rushes without stopping service. When the counter moves at rush speed, commuters become regulars and regulars become pre-orders.
Pack pre-orders and fundraisers without shorting anyone
Pre-orders are the highest-volume hour in the shop. Take large orders — office runs, school fundraisers, wedding towers — with variety breakdowns, pickup dates, and deposits collected up front, then generate pack lists sorted by variety so the 4 AM crew boxes in one pass. Handle the pre-order reality: cutoff times that lock the fryer schedule instead of promising what cannot be fried, headcount adjustments up to a cutoff that re-price automatically, balance-due reminders that collect the remainder before pickup, and substitution rules agreed at order time for varieties that under-fry. When pre-orders pack out slot-tight with deposits attached, no-shows cost nothing and fundraiser season prints money.
Keep wholesale cases honest to the retail shelf
Wholesale flats are where the retail case quietly empties. Price wholesale cases per dozen at contracted rates per account, schedule recurring standing orders for cafes and grocers, and deduct every wholesale flat from the same live inventory the retail counter sells from. Handle the wholesale reality: standing orders that pause on holidays instead of overproducing, per-account pricing that never leaks onto the retail screen, delivery manifests that reconcile flats packed against flats invoiced, and margin checks that flag accounts whose volume outgrew their discount tier. When wholesale and retail share one inventory truth, the corner cafes stay stocked and the 7 AM case stays full.
Move day-olds with markdowns, not write-offs
Stale is a schedule problem, not a product problem. Drop day-old pricing automatically after a configured hour, bundle mixed day-old dozens at a fixed clearance price, and donate or comp what remains with manager approval logged per dozen. Handle the close reality: waste counts by variety that feed tomorrow's fry plan, markdown revenue tracked separately from fresh so margins stay legible, loyalty punches that keep day-old hunters coming back as full-price regulars, and end-of-day reconciliation that ties register totals to case counts to pre-orders to wholesale manifests. When markdowns move product on purpose, waste shrinks, the fryer plan sharpens, and tomorrow starts from facts.
Build from the current contract
Open the gateway for OpenAPI, Swagger, AGENTS.md, llms.txt, and the first X-API-Key smoke test.
More from NoPOS Blog
Bookstore POS: ISBN Receiving, Special Orders, Used Trade-Ins, Events, and the Holiday Gift-Wrap Rush
Run a bookstore where ISBN receiving takes minutes not evenings, special orders arrive with the customer notified the same day, used trade-ins price themselves fairly, author events sell out the signing line, and the holiday gift-wrap rush moves instead of piling at one register.
Industry GuideSporting Goods & Outdoor Gear POS: Team Uniform Kits, Seasonal Inventory, Rentals, Demos, and the Fall-Rush Weekend
Run a sporting goods floor where team-uniform kit checkout takes minutes not evenings, seasonal inventory turns before the weather does, rentals and demos come back on time and in sellable shape, and the fall-rush weekend moves instead of piling at two registers.