Does draft-order and quote data (common in B2B sales-rep-assisted workflows) migrate to Shopify's draft order model cleanly?
Short answer
Only open quotes migrate, as Shopify draft orders; closed quotes don't migrate as quotes. A business-to-business (B2B) import needs the company, location, contact and products in Shopify first, plus the buyer's role at that location, because otherwise "an error is returned" (shopify.dev, October 2026). Sales rep ownership moves to staff assigned to each company location (Shopify Help Center, October 2026).
- Before a B2B order imports
- Companies, locations, contacts and productsShopify: all must exist first, and the buyer needs a role at the company location, or "an error is returned" (October 2026).Source: Shopify developer docs (Import B2B orders)
- Draft order lifetime
- Deleted after 1 year of inactivityFor drafts created on or after April 1, 2025; "Any type of edit to the draft order resets the timer" (October 2026).Source: Shopify Help Center (Draft orders and invoices)
- Sales staff per company location
- Up to 10, on every planReps can be restricted to the company locations they're assigned to; draft orders themselves take no staff field (October 2026).Sources: Shopify Help Center (Orders, data, and admin access for B2B sales staff); Shopify developer docs (DraftOrderInput)
- Prices on an imported B2B order
- The variant price, unless you set oneShopify fills a missing line price from the variant price, so an accepted quote's negotiated prices have to be set at import (October 2026).Source: Shopify developer docs (Import B2B orders)
Deploi’s call
Sequence business-to-business (B2B) data in this order and do not compress it. First come companies, locations, contacts, role assignments and sales staff assignments. Then catalogs and price lists, then historical orders, and last the open quotes, recreated by the reps who own them. Reps recreating their own open quotes is not a shortcut, it is a control. It surfaces the quotes that should have been closed and gives each one a current owner.
CustomizeRecreate an open quote as a draft order when
- The quote is younger than your sales cycle, and its rep is assigned to the company location (Shopify Help Center, October 2026).
- The company, location, contact and buyer role already exist in Shopify, or the import returns an error (shopify.dev, October 2026).
- Its prices are locked or set as custom line prices, so catalog changes can't move them (Shopify Help Center, October 2026).
- The draft order stays the quote of record. Deploi's request-for-quote (RFQ) and quoting record treats draft orders as Shopify's quote object and scores the missing request and approval layer BUILD (October 2026).
WaitLeave the quote in the archive while
- It's expired, declined or older than your sales cycle.
- Its pricing came from a legacy rules engine you haven't rebuilt.
- The company hierarchy or the rep's assignment is still unresolved.
Basis: Should You Build or Buy RFQ & Quoting on Shopify?, our Build vs. Buy decision record, scored BUILD.
Which legacy quote data migrates, and as what?
Only open quotes migrate as Shopify draft orders. Accepted quotes migrate as the orders they became, and the rest stays in an archive, because a legacy business-to-business (B2B) system calls everything a quote and Shopify splits them.
| Legacy object | Shopify destination | Migrates? |
|---|---|---|
| Open quote, not yet accepted | Draft order, recreated | Yes, by recreation. Prices and discounts are restated, not copied |
| Accepted quote that became an order | Historical order through the B2B import path | Yes, as an order. Set each line's negotiated price, or Shopify uses the variant price |
| Expired or declined quote | Nothing | No. Archive it |
| Quote template or price list logic | B2B catalog and price list | Rebuilt, not migrated |
The quote workflow itself, the request form and the approvals, doesn't come across either: the quote and approval process is a separate build on draft orders.
What does Shopify require before a B2B order or draft order imports?
Shopify requires every company, company location, company contact and product to exist before a business-to-business (B2B) order imports. Its import tutorial says: "A B2B merchant must import or create all relevant companies, company locations, company contacts, and products in Shopify before they can import B2B orders" (shopify.dev, October 2026). The buyer also needs a role at that location: "If the customer doesn't have a role assignment to that location, then an error is returned" (shopify.dev, October 2026). Matrixify's draft order import applies the same role rule to drafts linked to a company (Matrixify, October 2026).
That error is a data-modeling problem rather than a technical one. Legacy systems often attach a quote to a person and a shipping address. Shopify attaches it to a person, a company and a location, with a role that connects them. So a buyer who ordered for two divisions needs a role at each location, and how a branch hierarchy maps to companies and locations decides where those roles sit.
Where does sales rep ownership go in Shopify?
Sales rep ownership goes on the company location, because Shopify lets you assign up to 10 sales staff to each company location, on every plan (Shopify Help Center, October 2026). With "Restrict permissions to assigned company locations" on, a rep sees only those accounts in Customers, Orders, Draft orders and Companies (Shopify Help Center, October 2026). The Admin API (application programming interface) assigns several staff to a location in each call (shopify.dev, October 2026), so the legacy account-to-rep table can be scripted in.
Two gaps remain:
- Draft orders take no staff field (shopify.dev, October 2026), so a recreated quote records its rep only through a metafield or tag you add.
- Historical orders name a rep only if the rep has a Shopify staff account. The order import takes "The ID of the user who processed the order, if applicable" (shopify.dev, October 2026). Each rep needs a staff account: none beyond the owner on Basic, up to 5 on Grow, 15 on Advanced and unlimited on Plus (shopify.com/pricing, October 2026), as staff-account limits by plan explains.
Commission and territory rules still need a destination you choose: an order metafield, a tag convention, or the customer relationship management (CRM) system that stays the system of record. Pick one before the import, because retrofitting rep attribution means reprocessing every order.
What changes when a quote becomes a Shopify draft order?
A quote that becomes a Shopify draft order gains an expiry clock and a new name, and its prices follow the catalog unless you lock them.
- Drafts expire. Shopify says "draft orders created on or after April 1, 2025, are automatically deleted after 1 year of inactivity" and "Any type of edit to the draft order resets the timer" (Shopify Help Center, October 2026). So a long sales cycle needs a touch policy, and the open drafts in a store consolidation need an owner each.
- Prices move unless locked. "By default, a draft order's prices are unlocked until you manually lock the prices on the draft order" (Shopify Help Center, October 2026). An invoice or checkout link locks them by default; until then, lock each recreated quote or set a custom line price.
- The legacy number and date don't carry. Shopify generates every draft order's name, and a migrated draft's creation date is the migration date (Matrixify, October 2026). Keep the old quote number and date in a metafield.
- Inventory can be held. A draft order can reserve stock until a date you set (shopify.dev, October 2026), so restate legacy allocation logic in those terms.
- Very long quotes need splitting. Shopify's draft order input, which an import uses, takes at most 499 line items (shopify.dev, October 2026), one fewer than the 500 its business-to-business (B2B) considerations page gives (Shopify Help Center, October 2026).
When shouldn't you migrate a quote?
You shouldn't migrate a quote when it's stale, its price can't be reproduced, or its owner or account isn't settled.
Deploi’s point of view
Our own position, from building on Shopify. Kept apart from the sourced facts above.
- Where we disagree
- B2B migrations get scoped from the order table because that is what the legacy export produces. The company model is the hard part and it is the part that gates everything else, so it belongs at the front of the plan and at the front of the budget. A scope that prices order import precisely and company modeling vaguely has the risk upside down.
- What this page adds
- that the B2B import path has a hard precondition on company, location, contact and role assignment, that sales rep ownership now lives in staff assignments on company locations while draft orders take no staff field, and that draft orders self-delete after a year of inactivity.
Decision records behind this answer
When this answer changes
- Shopify ships a native request-for-quote flow, or gives draft orders a staff field or a custom name.
- Shopify changes the one-year inactivity deletion for draft orders.
- Shopify changes the limit of 10 sales staff per company location, or the sales staff permissions.
- Shopify changes the 499 line-item limit on its draft order input or the 500 limit on its B2B considerations page.
Related questions
- How do multi-location company hierarchies (headquarters plus regional branches, each with different pricing) migrate to Shopify B2B's company/location model?
Multi-location hierarchies flatten to only two levels on Shopify business-to-business (B2B): a company and its locations.
- Does Adobe Commerce's native B2B feature depth (RFQ, negotiable quotes, multi-level approvals, requisition lists) still beat Shopify Plus B2B in 2026?
Adobe Commerce still beats Shopify on native business-to-business (B2B) depth in 2026.
- What happens to draft orders and open carts sitting in the old Shopify store during a consolidation cutover? Do they need manual handling?
Open carts need no handling and draft orders do.
- From an operations manager's perspective, does the tier decision hinge more on staff-account limits or on B2B catalog capacity?
Business-to-business (B2B) catalog capacity decides the tier, not staff-account limits, because seats have a free exit.
Sources
Every figure on this page traces to one of these. Official and vendor pages are checked on the date shown; Deploi records are our own published decisions.
- Shopify developer docs, Import B2B orders
- Shopify Help Center, Orders, data, and admin access for B2B sales staff
- Shopify Help Center, Draft orders and invoices
- Shopify developer docs, DraftOrderInput
- Shopify Help Center, Creating B2B orders using draft orders
- Shopify developer docs, OrderCreateOrderInput
- Shopify Help Center, Requirements and considerations for using B2B
- Matrixify, Shopify Draft Orders: import/export data structure & description
- Shopify developer docs, companyLocationAssignStaffMembers
- Shopify, Pricing
- Deploi Build vs. Buy, Should You Build or Buy RFQ & Quoting on Shopify?