Skip to content

How to migrate from Shopify to WooCommerce

Yes, you can do it yourself. Shopify exports products, customers and orders as CSV files, and WooCommerce imports them. Customer passwords do not move, the design is rebuilt, and nearly every address changes, so each old one needs a redirect before the domain is switched.

By
WP Ministry
Updated

In short

  • Shopify exports products, customers and orders as CSV files. WooCommerce imports products itself. Customers and orders need an importer plugin.
  • Customer passwords cannot be exported. Each customer sets a new one on the new store.
  • Shopify's product file has to be reshaped before WooCommerce reads its variants correctly.
  • Import while the Shopify store is still open. The file holds links to your images, not the images.
  • Almost every address changes. Redirect each old one and check the redirects before the domain is switched.
  • Have HTTPS working on the new host before the switch. Shopify keeps it enforced on your domain for 90 days after you deactivate.

You can move a store from Shopify to WooCommerce yourself. Shopify exports your products, customers and orders as CSV files. WooCommerce takes the products through its own importer, and the customers and orders through importer plugins. Two things never move: customer passwords and the design. Nearly every address on the store changes as well, so most of the work is in the rebuild and the redirects, not in the exports.

What moves and what does not

WhatHow it movesNotes
Products and variantsShopify's product CSV into WooCommerce's product importerThe file needs reshaping first. Shopify gives each variant a row. WooCommerce wants a variable product with its variations under it.
Product imagesFetched by the importer from the links in the fileWooCommerce copies each image into the Media Library if its link opens directly. The Shopify store has to be open while it does.
CollectionsMade again as product categoriesShopify's export leaves the collection column out.
CustomersShopify's customer CSV, through an importer pluginNames, email addresses and addresses. No passwords: WooCommerce's documentation says they cannot be exported.
OrdersShopify's order CSV, through an importer pluginWooCommerce's documentation says payment details are not transferred, and that shipping, tax and coupon lines may map badly or be left out.
Pages and blog postsBy hand, or with an importer extensionThe three exports above do not hold them.
DesignRebuiltWooCommerce says none of its methods recreate the Shopify design.
AppsReplacedEach app's job goes to a WooCommerce extension or a WordPress plugin.
Payments, shipping, taxSet up againUnder WooCommerce, then Settings.

Some importers read the store through Shopify's API instead of files. WooCommerce's marketplace sells Migrate & Import Shopify to WooCommerce, a paid extension that WooCommerce says brings products, customers, orders, pages, blog posts and coupons. S2W – Import Shopify to WooCommerce, in the WordPress.org directory, brings products, variations, images and categories in its free version and the rest in its paid one. Neither moves passwords or the design. This guide follows the file route.

Before you start

  • Keep the Shopify plan running. The exports and the image links depend on the store being open.
  • Export everything once as a backup. Products, customers, orders and a copy of your theme. Shopify can export gift cards as a file too.
  • Write down every address the store answers at. Shopify builds a sitemap at /sitemap.xml on your domain. It links to your products, collections, pages and blog posts. Add any redirects you made in Shopify's admin: they stop working when the domain leaves Shopify.
  • List every app and what it does for you. Each needs a replacement or a decision to drop it.
  • Note your settings. Payment methods, shipping zones and rates, tax rules, and the wording of your order emails.
  • Decide on hosting and a theme. Build the new store at a temporary address, not on your live domain. How to set up a WordPress staging site explains how to keep a site private while you work on it.

Move the store

  1. Step 1: Install WordPress and WooCommerce

    Set up WordPress at the temporary address and install WooCommerce. Go to Settings, then Permalinks, and choose a structure other than "Plain". With plain permalinks WooCommerce can only give products addresses made of an ID number.

  2. Step 2: Export your products from Shopify

    On the Products page of the Shopify admin, select "Export", choose all products, and select "Export products". Shopify downloads the file or emails it to you.

  3. Step 3: Reshape the product file

    WooCommerce's importer has its own columns: Type, SKU, Name, Description, Regular price, Stock, Categories, Images and the attribute columns. Match Shopify's columns to them by what they hold: the title, the description, each variant's SKU, price and stock, the image link, and each option's name and value.

    A product with no variants is one row with the type simple. A product with variants is one row with the type variable, then one row for each variant with the type variation and the parent's SKU or ID in its Parent column. Add a Categories column to stand in for your collections. Save the file as a UTF-8 CSV.

  4. Step 4: Import a few products first

    In WordPress, go to Products, then All Products, and select "Import". Select "Choose File", pick the file, and select "Continue". On the "Column mapping" screen, check each column and choose "Do not import" for any you do not need. Select "Run the importer" and stay on the page until it finishes.

    Start with a file of five or six products, one of them with variants, and look at them in the store. When they are right, import the rest. WooCommerce's documentation suggests splitting a large catalog into batches.

  5. Step 5: Move your customers

    In the Shopify admin, go to Customers, select "Export", choose all customers, and select "Export customers". For more than 50 customers Shopify emails the file.

    WooCommerce's documentation names a free plugin for the import, Import Users from CSV, and a paid suite of its own. The plugin adds a screen under the Users menu. Rename the columns to the ones it expects, and give every row the role customer. Leave its new user notification switched off, so nobody gets an email from a store that is not open yet.

  6. Step 6: Decide what to do with past orders

    From the Orders page in Shopify, select "Export", then "Export orders". A free plugin, Order Export & Order Import for WooCommerce, imports orders from a CSV in its own layout. Mapping columns from another layout is in its paid version, so with the free one you rearrange Shopify's file by hand.

    If you need the history only for your records, keeping the export as a spreadsheet is a fair choice. If customers should see past orders in their account, import them and check totals, tax and shipping lines afterwards.

  7. Step 7: Copy pages and blog posts

    Make each page and post again in WordPress and paste in its text. Upload the images to the Media Library and insert them from there. An image pasted along with its text may still load from Shopify's servers.

  8. Step 8: Set up payments, shipping and tax

    Under WooCommerce, then Settings, fill in the Payments, Shipping and Tax tabs from your notes. Put each payment method in its test mode and place an order with it.

  9. Step 9: Rebuild the design

    Choose a WordPress theme and rebuild the home page, the menus, and the product and category layouts. Your Shopify theme is a reference for colors, fonts and spacing. It cannot be installed on WordPress.

Redirect your old addresses

Search engines, bookmarks, old emails and links on other sites all point at your Shopify addresses. After the move those addresses lead nowhere unless each one is redirected to the page that replaced it. WooCommerce's documentation names broken links as a cause of lost search traffic after a move.

On ShopifyOn WooCommerce by default
/products/blue-t-shirt/product/blue-t-shirt/
/collections/t-shirts/product-category/t-shirts/
/pages/shipping-policy/shipping-policy/
/blogs/news/first-post/first-post/ with the "Post name" structure

The last part of an address can differ too. Shopify calls it the handle and bases it on the product's title. If you edited a handle, or renamed a product during the import, the two no longer match.

Make the redirects on the new site, as permanent (301) redirects. WooCommerce's documentation points to Redirection, a free plugin in the WordPress.org directory, or to your host's own tools. Redirection adds a screen under Tools, imports redirects from a CSV, and supports regular expressions, so one rule can cover every product whose name did not change.

You can also keep product addresses as they were. Under Settings, then Permalinks, WooCommerce lets you set a custom base for products. With products as the base, a product whose slug equals its old handle keeps the address it had on Shopify. Collections, pages and blog posts still need redirects.

Check the redirects before the switch. Add an old path, such as /products/blue-t-shirt, to the temporary address and open it. It should land on the new product page in one step. The redirect checker follows an address and shows each hop. Go through the whole list again on the real domain after the switch.

Check before you switch the domain

  • The number of products matches Shopify's. Prices, stock, variants and images are right on a sample of them.
  • An order goes through with each payment method, and the order emails reach you and the customer.
  • Shipping and tax at checkout come to what Shopify charged for the same cart.
  • A test customer can ask for a new password, sign in and see their account.
  • Every old address on your list redirects to the right page.
  • The contact form delivers.
  • The new host has a working SSL certificate for your real domain.
  • Under Settings, then Reading, "Discourage search engines from indexing this site" is not ticked.
  • Customers and orders that arrived on Shopify since your first export have been brought across.

Then point the domain at the new host and change the store from its temporary address to the real one. How to change your WordPress URL covers that step. WooCommerce's documentation suggests closing the Shopify storefront to buyers at the same moment, so no order lands on the old store.

If you would rather hand the move over, our Shopify to WooCommerce migration service starts with a free assessment and a fixed quote in writing.

Where it goes wrong

  • Passwords. Customers who try their old password are refused. Email them at launch, say the store has moved, and link to the page where they set a new one.
  • Variants. Every variation row has to name its parent. Count variations after the import, not only products.
  • Images that still live on Shopify. The importer copies product images. Images inside descriptions, pages and posts are links in the text. Find the ones that still point at Shopify and replace each before you close the old store.
  • Missing redirects. Products get remembered. Collections, blog posts and pages get forgotten. Work from the sitemap, not from memory.
  • HTTPS. Shopify says its HTTPS-only policy stays in effect on your domain for 90 days after you deactivate the store. A browser that visited before will refuse a new site without a certificate.
  • Email and forms. Shopify sent your order emails for you. Now your host or a mail service does. Place an order with the payment method in its test mode, before the store opens, and read what arrives. If Shopify forwards email for your domain, arrange that somewhere else before the domain moves.
  • Orders during the switch. After a DNS change some visitors still reach the old store for a while. Export orders from Shopify once more when it has gone quiet.

Common questions

My domain was bought through Shopify. Can I keep it?

Yes. Shopify lets you edit the DNS settings of a domain it manages, under Settings, then Domains, so you can point it at the new host and leave the registration where it is. You can also move it to another provider: open the domain there, select "Domain settings" and then "Transfer to another provider". Shopify says a .com, .net or .org domain cannot be transferred for 60 days after it was bought, and that a transfer can take up to 7 days. Either way, do it while you still have access to the Shopify admin.

What happens to my Shopify data after I close the store?

Shopify says a deactivated store's information is kept for 2 years in case you reopen it. Access to the admin ends with the store's billing cycle, though, so take every export first.

Who looks after the store once it is on WooCommerce?

You do. Shopify ran the servers and the software for you. On WooCommerce the hosting, the updates and the backups are yours to arrange. The WordPress maintenance checklist lists what that involves.

Can I go back to Shopify later?

Yes. Shopify documents the move in that direction, and WooCommerce exports products as a CSV. How to migrate from WooCommerce to Shopify goes through it.

More on this subject

Would you rather we moved it?

Moving a site or a store from one platform to another, with its old addresses redirected to the new ones. Quoted in writing after a free assessment of what moves by itself and what has to be rebuilt. The assessment is free.