Wholesale Inbox

Guide

How to import orders into Shopify: CSV, apps, API or drafts

Shopify's admin cannot import orders from a CSV. How to import orders into Shopify with an app, the API or draft orders, and which suits wholesale POs.

ยท 4 min read

Shopify's admin can import products, customers and inventory from a CSV file, but not orders. To import orders into Shopify you need an app, the Admin API, or draft orders. Which one is right depends on what you are importing: years of order history from another platform, or new orders that arrive every week from retailers.

This guide covers the options, the columns a wholesale order file needs, and how to run an import without emailing your customers or throwing off your inventory by accident.

Rows of a blank spreadsheet lifting off as cards and flying into an open shopping bag
Each row of the file becomes an order or a line on one. Test with a few rows first.

First: history or new orders?

Order history is a one-time job, usually when you move to Shopify from another platform. You want past orders in Shopify for reporting and customer records. These orders are already paid and shipped. Nothing about them should reach the customer again.

New orders are ongoing: wholesale POs from retailers, orders from a trade show, orders from a sales rep's spreadsheet. These still need to be checked, priced and shipped. They should arrive in Shopify in a state where you can still change them.

The tools below handle these two cases differently, so decide which one you have before picking one.

Option 1: a bulk import app

Several apps on the Shopify App Store import orders from CSV or Excel files. They map your columns to Shopify's order fields and create the orders through the API.

Good for order history and large one-time imports. Watch for how the app handles three settings, and test each on a few rows:

  • Customer notifications. Make sure imported orders do not send order confirmations or shipping emails to customers.
  • Inventory. Decide whether imported orders should reduce stock. For history, they almost never should.
  • Order status. Historical orders should arrive paid and fulfilled. New orders should not.

Option 2: the Shopify Admin API

A developer can create orders with the Admin API, or create draft orders, which can still be edited before they become orders. The API gives the most control: line prices, tags, notes, addresses and PO numbers can all be set.

Good for a regular feed from another system, such as an ERP or a buying platform. Watch for the same three settings as the apps, plus the effort of building and maintaining the integration.

Option 3: draft orders, by hand or by a tool

For new wholesale orders, a draft order is usually the better destination than a finished order. A draft can be changed, does not count in your sales reports, and does not commit stock or charge anyone until you convert it. You can enter drafts by hand, or use a tool that creates them from the retailer's document. Wholesale order management for Shopify brands: PO to shipment covers the manual steps.

Good for a steady flow of retailer POs that need checking before they become orders.

Comparing the options

OptionBest forArrives asEffort
Bulk import appHistory, one-time migrationsOrders, usually paid and fulfilledLow, after setup and a test
Admin APIA regular feed from another systemOrders or draft ordersHigh: someone builds it
Draft orders by handA few new POs a weekDraft ordersGrows with every line
A PO-to-draft toolMany new POs in retailers' own formatsDraft orders you approveLow per PO

The columns a wholesale order file needs

If you are building a CSV of wholesale orders to import, one row per order line works with most tools. These columns cover the essentials.

ColumnExampleNote
Order or PO number4471The same on every line of one order
Customer emailbuyer@example.comLinks the order to a customer record
Company namePinewood Market
Ship-to name and addressOne column per fieldOften a store or warehouse, not the billing address
SKUOAT-12Your SKU, not the retailer's item number
Quantity24In units, after converting cases
Unit price3.95Your wholesale price per unit
Ship by date2026-10-30Put it in the order note if your tool has no field
TagswholesaleHelps you filter later

The two columns that cause the most trouble are SKU and quantity. Retailers write their own item numbers and order in cases, so a file built straight from their POs needs both converted first.

Running an import safely

  • Export a backup of your current orders before you start
  • Import three to five rows first, to a test customer if you can
  • Check that no email went to the customer
  • Check stock levels before and after
  • Check prices, taxes and shipping on the test orders against the file
  • Delete or archive the test orders, then run the full file
  • Spot-check ten orders afterwards against the source

When a file is the wrong tool

If your "import" is really retyping retailer POs into a spreadsheet so you can upload it, the spreadsheet is an extra step. The retailer already sent you a document.

Wholesale Inbox starts from that document. You forward the retailer's PO (a PDF that is not a scan, an Excel or CSV file, the email itself, or a JPG or PNG photo) to your own address. It reads the lines, matches them to your Shopify SKUs and barcodes, remembers each retailer's item numbers once you confirm them, and flags unknown SKUs and prices that differ from your price list or the retailer's last order. Nothing goes into Shopify until you approve it, and then it arrives as a draft order, with the PO number and ship-to filled in (or the ship-to in the order note, when Shopify does not accept the address). It does not send invoices, complete orders or charge anyone.

Forward a retailer's PO, get a Shopify draft order back

Forward a purchase order (PDF, Excel or CSV file, email or photo) to your Wholesale Inbox address and get a draft order matched to your SKUs, with mismatches flagged for you.

$79/ month

Get started

Cancel any time.