Shopify draft orders: quotes, phone orders, and the inventory leaks drafts cause
How Shopify draft orders interact with inventory — reservations, conversion, expiry — and the leak that oversold one store's wallet line. With fixes.
InventoryX is in development and not available today. ClearStock is the live Shopify app.
Short answer: a draft order in Shopify is a real order that hasn't been completed — created in the admin for phone sales, quotes, invoiced B2B deals, or in-person specials. The inventory mechanics are the trap: an unconverted draft generally holds no stock unless you explicitly reserve it, which means a wallet-full of "quoted and promised" units is still sitting in Available, sellable to everyone else — until the day two customers both own the last one. Drafts are where overselling starts on purpose.
This is a post-mortem of one such incident, followed by the mechanics and the discipline that prevents it. (The accidental kind of overselling — sync gaps, checkout races — is covered in the overselling guide; drafts are the deliberate path into the same ditch.)
The incident: twelve promised units, one shelf
Illustrative but realistic — a leather-goods store, 420 SKUs, phone orders accepted daily:
Day 1. A trade customer calls: they'll take 6 units of the full-grain bifold, a slow mover with 14 on the shelf. The owner builds a draft order — discount applied, invoice emailed, "they'll pay by Friday." Stock: Shopify still shows 14 Available, because a draft isn't an order yet and no reservation was set.
Days 2–9. Six more phone customers order the same wallet, one unit each. Each call ends the same way: draft created, invoice sent, "we'll hold it for you." Each draft takes the Available count down by zero. The owner's mental ledger says 14 − 6 − 6 = 2, but the mental ledger is not a system, and nobody writes it down.
Day 10. Two things land simultaneously: the trade customer pays their invoice (draft converts to an order — now the units commit, and Available drops to 8... against 6 phone-promised units), and a web order arrives through the front door for 6 units, which checkout happily accepts because Shopify says 8 are sellable. They are sellable — but 6 more are already promised by phone, and the web order leaves only 2 for the six claimants.
Day 11–14. The cleanup: refund the web order and eat the goodwill cost, or split-ship the trade customer and delay the phone customers. A reorder is placed in a panic — 15-day lead time on a leather good that just proved it sells faster than its history says. The post-mortem finding, in one sentence: every unit was promised by conversation but held by nothing.
The mechanics: what a draft does and doesn't hold
Draft-order inventory behavior, as of October 2026 (Shopify Help Center, "Creating draft orders," accessed October 2026):
- A draft is not an order. Until it's converted (paid or marked as paid), it doesn't appear in order lists, doesn't run through checkout, and — the part that matters here — doesn't move stock out of Available. Available = sellable, and a draft sells nothing.
- Reservations are optional and time-limited. The draft editor offers inventory reservation: reserve the line items for a set window (the default is short — check the setting when you build the quote). A reserved draft moves units into the Unavailable state, so they're genuinely held; when the reservation expires, the units return to Available whether or not the customer has paid. The states involved are defined in the inventory states guide.
- Conversion commits for real. The moment a draft converts to an order, the units commit like any checkout — Available → Committed. This is the first moment Shopify's numbers agree with the promise you made on the phone.
- Expiry is silent. An unpaid, unreserved quote with a "payment by Friday" note in the email is a promise stored in your outbox, not in Shopify. There is no countdown that releases the promise; there's only the reservation clock, if you set one.
Why the leak matters more at your size
At 5,000 SKUs a phantom promise on one variant is noise. At the 100–1,000 SKU end — where a handful of variants can be a whole week's cash — the leak concentrates on exactly the SKUs that matter: drafts cluster on bestsellers and B2B volume lines, because that's what gets quoted and called in. And the promise lives in a different medium than the stock record — a conversation, an email, a note app — so the failure is invisible until a second claimant appears.
The discipline: four rules that would have saved the wallet line
- Reserve on every draft that represents a real promise. If you told a human "it's yours," the draft gets a reservation for the quoted window — not the default, the window you actually promised. Reserve nothing only for true "what would this cost?" explorations.
- The reservation window matches the promise, and the promise has an expiry you state out loud. "Held until Friday, then back on the shelf" — said to the customer and set in the draft. An expired reservation is not a betrayal; it's the system working.
- One owner for phone orders. If two staff can both take calls into the same catalog, the mental-ledger problem multiplies. Whoever takes the order creates the draft during the call — not at end of day, when the pool has moved.
- Check Available before quoting, and read it as Available, not on-hand. On-hand includes Committed and Unavailable units that are not yours to promise (the Available/Committed/Unavailable breakdown is defined in the states guide above). The number you can promise a customer is Available, minus everything already drafted-and-reserved, which Shopify has already done for you if reservations are used.
POS-operated stores have a second front: the retail floor and the phone desk selling from the same pool. The same rules apply, and the location-level mechanics live in the POS inventory guide.
Where drafts are the right tool anyway
To be clear, drafts aren't a hazard to avoid — they're the native way to do real work: phone orders, invoices with custom discounts, B2B quotes, and re-sending abandoned checkouts as payable links. For recurring wholesale-style arrangements, native B2B on Shopify handles catalogs and terms at a level above one-off drafts (the B2B guide covers when it beats manual invoicing). The hazard isn't the tool; it's promises that outrun the reservation.
Common questions
Do Shopify draft orders reserve inventory? Only if you choose a reservation when creating or editing the draft — without one, the items stay fully Available and sellable to everyone else. Reservations are time-limited: when the window expires, the units return to Available even if the customer hasn't paid yet. Converting the draft to a real order is what permanently commits the stock (Shopify Help Center, "Creating draft orders," accessed October 2026).
How long does Shopify hold inventory on a draft order? For the reservation window you set — the default is a short hold, and you can adjust it when building the draft. There's no indefinite hold: an unpaid draft's reservation expires on schedule and the stock releases. If you need a longer hold, extend the reservation deliberately rather than letting the promise and the system disagree.
What happens when a draft order is converted? The draft becomes a real order — the customer (or you, marking it paid) completes payment, and the line items commit from Available like any checkout. From that moment the order appears in your orders list, runs your normal fulfillment flow, and appears in reports. Items on other unconverted drafts are unaffected and remain sellable.
Can I use draft orders for B2B and wholesale quotes? Yes — custom pricing, discounts, and emailed invoices are the core draft use case, and payment links let the buyer pay online. For recurring wholesale relationships with customer-specific catalogs and terms, Shopify's native B2B features are the stronger tool as of October 2026; drafts suit occasional quotes and phone orders.
Why did I oversell an item when I had a draft order for it? Because the unconverted draft held no inventory: the units stayed Available, and another channel — checkout, POS, another draft — sold them first. Prevent it by reserving inventory on every draft that represents a real promise, keeping the reservation window equal to the window you quoted the customer, and quoting only against the Available number, not on-hand.
Next step: open Orders → Drafts today and look for drafts older than their own promise dates — any unpaid quote past its window is either a reservation waiting to expire or a promise you're holding in your head. Reserve the real ones, close the rest, and make the reservation the habit from the next phone call on.