6 min read
Shopify Draft Orders for B2B, Explained
Draft orders are the least glamorous object in the Shopify API and the most useful one for wholesale. Here is exactly how they behave in a B2B workflow.
What a draft order is
A draft order is an unpaid order you create from the admin side rather than the storefront side. You set the line items, you set the price per line, and Shopify generates an invoice link the buyer can pay — or you mark it paid yourself when a bank transfer clears.
For B2B this matters because the price on a draft order line is whatever you say it is. It does not have to match the published product price, and no discount code is involved.
How inventory behaves
- Creating the draft does not deduct stock.
- Completing or paying the draft turns it into a real order and reserves stock like any other order.
- Fulfilment deducts stock at the mapped location.
- Deleting an unpaid draft has no inventory effect at all.
The practical consequence: a wholesale quote sitting unpaid for a week does not silently lock inventory your retail store could have sold.
Why this is the safe settlement model
Any wholesale system that collects payment itself is holding your money and taking on payment liability on your behalf. Draft orders avoid that entirely: the order lands in your admin, you invoice through Shopify, and funds move through your own Shopify Payments account.
Hasil Pricing uses this deliberately — the portal writes a draft order and stops. It never touches customer funds, and your accounting, tax, and fulfilment stay exactly where they are today.
Net terms without a payments provider
Most wholesale buyers expect net 30. You do not need a lending product for this: create the draft order, send the invoice with your terms in the note, and mark it paid when the transfer arrives. Shopify tracks the outstanding balance and the order stays visible in your admin the whole time.
Limits worth knowing before you build on them
- Draft orders do not trigger storefront automations that fire on checkout completion — only on the resulting order.
- Custom line items are possible, but they bypass inventory tracking; use real variants when stock matters.
- Draft-order invoice emails come from Shopify, so your sender domain and templates should be configured before you send buyers there.
Frequently asked
- Can a draft order use a price that differs from the product price?
- Yes. Each draft order line carries its own price, which is why draft orders are the right primitive for negotiated wholesale pricing.
- Does a draft order reserve inventory?
- No. Stock is only affected once the draft is completed or paid and then fulfilled.
- Can buyers pay a draft order themselves?
- Yes. Shopify generates an invoice URL the buyer can pay directly, or you can mark the order paid manually after a bank transfer.
- Do draft orders work on every Shopify plan?
- Yes — draft orders are a core Shopify feature and do not require Shopify Plus.
Want this working on your store?
Hasil ships wholesale portals and Odoo ↔ Shopify sync. 14-day free trial.
Start free trial