Shopify order migration is not finished when a CSV appears in the admin. The cross-border risk is losing the relationship between historical orders, customers, refunds, taxes, currencies, and support links. Before moving, define which records must survive, how fields will be transformed, and how old URLs will continue to serve customers.
Inventory the data and freeze changes
Create a field dictionary for orders, customers, products, SKUs, discounts, refunds, payment status, fulfilment status, time zone, and source platform. Use order number, customer email, SKU, and transaction amount as reconciliation keys instead of relying on import row numbers. Freeze product and price changes during the migration window and retain timestamped raw exports.
Shopify’s product, customer, and historical-order paths are not identical. Historical orders may require an API, a migration app, or a controlled script; confirm the current capability, permissions, and source constraints in the documentation. Do not copy card data, passwords, or unnecessary personal fields merely to claim a complete migration.
Mapping and rollback
For every field, record the source, Shopify destination, conversion rule, missing-value treatment, and owner. Separate merchandise subtotal, discount, tax, shipping, refund, and final payment. For multi-currency orders, retain both original and settlement currency. Consent, marketing subscriptions, and deletion requests need their own migration rules.
- Test a small historical sample in a non-production workflow first.
- Reconcile orders, customers, SKUs, refunds, and inventory field by field.
- Keep a read-only old-store lookup or support process and map old URLs with one-to-one 301 redirects.
- Record API version, scopes, script version, batch identifier, and retry results.
- Stop when duplicates or amount differences appear; a second import should not hide the defect.
Pair this guide with Shopify data warehouse governance, ERP and CRM integration, and Shopify migration governance. Chinese counterparts use /cn/ URLs.
Cutover acceptance
Before and after cutover, select the same order sample and check status, line items, tax, refunds, customer relation, and time zone. Test real support journeys for order lookup, cancellation, refund, address change, and notification. Watch new order writes, inventory deductions, payment callbacks, and analytics for duplicates. Confirm the old store, DNS, email, and support teams know the rollback trigger.
FAQ
Can Shopify import every historical order directly?
There is no universal yes. Product, customer, and historical-order capabilities differ, so validate a small sample against current Shopify documentation, the source platform, and your permissions.
Can customer passwords be moved during migration?
Do not assume so. Passwords and payment data are sensitive; use an official activation or reset path and follow privacy and security requirements.
Must historical order numbers remain identical?
Businesses usually want searchable continuity, but the implementation depends on the source and target. At minimum, retain a source-order mapping for support and finance.
When is it safe to switch DNS?
After reconciliation, payment, inventory, email, support lookup, and rollback rehearsals pass in a low-risk cutover window.
Should all old URLs be changed after migration?
No. Keep useful historical URLs and use one-to-one 301 redirects only where a path must change. Monitor the redirects after launch.