WooCommerce → Shopify
Move WooCommerce products, customers, historical orders, reviews, subscriptions, inventory, content, URLs, taxes, shipping, payments, and operations into Shopify without treating a product CSV as a complete store migration.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
WooCommerce
- Open WordPress ownership and a huge extension ecosystem allow deep store customization
- Core catalog, order, customer, and promotion workflows are integrated
- Hosting, extension compatibility, performance, and security remain the owner's responsibility
- Deep customization usually increases extension, agency, or engineering costs
Shopify
- A polished hosted commerce platform has an unmatched app and partner ecosystem
- Core catalog, order, customer, and promotion workflows are integrated
- Transaction economics, app dependency, and checkout constraints reduce control
- Deep customization usually increases extension, agency, or engineering costs
Shopify: A polished hosted commerce platform has an unmatched app and partner ecosystem. This removes a major source-side concern: Hosting, extension compatibility, performance, and security remain the owner's responsibility.
What you lose: Open WordPress ownership and a huge extension ecosystem allow deep store customization. What you inherit: Transaction economics, app dependency, and checkout constraints reduce control.
Know the shape of the move.
This timeline assumes
- Up to 25,000 products and variants, 250,000 customers, and 500,000 historical orders
- Store, finance, support, fulfillment, SEO, and engineering owners approve the destination operating model.
- The source remains available through at least one full refund, fulfillment, payout, and renewal cycle.
- A complete test catalog and buyer cohort run before production data.
- The migration team records evidence for every blocking verification check.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Products and variants | partial | critical | Shopify supports CSV and an early-access first-party product migrator, but products with more than three options need redesign. | Pilot every product type and model extra options with approved apps or metafields. |
| Customers and passwords | partial | critical | Customer profiles can move, but password hashes do not become Shopify credentials. | Use a secure activation campaign and test account access and consent. |
| Historical orders and reviews | partial | high | Shopify documents separate optional paths and import coverage depends on method. | Preserve source IDs and reconcile every order and approved review. |
| WooCommerce subscriptions, plugins, and theme | lost | critical | WordPress plugins and presentation do not execute in Shopify. | Choose subscription takeover and app replacements and rebuild the storefront before cutover. |
| Images, files, and digital delivery | partial | critical | Exports may contain URLs rather than durable binaries or customer entitlements. | Copy originals, compare hashes, and test delivery as a buyer. |
| Customers and accounts | partial | critical | Profiles can move while passwords, account identity, consent, addresses, and tax details vary. | Use secure activation and never promise password transfer. |
| Orders, refunds, and transaction history | partial | critical | Historical orders may import without becoming editable payment transactions. | Preserve source IDs and reconcile gross, tax, discount, refund, and net totals. |
| Active subscriptions and payment methods | partial | critical | Recurring billing ownership requires provider cooperation or customer reauthorization. | Choose a documented takeover or managed re-subscription path and prevent double billing. |
| Discounts, coupons, and gift balances | partial | high | Eligibility, stacking, expiry, redemption, and stored balances use different models. | Map active rules and test boundary conditions. |
| Taxes, invoices, and merchant records | manual | critical | Merchant-of-record, registration, calculation, invoice, and filing responsibilities can change. | Obtain finance and legal approval before accepting destination sales. |
| Shipping, inventory, and fulfillment | partial | critical | Locations, stock states, backorders, rates, carriers, and fulfillment workflows differ. | Freeze stock movement briefly and reconcile every location. |
| Storefront, checkout, and URLs | lost | critical | Themes and checkout runtime do not transfer as store data, and route structures change. | Rebuild approved journeys and test one-hop redirects for every indexed route. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| WooCommerce product | Shopify product | transform | Preserve source ID, title, status, and URL. |
| Variant, option, or tier | Destination variant, option, or plan | transform | Map cardinality and price explicitly. |
| Image, file, or media | Destination media or delivery asset | transform | Copy and compare hashes. |
| Customer | Destination customer | transform | Preserve identity, consent, and source ID. |
| Order or sale | Destination historical order or ledger record | transform | Preserve amounts, currency, tax, discount, and status. |
| Subscription or membership | Destination subscription or entitlement | manual | Use supported billing transfer or customer reauthorization. |
| Coupon or discount | Destination discount | transform | Map eligibility, expiry, limits, and redemption. |
| Inventory location and quantity | Destination location and inventory | transform | Freeze and reconcile at cutover. |
| Public route | Destination route and redirect | manual | Preserve or redirect every indexed URL. |
Make the move recoverable.
Create the source-of-truth backup
Preserve WooCommerce data, configuration, and operating evidence before any destination write.
- Export WooCommerce products, variants, assets, customers, orders, subscriptions, discounts, inventory, taxes, payouts, and settings.
- Crawl storefront routes, metadata, checkout, account, fulfillment, support, and integration behavior.
- Record counts and signed financial totals by status, currency, tax, discount, refund, location, and billing state.
- Hash exports and downloadable assets.
Proof to capture: A signed manifest reconciles every scoped record class, runtime dependency, export file, count, and hash.
Catalog, customer, and order map
Preserve identity, commercial meaning, and financial totals.
- Inventory source values and exceptions.
- Define explicit destination mappings.
- Reject unmapped critical records.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
Storefront and operating cutover
Rebuild customer journeys, fulfillment, billing, URLs, and integrations.
- Normalize encoding, dates, identifiers, and blanks.
- Run a representative pilot.
- Reconcile accepted, rejected, and transformed rows.
Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
Orders or inventory change during the final copy
Customers buy, refund, or fulfill while destination data is loading.
- Consequence
- Stock and financial ledgers diverge.
- Mitigation
- Freeze affected writers and apply a reconciled final delta.
Stop if: Any unexplained post-freeze commercial event exists.
Both stores sell or renew
Old checkout, subscriptions, or automations remain active.
- Consequence
- Customers are double charged or receive conflicting fulfillment.
- Mitigation
- Move one production owner at a time and monitor test buyers.
Stop if: Any buyer can complete duplicate production actions.
Routes work but checkout fails
Storefront pages render while tax, shipping, payment, delivery, or account paths fail.
- Consequence
- Revenue and customer trust are lost.
- Mitigation
- Run end-to-end orders for every critical market and product type.
Stop if: A blocking buyer journey fails.
Do the work in this order.
- Days 1–3 · inventory
Inventory and decisions
6–12 hours active2–3 days elapsedOwner review waiting- Inventory WooCommerce data, features, users, domains, and integrations.
- Approve scope, owners, mappings, and exclusions.
Depends on: WooCommerce and Shopify administrator access
Stop / go checkpointExport?
Go when: Every critical item has an owner and disposition.
Stop when: Consent, billing, access, or system ownership is unclear.
- Days 3–5 · backup
Backup and reconcile
5–10 hours active1–3 days elapsedExport processing waiting- Create immutable exports and configuration evidence.
- Reconcile counts, totals, and hashes.
Depends on: Approved inventory
Stop / go checkpointTransform?
Go when: Source totals and export manifests agree.
Stop when: Any critical dataset or configuration is absent.
- Days 5–12 · pilot
Map and pilot
10–35 hours active3–8 days elapsedDestination processing and review waiting- Configure Shopify and transform representative data.
- Run a pilot containing normal records and every critical edge case.
Depends on: Verified backup
Stop / go checkpointScale?
Go when: Pilot mappings, behavior, access, and evidence pass.
Stop when: Any critical check fails or produces unexplained variance.
- Days 10–20 · cutover
Final delta and switch
5–25 hours active1–5 days elapsedDNS, import, or sync propagation waiting- Freeze production writes in WooCommerce.
- Apply the final delta, switch ownership, and run blocking checks.
Depends on: Passed pilot and approved rollback
Stop / go checkpointOpen production?
Go when: Counts reconcile and one destination system owns production.
Stop when: A source writer remains active or a blocking check fails.
- Days 12–40 · observe
Observe and close
3–18 hours active3–10 days elapsedOperating-cycle evidence waiting- Monitor one complete operating cycle.
- Sign the verification report and close rollback only after stability.
Depends on: Verified cutover
Stop / go checkpointClose rollback?
Go when: No trigger occurs during the agreed observation period.
Stop when: Data, access, delivery, routing, or business results regress.
Cut over with a way back.
Cutover
Make Shopify the only production system without losing the final WooCommerce delta.
- Freeze production writes and scheduled actions in WooCommerce.
- Export, transform, and reconcile the final delta.
- Apply the approved delta to Shopify.
- Switch domains, forms, integrations, sending, or sync ownership as applicable.
- Run every blocking verification check and keep the source intact.
Proof to capture: Shopify owns production, totals reconcile, and every blocking check has durable evidence.
Rollback
Return production ownership to WooCommerce without losing destination-era changes.
- Stop new writes and scheduled actions in Shopify.
- Restore the prior WooCommerce routing, forms, integrations, sending, or sync ownership.
- Export the Shopify post-cutover delta.
- Review and apply safe destination-era changes to WooCommerce.
- Run the same blocking checks against the restored source.
Proof to capture: WooCommerce again owns production with current data and no duplicate destination action.
- Unexplained critical count or value variance
- Missing or exposed critical data
- Duplicate production action
- Failed access, routing, delivery, or integration check
- A critical feature has no safe destination replacement
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Product and variant reconciliation | Compare counts, fields, media, prices, status, and inventory. | Every scoped catalog object is accounted for. | Catalog ledger. | |
V-02Blocking | Identity and account activation | Compare profiles and exercise secure account access. | Approved customers can access only their data. | Customer report. | |
V-03Blocking | Commercial and financial history | Reconcile counts and signed totals by status, currency, tax, discount, and refund. | Every order and amount is accounted for. | Order ledger. | |
V-04Blocking | Subscriptions and entitlements | Test every lifecycle state through renewal or reauthorization. | One correct charge and entitlement owner. | Subscription report. | |
V-05Blocking | Location and fulfillment parity | Place, fulfill, cancel, return, and refund test orders. | Stock and fulfillment outcomes reconcile. | Fulfillment evidence. | |
V-06Blocking | Buyer journeys | Complete every product, payment, tax, shipping, and market path. | One valid order, receipt, delivery, and account result. | Test-order matrix. | |
V-07Blocking | Storefront and SEO | Crawl old and new routes, metadata, canonicals, and redirects. | Every indexed route resolves correctly. | Route diff. | |
V-08Blocking | Single store authority | Inspect checkout, inventory, subscriptions, integrations, and support. | Shopify alone accepts production orders. | Cutover checklist. |
Remove the scaffolding safely.
Safe after: One complete operating cycle, at least seven stable days, and owner sign-off on every blocking check.
- Create final WooCommerce exports and archive verification evidence.
- Revoke temporary credentials, API keys, webhooks, and elevated roles.
- Remove obsolete embeds, forms, jobs, integrations, and DNS records.
- Keep the source intact through the approved retention window.
- Cancel paid plans only after billing, legal, and recovery review.
- Schedule the next Shopify backup, access, and migration-playbook review.
Built to be reviewed.
Tested 2026-07-19. Next scheduled review: 2026-10-19.
- Shopify: migrate from WooCommerceAccessed 2026-07-19
- Shopify: migration checklistAccessed 2026-07-19
- WooCommerce: product CSV exporterAccessed 2026-07-19