Shopify Draft Orders for Wholesale: Quotes, Reserved Stock, and Net Terms
A wholesale buyer emails asking for 240 units at your tier-2 price, delivered in three weeks, on net 30. There is no cart, no checkout, no discount code that fits. What you need is a document that says here is exactly what you’re getting, at this price, and here’s how you pay — and that holds that price and that stock until the buyer signs off.
That document is a Shopify draft order. It’s the most underused tool in the admin, and for most stores doing wholesale below serious enterprise volume, it’s the entire quoting system. This guide covers how to build a draft order that works as a real quote, the inventory reservation trap that catches almost everyone, and the point where the native flow stops scaling.
What a Shopify draft order actually is
A draft order is an order you create yourself in the admin, before any payment happens. You add products, override prices, attach a customer, set payment terms, and then either take payment on the spot or email an invoice with a secure checkout link. Shopify designed it for phone, in-person, and email sales — which describes nearly every wholesale transaction.
It covers wholesale quotes at negotiated pricing, phone and email orders, custom work like setup fees and freight surcharges, repeat orders from regular accounts, and net-terms invoicing where goods ship before the money arrives. You’ll find it under Orders → Drafts → Create order.
Building a quote that holds up
The difference between a draft order that closes a deal and one that creates an argument three weeks later comes down to four settings people skip.
Custom line prices, not discount codes
Click any line item’s price and type the number you negotiated. This is cleaner than stacking discount codes, because the buyer sees the price you agreed on rather than a retail price with a mystery deduction. You can still apply an order-level discount on top if a promotion genuinely applies. If you price off structured tiers rather than deal by deal, that logic belongs upstream — see our wholesale pricing playbook.
Lock the price
After adding products you can lock pricing on the draft, which prevents line items from silently updating if your catalog price changes before the buyer accepts. Locked lines show a small lock symbol. This matters more than it sounds: a quote sitting in a buyer’s inbox for two weeks while you run a price increase will otherwise re-price itself, and the buyer will notice at checkout. Note that price locking doesn’t apply to product bundles.
Add custom items carefully
Freight, palletizing, artwork setup, and rush fees all go in as custom items. Two caveats: custom items aren’t tracked as inventory and don’t move stock levels, and they carry no product image or catalog link, which makes them unsuitable for automated fulfillment apps that expect a real variant. Fine for a freight charge. Not fine as a shortcut for a product you actually ship.
Tag it
Tags on a draft order (comma-separated, 40 characters max each) let you build filtered views — quote-pending, rep-jordan, net30. When you’re running twenty open quotes, this is the difference between a pipeline and a pile.
The inventory reservation trap
Here’s the part that bites merchants, and it’s the single most common wholesale complaint about draft orders: sending an invoice does not convert the draft into an order, and it does not remove stock.
Until the buyer pays, those 240 units are still fully available to every retail customer on your storefront. A quote out on net 30 is a three-week window in which you can sell the same inventory twice — and the person who finds out is the wholesale buyer whose order can’t be filled.
Shopify does give you a fix, but it’s opt-in and easy to miss. On the draft order you can reserve items, which requires inventory tracking to be enabled on the product and asks you to set an expiration date for the reservation. Reserved units come out of available stock; when the reservation expires, they go back.
Three things to know about it:
- It’s manual, every time. There’s no store-wide setting that says “always reserve.” Reps forget. If your team creates quotes daily, this needs to be a checklist item.
- You must pick an expiry. Set it to match your realistic close window, not your optimism. A 90-day reservation on fast-moving stock is a self-inflicted stockout.
- You can automate it. Shopify Flow (free) can trigger on draft order created and reserve inventory automatically, which removes the human step entirely. If you quote at any volume, build this workflow once.
The other half of the exposure is upstream: reserved-but-unsold stock quietly shrinks your buffer on the retail side. If your reorder points were calculated on total on-hand rather than available-to-sell, a few open wholesale quotes can push you into a stockout without any warning signal firing. This is exactly the scenario scheduled restocking and reorder points are meant to catch — set your thresholds against available inventory, not total.
Payment terms: the wholesale part
Retail checkout has one payment model. Wholesale has several, and draft orders support them natively. In the Payment section you can set:
| Term | Payment due | Typical use |
|---|---|---|
| Due on receipt | When the invoice is sent | New accounts, small orders |
| Due on fulfillment | After all items ship | Made-to-order, long lead times |
| Net 7 / 15 / 30 / 45 / 60 / 90 | Days after invoice | Established wholesale accounts |
| Fixed date | A specific calendar date | Seasonal or contract-tied orders |
Shopify Plus merchants can additionally require a percentage-based deposit, which is the standard answer for large orders from accounts you don’t fully trust yet.
Two related details: taxes calculate automatically from the shipping address (or billing, if there’s no shipping data) and can be toggled off entirely in the Payment section — necessary for resale-certificate buyers. And if you sell internationally, the market on the draft order fixes the currency and exchange rate used on the invoice, so a rate move between quote and payment doesn’t change what the buyer owes.
Sending it, and what happens next
You have three ways to close a draft:
- Send an invoice — emails the buyer a secure checkout link. The draft stays a draft until they pay.
- Collect payment — enter a card manually, or charge a saved payment method.
- Mark as paid — for money you’ve already received by bank transfer, check, or cash.
Once paid, the draft becomes a real order and behaves like any other: inventory moves, fulfillment starts, packing slips print.
That last point is worth stating plainly, because it’s a common workflow break: you cannot print a packing slip from a draft order. Warehouse teams that need pick documents before payment lands either mark the order as pending payment to convert it, or build a Flow automation to do it for them.
One housekeeping note: draft orders created on or after April 1, 2025 are automatically deleted after one year of inactivity. Any edit resets the timer. If you keep long-dormant quotes as templates, touch them occasionally or duplicate them into fresh drafts.
Where the native flow runs out
Draft orders scale well up to a point. Past it the symptoms are recognizable: buyers want to assemble their own order and request a quote rather than describe it in an email; quotes need revisions and version history after three rounds of back-and-forth; reps need to build orders on a phone at the buyer’s counter against that account’s price list; and you need quote expiry, approval rules, or commission tracking, none of which the admin models.
The real forcing function for most teams is simpler: giving every rep full Shopify admin access just so they can create an order is a permissions problem waiting to happen.
Mify Field B2B is built for that gap: reps get their own portal to browse the account’s catalog, build a quote at the right price list, and push it through as a draft order — without touching your admin. The quote lives where the rep works, and the order lands where your operations already run.
Frequently asked questions
Do draft orders reduce inventory? Not on their own. Stock moves when the draft becomes a paid order. To hold units before then, use Reserve items on the draft and set an expiration date — or automate it with Shopify Flow.
Can a customer see or edit a draft order? No. They see it only when you send the invoice, and then only as a checkout link. Editing is yours alone.
Can I use draft orders with Shopify B2B company profiles? Yes — draft orders work with B2B, so a draft created for a company account can carry that account’s catalog and payment terms.
How long does a draft order last? Drafts created from April 1, 2025 onward delete automatically after one year of inactivity. Editing one resets the clock.
Do draft orders work with POS? On Shopify POS Pro you can save a cart as a draft and finish it later in the admin — useful for trade shows and counter sales that turn into larger orders.
The takeaway
For most wholesale operations, Shopify draft orders are enough of a quoting system to run on, provided you use them deliberately: custom line prices instead of code-stacking, locked pricing so quotes don’t drift, reserved inventory with a sane expiry, and payment terms that match the account. Automate the reservation step with Flow before you rely on your team remembering it.
When quoting becomes a job several people do daily — in the field, at buyer counters, with revisions and their own catalogs — give your reps a portal built for it rather than another admin login.