W2S – Migrate WooCommerce to Shopify


Created: 12/2021

Latest updated: 06/2022 – Updated version: 1.0.0

By: VillaTheme

Thank you for purchasing our plugin. If you have any questions that are beyond the scope of this documentation, please feel free to request support at our Support Forum. Thanks so much!

What is W2S – Migrate WooCommerce to Shopify?

W2S – Migrate WooCommerce to Shopify is a powerful tool that allows you to migrate WooCommerce data to your Shopify stores. The process would take just a few minutes and the configuration are extremely simple. The W2S plugin transfers data from WooCommerce to Shopify using the Shopify API key, so you can be confident in the accuracy of the imported data.

WooCommerce and Shopify are very large and popular eCommerce platforms that many users all over the world are interested in and prefer. There has been a lot of research done on the market share of these platforms in eCommerce, and according to the most recent statistics from BuiltWith.com, Shopify now has more than 3 million active websites, indicating its popularity is growing. While the number of active WooCommerce websites is growing impressively. It said 89,365,986 downloads were taken directly from the WooCommerce landing page (when they were still showing a download counter).

As a development company, we are aware of this trend, which is why we released the Shopify to WooCommerce plugin, which allows you to migrate data from Shopify to WooCommerce. Not content with this, we were considering how to migrate data from WooCommerce to Shopify in reverse – handle the majority of common needs, the release of the Migrate WooCommerce to Shopify plugin marks an important step toward mastering data management between these two platforms, allowing shop owners to save time and money to gain benefit from online business.

The features of the Migrate WooCommerce to Shopify plugin:

– Migrate lots of data from your WooCommerce store to Shopify stores, including Products, Categories, Orders, Coupons, Users, and Shipping Zones.

– Unlimited products migrated to Shopify: 

You’re free to migrate all product data from WooCommerce to Shopify. There is no limit on how much product data you can import. You don’t need to pay any extra fee to import, just import as many as you want.

– Commit import successfully:

We commit that you will import product data successfully. Please follow our guiding document and video to know how to use the plugin to import products WooCommerce to Shopify. If you have any trouble with the import progress, feel free to contact us.

– Import Product Data: ID, Title, Content, Slugs, SKU, range of regular price and sale price, range of stock quantity, Product type, Categories, image.

– Import product options: You can configure import product options to migrate the data you require.

  • Filter by product type: This filter allows you to select a product type to migrate, they can be:
    • Simple & variable: Migrate all simple and variable products from WooCommerce to Shopify.
    • Only Simple: Only migrate simple products from WooCommerce to Shopify.
    • Only variable: Only migrate variable products from WooCommerce to Shopify.
  • Include product: Just migrate the products which you enter here.
  • Exclude product: The Migrate WooCommerce to Shopify plugin will migrate all products except the products which you enter in the exclude product field.
  • Include product by categories: Simply migrate the categories in which you enter their title here.
  • Import product created date: Simply migrate the products created during the date range.
  • Import product sequence: Choose the sequence for imported products. There are 6 options to select:
    • Title Ascending,
    • Title Descending,
    • Created Date Ascending,
    • Created Date Descending,
    • Updated Date Ascending,
    • Updated Date Descending.
  • Keep product slug: The product slug after migrating to Shopify will remain, the same as in your WooCommerce store. If this option is turned off, WooCommerce will automatically generate a product slug from the product name.
  • Import product categories: Enable to migrate all WooCommerce product categories to Shopify
  • Import product tags: Enable to migrate all WooCommerce product tags to Shopify.
  • Import product SKU: Enable to migrate the SKU of all WooCommerce products to Shopify.
  • Product status mapping: Choose a status for the WooCommerce imported products to Shopify after migrating, they can be:
    • Active: Keep imported products in the active status in Shopify.
    • Archived: Keep imported products in the archived status in Shopify.
    • Draft: Keep imported products in the draft status in Shopify.
    • Not import: Keep imported products Not import status in Shopify.

– Update and synchronize the data after being updated, both automatically and manually: You can update the imported product and order data in both ways – manually in the WooCommerce Products and Orders list; or automatically (with imported product data) by setting a timer.

– Schedule a timer to automatically update the imported data: If you select to automatically synchronize and update the imported data, our plugin can help with the cron function, which allows you to set a timer and select your wanted product data to update. The system will auto-update the data at the right time you set.

– Logs to record import history: There is a log section that stores import history. You can examine the logs to verify the imported product data: Time, product title, Import status (failed or successful), Shopify product ID, and WooCommerce product ID.

 

 

Why W2S – Migrate WooCommere to Shopify?

  • Securely transfer your data between 2 platforms without having to provide your site info to any 3rd party
  • Limitless Shopify stores to migrate data
  • Actively supported, we’re always available to help!

 

Take a look at our excellent plugin and what it can do in this video

 

 

Go to Plugin/Add New /Upload Plugin/Choose file/ select the plugin file installable zip file w2s-migrate-woocommerce-to-shopify.zip / Install Now/Active Plugin

 

Let’s see this video guide on how to install and use the plugin:

CONNECT WOOCOMMERCE TO SHOPIFY STORE(S)

After you finish installing the plugin, first, you would need to connect your WooCommerce store with your Shopify store with the credentials below:

Step 1: Go to plugin settings >> “Woo to Shopify” >> General settings

Step 2: Configure the Store address, API key, and API access token or API secret fields.

Step 3: Save the settings.

Important note: You can add as many Shopify stores as you want with the “Add store” button. If you have many Shopify stores, each store will have its own importing area.

  1. If you want to check again the settings you configured for a particular store, no need to scroll up and find them manually, simply click View settings.
  2. Once you click “Import”,  the plugin will import the data to all Shopify stores, if you want to leave out some stores, do it with “Enable all“.

 

After the credentials above are added correctly and saved successfully, now the plugin will show these 2 tabs, which were invisible previously.

Now you can start to migrate products from your WooCommerce store to your Shopify store.

 

 

PAGINATE FOR BIG DATA USERS

If you have too much data of Products, Users and Orders to import, go to General settings >> Config import to divide the data entry process into small batches to avoid loading too much data at once, which leads to the data can’t be loaded properly.

Change the value in the “Number per page” option according to the need to adapt it to your site.

 

 

You can learn the video on how to create a custom app and connect Shopify API using an Access token.

 

Create custom app in Shopify

As stated in the previous part, to get the plugin to work, you would need to connect your WooCommerce store with your Shopify store.

To do that, you must have your development store, and get the API credentials, please follow the steps below:

Step 1:  Creating your Shopify development store

Step 2: Enable custom app

On the Shopify dashboard, go to the App settings as in the picture below >> Click “Develop apps”

Then, follow the steps in this instruction to enable custom app development from the Shopify admin.

 

Step 3: Create an app

Click “Create an app” to create a custom app. And follow the next steps in this instruction for the whole process to create a custom app.

Note: In the past, Shopify used to allow users to create private apps, but this feature was removed, as mentioned in this statement. If any users who have been using our plugin since then, the private app credentials in your plugin settings will still be kept and work properly.

 

Step 4: Assign API scopes

After successfully creating a custom app, the next step is to assign API scopes to it.  Please visit this instruction for specific steps.  To find the scopes based on what you need to import, please see the table below:

 

Step 5: Install the app

After you’ve set API scopes for your app, you can install the app. You’ll get your API access tokens after you install. Depending on what API scopes you assigned to the app, you’ll get an Admin API access token, a Storefront API access token, or both.

 

IMPORTANT NOTE:

You can see the Admin API access token on this page only one time, because the token provides API access to sensitive store data. After revealing the access token, write down or record the token somewhere secure so that you can refer to it again. Treat the token like a password. Share the access token only with developers that you trust.

 

Now the custom app is created and installed successfully, the next step is to get the API credentials and place them to the plugin General settings.

 

 

 

How to Connect WooCommerce to Shopify by a Private APP

Those who have previously used Shopify’s previous version can continue to connect to the API through a private app as usual.  Let’s see this video guide on how to connect WooCommerce and Shopify using a Private App.

Please note that private apps are deprecated and can’t be created as of January 2022. If you’re using a private app which was created before, you can still use this API in our plugin to migrate. If you’re new, please ask your app developer to create a custom app. Like private apps, custom apps are built exclusively for your shop, but they don’t require open API access to your store or access to your Shopify admin.

 

* Important note: 

Shopify Admin API security recommendation
  • You should enable only what is necessary for your app to work.
  • Treat the API key and password like you would any other password since whoever has access to these credentials has API access to the store.
  • Change your API at least once a month
  • If you only use API to import data, remove API permissions or delete the API after the import is completed.

 

Just like the custom app, after you finish configuring the API credentials, the 2 tabs below will appear letting you migrate from the WooCommerce store to the Shopify store:

 

 

 

 

How to configure the import settings

An important part of migrating from WooCommerce to Shopify is configuring the importing options.

With the plugin, you can migrate Products, Product categories, Orders, Customers, Coupons, and Shipping Zones. Each part has its own data settings for you to decide which to import, and which to exclude, the data migration will be proceeded based on these settings.

So you would need to configure all these settings according to necessity. Please visit the documentation of each part you need to configure:

Save the settings

 

 

And start to import.

 

 

 

 

Migrate from WooCommerce to Shopify

After you’ve done all the settings configuration, scroll down to start importing data.

To import data, simply check and make sure you’re happy with all the configured options, then select which data you want to migrate for each store, then click “Import

 

 

After you click “Import“, a progress bar will appear, along with a direct log letting you check the migration directly.

 

When the process is done, you will receive a notification, for example:

 

 

Important Note:

  1. Shopify sends an email to the admin whenever a new order is placed.  Before you import orders from WooCommerce to Shopify, to avoid receiving too many emails, you should disable the email feature.  Go to your Shopify store >> Settings >> Notifications. Scroll down to the “Recipients” field and select “Disable”.
  2. The order creation date cannot be imported from WooCommerce to Shopify. This value also can’t be changed or be set in the past/future. The order creation date on Shopify (which was imported from WooCommerce) is the import date and time. For actual orders on your Shopify stores, this date is generated only once and only when the order is placed, the value of this property cannot be changed.
  3. To ensure the platform remains stable and fair for everyone, all Shopify APIs are rate-limited. The REST Admin API supports a limit of 40 requests per app per store per minute. This allotment replenishes at a rate of 2 requests per second. And for variable products, you can import at most 100 variations per one product. For more information about this part, please visit this Shopify documentation.

 

 

 

How to synchronize imported data manually

The admin can synchronize the imported product and order data manually.

 

Synchronize imported product data

Step 1: In the WooCommerce Product list, select the products you want to synchronize, then click “Sync to Shopify”

Step 2: A popup will appear for you to select:

  • Domain to update and synchronize the data: Choose one of the Shopify store domains to synchronize the product data
  • Options to synchronize the data: Select which data you want to update
  • Option to show the synchronizing options above next time you sync: If you disable this option >> The next time you click the “Sync” button (appears when you hover over the imported product), it’ll automatically sync without showing this popup again

Step 3: After selecting the domain and the options:

  • Click “Save” to save the selection
  • Click “Sync selected” to start syncing without saving the selection (if there are any changes)
  • Click “Cancel” to cancel the action

Note: You can only sync the imported product. In the image below, there are only 5 products that were imported, even if the other products are also selected, they will not be added to Shopify.

 

You can also sync each particular product by hovering over the product title, the “Sync” button will appear, and clicking it will lead you to a popup as above, but only sync that product data only.

 

When the process is finished, you can see the status to know if the data was synced successfully or not

The status will let you know:

  • The Shopify store domain the data was synced.
  • The date and time the data was synced
  • Status of the synchronization
    • Successful: The data was synchronized successfully. This status shows with a green tick symbol
    • All other statuses: The data failed to be synced. All these statuses show with the red cross symbol
  • Synced fields

 

 

 

Synchronize imported order data

In the WooCommerce Orders list, you can do the same as in the WooCommerce Product list above.

Step 1: In the WooCommerce Order list, select the orders you want to synchronize, then click “Sync to Shopify”

Step 2: A popup will appear for you to select:

  • Domain to update and synchronize the data: Choose one of the Shopify store domains to synchronize the product data
  • Options to synchronize the data: Select which data you want to update
  • Option to show the synchronizing options above next time you sync: If you disable this option >> The next time you click the “Sync” button (appears when you hover over the imported product), it’ll automatically sync without showing this popup again

Step 3: After selecting the domain and the options:

  • Click “Save” to save the selection
  • Click “Sync selected” to start syncing without saving the selection (if there are any changes)
  • Click “Cancel” to cancel the action

Note: You can only sync the imported orders.

You can also sync each particular product by hovering over the product title, the “Sync” button will appear, and clicking it will lead you to a popup as above, but only sync that product data only.

 

When the process is finished, you can see the status to know if the data was synced successfully or not.

The status will let you know:

  • The Shopify store domain the data was synced.
  • The date and time the data was synced
  • Status of the synchronization
  • Synced fields

 

 

Products tab – Settings for Products migration

In each store settings, you’ll find the tab for each part you want to migrate data, configure all the options here. Starting from Products settings.

1. Filter by product type: This filter allows you to select a product type to migrate, they can be:

  • Simple & variable: Migrate all simple and variable products from WooCommerce to Shopify.
  • Only Simple: Only migrate simple products from WooCommerce to Shopify.
  • Only variable: Only migrate variable products from WooCommerce to Shopify.

2. Include product: Just migrate the products which you enter here.

3. Exclude product: The Migrate WooCommerce to Shopify plugin will migrate all products except the products which you enter in the exclude product field.

4. Include product by categories: Simply migrate the categories in which you enter their title here.

5. Import product created date: Simply migrate the products created during the date range.

6. Import product sequence: Choose the sequence for imported products. There are 6 options to select:

  • Title Ascending,
  • Title Descending,
  • Created Date Ascending,
  • Created Date Descending,
  • Updated Date Ascending,
  • Updated Date Descending

7. Check exist: By default this option is disabled -> And the plugin will ignore previously imported products. Enable this option to double-check all products before importing. The plugin will scan all products in Woo (including those previously imported) and check if the product entered in Shopify is still on Shopify, if not, the product will be re-imported to Shopify.
Note: Enabling this option will slow down the migration process speed.

8. Keep product slug: The product slug after migrating to Shopify will remain, the same as in your WooCommerce store. If this option is turned off, WooCommerce will automatically generate a product slug from the product name.

9. Import product categories: Enable to migrate all WooCommerce product categories to Shopify

10. Import product tags: Enable to migrate all WooCommerce product tags of the product to Shopify

11. Import product SKU: Enable to import the SKU of all WooCommerce products to Shopify.

12. Check Point of Sale channel: Choose the Point of Sale channel in Shopify

13. Product status mapping: Map the WooCommerce product status to the corresponding Shopify product status. WooCommerce products when imported to Shopify, their status will be the selected status in the “To Shopify” column.

  • Active: Keep imported products in the active status in Shopify.
  • Archived: Keep imported products in the archived status in Shopify.
  • Draft: Keep imported products in the draft status in Shopify.
  • Not import: Keep imported products Not import status in Shopify.

14. Import Product Meta fields: Import the WooCommerce product meta fields.

  • In the “From WooCommerce” column, add the WooCommerce product meta key
  • In the “To Shopify” column, select the corresponding position to import the meta key.
    • Product vendor, product type, product barcode: WooCommerce imported meta fields will go to: Vendor; Custom type; and Barcode fields in Shopify.
    • Product meta fields: When you import WooCommerce product meta fields to Shopify product meta fields, you must also select the type, and enter the post meta key. With the values imported in this field, you must need a 3rd app to view them.

 

 

 

Product Categories tab – Settings for category migration

The next tab is the migration settings for product categories

 

  1. Check exist: By default this option is disabled -> And the plugin will ignore previously imported categories. Enable this option to double-check all categories before importing. The plugin will scan all categories in Woo (including those previously imported) and check if the category entered in Shopify is still on Shopify, if not, the category will be re-imported to Shopify.
    Note: Enabling this option will slow down the migration process speed.
  2. Hide empty: Enable this option to ignore the categories which has no item.

 

 

 

 

Orders tab – Settings for order migration

This setting section allows you to configure the options before starting to import order data from WooCommerce to Shopify.

 

 

  1. Check exist: By default this option is disabled -> And the plugin will ignore previously imported orders. Enable this option to double-check all orders before importing. The plugin will scan all orders in Woo (including those previously imported) and check if the order entered in Shopify is still on Shopify, if not, the order will be re-imported to Shopify.
    Note: Enabling this option will slow down the migration process speed.
  2. Import orders created date: Import the orders which are created within the time range you add.
  3. Import orders completed date: Import the orders which were marked “Completed” within the time range you add.
  4. Import orders paid date: Import the orders whose date marked “Completed” is within the time range you add.
  5. Filter orders by status: Select status here to import only orders with the selected status.
  6. Import Products sequence: This is to sort the results after applying all filters above if any
  7. Order status mapping: Based on WooCommerce order status which is set hard, select the “financial status” and “fulfillment status” of Shopify correspondingly, the order from WooCommerce when imported to Shopify will be assigned to the selected Shopify status you choose here.

 

 

Customers tab – Settings for user migration

Configure settings in this tab for user’s data migration. In Shopify, users can’t purchase without logging in, the plugin will get the data from the “Users” data in your WooCommerce store, and the data import will go to the “Customers” tab in your Shopify store.

 

 

  1. Check exist: By default this option is disabled -> And the plugin will ignore previously imported users. Enable this option to double-check all users before importing. The plugin will scan all users in Woo (including those previously imported) and check if the user entered in Shopify is still on Shopify, if not, the user will be re-imported to Shopify.
    Note: Enabling this option will slow down the migration process speed.
  2. With Purchase(s) only: Based on the “Customer Role Import” table below, enable this option and the plugin will scan and only import users with roles selected “Import”, and have at least 1 purchase.
  3. Customer Role Import: In this table, select the user roles to import or to not import.

 

 

 

Coupons tab – Settings for coupon migration

Configure the options in this tab. The coupon data the plugin gets from your WooCommerce store will be imported to the “Discount” in your Shopify store.

 

 

  1. Check exist: By default this option is disabled -> And the plugin will ignore previously imported orders. Enable this option to double-check all orders before importing. The plugin will scan all orders in Woo (including those previously imported) and check if the order entered in Shopify is still on Shopify, if not, the order will be re-imported to Shopify.
    Note: Enabling this option will slow down the migration process speed.
  2. Import coupons created date: Import the coupons which are created within the time range you add.
  3. Import coupons expired date: Import the coupons whose expiry date is within the time range you add.
  4. Not import expired coupons: Enable this option to not import the expired coupons.
  5. Not used yet: Enable this option to only import the coupons which weren’t used.

 

 

 

Shipping Zones tab – Settings for shipping zone migration

The last migration setting is the Shipping Zones.

The plugin will take the shipping zone data in your WooCommerce settings >> Shipping >> Shipping zones and import them to the Shopify Location.

Choose Shopify locations to import:  The location in your Shopify store settings will appear in this field. Choose the location to import the Shipping Zones to.

 

Important note: After you finish importing Shipping Zones, you would need to add products for each zone manually in each profile. Because in WooCommerce, the shipping zones are for all products by default, it does not divide into different zones.

Step 1: Go to Shipping and delivery >> App shipping profiles >> Click “Manage” of each zone

 

Step 2: Add product manually

 

 

 

 

 

 

Cron Products Sync

This function helps to automatically update and synchronize the imported product data from WooCommerce to Shopify. This is basically a timer tool to automatically synchronize products in a particular set time range.

Note: Please select at least one store in option (7) first before configuring any other option on this setting page.

 

  1. Enable cron: Enable this option to automatically synchronize data to Shopify.
  2. Run cron every: Set the time of how many days you want to synchronize automatically.
    Note: Your site must be active for this function to work. If there’s no action on your site around the time the cron job runs, the function will not work.
  3. Run cron at: Set the exact hour in the day you want the cron job to run.
  4. Only sync products with status: Select the status whose imported products will be applied to automatically synchronize.
  5. Only sync products of these categories: Select the categories whose imported products will be applied to automatically synchronize.
  6. Select options to sync: Select the options you want to synchronize.
  7. Select store to sync: There must be at least one store in this field for the function to work.

 

 

 

 

Logs

The Logs section helps to record import history: There is a log section that stores import history. You can examine the logs to verify the imported product data: Time, product title, Import status (failed or successful), Shopify product ID, and WooCommerce product ID.

 

Sometimes the items can’t be imported successfully, due to unsatisfactory conditions. Our plugin will let you know the migration status, no matter they are successful or not, via messages, they are as followings:

  • Products with variants have not been entered correctly: There are invalid variations in the WooCommerce product. Normally, there are 2 common reasons – The variations of the item must not include value “Any …” (Any size, Any color,…); and the WooCommerce product has more than 100 variations  (by default, Shopify limits 100 variants per product)
  • Products with attribute count more than 3: Shopify does not allow products with more than 3 options. So if your WooCommerce products have more than 3 attributes, they can’t be imported to Shopify.
  • The product has been imported to shopify: The migration of the product is done successfully.
  • This product category has been imported to shopify: The migration of the category is done successfully.
  • This product category has been import error: There’s an error while importing the category.
  • This user has been imported to shopify: The migration of customer is done successfully.
  • This user has been import error: There’s an error while importing the customer.
  • This coupon has been imported to shopify: The migration of the coupon is done successfully.
  • This coupon has been import error: There’s an error while importing the category.
  • This order has item invalid to import to shopify: The order contains product(s) which is invalid to be imported.
  • This order has discount invalid to import to shopify: The order contains coupon code(s) which is invalid to be imported. Commonly, it could be coupon code has not been imported to Shopify (not available on Shopify).
  • This order has been import error: There’s an error while importing the order.
  • This order has been imported to shopify: The migration of the order is done successfully.
  • This shipping_zone has been imported: The migration of the shipping zone is done successfully.
  • This shipping_zone has been import error: There’s an error while importing the shipping zone.
  • API permission must have product write permission: Check again the API scopes, the product must be assigned with the ‘write_products’ permission.
  • Store setting error:
  • Import nonce error: The live time of the nonce is 24 hours. Beyond that live hours, the code will be expired.

 

 

Extra Information


Thank you for your attention!

If you have any question, please create a topic at our FORUM, we will support within 24 hours.