← All playbooks
Commerce migration

Magento → WooCommerce

Move Magento 2 products, customers, and orders into WooCommerce. The official extension talks to the Magento API and does not import passwords. Configurable products and URL maps need a pilot.

Typical timeline2 to 6 weeks30 to 60 hours active work
Statusneeds review
Source profileAdobe Commerce export docs reviewed 2026-11-03
Destination profileWooCommerce Magento migration and product CSV docs reviewed 2026-11-03
Documentation date
Review window
Evidence3 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Magento

Reasons to stay
  • Open-source and Adobe Commerce editions give you a deep catalog, multi-store views, and checkout you can change in code
  • Core catalog, order, customer, and promotion workflows are integrated
Reasons to leave
  • Hosting, upgrades, and extensions stay with your team, and a CSV export is not a running storefront
  • Deep customization usually increases extension, agency, or engineering costs
New platform

WooCommerce

What gets better
  • Open WordPress ownership and a huge extension ecosystem allow deep store customization
  • Core catalog, order, customer, and promotion workflows are integrated
What gets worse
  • Hosting, extension compatibility, performance, and security remain the owner's responsibility
  • Deep customization usually increases extension, agency, or engineering costs
Best of the move

WooCommerce: Open WordPress ownership and a huge extension ecosystem allow deep store customization. This removes a major source-side concern: Hosting, upgrades, and extensions stay with your team, and a CSV export is not a running storefront.

Worst of the move

What you lose: Open-source and Adobe Commerce editions give you a deep catalog, multi-store views, and checkout you can change in code. What you inherit: Hosting, extension compatibility, performance, and security remain the owner's responsibility.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome11 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 6, Manual rebuild: 3, Not transferred: 2.
Clean0
Partial6
Manual3
Lost2
Mapping route9 of 9 fields have a destination path

This timeline assumes

  • The source is Magento 2. WooCommerce's migration extension says it only works for Magento 2.
  • You have a Magento integration token, the store URL, and an admin user for that extension.
  • WordPress and WooCommerce are already installed on the destination host.
  • The site already documents Magento → Shopify if you want a hosted store instead of WordPress.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
ProductspartialcriticalThe WooCommerce extension can import all Magento products or a filtered set by title, type, category ID, product ID, or publish date. Types include simple, virtual, configurable, and grouped. You can publish them, save them as drafts, or keep the Magento status.Run a filtered pilot of each type. Then compare SKU, price, and stock.
Product CSV pathpartialhighYou can also export a Magento product CSV and use WooCommerce's built-in importer. Woo maps columns by name and lets you correct the ones it misses.Use this path when you want a file you can diff. Do not mix it with a second live import of the same SKUs.
CustomerspartialcriticalThe extension can import all customers or filter by date, ID, group, name, or email. It can update customers that already exist.Import customers before orders so order accounts can attach.
PasswordslostcriticalWooCommerce's extension says passwords are not imported, because Magento APIs do not provide password data.Tell customers to set a new password. Do not promise that old passwords will work.
OrderspartialcriticalThe extension imports orders and lets you map Magento statuses onto WooCommerce statuses, including pending, processing, complete, closed, canceled, and fraud.Write the status map down. Check a refunded order and an open order.
Configurable productspartialcriticalMagento configurable and grouped products are explicit filters in the extension. WooCommerce variable products use attributes. A blind import can flatten options.Import one configurable product first and buy each variation.
Images and filespartialhighThe product CSV importer brings product fields you map. Media that lives only on the Magento server still has to be reachable, or you upload it yourself.Open image URLs in the pilot before you shut Magento down.
URL rewritesmanualcriticalNeither the extension settings nor the product CSV create a full redirect map from Magento rewrites.Export rewrites and add 301s for every path you change. Do not send them all to the home page.
Price rules and couponsmanualhighAdobe exports Advanced Pricing as its own entity. Cart rules are not a WooCommerce product column.Recreate the coupons you still honor and test a cart.
ExtensionslostcriticalMagento payment, shipping, and ERP modules do not run inside WordPress.Replace each one with a WooCommerce plugin or a custom integration, and place a test order.
Magento export jobmanualmediumIf you use CSV instead of the API extension, Adobe's export is asynchronous and needs cron. The file lands in var/export.Wait for the file, then hash it. Do not import a partial download.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Magento productWooCommerce producttransformAPI extension or product CSV. Pilot each product type.
Configurable productVariable producttransformCheck each attribute becomes an option.
CustomerWordPress usertransformPasswords do not come through the Magento API.
Customer groupUser role or a plugin fieldmanualThe extension can filter by group ID. It does not document a role map.
OrderWooCommerce ordertransformMap statuses in the extension before the full run.
Order statusWooCommerce statustransformPending, processing, completed, cancelled, and refunded need an explicit row.
Advanced pricingWooCommerce coupons or sale pricesmanualExport the rules. Rebuild the ones you still use.
CMS pageWordPress pagemanualCopy or import content separately from the catalog.
URL rewriteRedirectmanualAdd a 301 per changed path.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep Magento able to sell, plus files you can reimport.

  1. Export products, customers, addresses, and advanced pricing from Adobe's data transfer screen.
  2. Hash the CSVs and take a database backup.
  3. Write down payment, shipping, and tax settings.
  4. Note the integration token owner for the WooCommerce extension.
  5. Leave Magento online until the WooCommerce pilot passes.

Proof to capture: You can open every export, and the Magento admin still matches the row counts.

Transformation · WooCommerce > Settings > Magento to Woo

Extension import

Pull Magento 2 products, customers, and orders through WooCommerce's migration extension.

  1. Install the extension and save the Magento URL, integration token, and admin user.
  2. Filter a small product set and a few customers. Run that import on staging.
  3. Map order statuses, then import those orders.
  4. Check the import status tab. Cancel the run if counts drift.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · WooCommerce product CSV importer

Product CSV fallback

Load a catalog when you want a file you can edit before import.

  1. Export products from Magento.
  2. On WooCommerce, start Import and fix any column Woo did not match.
  3. Run the importer.
  4. Do not also run the API import for the same SKUs.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Cutover

Customers cannot sign in

criticallikely likelihood

Accounts exist, and the old password does nothing.

Consequence
People abandon checkout or open support tickets.
Mitigation
Send a password reset note before you close Magento. Test one account.

Stop if: You told customers their passwords would keep working.

Pilot

Orders have no user

criticalpossible likelihood

Orders import before the matching customer.

Consequence
History is detached from the account.
Mitigation
Customers first, then orders.

Stop if: A pilot order has no customer.

Pilot

Two imports write the same SKU

highpossible likelihood

The API extension and the CSV importer both run.

Consequence
Duplicates or overwritten prices.
Mitigation
Pick one product path per SKU.

Stop if: A SKU appears twice.

06Precise timeline

Do the work in this order.

Estimate forA Magento 2 store using the WooCommerce extension for products, customers, and orders
Total elapsed2 to 6 weeks
Active work30 to 60 hours
BufferAn agency case study moved 1,516 products, 22,520 users, and 4,358 orders in under a week with a third-party tool. Theme, quotes, and shipping connectors were extra work on top of the data.
01
Days 1 to 3Scope Magento 22 to 3 days
02
Days 3 to 5Export a safety copy1 to 2 days
03
Days 5 to 15Filtered import1 to 2 weeks
04
Days 15 to 18Freeze and finish1 to 3 days
05
Days 18 to 25Watch passwords and orders7 days
  1. Days 1 to 3 · inventory

    Scope Magento 2

    6 to 10 hours active2 to 3 days elapsedOwner picks product types waiting
    • Confirm the store is Magento 2.
    • List product types, order statuses, and connectors.

    Depends on: Magento admin and a WordPress admin

    Stop / go checkpoint

    Install the extension?

    Go when: You have an integration token and a staging WooCommerce site.

    Stop when: The store is Magento 1, which this extension does not claim to support.

  2. Days 3 to 5 · backup

    Export a safety copy

    4 to 8 hours active1 to 2 days elapsedCSV export waiting
    • Export products, customers, and pricing.
    • Back up the Magento database.

    Depends on: Cron for the CSV export

    Stop / go checkpoint

    Pilot?

    Go when: Exports open and counts match.

    Stop when: A file is missing.

  3. Days 5 to 15 · pilot

    Filtered import

    12 to 24 hours active1 to 2 weeks elapsedExtension run waiting
    • Import a filtered product set and a few customers.
    • Map statuses and import those orders.
    • Reset one password and place an order.

    Depends on: Staging site

    Stop / go checkpoint

    Full import?

    Go when: Variations, a reset login, and an order all look right.

    Stop when: Passwords were expected to work, or a variation lost its options.

  4. Days 15 to 18 · cutover

    Freeze and finish

    6 to 12 hours active1 to 3 days elapsedFinal import waiting
    • Stop Magento checkout.
    • Import the remaining rows.
    • Turn on redirects and the new payments.

    Depends on: Passed pilot

    Stop / go checkpoint

    WooCommerce sells?

    Go when: One new order exists only in WooCommerce.

    Stop when: Magento still captures payment.

  5. Days 18 to 25 · observe

    Watch passwords and orders

    4 to 8 hours active7 days elapsedCustomer resets waiting
    • Watch failed logins and payment errors.
    • Keep Magento as a read-only archive.

    Depends on: DNS or host cutover

    Stop / go checkpoint

    Close rollback?

    Go when: A week of orders matches what shipping received.

    Stop when: Orders duplicate or a top URL 404s.

07The point of change

Cut over with a way back.

Go live

Cutover

WooCommerce takes new orders. Magento keeps the pre-freeze history you already imported.

Recommended window: A quiet weekday with the store owner and the person who runs payments available.

  1. Close Magento checkout.
  2. Run the final product, customer, and order import.
  3. Send password resets.
  4. Point the domain at WordPress and load the redirect map.
  5. Place one paid order on WooCommerce.

Proof to capture: The new order is in WooCommerce only. A reset account can sign in. Sample redirects respond.

Return to safety

Rollback

Reopen Magento without dropping WooCommerce orders from the window you were live.

Deadline: Before you delete the Magento database or the integration token's audit trail.

  1. Stop WooCommerce checkout.
  2. Point the domain back at Magento.
  3. Export WooCommerce orders placed after the freeze.
  4. Decide which of those orders to recreate.
  5. Test Magento checkout again.

Proof to capture: Magento takes a new payment. Post-cutover WooCommerce orders are exported.

Rollback immediately when
  • Customers were told passwords would work
  • Orders lack customers
  • Duplicate SKUs
  • A paid order on both stores
  • A top URL 404s
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingType sampleOpen one simple, one virtual, one configurable, and one grouped product.SKU, price, and options match Magento.Product compare sheet.
V-02BlockingCount and a resetCompare customer counts. Reset one password and sign in.Counts match. The new password works. The old one does not.Login test.
V-03BlockingStatus mapOpen a pending, a complete, and a canceled order.Each status matches the map. The customer is attached.Order admin.
V-04BlockingGallery loadsOpen ten product images on a machine that is not your office cache.Images load from WordPress, not a Magento URL you are about to shut off.Image check.
V-05BlockingNew orderPay for one product with the live gateway.One WooCommerce order and one capture.Gateway receipt.
V-06BlockingChanged pathsRequest the old product and category URLs from the rewrite export.301 to the new URL, not the home page.Redirect log.
V-07A live codeApply one rebuilt coupon.The cart total matches the rule you recreated.Cart screenshot.
V-08BlockingMagento is closedTry checkout on the Magento host.No new Magento payment.Checkout attempt.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: A week of WooCommerce orders, password resets in the wild, and redirects still correct.

  1. Archive the Magento CSVs and the database backup.
  2. Remove the Magento integration token.
  3. Disable Magento payment webhooks.
  4. Keep Magento readable for the order archive.
  5. Cancel Magento hosting after finance agrees.
  6. Review coupons and redirects next quarter.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. WooCommerce: migrate Magento to WooCommerceAccessed 2026-11-03
  2. WooCommerce: product CSV importer and exporterAccessed 2026-11-03
  3. Adobe Commerce: export dataAccessed 2026-11-03