Migrate from WooCommerce to Magento Open Source: what the move involves
If your WooCommerce store has outgrown its plugin model and you need a Magento Open Source catalog, custom integrations or a stronger stack, the catalog moves through WooCommerce's built-in product CSV export and Magento's product import, while orders and customers need a separate method. That split is the core of this move, and it shapes everything else in the plan. The product export is a core WooCommerce feature found under Products, All Products, Export, and it can be filtered by product type and category. The import side is Magento's own product import, which expects its own column structure, so the real work is the field mapping between the two files.
Effort depends far more on the shape of your catalog than on how many products you have. A store with ten thousand simple products and one attribute set is usually a small job. A store with fewer products but many variable products, custom attributes, bundled items, or product-specific pricing and stock rules can take considerably longer. The factors that matter most are how variations are structured, how many extensions hold product data, and which external systems such as ERP, inventory, pricing or shipping tools read from or write to the catalog. Each of those needs a mapping decision, a test and sometimes a custom module before cutover.
Variations need the most attention. WooCommerce's product CSV documentation notes that variation names may omit attribute values in some cases, particularly when products have three or more attributes. Magento expects configurable products with child simple products and an explicit attribute set. Before you export, confirm with your team which variations are truly sellable items, which attributes drive pricing or stock, and how image URLs are stored, because those values must resolve from the new environment. Plan a sample import of a representative set of variable products and check the resulting configurable products in the admin before running the full catalog.
Orders, customers and the other data that WooCommerce keeps outside the product file need a separate migration method. Decide early whether you need historical orders in Magento for reporting, returns or accounting, or whether an archive will do. Ask your implementation partner to confirm in writing which customer fields, addresses, order statuses and tax data will move, and how passwords will be handled. Those decisions change the cutover plan more than the product import does.
DeployOpen scopes this work in writing before it starts, so the catalog analysis, variation mapping, extension review, integration list and order migration approach are agreed as deliverables with their own acceptance criteria. Ask for a quote built from that written scope, and ask what is one-time (mapping, import tooling, test runs, cutover) and what recurs (hosting, patching, support). Both platforms also change over time, so confirm which Magento Open Source release line the store will run on and its support dates before you commit to a timeline.
Which WooCommerce data maps to Magento Open Source and which does not
This table compares each WooCommerce capability with its Magento Open Source counterpart and notes how the data moves. Read the migration notes column first, since it states whether the product CSV carries the data, a separate method is needed, or the item must be rebuilt by configuration or development. Most catalog data can move by CSV, but orders, coupons, tax and plugin data usually need more work than a file import.
| WooCommerce capability | Magento Open Source equivalent | Migration notes |
|---|---|---|
| Simple products | Simple product type | Product CSV carries name, SKU, price, description and stock fields. Confirm column mapping against the import template before export. |
| Variable products | Configurable product with child simple products | Not a one-to-one match. WooCommerce variations must be reshaped into configurable parents and children, and CSV rows need careful attribute mapping. |
| Variation names | Child product names and attribute values | WooCommerce variation names may omit attribute values, especially with three or more attributes. Check and correct names before import. |
| Categories | Category tree with product assignments | Category hierarchy and assignments can usually be carried by the CSV. Rebuild category IDs and URL keys in Magento and confirm they match your redirect plan. |
| Product attributes | Attribute sets and configurable attributes | Global and local attributes need to be defined in Magento before import. Attribute values that do not match Magento attribute options will fail or drift. |
| Product images | Media gallery entries | The WooCommerce export writes image URLs. Magento must be able to fetch those URLs during import, so confirm access and file naming before cutover. |
| SKUs | SKU | SKUs are the key that links parents, children and stock. Confirm uniqueness across the catalog before import, because duplicates block correct linking. |
| Stock quantities and status | Source items and stock configuration (MSI) | Stock fields can be carried in the CSV, but multi-source and reservation behavior is configured in Magento. Confirm stock settings after import. |
| Product tags | Product tags or attributes | Tags are not a direct equivalent. Decide whether they become tags, search terms or attributes, then map them deliberately. |
| Customer accounts | Customer entities | Customer import is a separate process from product import. Passwords are not portable as plain values, so plan for password resets or a supported credential migration. |
| Order history | Sales orders | Orders are not part of the product CSV. They need a separate method and must be checked for totals, statuses and line items. |
| Coupons | Cart price rules and coupon codes | Coupon logic is modeled differently. Rebuild rules by configuration, then test discount stacking and usage limits. |
| Shipping methods and zones | Shipping methods and carrier configuration | Zones and rates are rebuilt by configuration. Confirm carriers and rates against your own shipping agreements. |
| Tax settings | Tax rules and tax rates | Tax rules are rebuilt in Magento and must be validated against your tax configuration. Do not assume exported values apply unchanged. |
| Plugin-specific data | Custom modules or extension data | Data added by WooCommerce plugins has no automatic target. Inventory each plugin, then map, rebuild or retire its data by development or configuration. |
How the WooCommerce product CSV maps to Magento import fields
The product CSV is the handover file between the two platforms, so the mapping work decides how much of the catalog arrives intact. WooCommerce ships a product CSV exporter in core. It sits under Products, All Products, Export, and it can limit the export to selected product types and categories. It writes product images as URLs rather than embedding files, which means the image host has to stay reachable during the migration. Start by exporting a small, representative set of simple, variable and grouped products, then open the file and list every header. That header list is the starting point for the column map. Build the column map before you touch Magento. Create a spreadsheet with three columns: the WooCommerce header, the Magento import column it feeds, and the transformation applied. Take the Magento product import template from the Magento version you run, not from an older guide or a blog post. Column names, required fields and the accepted format for attributes can change between 2.4.x releases, so confirm each template column against your installed version. Mark every WooCommerce header as mapped, transformed, dropped or pending a decision. Headers with no destination are the ones that get lost silently if nobody reviews them.
Categories need their own decision. WooCommerce category paths are hierarchical and use a separator in a single column, while the Magento import expects category paths in its own format and the target category tree must already exist or be created first. Decide whether the category tree is rebuilt in Magento before the import, and whether category names are kept, slugged or renamed. Attributes follow the same pattern. Global attributes in WooCommerce (for example, colour or size) have to map to Magento attributes with matching codes and option values, and any attribute that Magento does not define needs to be created first. Custom product fields, often added by plugins or theme code, have no default destination. Each one needs a named Magento attribute, a decision to drop it, or a custom import step. Variations need the most attention. WooCommerce variable products store each variation as a separate row, and the Magento side expects configurable products with child simple products. The WooCommerce product CSV documentation notes that variation names may omit attribute values in some cases, particularly when products have three or more attributes. Do not rely on the variation name to recover the option values. Check the attribute columns for each child row, and confirm that every child has a SKU that is unique across the whole catalog. Plan the grouping logic as a separate test case, because a configurable product built from incomplete child data will import without a warning and only fail when a shopper selects an option.
Cleaning and enrichment decisions belong in the plan too. Strip HTML that your Magento theme will not render, normalize currency and decimal formats, trim whitespace from SKUs, and decide how to handle products with no image, no stock quantity or missing descriptions. Enrichment, such as adding meta titles, tax classes or inventory sources that WooCommerce did not hold, can be done in the file or after import, and each choice should be written down. Expect the image URL step to be the first to fail if the source host is removed or blocks requests, so download and verify images as a separate check. Test on a copy of the catalog. Run the full mapping against a copy of the Magento store, not the production instance, and compare counts, SKUs, categories, prices and variation options against the WooCommerce source. Keep the column map and the cleanup scripts under version control so the second and third runs produce the same result. Ask your implementation partner, or your own team, to confirm the exact template columns for your Magento release and to document every header that was dropped or changed.
Documented import and export paths for this move
These are the built-in paths this migration relies on. WooCommerce exports product data as CSV, and Magento Open Source imports products and customers from CSV files built to its templates. Each path moves a defined set of data and leaves the rest, so map what the source can export against what the target can import before you schedule a cutover.
WooCommerce product CSV export
WooCommerce includes a product CSV exporter in core, found under Products, All Products, Export. It can export selected product types and categories, and it writes product images as URLs rather than as image files. Its output moves product rows and the fields the export includes, so list those fields and map each one to a Magento attribute before you run it. It does not move order history, customer records or the image files themselves. Run a test export from a staging copy and check the output against your field map.
Magento product import and CSV template
Magento Open Source includes a product import that reads a CSV file built from a template. Download the template for your Magento version so the column headers match what the importer expects. The import moves the product rows and the attribute values you map to them. Confirm which related data, such as categories, media and store view values, the import reads from the file and which you must set separately. Prepare a mapping sheet from WooCommerce fields to template columns, then test on a copy of the store.
Variations to configurable products
WooCommerce variable products store a parent product and child variations. Magento represents this pattern as a configurable product built from a parent and its child simple products. Map the parent SKU, the attribute columns and the child rows to the layout your Magento template expects. WooCommerce's CSV documentation notes that variation names may omit attribute values, particularly when a product has three or more attributes, so check names and attribute values before import. Confirm the exact configurable-product columns in your version and test one multi-attribute product first.
Magento customer import
Magento Open Source includes a customer import that reads a CSV file. Confirm which customer fields your WooCommerce installation can export and which customer columns the template accepts, then build the file from that comparison. Decide how customers will sign in after the move. Confirm whether the import can carry password data from the source, and if it cannot, plan a password reset flow. Addresses, customer groups and website or store view values need explicit mapping. Test with a small sample of accounts on a copy of the store.
Orders need a separate method
Neither the product import nor the customer import carries order history, so orders need their own approach. Decide first whether past orders must be searchable in Magento or only kept as an archive for finance and support, because that choice sets the method. Confirm which order data your Magento version can import and what your WooCommerce installation exports for orders, then document the gap between them. Plan how the WooCommerce order archive will be retained during and after the move, and name the owner who signs off on order data.
Orders and customers need a separate method
The product CSV and the product import cover catalog data only. They do not carry the full order history, payment records, refunds or fulfillment state from WooCommerce, so the team has to decide early what historical data it must keep, in what form, and where it will live after cutover. Treat this as its own workstream with an owner, because the answer shapes the legal retention plan, the finance reconciliation and the customer service tooling that staff will use on day one.
The customer import is the documented path for account data, but it is not a full copy of a WooCommerce customer record. Passwords are the main trade-off. Password hashes generally cannot be moved between platforms with different hashing schemes, so the usual approach is to import accounts and force a reset or a one-time login flow for customers. Addresses need field mapping and validation, and marketing consent needs a deliberate decision: consent records should only be carried across when the team can show where each opt-in came from and that it still applies to the new store. Confirm the exact customer import fields, password handling and address format against the documentation for the Magento Open Source version you will run.
Several methods are realistic, and each has different costs. The first is keeping WooCommerce running read-only for order history, which preserves the original records and avoids rebuilding history in a new system, but it means maintaining a second application, its hosting, its database and its security patches for as long as the history is needed. The second is archiving orders in a separate store, such as a database or document repository with search, which is cheaper to run but means customer service and finance will work from a different tool. The third is a controlled import of orders into Magento with DeployOpen's developers, which gives the team a single system of record but requires mapping order states, payment references, refunds and tax lines, and testing each of them.
The right choice depends on two questions that the business must answer before technical work starts: how long the law and the company's retention schedule require each type of order and payment data to be kept and who must be able to retrieve it, and which reports finance, tax and operations need to run against historical orders. Ask your legal, privacy and finance owners to write these requirements down, then compare the three methods against them. Whichever method you choose, confirm each step against the documentation for your target Magento Open Source release line, and have a test restore or reconciliation run that proves the historical data can be found and explained after cutover.
How the migration runs: inventory, pilot, parallel run and cutover
The sequence turns a WooCommerce catalog into a tested Magento Open Source store, and separates catalog data from orders and customers so each has a checked route to production.
Inventory the catalog, extensions and integrations
Start by listing what the WooCommerce store actually does: product types, categories, attributes, variations, images, pricing rules, stock settings, tax and shipping configuration, installed extensions, and every external service that receives or sends data, such as payment gateways, shipping rate providers, ERP or accounting sync, email tools and analytics. The deliverable is a written inventory with an owner for each item. It is complete when someone outside the project can read it and say which WooCommerce feature each Magento replacement must cover.
Decide what moves and what is retired
Using the inventory, record a keep, rebuild or retire decision for each item. Old products that no longer sell, unused coupons, abandoned extensions and duplicate categories are often better left behind than carried over. Each decision goes into a signed scope note with the reason. The check is that every extension or integration has a named Magento equivalent or a documented reason it is dropped, and the business owner has approved the list.
Build the field mapping and variation rules
Export the WooCommerce product CSV from Products, All Products, Export. Map each WooCommerce column to the Magento product import fields, including SKU, product type, categories, attribute columns, price, stock, and image URL fields. Define how WooCommerce variations become Magento configurable products with child simple products, and confirm the attribute values for each variation row. WooCommerce's documentation notes that variation names may omit attribute values in some cases, particularly with three or more attributes, so this rule set must derive values from attribute columns rather than from names. The deliverable is a mapping sheet with sample rows that have been checked by hand.
Run a pilot import into a staging Magento install
Load a subset of products into a staging Magento Open Source installation built to the target release. Choose the subset deliberately: include simple products, a multi-attribute configurable product, products with many images, and products in nested categories. Record every row that fails, the error, and the fix applied to the mapping or the source data. The pilot is complete when a full run of the subset imports with no unresolved errors and the failure log is reviewed and closed.
Validate categories, images, prices, stock and options
Compare the staging store with the WooCommerce source on a sample agreed in advance. Check category trees and their URL keys, product image paths and whether images downloaded from the URLs in the export, prices including special or tiered prices, stock quantities and stock status, and configurable options with their child products. Check a product on the storefront and in the admin grid. Keep a signed-off validation sheet with each sampled SKU, the result and the owner who checked it. Do not sign off until every category tree and configurable product has been reviewed.
Set up the parallel run for orders and customers
Catalog data alone does not carry orders or customers over safely, so this step fixes the method for them before any live cutover. Choose and document the approach: for example, exporting historical orders for reference only, importing customer accounts with a password reset flow, or keeping WooCommerce as the order system of record until the cutover date. Run both stores against the same test transactions where possible and confirm that order numbers, customer records, tax and shipping lines and payment references reconcile. The deliverable is a runbook with the chosen method and the reconciliation report.
Cut over DNS, redirects and payments
On the agreed cutover window, freeze catalog changes in WooCommerce, run the final catalog import, and check it against the validation sheet. Switch DNS, enable the Magento payment and shipping integrations with live credentials, and deploy the URL redirects that map old WooCommerce product, category and content URLs to their Magento equivalents. Place a test order with each payment method and confirm that it is captured, reconciled and visible in the Magento admin. The cutover is complete when test orders pass, redirects return the expected responses on a sample of old URLs, and the rollback steps have been rehearsed.
Decommission WooCommerce after a hold period
Keep WooCommerce readable and recoverable for a hold period agreed before cutover, so that late orders, refunds, customer questions and redirect gaps can be checked against the original data. Take and test a final backup, then disable public access, revoke payment and API credentials that still exist, and remove scheduled exports and integrations that point to it. The decommission is complete when the hold period has ended with no open reconciliation items, the final backup restores, and the credential revocation is confirmed in writing. Confirm the hold length with your own compliance and records team.
What drives the cost and duration of a WooCommerce to Magento move
This table lists the factors that change the effort of moving a WooCommerce store to Magento Open Source, why each one matters, and what to request in a written quote. Use it to compare what your store contains against what a partner will need to map, build and verify. Effort figures are set in the written scope, and no duration is given here.
| Driver | Why it matters | What to ask for in a quote |
|---|---|---|
| Number and depth of variable products | WooCommerce variations must be rebuilt as Magento configurable products with child simple products, so many variable products with deep option sets multiply mapping and verification work. | Count of variable parents and total child variations, with a sample mapping plan for the most complex products |
| Attribute count and naming | Attributes must map to Magento attribute codes and attribute sets. WooCommerce's export can omit attribute values in some variation names, especially with three or more attributes, so names need checking and correction. | Attribute inventory, the mapping approach for each attribute, and how variation names will be validated |
| Image volume and image hosting | WooCommerce's CSV export writes product images as URLs, so the importer depends on those URLs staying reachable. Image volume drives import time and storage, and moving images to the new host is a separate task. | Image count, where images will be hosted during and after the move, and how broken or missing URLs will be reported |
| Custom fields and plugin data | Custom product meta, extension fields and plugin-specific data do not map automatically, so each one needs a target field, a module or a decision to retire it. | List of custom fields and plugins, with a keep, map or retire decision for each |
| Order and customer history scope | Orders and customers need a separate method from the product CSV. The number of years and records kept, and their linked data, determines the extraction and reconciliation work. | Defined history window, record counts and the agreed method for orders and customers |
| Payment and shipping integrations | Each gateway and carrier used by WooCommerce must be configured in Magento, tested end to end, and matched to the new checkout flow. | Named payment and shipping providers, the integration method for each and the test cases to be run |
| Tax rules | Tax classes, rates and rules in WooCommerce must be rebuilt in Magento tax configuration. Errors here affect prices and invoices and need checking against sample orders. | Tax rule inventory, jurisdictions covered and the test orders used for verification |
| SEO redirects | Changed URLs for products, categories and content need 301 redirect mapping to protect search rankings and bookmarks. The redirect list grows with the number of URLs that change. | URL inventory, the redirect map format, and who reviews the map before cutover |
| PCI scope of the new payment flow | The payment method chosen determines which parts of the store handle card data and which controls apply. Changes to the checkout flow can change the scope of the assessment. | Confirmation of the payment method, the scope analysis, and the evidence produced for your assessor |
| Target stack and hosting | Magento Open Source 2.4.x requires a defined set of PHP, database, search, cache and queue components, and each supported combination changes the build and operations work. Hosting in your own infrastructure adds server, backup and monitoring tasks. | Target release, the component versions in the system requirements, hosting model and who operates each component after launch |
What usually goes wrong in this migration and how to prevent it
Most failures in this migration start during field mapping and surface at cutover. The cards below group them by where they appear, with a prevention step and a check for each. Run every check against a staging copy before the production import.
Variation names collapse
WooCommerce's product CSV documentation notes that variation names may omit attribute values, particularly on products with three or more attributes. When names collapse, the Magento configurable product can show options that look identical in the admin and on the storefront. Prevention: list every variable product with three or more attributes before export, and define the Magento attribute codes and option labels in the mapping sheet. Check: confirm each child product appears once on its configurable parent, with a distinct combination of option values.
Image URLs break after the move
The WooCommerce exporter writes product images as URLs that point to the source site's media library. If that site is retired, moved to a new domain or blocks the import host, the Magento import receives references without files. Prevention: keep the source media reachable until cutover, or download the images into the import location and rewrite the paths in the mapping file. Check: after import, confirm the base, small, thumbnail and gallery images for sample products load from the new host without errors.
SKU and URL key collisions
Source catalogs often accumulate duplicate titles, slugs and SKUs over years of edits, and these conflicts only appear once the rows land in one Magento catalog. Magento requires unique SKUs, and each product and category needs a URL key that resolves to one path. Prevention: run a duplicate report on SKU and URL key before import, record the decision for each collision, and set a naming rule for any generated keys. Check: the import log shows no duplicate SKU or URL key rows, and renamed products match the decision list.
SEO URLs lost without redirects
Product, category and content pages that rank or receive links depend on their existing paths. If the Magento URL keys or category paths differ from the WooCommerce slugs and no redirects exist at cutover, those paths return 404 responses and search visibility and inbound links are lost. Prevention: export every indexed URL from the current store and its analytics, build a permanent redirect map from each old path to its new path, and load it before DNS changes. Check: crawl the old URL list against the new site and confirm each path returns one redirect to a live page, with no redirect chains.
Orders and customers missing at cutover
The product CSV import covers the catalog, but orders and customer accounts need a separate method, so they are easy to leave out of the cutover plan. Missing orders complicate refunds, returns and customer service lookups, and customers without accounts cannot sign in to see their history. Prevention: decide the method, the date range and the freeze point for orders and customers, then run a final delta after the store stops accepting orders. Check: reconcile order counts and totals by status, and confirm a sample of migrated customers can sign in and view their orders.
Payment and plugin gaps
Two gaps often surface late: payment gateway settings that were never re-tested, and a WooCommerce plugin that quietly handled checkout, shipping or tax behavior. Gateway credentials, webhooks and callback URLs are specific to each environment, so a working WooCommerce checkout says little about the Magento configuration. Prevention: inventory every active plugin with its role, assign each one a Magento equivalent or an owner, and configure each gateway in a test environment. Check: complete a test order for each payment method, including authorization, capture, refund and webhook delivery, and confirm every active plugin has a documented disposition.
What the target Magento stack needs before the import starts
The target environment has to be settled before any product row is loaded, because the import, the attribute model and the indexers all run on a specific Magento version and server stack. The first decision is the release line. Adobe gives each 2.4.x release three years of standard support from general availability, with end of regular support on August 11, 2026 for 2.4.6, May 31, 2027 for 2.4.7, May 31, 2028 for 2.4.8 and May 31, 2029 for 2.4.9. Measure those dates against your launch plan and your expected patch effort. Before you choose a line, confirm its current release status on Adobe's released versions page, because the status of each line changes over time.
For the 2.4.9 line, Adobe's system requirements list PHP 8.5, MySQL 8.4 or MariaDB 12.3 (recommended) or MariaDB 11.8, OpenSearch 3, Redis or Valkey 9, RabbitMQ 4.3, Composer 2.10 and nginx 1.30, all on Linux x86-64. Adobe supports only the listed combinations, so a newer database build, a different PHP minor version or an unlisted search engine places the store outside support. Requirements change between lines. The 2.4.8-p5 list, for example, names PHP 8.4 or 8.3 and Redis or Valkey 8.1, so do not carry values from one line to another. Build the staging server from the requirements page for the line you chose, and record each version in your decision log.
Adobe documents Varnish as the full-page cache accelerator for self-managed installations. Decide whether Varnish will sit in front of nginx on your servers, which Varnish version the chosen line requires, and who owns its configuration and purge behavior. Catalog imports trigger cache invalidation, so an unplanned cache layer can show old prices or stock levels during testing and confuse the results. If you plan a cloud-hosted Adobe Commerce deployment instead, Adobe documents Fastly for that case, so this decision does not apply in the same way. Confirm the cache design with the team that will run the servers before the first test import.
Content Security Policy headers are supported from version 2.3.5, and from 2.4.7 the policy runs in restrict mode by default on storefront and admin payment pages. A WooCommerce store often loads scripts from its old theme, analytics tags, reviews widgets and payment plugins, and any of them can be blocked once the policy is enforced. Inventory every external script and frame source the old store uses, then decide which ones the new theme will keep and which origins they need. Test the checkout and admin payment screens on staging under restrict mode before cutover, and record the approved sources as part of the launch evidence.
Questions buyers ask before moving from WooCommerce to Magento
What does a WooCommerce to Magento Open Source migration cost?
The cost is set by the written scope, and the main drivers are catalog size, the number of attributes and variations, how much design and theme work must be rebuilt, and how many orders and customers you need to carry over. Quotes should split the work into discovery and field mapping, import and validation runs, storefront work, and integration work. Ask which items are one-time and which recur, such as hosting, search services, third-party extensions and patch support. Magento Open Source source code is licensed under OSL-3.0, so the software itself carries no license fee, but budget for the services and tools around it. DeployOpen does not publish a price list. A quote follows from the written scope.
How long does a WooCommerce to Magento migration take?
The schedule depends on the state of your data, the number of integrations to rebuild, and how much of the storefront is redesigned. Catalogs with clean categories and few variations move faster than catalogs with inconsistent attributes, many image files, or complex pricing rules. Test cycles add time, because each import run needs validation by merchandising and operations staff before the next run. Plan for a freeze window before cutover, since product and customer changes made during the final run must be captured. Your written scope should list milestones, dependencies on your team, and the sign-off points that gate each phase.
What must our team provide before a Magento migration starts?
Start with a complete product export from WooCommerce, plus a sample file that includes your variable products, and a list of every category and attribute in use. Provide an integration list covering payment, shipping, tax, ERP, email and any analytics or search tools, with the owner and contact for each. Define order retention rules, meaning how many years of orders must be kept, in what form, and who may access them. Provide the current URL list or sitemap, hosting access, and named sign-off owners for catalog, finance, operations and security. Missing owners and undefined retention rules are the most common causes of delay in the first weeks.
Can our own team run the catalog import without outside help?
A team with Magento administration skills can often run the import for a simple catalog with few variations and hosted images. Outside help is usually needed for field mapping, converting WooCommerce variable products into Magento configurable products, handling image URLs, cleaning attribute values, and setting up repeatable delta runs before cutover. Performance tuning on large imports and validation of pricing, stock and categories also tend to need engineering time. Check the import documentation for your installed Magento version before you plan, and decide early which steps your team owns and which steps the written scope covers.
Can orders and customers move with the same CSV export?
The WooCommerce product CSV export covers products, categories, attributes, variations and image references, and it does not carry your order history. Customer records need a separate method, and you should confirm which customer import entities your installed Magento version supports and what fields they accept. Orders usually need a separate approach, such as a read-only archive that your team can search for support and tax records, or a planned import with a defined mapping. Your order retention rules decide which approach fits. Confirm this early, because the choice affects storage, access control and the data you must protect.
What happens to SEO URLs and rankings after the move?
Your product and category URLs will change unless you deliberately map them, so search rankings are at risk without a redirect plan. Build a list of every indexed URL from your sitemap, crawl data and analytics, then map each old path to its new Magento URL key and category path. Set permanent redirects for every mapped path and test a sample of them before cutover. Carry over page titles, meta descriptions and canonical settings where the import supports them, and check for duplicate URLs created by category paths. Monitor crawl errors and traffic for several weeks after launch, and include this work in the written scope.
Which Magento Open Source release line should a migration target?
Choose a release line that still receives support for the expected life of the store, and confirm the dates in Adobe's lifecycle policy before you commit. Adobe gives each 2.4.x release three years of standard support from general availability. End of regular support is August 11, 2026 for 2.4.6, May 31, 2027 for 2.4.7, May 31, 2028 for 2.4.8 and May 31, 2029 for 2.4.9. Each release line also has system requirements for PHP, MySQL or MariaDB, OpenSearch, Redis or Valkey, RabbitMQ, Composer and nginx, and Adobe supports only the listed combinations. Factor these requirements into hosting and into the cost of future patching.
How are WooCommerce variations mapped to Magento configurable products?
A WooCommerce variable product exports as a parent row with child variation rows, and Magento needs a configurable parent with simple child products that share defined attributes. The mapping must match each variation's attribute values to Magento attribute options, which means every attribute needs a consistent set of values before import. WooCommerce's documentation notes that variation names may omit attribute values in some cases, particularly with three or more attributes, so check generated names and SKUs before loading. Plan a validation step for stock, price and image assignment per child product. Ask for a sample import covering your most complex products before committing to the full catalog.
How DeployOpen scopes, delivers and supports the migration
DeployOpen treats the WooCommerce catalog export as the starting point and plans the mapping of products, variations, images and customers into Magento Open Source before any import runs. Each engagement is fixed-scope, with deliverables and a timeline agreed in writing before work starts.
How we scope
- Inventory the WooCommerce product types, attributes and categories that will be exported with the built-in product CSV exporter
- Agree how simple and variable products map to Magento simple and configurable products, with an attribute map signed off by your team
- Confirm how orders and customers will move, since the standard product and customer import does not cover order history
How we build
- Build and test the field mapping file, then run repeated trial imports against a staging Magento Open Source instance
- Check variation names and attribute values in the export, since WooCommerce may omit values on products with three or more attributes
- Verify that product image URLs resolve from the new environment and document every record the import rejects or changes
How we hand over
- Deliver the mapping file, import runbook and reconciliation report comparing product counts, categories and variations between systems
- Document the separate method used for orders and customers, including any transformation scripts and their validation results
- Walk your team through the repeatable steps for a final catalog refresh before go-live
How we support
- Agree whether post-launch support is handled through a retainer covering fixes, questions and catalog corrections
- Plan Magento Open Source patch and upgrade cycles from the start, so the migrated store stays on a supported 2.4.x line
- Confirm with your team the ongoing ownership of product data, image hosting and any custom modules added after launch

