Migrating from WooCommerce to Magento: leaving WordPress for Magento
Leaving WooCommerce for Magento also means leaving WordPress: variable products, WooCommerce addresses, blog and editorial pages, customer accounts. Here is what is specific to this move.
WooCommerce is a WordPress extension: a WooCommerce shop moving to Magento does not just change its shop engine, it leaves WordPress. That is what sets this migration apart from the others: the catalogue follows, but you also have to decide what happens to the blog, the editorial pages and everything the WordPress extensions provided.
This article covers what is specific to WooCommerce. What applies to any move to Magento (catalogue model, URL suffix, rewrites, extensions) is gathered in our page on migrating to Magento.
Simple and variable products
WooCommerce distinguishes simple, variable, grouped and external products. A variable product and its variations become a configurable product and its simple products in Magento. WooCommerce attributes come in two kinds: global attributes (defined once for the shop) map to Magento attributes, while custom attributes, entered product by product, must be harmonised before the import, otherwise they produce as many attributes as there are products.
WooCommerce exports its products as CSV from the products screen; Magento imports products as CSV, but not in the same format: a transformation step is needed, by hand or with a migration tool or service. Check the images (WordPress stores them in its media library, by month), product tags, which have no native equivalent in Magento, and external products, which point to another site.
WooCommerce URLs
By default, WooCommerce places products under /product/ and categories under /product-category/ (/produit/ and /categorie-produit/ on a French site), with a trailing slash; Magento serves .html addresses by default, without a prefix. Even if you keep the slugs as URL keys, every address changes: plan one redirect per product and per category. A generic rule can handle a prefix, but it does not know that a slug has changed or that a product has been merged.
Add the addresses specific to WordPress: product tags, attribute pages if they were public, RSS feeds, author and archive pages, and media library files (/wp-content/uploads/), often indexed by Google Images.
The WordPress blog and pages
Magento handles CMS pages and content blocks, but has no native blog. Three options: migrate the posts into a blog extension for Magento, keep WordPress for the blog (on a subdomain or a subdirectory, with its own addresses), or turn the posts into CMS pages. The choice sets the new addresses of the posts, and therefore their redirects, as well as the linking between the blog and the product pages.
SEO settings held by a WordPress extension (titles, descriptions, canonical tags, indexing) do not leave with the content: export them separately, to carry them over into Magento. Migrating editorial content is detailed in our article on content migration.
Customers, orders and extensions
WooCommerce customers are WordPress users: their passwords are stored in an encrypted form specific to WordPress that Magento cannot verify. Plan for a new password to be set at first login, and let customers know. Order history goes through a migration tool or service. WooCommerce extensions (payment, subscriptions, bookings, reviews) have to find their Magento equivalent or be redeveloped.
Products, categories, posts and media: Swan matches each old WooCommerce address with its Magento page, checks the redirects and exports them.
Other migrations to Magento
- Migrating to Magento: what changes, whatever the original platform
- From PrestaShop to Magento
- From Shopify to WooCommerce, the reverse path to WordPress