There are four ways to move a Shopify store to WooCommerce: the free CSV route, a WordPress import plugin, a hosted migration service, or a developer with scripts. All four handle products well. They differ on customers, orders, blog content, metafields and redirects, so pick the tool by what your store holds beyond the catalog. This post compares the Shopify to WooCommerce migration plugins and tools I would actually consider. For the full project plan, from audit to cutover, read our Shopify to WooCommerce migration guide.
The short answer
- ✓Under a few hundred simple products and no order history worth keeping: Shopify's product CSV export plus WooCommerce's built-in product importer
- ✓A catalog you want to pull straight from Shopify, with the option to add customers and orders later: the S2W plugin by VillaTheme
- ✓Products, customers, orders and blog posts in one run with a free test first: Cart2Cart or LitExtension
- ✓Heavy metafield use, subscriptions, app data or a large catalog: a developer working from the Shopify Admin API, possibly alongside one of the services
None of these tools moves your theme, your apps or the data those apps store. That part is a rebuild whichever route you pick.
Route 1: Shopify CSV export into the WooCommerce importer
Shopify's admin exports products as a CSV file with variants, inventory and SEO fields. Images are not in the file itself. They are listed as URLs, which WooCommerce can fetch while the Shopify store is still live. On the other side, the WooCommerce product CSV importer handles variable products, attributes, categories with hierarchy and images from external URLs, and it can update existing products by ID or SKU.
The catch is that the two CSV formats are different. You reshape the Shopify file in a spreadsheet so each variable product has a parent row and each variation has its own row with attribute values. That is fiddly once products have more than one option. Shopify also leaves the SEO title and description columns blank unless someone edited them by hand, and its help docs say nothing about metafields in the standard export.
What it moves and what it misses
- ✓Moves well: products, variants, prices, stock, images by URL, categories you build from collections
- ✓Misses: customers and orders, because the WooCommerce core importer handles products only
- ✓Misses: blog posts, pages, reviews, metafields and redirects
This route suits a small, simple catalog where you are happy to start customer accounts and order history fresh. It costs nothing except your time.
Route 2: the S2W plugin by VillaTheme
S2W: Import Shopify to WooCommerce is a free plugin on wordpress.org from VillaTheme. It connects to your store through the Shopify API using a custom app you create, so there is no CSV reshaping. The free version imports an unlimited number of products with their variations, stock, prices, images, gallery images and product categories.
The paid version, sold on VillaTheme's site, adds orders, customers, coupons, pages, blogs, store settings, shipping zones and taxes, plus metafields, barcode, vendor and product type, and webhooks to keep data in sync. When I checked, it was listed at $69 for six months on one site or $119 for twelve months. Prices change, so confirm on the vendor page.
Neither version mentions customer passwords, reviews or 301 redirects in its documentation, so plan those separately. S2W suits someone comfortable in WordPress who wants to run and rerun imports themselves on a staging site.
Route 3: hosted migration services
Cart2Cart
Cart2Cart connects to both stores and moves products, categories, customers, orders, coupons, reviews, CMS pages and blogs. Its WordPress plugin page describes a free demo that moves a limited number of entities within 30 minutes, then a full migration priced by the number of records, starting at $29. Extra options include SEO URLs for products and categories, 301 redirects after migration, keeping order IDs, and moving images embedded in descriptions.
If customers keeping their logins matters to you, ask Cart2Cart directly whether passwords can come across from a Shopify source, and how. Shopify does not normally hand out password hashes, so I would not promise customers their old password will work until the vendor has confirmed it in writing.
LitExtension
LitExtension offers a self-service automated migration and an All-in-One service run by its team. Its page lists products and variations, collections to categories, customers and addresses, orders with line items, coupons, pages, blog posts, images and supported SEO titles and descriptions as standard data. Pricing comes from an estimator based on products, orders, customers and blog posts, and there is a free demo you can rerun.
LitExtension is unusually clear about limits. It puts metafields, subscriptions, gift cards, loyalty points, third-party reviews and app data in a group that needs assessment or custom handling. It also says most customer passwords cannot be transferred, because hashes are generally not available through Shopify exports.
Both services suit a mid-sized store that wants order history and customer records without writing code. Run the free demo, then check the test records in WooCommerce before paying.
Route 4: hiring a developer
A developer can read from the Shopify Admin API and write to the WooCommerce REST API, mapping every field you care about, including metafields, SEO data and data exported from apps. This is the most work up front. It is also the only route where you decide exactly how odd cases are handled, such as products with more than three options, bundles or subscription records.
It suits large catalogs, stores that rely on metafields for product content or filters, and stores where reviews, subscriptions or loyalty balances have to survive. A common setup is to let a service move the standard records and have a developer handle the custom data and the redirect map.
What no tool solves for you
- ✓Customer passwords: plan a launch email and an easy reset flow, unless your vendor confirms a working option for a Shopify source
- ✓Subscriptions: saved payment methods stay with the payment provider, so check with your subscription app and new gateway before promising anything
- ✓App data: reviews, loyalty and wishlists live in the app, so ask each vendor for an export
- ✓Metafields: the standard product CSV does not document them, and the services treat them as custom work
The SEO side: URLs and the redirect map
Shopify uses fixed paths such as /products/handle and /collections/handle. WooCommerce's default permalinks are /product/slug/ for products and /product-category/slug/ for categories, and both bases can be changed under Settings, then Permalinks. Every Shopify URL that changes needs a 301 redirect to its new address, or old links and rankings end up on a 404.
- ✓/products/handle to the new product URL
- ✓/collections/handle to the matching category URL
- ✓/collections/handle/products/handle to the same product URL
- ✓/pages/handle and /blogs/blog-name/post-handle to the matching WordPress page or post
- ✓Existing Shopify redirects, updated so they point at the final URL instead of chaining
Build the map from a crawl of the live store plus your top pages in Search Console, then test it on staging before launch. Some services offer redirects as an option, but I would still check the list myself. The migration guide covers the full redirect and launch checklist. If you are going the other direction, see our WooCommerce to Shopify migration service.
If your store has order history, metafields, subscriptions or a lot of search traffic to protect, we can plan the tool choice, run the data move, rebuild the storefront and own the redirect map.
See our Shopify to WooCommerce migration service →



