A real doughnut shop running on Shopify needs five overlapping rules to sell out every day without overselling. It's not a single "max 108 per day" cap. It's a five-layer rule set that handles per-flavor production limits, a fixed evening cutoff for next-day orders, per-delivery-date inventory that rolls forward when a date closes, and customer-facing sold-out messaging that updates in real time. This piece walks through the full setup — drawn from a Shopify Community thread that documented the pattern in detail, and now a common configuration we see across batch-production food businesses.

If you're a doughnut shop, batch bakery, or any food merchant whose production runs on fixed daily numbers, this is the rule set that maps to your actual constraints.
The Shop: What 108 Units a Day Actually Looks Like
The shop in question produces 108 doughnuts per day. The number isn't arbitrary — it's the maximum batch the kitchen can mix, proof, fry, and finish before the morning pickup window opens. They sell six core flavors and rotate two seasonal flavors weekly. Each flavor has its own production cap: maple bars cap at 24, glazed at 30, chocolate at 18, and so on.
Order flow:
- Customers order online for next-day pickup at a fixed location.
- The ordering window closes at 10 PM the night before pickup — that gives the bakers a finalized production list.
- Orders after 10 PM automatically roll to the day after.
- Each day's inventory is independent — Tuesday's allocations don't affect Wednesday's.
- Sold-out flavors disappear from the next-day picker as soon as their cap is hit.
What looks like one problem ("limit doughnut sales to 108 per day") is actually five problems in a stack. Shopify's native quantity limit handles none of them.
The Five Rules That Make It Work
Rule 1: Storewide Daily Cap of 108 Units
The first and most important rule is the total production ceiling: 108 units across all flavors. This protects against the case where the per-flavor caps all add up to more than 108 (which they do — the per-flavor numbers are individual ceilings, not allocations that must sum to total capacity).
This is the rule type Shopify has no native support for. Per-product quantity limits cap a single SKU on a single checkout, not a storewide count across all checkouts and all SKUs. For the full setup walkthrough, see How to Limit Daily Orders on Shopify.
Rule 2: Per-Flavor Daily Caps
On top of the storewide cap, each flavor has its own daily ceiling — usually based on what the kitchen can actually make of that variant. Maple bars take longer than glazed because of the glaze-pour step; chocolate is limited by ganache batch size. The per-flavor caps reflect real production constraints, not arbitrary numbers.
The two rules compose. If maple bars cap at 24 and the storewide cap is 108, whichever hits first closes that variant. A run on maple bars before any other flavor sells out will close maple bars at 24 while other flavors stay open. If a slow day means total sales reach 108 with several flavors still under their individual caps, the storewide cap closes everything.
This is the configuration shop owners describe when they say "I make 108 doughnuts per day, but different flavors have different limits." The single-rule version doesn't capture it.
Rule 3: 10 PM Next-Day Cutoff
At 10 PM each night, the next-day ordering window closes. Anyone visiting the site at 10:01 PM sees the day-after-tomorrow as the next available pickup date. This isn't a store-closure — the shop is still open (the website still accepts orders, just for later dates). It's a fulfillment cutoff: the production list for tomorrow is now finalized and frozen.
The cutoff exists because the bakers start work at 4 AM. They need a list they can pull from a printer, not a list that might gain three more entries between 10 PM and 3:30 AM. The 10 PM time gives them six hours of buffer between cutoff and production start.
For the cutoff-rule configuration in detail, see Setting Up Cutoff Times for Same-Day and Next-Day Orders on Shopify.
Rule 4: Per-Delivery-Date Inventory That Rolls Forward
The crucial difference between this rule set and a generic "daily order cap" is that the caps are per delivery date, not per order date. A customer ordering on Tuesday for a Friday pickup consumes Friday's allocation, not Tuesday's.
This means OrderRules' counters have to be indexed on the requested fulfillment date, not the order timestamp. Tuesday's counter tracks Tuesday-pickup orders. Wednesday's counter is independent. Friday's counter can accept orders all week until either its 108-unit cap fills or the Thursday-10PM cutoff fires.
For batch-production businesses, this is the rule type that separates "an app that kind of works" from "an app that maps to my actual operation." Per-delivery-date counting is non-negotiable.
Rule 5: Sold-Out Flavor Visibility
When a specific flavor hits its per-flavor cap for a specific date, that flavor must visually disappear from the date picker (or be greyed out with a clear "sold out" indicator). Customers who pick that flavor anyway see a checkout-level block message.
OrderRules' dynamic template variables ({REM_QTY}, {MAX_QTY}, {USED_QTY}) wire into the storefront theme to show real-time availability. A customer sees "8 left for tomorrow" on the maple-bar product page; the next customer sees "5 left"; a few minutes later, "Sold out for tomorrow — next available Friday."
This isn't decoration — it's the difference between a customer who picks an alternative flavor and a customer who abandons cart in confusion.
Why Shopify Native Falls Short
To sum up what each rule needs and what Shopify ships:
| Rule | What's needed | Shopify native | OrderRules |
|---|---|---|---|
| Storewide daily cap of 108 | Count orders across all SKUs against a single ceiling | Not supported | Yes |
| Per-flavor daily cap | Count units of each SKU against per-SKU ceilings, across all checkouts | Per-checkout only — resets when new checkout starts | Yes — server-side ledger |
| 10 PM next-day cutoff | Close next-day fulfillment slot at a fixed clock time | Not supported | Yes — scheduling rule |
| Per-delivery-date inventory | Counters indexed on requested fulfillment date, not order timestamp | Not supported | Yes |
| Sold-out flavor visibility | Real-time storefront messaging tied to per-flavor counters | Not supported | Yes — {REM_QTY} template variables |
Five rules. Zero native support. This is why batch-production food businesses tend to overshoot Shopify's defaults and need a dedicated rule engine.
The Cutoff Timing Decision
A common question from shops setting this up for the first time: why 10 PM and not midnight? The answer is operational, not technical:
- Buffer time — bakers need at least 4–6 hours between cutoff and production start. A midnight cutoff with a 4 AM kitchen start gives almost no buffer for the production sheet to be printed, reviewed, and adjusted.
- Late-night browsing patterns — customers who land on the site at 11 PM browsing for tomorrow often won't have decided by midnight. They'll order next day instead — and the operational outcome (their order goes into the after-cutoff bucket) is the same.
- Decision finality — production needs a fixed list, not a list that's "almost final." A cutoff before midnight makes the freeze unambiguous.
Most batch-production food businesses converge on a cutoff between 9 PM and 11 PM the night before, with 10 PM being the most common.
Adapting This Pattern
The 5-rule stack isn't doughnut-specific. It applies to any batch-production food business with:
- A fixed daily production ceiling
- Multiple SKUs with individual sub-caps
- A next-day or near-future fulfillment window
- An operational deadline before production starts
Businesses that fit this pattern include:
- Custom-cake bakeries — see How Bakeries Use Shopify to Manage Custom Cake Orders.
- Meal prep services — per-meal sub-caps, weekly ordering window cutoffs.
- Artisan ice cream — per-flavor sub-caps, daily batch ceilings.
- Charcuterie / catering boards — per-size sub-caps, lead-time cutoffs.
- Specialty cookies and pastries — per-variant sub-caps, evening cutoffs.
For more on why this happens broadly, see The Shopify Capacity Problem: Why Merchants Oversell. The pattern is universal across capacity-constrained merchants.
The Numbers: Revenue Impact of Not Overselling
Overselling has a real cost. For a doughnut shop selling 108 units a day at an average $4 per unit, that's $432 daily revenue at full capacity. An oversold day means:
- Refunds — typically 1–3 affected orders, $4–$60 in direct refunds.
- Customer service overhead — 10–30 minutes per refunded order at $25/hr labor = $4–$12.
- Customer churn — a customer refunded once is significantly less likely to return; the lifetime-value hit can exceed the refund itself.
- Reputation damage — angry customers post negative reviews. A single 1-star review on a small bakery's Google profile drops walk-in traffic for weeks.
A shop that runs this rule set tight ends up with the opposite outcome: sold out by 8 PM most days, with customers who learn to order early because they know late ordering means missing out. Scarcity, when enforced honestly, becomes a marketing asset. When enforced sloppily (oversell then apologize), it becomes a liability.
Setting Up the Full Stack
The configuration order:
- Install OrderRules from the Shopify App Store.
- Create the storewide daily cap (108 units, daily reset). Walkthrough: How to Limit Daily Orders on Shopify.
- Add per-flavor caps on each flavor product. For many SKUs at once, use CSV bulk import.
- Set the 10 PM next-day cutoff in OrderRules' Schedule section. Walkthrough: Setting Up Cutoff Times.
- Configure per-delivery-date counting so each future date has its own counter.
- Wire storefront messaging with
{REM_QTY}template variables on each flavor's product page. - Test with draft orders at each rule's edge: at 107 storewide, at the maple-bar cap, at 10:00 PM cutoff boundary, at 10:01 PM rolling forward.
The Bottom Line
A doughnut shop selling 108 units a day on Shopify isn't running one rule — it's running five overlapping rules that compose into a single coherent production discipline. Shopify ships no native support for any of them. OrderRules handles all five, with the rules indexed on delivery date rather than order date, enforced server-side via Shopify Functions, and surfaced to customers through dynamic storefront messaging.
This is the rule set merchants describe in Shopify Community threads as "the order limit I actually need, not just a per-product cap." It maps to the operational reality of batch-production food businesses — and it's what separates apps that work in demo to apps that work in production.
For the full app comparison across the order-limits category, see the Shopify order limit apps hub. For the broader food-vertical setup, see How Bakeries Use Shopify and Managing Restaurant Takeout Orders on Shopify.