GuidesJune 20, 2026· 8 min read

How to import orders into Shopify from a CSV (2026 guide)

Shopify has no native order importer. Here's how to create orders in Shopify from a CSV or spreadsheet — the column format that works, the methods, and why free/barter orders break most imports.

How to import orders into Shopify from a CSV (2026 guide)

If you have a spreadsheet of people you need to send product to — creators, gifting recipients, sampling lists — you've probably searched for a way to just upload it and have Shopify create the orders. Here's the honest state of order import on Shopify in 2026, the CSV format that actually works, and the trap that breaks most imports when the orders are free.

Does Shopify natively import orders?

No. Shopify's admin lets you import products, customers, and inventory from a CSV — but there is no built-in way to import or bulk-create orders. The admin only creates orders one at a time (as a draft or a direct order), and even “duplicate order” works on a single order at a time. So every route to importing a list of orders goes through either a third-party app or the Shopify API.

The CSV / spreadsheet format that works

Whatever method you use, the data each order needs is the same. Get your sheet into these columns and the rest is mechanical:

ColumnRequired?Notes
Recipient nameYesUsed to create the customer + ship label
Shipping addressYesStreet, city, state/province, postal code, country
PhoneRecommendedCarriers often need it for delivery
Product / SKUYesMust map to a real product variant in your store
QuantityYesDefaults to 1 if blank
DiscountFor barter100% for free orders (see below)
EmailOptionalOnly if you want order confirmations sent

Two columns cause almost all import failures: the address(when it's a single messy cell instead of split fields) and the product(when the sheet has a free-text name like “Vit C serum 30ml” that doesn't exactly match a variant). Clean those two and your import rate jumps.

Two ways to actually do it

Method A — an order-importer app

General-purpose order-importer apps let you map your CSV columns to Shopify order fields and create the orders. They work, with caveats:

  • Good for: straightforward paid orders with clean, pre-split address fields.
  • Weak for: messy single-cell addresses, free-text product names, and free orders — most generic importers expect tidy data and a real price.
  • Watch: error handling. If row 140 of 300 fails, you want to know exactly which one and why, not a silent partial import.

Method B — the Shopify API

If you have developer help, the order-creation API will create orders programmatically from your data. It's the most flexible route, but you own everything: rate limits, retries, idempotency (so a re-run doesn't duplicate orders), product matching, and address parsing. For a one-off it's overkill; for a recurring program it becomes its own small project to maintain.

Why free / barter orders break most imports

Here's the trap. Most order import is built for paid orders. The moment your orders are free — barter, seeding, gifting — extra rules kick in:

  • You need a 100% discount applied cleanly (so the product's real value still shows in reports). See placing 100% discount orders.
  • Completing the order shouldn't require a payment step that some store plans block. See the draft-order completion error.
  • The same recipient list often repeats month to month, so idempotency matters — re-importing must not double-send.

That's why a generic CSV importer often gets you 80% of the way and then leaves you fixing the free-order edge cases by hand — which is exactly the work you were trying to avoid.

A quick pre-import checklist

  1. Split the address into street, city, state, postal code, country (or use a tool that parses a single cell).
  2. Match each product name/SKU to a real variant before you import.
  3. Decide the discount (100% for barter) and whether shipping is free.
  4. Decide whether confirmation emails go out.
  5. Run a small test batch (3–5 rows) before the full list.
The barter-specific shortcut
Orqis is built for exactly this list: it parses single-cell addresses, fuzzy-matches free-text product names to the right variant, applies a 100% (or custom) discount, and places every order through a durable, idempotent queue — so nothing is lost, mispriced, or duplicated. See how it works or book a demo.

Bottom line

Shopify won't import orders for you natively, so it's an app or the API. For clean paid orders, a generic importer is fine. For free, recipient-by-recipientsends from a messy real-world sheet, you want something that handles addresses, product matching, discounts and de-duplication for you — or you'll spend the saved time fixing edge cases instead.

Frequently asked questions

Can Shopify import orders from a CSV natively?+

No. Shopify's admin imports products, customers and inventory from CSV, but there is no native order import. Creating many orders from a list requires a third-party app or the Shopify API.

What columns does a Shopify order import need?+

At minimum: recipient name, full shipping address (street, city, state, postal code, country), product or SKU, and quantity. Phone is strongly recommended, and a discount column is needed for free/barter orders.

Why do my free or $0 orders fail to import?+

Most generic importers are built for paid orders. Free orders need a clean 100% discount, must avoid a payment step that some store plans block on draft completion, and need de-duplication so re-imports don't double-send — edge cases generic tools handle poorly.

What's the difference between importing orders and importing draft orders?+

A draft order is a staged order you complete later; a direct order is created as a real order immediately. Free/barter sends are usually more reliable as direct orders because completing a draft can hit a plan-related payment step.

Is there a limit to how many orders I can import at once?+

Practically, the limit comes from API rate limits and the tool you use, not a fixed number. Robust bulk placement processes orders through a queue with retries so a large list completes reliably rather than timing out.

#Shopify#Bulk orders#CSV

See Orqis on your own store

Turn your barter sheet into placed Shopify orders in minutes — nothing lost, nothing duplicated.