Ecommerce Data Migration: How to Move Products, Customers and Orders
How to migrate ecommerce data: products, variants, categories, media, customers and orders, mapping, transformation, validation, rehearsals and rollback.
Quick answer
Ecommerce data migration moves products, customers, orders and content to a new platform without losing meaning or relationships. Extract data from the old system, map every field to the new model, transform and clean it (formats, duplicates, invalid values), load into a staging store, and validate with counts, totals, samples and journey tests. Migrate products, then customers, then orders. Rehearse the full run more than once, run a delta migration close to launch, and keep the old system ready for rollback.
Why Data Migration Deserves Its Own Plan
Data problems are among the most common causes of migration trouble: missing variants, broken images, customers who can't sign in, orders that don't show in accounts, duplicated customers, wrong prices. Most are preventable with mapping, validation and rehearsal. This article covers the data side. For the overall plan, see ecommerce migration strategy and migration checklist.
What to Migrate
| Data | Notes | Common issues |
|---|---|---|
| Products and variants | Options, SKUs, barcodes, weights | Variant limits, option naming |
| Attributes / custom fields | Specs, materials, sizing | Mapping to new structures |
| Categories / collections | Hierarchy and rules | Different category models |
| Media | Images, video, alt text | Broken links, missing alt text |
| Prices and inventory | By currency, market and location | Rounding, stock drift |
| Customers | Contacts, addresses, consent, tags | Duplicates, consent loss, passwords |
| Orders | Lines, statuses, taxes, refunds | Status mapping, totals |
| Gift cards, credit, loyalty | Balances | Security, liabilities |
| Content | Pages, posts, policies | Embedded links and images |
| Reviews | Ratings, text, dates | Product matching |
Step 1: Extract
Export complete data from the old system through APIs, database exports or export tools. Include IDs and relationships (which customer placed which order, which variant belongs to which product). Keep the raw exports unchanged for reference and repeat runs. Check that exports include everything: some export tools omit custom fields, metafields or inactive products.
Step 2: Map
Write a field mapping document: every source field, its destination, transformation rules and default values. Resolve model differences: a platform with unlimited variants moving to one with limits, custom attributes moving to metafields, category trees moving to collections. Decide what won't be migrated and why.
| Source field | Destination | Transformation |
|---|---|---|
| product.name | product.title | Trim, fix encoding |
| product.url_key | product.handle | Normalize; record for redirects |
| attribute.material | metafield custom.material | Map values to controlled list |
| customer.email | customer.email | Lowercase, deduplicate |
| customer.newsletter | email marketing consent | Preserve status and date |
| order.status | order financial and fulfilment status | Map status table |
Worried about losing data in a migration?
ZSpace maps, transforms and validates ecommerce data with repeatable migration scripts and rehearsals.
Step 3: Transform and Clean
Migration is a chance to fix data, but keep changes controlled. Normalize formats (phone numbers, country codes, dates), deduplicate customers and products with documented matching rules, fix encoding problems, fill required fields, and flag invalid records for review rather than silently dropping them. Use scripts rather than manual edits so runs are repeatable.
- Encoding and special characters fixed
- Country, currency and date formats normalized
- Duplicate customers matched and merged by rule
- Required fields filled or records flagged
- Controlled values for attributes
- Transformation scripts version-controlled
Step 4: Load in the Right Order
Load into a staging or development store first. Order matters because records reference each other: products first, then customers, then orders. Shopify's migration guidance, for example, recommends importing products, then customers, then historical orders (Shopify Help Center). Record old-to-new ID mappings as you load; you'll need them for orders, redirects and integrations.
Step 5: Validate
Validation proves the migration worked. Compare counts by type, sums (order totals, inventory), and random and edge-case samples between old and new systems. Check relationships: orders attached to the right customers, variants to the right products. Then test journeys with migrated data: sign in as a migrated customer, view order history, reorder, buy a migrated product.
| Check | Example |
|---|---|
| Counts | Products, variants, customers, orders match (minus documented exclusions) |
| Totals | Sum of order totals and refunds match |
| Samples | 20 random records per type compared field by field |
| Edge cases | Products with most variants, customers with most orders |
| Relationships | Order to customer, line to variant |
| Journeys | Migrated customer can sign in and see orders |
Customer Accounts and Passwords
Customer passwords are normally stored as one-way hashes that can't be converted for another platform, so customers can't sign in with old passwords after migration. Plan how they'll regain access: account activation emails, a password reset prompt at first sign-in, or passwordless sign-in where the platform supports it. Preserve marketing consent status and dates exactly. Customer data is personal data, so handle exports securely and delete temporary copies afterwards. See ecommerce privacy.
Orders, Subscriptions and Payments
Historical orders support service, returns and reorders; migrate enough history to cover return windows and customer expectations, and archive older data in a warehouse if needed. Saved cards and subscription payment methods can't usually be exported as data; they're moved between payment providers under the providers' processes, which take time. Start that conversation early. See subscription ecommerce.
Rehearsals and Delta Migration
Run the full migration into staging at least twice before launch, timing each run and fixing issues between them. Close to launch, take a final full migration, then a delta migration of records created or changed since, during a short freeze. Timing rehearsals tell you how long the launch window needs to be. See migration launch plan.
Rollback
Keep the old platform intact and able to take orders until the new one is confirmed. Define the point after which rolling back becomes harder (for example after new orders are taken on the new platform) and how orders taken in the new system would be moved back if needed. See parallel runs.
Tools for Data Migration
Options range from platform import tools and CSV files to migration apps, integration platforms and custom scripts using APIs. Shopify's guidance lists manual entry, CSV imports, migration apps, Shopify Partners and custom API work as approaches. Choose by data volume, complexity (variants, metafields, order history) and how many rehearsals you need; repeatable scripts or tools beat manual imports for anything beyond small catalogs.
| Tool | Suits | Limits |
|---|---|---|
| CSV import/export | Products, simple data | Relationships, orders, custom fields |
| Migration apps | Common platform-to-platform moves | Coverage of custom data |
| Custom API scripts | Complex data, rehearsals | Development effort |
| Integration platforms | Ongoing sync during transition | Cost, setup |
Worked Example
An illustrative scenario, not a client case: a store migrating 8,000 products finds that its export tool omits custom attributes and inactive variants. The team switches to API-based extraction, maps attributes to metafields, writes transformation scripts, loads into a development store twice with validation reports, then runs a final full load and a delta for the last day's orders during a short freeze.
Common Mistakes
- Exports missing custom fields or inactive products
- Manual edits that can't be repeated
- Loading orders before customers and products
- No ID mapping kept for redirects and integrations
- Marketing consent lost in transfer
- Only one migration run before launch
Ready to plan your data migration?
Talk to ZSpace about data migration and integrations, Shopify imports and data validation automation.
Conclusion
Data migration succeeds through mapping, repeatable transformation, ordered loading, thorough validation, rehearsals and a delta run at launch, with the old system kept ready for rollback. Related: migration testing and legacy ecommerce migration.
Common questions
Products, variants and options, categories or collections, images and media, prices, inventory, customers and addresses, order history, gift cards and store credit, reviews, content pages and blog posts, and sometimes subscriptions and loyalty balances.