Fixed prices · Business-day deadlines · Refund if we're late
Migrations · WooCommerce

WooCommerce to Shopify migration, with the new store built

In short

WooCommerce stores move cleanly once three things are handled: variable products with more than three attributes, plugin data hiding in post meta, and the /product/ and /product-category/ URLs that Shopify can't reproduce. We export through the WooCommerce REST API and the database, import with Matrixify, and redirect every old URL. Most WooCommerce stores fit the Tailored Move at $8,900 in 15 business days.

Last updated · Facts and prices checked October 22, 2026 · By the Quick & Sons crew

Where WooCommerce stores get stuck

WooCommerce is a plugin on top of WordPress, so a WooCommerce store is really three things layered together: WordPress content, WooCommerce's own tables, and whatever each plugin wrote into wp_postmeta. The built-in product CSV exporter1 covers the first layer of product data well. It doesn't see subscription schedules, Advanced Custom Fields values, B2B role prices from plugins like Wholesale Suite or B2BKing, or the review stars stored as comment meta.

That's why we don't start from the CSV alone. On day 1 we pull a full export over the REST API, list every meta key that has values, and decide with you which ones become Shopify metafields, which ones become tags, and which ones get left behind. The decisions go into Basecamp before anything is imported, so there are no surprises in week two.

What moves from WooCommerce, and how

Every row below is checked against a 50-product test import before the full run.

On WooCommerceHow it movesNotes
Simple productsMoves by toolTitle, description, price, SKU, barcode, weight, stock, images and alt text.
Variable products and variationsMoves by toolBecome one product with variants. More than 3 variation attributes needs a split (see above).
Global attributes not used for variationsMoves by tool, after mappingBecome product metafields, which can power storefront filters.
Short descriptionMapped by handShopify has one description field, so it goes into a metafield block or the top of the description.
Product categories (nested)Moves by toolBecome collections. Shopify collections are flat, so the hierarchy is rebuilt in menus.
Product tagsMoves by toolKept as tags; useful for automated collections.
Grouped and external productsRebuilt by handNo direct equivalent. Grouped products become a bundle or a collection section; external products get a button driven by a metafield.
Customers and addressesMoves by toolAccounts arrive without passwords. Customers get an account activation invite.
Customer passwordsDoes not movePasswords are stored hashed and can't be carried to any new platform.
OrdersMoves by toolImported as historical orders with their original order numbers. 24 months in Off the Rack, full history in Tailored.
CouponsMoves by tool, rules checked by handSimple percentage and fixed codes move. Plugin-based conditional rules are rebuilt as Shopify discounts.
Product reviewsMoves through the review appExported from WordPress comments and imported into the review app you pick (Tailored and up).
Pages and blog postsMoves by toolShortcodes and page-builder markup are stripped; layouts are rebuilt in Horizon sections.
SEO titles and meta descriptionsMoves by toolFrom Yoast or Rank Math meta keys into Shopify's SEO fields.
Gift card balancesMoves by tool (Tailored and up)Only if the gift card plugin exposes balances; codes are reissued in Shopify.

Variable products and the three-option ceiling

Shopify allows up to 2,048 variants per product but only three options (for example size, colour and material)2. WooCommerce has no such ceiling, so a variable product with four attributes used for variations needs a decision:

  • Split it into separate products, for example one product per material, and link them with a "Also available in" section in Horizon.
  • Demote one attribute to a line item property when it doesn't change price or stock (engraving text, gift note).
  • Keep it as a filter only by moving attributes that aren't used for variations into metafields, which Search & Discovery can turn into storefront filters.

Watch for variations set to "Any colour" or "Any size". WooCommerce treats them as wildcards, but Shopify needs every combination spelled out as a real variant with its own SKU and stock. We expand those during mapping and flag any combination that has no stock history.

Redirect rules for WooCommerce URLs

WooCommerce's permalink settings decide the old patterns3. Shopify's are fixed (/products/, /collections/, /pages/, /blogs/), so every old URL gets an explicit 301 in Shopify's URL redirects4. We build the map from your real URL list, not from the patterns alone.

WooCommerce URLShopify URLCovers
/product/{slug}//products/{slug}Default WooCommerce product base. Custom bases (e.g. /shop/{category}/{slug}/) are read from your settings.
/product-category/{parent}/{child}//collections/{child}Nested category paths collapse to one collection handle.
/product-tag/{tag}//collections/all/{tag}Or a dedicated collection if the tag page earns traffic.
/shop//collections/allThe WooCommerce shop page.
/{page-slug}//pages/{page-slug}WordPress pages, one rule per page.
/{year}/{month}/{post-slug}/ or /{post-slug}//blogs/news/{post-slug}Depends on your WordPress permalink setting.
/my-account//accountPlus /cart/ to /cart and /checkout/ to /cart.

Plugins and the Shopify apps that replace them

The plugin list decides most of the build, so we map it before quoting. Common swaps:

WooCommerce plugin On Shopify
Yoast SEO / Rank Math Shopify's own SEO title and description fields (imported per product, page and post)
WooCommerce Subscriptions A subscription app. Active subscribers re-consent unless your payment gateway supports token migration, so we check that first
Wholesale Suite, B2BKing Native Shopify B2B: companies, catalogs, payment terms. See the Counter Switchover
Product Add-Ons Line item properties in Horizon or an options app
WPML / Polylang Shopify Markets with Translate & Adapt
Table Rate Shipping Shipping profiles and zones; carrier-calculated rates on Advanced or annual Grow5
Mailchimp for WooCommerce Klaviyo or Shopify Email, with list export and re-sync

Five things that bite on WooCommerce moves

Two slugs, one product

Old WooCommerce redirects plugins (Redirection, Yoast Premium) often hold years of chained redirects. We export them and point each old URL straight at its final Shopify URL, so nothing hops twice.

Prices entered with tax

If WooCommerce was set to "prices entered inclusive of tax", the import has to match Shopify's tax setting or every price shifts. We check one product per tax class in the test import.

Stock held in a plugin

Multi-location or batch stock plugins store quantities in their own tables. Those quantities are mapped to Shopify locations by hand.

Images served from a CDN plugin

Jetpack or other CDN plugins rewrite image URLs. We pull originals from wp-content/uploads so Shopify gets full-resolution files.

Guest orders

WooCommerce guest orders have no customer account. They import as orders tied to an email, and Shopify links them to a customer by that email.

Which Move fits a WooCommerce store

If the store is a clean catalog with a stock theme and fewer than five plugins that matter, the Off the Rack Move ($4,900, 10 business days) covers it. Most WooCommerce stores we see have a customised theme, a few years of order history and an email or reviews plugin, which is what the Tailored Move ($8,900, 15 business days) is for. If you also sell wholesale through a plugin, add a Counter Switchover so the role-based prices land in native B2B catalogs rather than another app. Comparing platforms first? Read Shopify vs WooCommerce for growing and wholesale stores.

Questions people ask

Can my WooCommerce customers keep their passwords?

No. WordPress stores passwords hashed, and no platform can import them. Customers keep their account history and get an activation email to set a new password.

Do I need to freeze my WooCommerce store during the move?

Only for the last stretch. We import everything early, then run a final sync of new orders and customers right before launch, so the content freeze is a day or two, not weeks.

Get a fixed price and a launch date in 15 minutes.

Tell us what you're running today. You'll have a written scope, a price that won't change and the date we'll be held to within one business day.

the usual fit

Tailored Move

$8,900

Established brands that want the new store to look and sell better than the old one. · 15 business days.

Pay the 50% deposit · $4,450

All prices

Sources

  1. WooCommerce docs: Product CSV importer and exporter, checked October 22, 2026.
  2. Shopify Help Center: Adding variants (limits), checked October 22, 2026.
  3. WooCommerce docs: Permalinks, checked October 22, 2026.
  4. Shopify Help Center: URL redirects, checked October 22, 2026.
  5. Shopify Help Center: Third-party carrier-calculated shipping availability, checked October 22, 2026.