Shopify draft orders for wholesale B2B: Growth bulk forms create the draft at checkout with the net price. Keep Tax Exempt draft logic separate.
2026-10-15

Shopify draft orders for wholesale B2B: the invoice URL, not your keyboard

A distributor sends a screenshot of last month’s lines and asks you to “raise qty on the blue SKU”. You open a Shopify draft order, hunt variants, override unit prices, email the invoice. That is a real wholesale workflow. Shopify draft orders for wholesale B2B should stay an invoice URL. It should stop being a typing job.

OO - EU B2B & Wholesale lists Draft orders, Manual orders, and Bulk processing under Order management. The Growth plan names bulk forms, draft checkout, and repeat order in one line. The buyer enters quantities; the app writes the draft with the B2B unit price and redirects to the invoice.

This is not which collection feeds the form. That article is the product source. It is not net terms. That one is pay-later. This one is authorship: you in the admin versus checkout creating the same draft object.

Shopify’s draft order is staff software

Create order in admin, add lines, send invoice, convert when paid. Built for the merchant. A buyer at 6 a.m. has no admin. Every extra SKU is your search box. Every net price is a manual override until someone leaves retail on the line.

Native drafts are fine for one-off invoices and payment methods you attach by hand. They do not let a tagged wholesaler submit forty lines at group price with a server check that rewrites a tampered cart.

Hence the shared spreadsheet. Hence “can you duplicate last week’s draft?”.

Three habits that still leave you typing

Admin drafts only. Works until the price list moves and three unpaid invoice links still show last quarter’s net.

Retail checkout, credit later. The first tax base is wrong. The credit is a second job.

A bulk form that still hits standard checkout. The grid shows B2B numbers. Without the app embed, How B2B pricing works is blunt: checkout never switches to the draft. Catalog price wins.

Self-service quantities and a Shopify draft at net — that pairing is the Growth path.

Draft checkout is the bulk-form exit, not the VAT toggle

OO - EU B2B & Wholesale is Built for Shopify (5.0, 34 reviews). Custom B2B pricing, registration, tax/VIES, translatable. Free: one pricing rule, one form. Starter $22/month (or $220/year): unlimited custom and volume, EU tax exemption, tax display, login to see prices. Growth $37/month (or $370/year): + bulk forms, draft checkout, repeat order, quotes, order limits, wholesale cart. 14-day trial. USD. It does not replace Shopify Plus B2B / Companies.

Docs, in order:

  • The form shows the B2B price while the buyer types quantities.

  • A line with a B2B price uses draft-order checkout. The draft is created with that unit price.

  • The ordinary product-page price does not move because of the bulk form. Custom Pricing and Volume pricing are separate modules.

One form, one strategy: per-product prices, one fixed price, or a percentage off the Shopify price. Other forms do not stack.

Keep Validate custom prices on the server on (B2B pricing → Bulk forms → Design & settings). Draft checkout then recomputes the unit from the form and the customer, and fixes a browser-edited cart line. Turn it off only as a temporary workaround when price resolution fails.

The app embed on the live theme is not optional. No embed, no draft-checkout script. Theme app blocks: Enable in the hub is not pixels.

Do not also enable Use draft order logic in EU Tax Exemption. That VAT flow is separate and is not combined with bulk draft checkout. Tax draft is for prices *including* VAT; VAT-exclusive stores stay on Standard Checkout. Wholesale draft checkout is the net-price path, not a VIES bypass.

Repeat order sits on Growth next to draft checkout. Do not advertise subscriptions or auto-ship. Manual orders on the listing stay the escape hatch for the buyer who never logs in. Starter already covers custom/volume so you are not typing retail into that admin draft; the self-serve form plus draft checkout is Growth.

Example: the Monday pallet, not a new SKU hunt

Catalog: packaging SKUs in collection Pallet. Until now you rebuild a 22-line draft every Monday.

Growth setup:

  1. Bulk form on, collection Pallet, visibility tag `wholesale-pack`.

  2. Percentage-off so catalog changes flow through.

  3. Server validation on. Tax Exempt draft logic off (ex-VAT store).

  4. Embed on. Bulk block on the wholesale page.

The buyer logs in, sets 200 / 80 / 40, checks out. Admin shows a draft at net, not retail. Payment happens on the invoice URL. You do not search variants.

Embed off: same button, standard checkout, retail. That is “when the price is missing”, not a broken price list.

One buyer, then the rest of the book

  1. Install OO - EU B2B & Wholesale. Starter for group prices; Growth for bulk + draft checkout.

  2. Tag the test customer. Confirm custom or volume on the product page (embed).

  3. One bulk form. One strategy. Collection as source.

  4. Server validation on. Tax draft logic off if you sell ex-VAT.

  5. Save the embed. Log in as that customer. Confirm a draft appears, not a quiet native checkout.

  6. Keep admin drafts for guests — as an exception, not as the price list.

Finish setup until the dashboard says Active. A theme change keeps config, not the pixels; re-enable the embed.

Wrap-up

Shopify draft orders for wholesale B2B are still Shopify drafts. Native ones you type. Growth bulk forms write the same object at net price when embed and server validation are on. Keep that flow away from Tax Exempt’s VAT draft.

Turn on draft checkout in OO - EU B2B & Wholesale. The buyer types quantities. You type the exception — not the Monday pallet.

online origins logo full

The Shopify Select partner for ambitious e-commerce businesses that want to grow!

linkedin online origins iconinstagram online origins icon

Reviews

5/5

Check on Google

Mail: info@onlineorigins.nl

Tel: 073 234 0612

KVK: 89825624

BTW: NL865123639B01

Bruistensingel 500,
5232 AH 's-Hertogenbosch
Cookies

© 2026 Online Origins