How to Import Order History into Shopify from Another Platform
To migrate orders to Shopify, you’ll need a migration app, a migration service or Shopify’s API, because the Shopify admin can’t import orders from a CSV file the way it imports products and customers. Import your products and customers first, turn off new order notifications, then bring in your order history so each order links to the right items and buyers.
Your order history gives customers a record of past purchases and keeps your sales reports, support and accounting continuous after the move. A little planning keeps those orders accurate without emailing old customers or changing your stock levels.
How to Migrate Orders to Shopify
Shopify’s migration guide points to apps from the Shopify App Store and to its Order and Transaction APIs for importing historical orders. In practice, these are the main ways to do it:
| Method | How it works | Best for | Watch out for |
|---|---|---|---|
| Import apps | Upload a CSV or spreadsheet built in the app’s order template | Merchants who can export orders from their old platform and want control over the data | Each app has its own columns and rules |
| Migration services | Connect your old store and Shopify, then move orders along with products and customers | Full store moves from another platform | Check how statuses, order numbers and custom fields are handled |
| Shopify API | Custom scripts create orders and transactions through Shopify’s Admin API | Large, complex or unusual order data | Needs a developer and careful testing |
| Done-for-you agencies | A team maps, migrates and checks your orders for you | Stores that want to hand off the whole job | Ask for a validation report you can check against your own records |
Import apps vary in what they cover. Matrixify imports orders from CSV or Excel files using its Orders template, EZ Importer handles orders and draft orders from CSV files, and Migrate Go offers bulk order imports from CSV, Excel or Matrixify-format files.
Migration services such as Cart2Cart and LitExtension move orders as part of a full migration from platforms like WooCommerce, Magento or BigCommerce. They typically offer options for migrating recent data after launch, so orders placed on your old store during the move aren’t lost.
What Order Data Moves and What Changes
Most methods carry over the core of each order, including line items, customer details, addresses, discounts, taxes, shipping and payment status. A few details work differently once orders are recreated in Shopify:
- Order dates. Imported orders are created at the time of the migration, so tools set a separate processed date to show the original purchase date in your admin and reports.
- Payments. Marking an order as paid doesn’t always record the payment itself. With Matrixify, for example, you need to import transactions for the paid amount to appear on the order.
- Fulfillment status. Statuses are rebuilt from the source data. Cart2Cart, for instance, marks orders with tracking numbers or a paid status as fulfilled and treats pending or custom statuses as not fulfilled.
- Sales channel. Imported orders usually show the app or tool that created them as their source, not your old storefront.
- Discounts. Shopify’s API allows only one discount code per order and doesn’t support line-item discounts, so some tools combine them into a single order discount.
- Locked fields. The order name, currency and whether tax is included can’t be changed after an order is created, so get them right on the first import.
Customer passwords can’t be moved to Shopify. Customers will need to set up their accounts again before they can sign in and see their past orders.
How to Migrate Orders Step by Step
Orders depend on products and customers, so the sequence matters. Shopify recommends importing products, then customers, then historical orders so everything connects properly:
- Import products. Bring in your catalog first, keeping the same handles or SKUs your orders refer to.
- Import customers. Add customer records so orders attach to existing profiles instead of creating duplicates.
- Export your orders. Download order history from your old platform, including line items, totals, taxes, shipping, payment and fulfillment details, dates and order numbers.
- Turn off order notifications. Deactivate new order notifications for staff, including the account owner, so you don’t receive an email for every imported order.
- Prepare the file or connection. Match your data to your app’s template, or connect both stores in your migration service and map statuses and fields.
- Run a test import. Import a small batch and compare totals, customers, dates and statuses with the originals.
- Import the full history. Run the complete migration and review the app’s results for failed or skipped orders.
- Turn notifications back on. Reactivate staff notifications once the import is complete.
- Migrate recent orders. Bring over any orders placed on your old store during the migration before you switch your domain.
Line items connect to products through IDs, handles or SKUs, so it helps to clean up product data before importing orders. Bulkflow supports bulk import, export and updates to existing product records with field mapping for Shopify, WooCommerce and Wix, which can help when SKUs or other product details need correcting across a catalog.
Prepare Your Order File
If you use an import app, the file decides how accurate your orders will be. Column names differ between apps, but most order templates ask for similar information, as in this example based on Matrixify’s Orders template:
| Data | What to include | Tips |
|---|---|---|
| Order name or number | The order number customers know, such as #1001 | Keep names unique, since Shopify allows duplicates and apps often use the name to find orders |
| Processed date | The original order date | Sets the date shown in your admin and analytics |
| Customer | Customer ID, email or phone | Matrixify matches by ID, then email, then phone, and creates a new customer if none match |
| Line items | Product ID, handle or SKU, quantity and price | Matching handles and SKUs makes line items link to your imported products |
| Taxes, shipping and discounts | Tax lines, shipping method and cost, discount code and amount | Check how your app handles taxes set on both line items and the whole order |
| Transactions | Payment kind, status and amount | Needed for paid amounts to show on the order, not just a paid status |
| Fulfillments | Fulfilled items, tracking numbers and carriers | Fulfillment details are often needed for an order to import as fulfilled |
| Refunds and cancellations | Refunded items and amounts, cancellation date and reason | Cancelled orders can’t be uncancelled in Shopify, so double-check these rows |
Pay attention to settings that affect customers and stock. Matrixify, for example, doesn’t send receipts by default, uses an inventory setting that doesn’t reduce stock for imported orders and avoids sending gift cards automatically during migrations, so confirm your own tool’s defaults before a full import.
For stores that sell in more than one currency, include amounts in both the order currency and your store currency where the template asks for them. Add a country code to phone numbers too, since Shopify validates customer details strictly.
Migrating Orders With Shopify’s API
Developers can create orders directly with the orderCreate mutation in Shopify’s GraphQL Admin API, which Shopify describes as suitable for importing orders from external systems. It accepts customer details, line items, addresses and transactions, and its options control inventory updates and whether order and shipping confirmations go to customers.
Keep confirmation emails switched off for historical orders, and test with a small batch first. Shopify limits trial and development stores to five new orders per minute through the API, so consider choosing a plan before importing a large order history.
An API migration also needs a plan for edits after import. Simple changes such as notes and tags can be updated later, while changes to line items or quantities require Shopify’s order editing process.
Moving Orders Between Shopify Stores
The same approach works when you move orders from one Shopify store to another, such as when merging stores or relaunching a brand. Export orders from the old store with an import and export app, then import the file into the new store after its products and customers are in place.
StoreRobo, for example, exports orders to CSV with filters for created date, updated date and order status, then imports the file into the destination store with an option to update orders that already exist. Matrixify works similarly, and because handles and SKUs usually carry over between Shopify stores, line items match products more easily than in cross-platform moves.
Common Order Migration Problems
Most order import issues trace back to missing links or unexpected defaults. Check for these during your test import:
- Customers receiving emails. Receipts or shipping confirmations were switched on, so old customers got emails about past orders.
- Inventory changes. The import reduced stock for historical orders, leaving inventory counts wrong.
- Duplicate customers. Orders created new customer profiles because emails or IDs didn’t match your imported customers.
- Unlinked line items. Product IDs, handles or SKUs in the order file didn’t match your catalog.
- Wrong dates. Orders show the migration date because the original processed date wasn’t included.
- Zero paid amounts. Orders appear paid but show no payment because transactions weren’t imported.
- Unexpected statuses. Orders appear unfulfilled or partially fulfilled because the source statuses mapped differently than expected.
- Slow imports. Large histories take longer than planned, especially on trial stores with order creation limits.
After the full import, compare order counts and sales totals for a few periods with your old platform. Spot-check orders with refunds, cancellations, multiple shipments or several currencies, since these are the cases most likely to need adjustment.
Conclusion
To migrate orders to Shopify, choose an import app, migration service or API approach, import products and customers first and test a small batch before moving your full history. Careful settings for notifications, inventory and dates keep your order history accurate and useful from day one. We hope this guide helps you migrate orders to Shopify smoothly. If you need to update product data in bulk before importing orders, you can explore Bulkflow.



