All articles
How-To

How to Bulk Import and Manage Shopify Draft Orders

Learn how to bulk create and manage Shopify draft orders for wholesale and B2B. Covers API imports, automation tools, and catalog prep to avoid pricing errors.

2026-08-055 min readBy BulkOps.ai

If you're running a wholesale operation out of Shopify, you already know the drill: a buyer places an order for 40 SKUs across three product lines, you need to price it at net-30, and the native admin wants you to add products one by one. Draft orders are the right tool for this job — but Shopify's built-in interface isn't built for volume. Here's how to work around that.

What Shopify Draft Orders Actually Are

Draft orders are orders that exist in your Shopify admin before a customer pays. You create them, add products, apply any custom pricing or discounts, then send the customer an invoice. They pay the invoice, and the draft converts to a real order.

Most merchants use draft orders for three things:

  • Wholesale and B2B: Sending invoices to retailers or large buyers who pay on terms (net-30, net-60), not upfront.
  • Phone and in-person sales: Taking an order manually when the customer isn't going through the online store.
  • Custom pricing: Applying a one-off discount or custom price for a specific buyer without running a sitewide promotion.

The problem is that Shopify's draft order interface is designed for creating orders one at a time. If you're a distributor taking weekly orders from 30 accounts, or a brand managing multiple wholesale accounts, you need a better system.

The Limits of Shopify's Native Draft Order Interface

Here's what the native admin gives you: a single order form where you search for products, set quantities, apply a discount, and save. That's fine for one order. For 50, it's 50 repetitions of the same process. There's no native CSV import for draft orders, no batch creation tool, and no bulk status management.

If you're managing a wholesale business through Shopify, you'll hit these walls quickly:

  • No way to import a spreadsheet of orders from a buyer
  • No bulk tagging or filtering of draft orders by account or sales rep
  • No way to send multiple invoices in a single action
  • No visibility into which drafts are stale or overdue

None of these are unsolvable — they just require a bit of setup. Let's go through your options, from most powerful to simplest.

Option 1: Use the Shopify API to Create Draft Orders in Bulk

If you have developer resources, the Shopify Admin API's draftOrderCreate GraphQL mutation is the most powerful route. You can create a draft order programmatically with full control over line items, customer assignment, custom discounts, and tags.

A basic API call looks like this:

mutation {
  draftOrderCreate(input: {
    lineItems: [
      { variantId: "gid://shopify/ProductVariant/12345678", quantity: 10 }
    ]
    customerId: "gid://shopify/Customer/987654321"
    tags: ["wholesale", "q3-2026", "account-lodge"]
    note: "Net-30 terms"
  }) {
    draftOrder { id name }
    userErrors { field message }
  }
}

You can loop over a spreadsheet of orders and send one API call per draft. For 200 orders, this takes minutes instead of hours. If you're comfortable with Python or Node.js, this is by far the most efficient approach for bulk creation.

The key is having clean, consistent data going in: correct Shopify variant IDs, accurate customer GIDs, and reliable pricing. If your product catalog has variant IDs that have changed or pricing that hasn't been updated since your last supplier cost increase, your import will fail or — worse — produce incorrectly priced orders.

Option 2: Use a Wholesale App That Generates Draft Orders

If you don't have developer resources, wholesale apps like Wholesale Gorilla, B2B Wholesale Club, or Faire's Shopify integration can generate draft orders automatically from a customer-facing ordering portal. Buyers log in, build their cart at negotiated prices, and the app creates a draft order in your Shopify admin without you touching it.

This approach works well for ongoing accounts but doesn't solve the one-time problem — like importing a spreadsheet of orders taken at a trade show or from an email chain with a new account. For that, you're still looking at manual entry or API work.

For example, if a Cotopaxi wholesale buyer sends you a purchase order PDF with 35 line items, no app will parse that for you. You'll need a human or an API script to translate it into Shopify draft orders.

Option 3: Automation Tools (Make, Zapier, or Shopify Flow)

If your wholesale volume is moderate — under 30 orders per week with consistent SKUs — you can use Google Sheets as the intake layer and route new rows to Shopify via Make (formerly Integromat) or Zapier. The workflow looks like this:

  1. Buyer submits a Google Form with their order details (product SKUs, quantities, any notes)
  2. Each form response adds a row to a Google Sheet
  3. Make watches the sheet and triggers a Shopify draft order creation via API for each new row
  4. You get a Slack or email notification, review the draft, and send the invoice

Shopify Flow (available on Shopify and above) can also trigger draft order creation based on form submissions or webhook events. This is simpler to set up but has less flexibility for complex multi-line-item orders.

Get Your Pricing Right Before You Scale Draft Orders

The most common reason bulk draft order workflows break down in practice isn't the tooling — it's bad product data. If your Shopify catalog has products without cost data, variant prices that haven't been updated since 2024, or no clear wholesale pricing formula, you'll create draft orders at the wrong price and potentially invoice buyers incorrectly.

Before you set up any bulk draft order workflow, audit your catalog for three things:

  • Cost per item: Every product you sell wholesale needs a cost set in Shopify. Without it, you can't calculate margins or set a pricing floor. As covered in detail in Shopify Missing Cost Per Item: Why It's Killing Your Margins and How to Fix It Fast, this gap silently erodes profitability across your entire catalog.
  • Wholesale price formula: If your wholesale price is "cost × 1.8" or "retail × 0.6," that rule should be codified in your admin, not held in someone's head. Setting up B2B prices using a formula rule means your draft orders will always use the right price — even when new staff are onboarded or new SKUs are added.
  • SKU consistency: Draft orders tie to Shopify variant IDs, but buyers often reference their own SKUs or your purchase order numbers. Make sure your catalog's SKU mapping is clean and complete before you build an import pipeline on top of it.

BulkOps makes the catalog cleanup step fast. The No Cost Set and Low Margin tabs in the bulk editor surface exactly the products missing cost data or priced below your wholesale floor — so you can fix them before they cause problems in a draft order.

Managing Draft Orders Once They're Created

Creation is only half the challenge. Once you have hundreds of draft orders in flight, you need to track their status: which are invoiced, which are paid, which have been sitting open for 60 days.

Shopify lets you filter draft orders by status (open, invoice sent, completed) and tag them manually. For serious volume, build a consistent tagging taxonomy from day one. A structure like account:cotopaxi, terms:net30, rep:sarah, q3-2026 gives you four dimensions to filter on in the admin — with no third-party tooling required.

For outstanding invoices, filter by "Invoice Sent" and sort by creation date. Any draft order over 30 (or 60) days old without a payment is overdue — set a weekly calendar reminder to work through that list.

A Practical Bulk Draft Order Workflow for Wholesale Merchants

Here's a workflow that scales from 20 to 200 wholesale orders per week:

  1. Clean your catalog first: Accurate cost data, formula-based wholesale prices, consistent SKUs. Do this once, properly, before building anything on top of it.
  2. Standardize your intake: Give buyers a Google Form or a shared order template. Capture: customer email, product SKU, quantity, any notes or special terms.
  3. Automate the import: Use Make, Zapier, or a simple API script to process the intake sheet and create one draft order per submission, with consistent tags applied automatically.
  4. Send invoices in batch: In the Shopify admin, select all open draft orders and send invoices. This works for up to 25 at a time natively.
  5. Monitor weekly: Filter by "Invoice Sent" + old creation date to surface overdue accounts. Mark complete when payment is received or the order is fulfilled.

This isn't glamorous automation, but it's reliable. The biggest risk is step 1 — if your catalog data is messy, everything downstream gets complicated. Take the time to fix it first, and the rest of the workflow runs smoothly.

Related reading


If your catalog has products without cost data or inconsistent wholesale pricing, BulkOps' bulk editor surfaces those gaps in one view — the No Cost Set and Low Margin tabs let you fix your catalog before it causes problems in your order workflow. Install BulkOps →

bulk import draft orders ShopifyShopify draft orders wholesaleShopify B2B draft ordersShopify create draft orders in bulk

Try BulkOps.ai free on your store

Everything covered in this article is built into BulkOps.ai. Free plan for stores up to 50 products — no credit card required.

Add to Shopify — Free

Was this helpful?