How to Migrate WooCommerce Store from One Site to Another?
WooCommerce is one of the most popular online store plugins for WordPress site. There are more than 5 million active users are using this plugin on their site. Recently, we want to migrate one of our WooCommerce store from a main site to a subdomain. Woops!!! It was shocking to find WooCommerce does not offer any simple solution to migrate your online store. You have to follow a lengthy process or reuse the original database. In this article, we will explain how to migrate WooCommerce store from one site another WordPress installation. You can follow this to move your store to a subdomain or a new domain.
Backup All Your Content
As the process involves dealing with different types of data, first step is to backup your database and content. If your hosting company offers a manual backup option like SiteGround, create one so that you can restore if something goes wrong.
In addition, you can download all customer date from WordPress admin panel.
- Go to “WooCommerce > Customers” section.
- Click on the “Download” button to export all existing customer data.
You can keep this only for offline reference as there is no possibility to upload the customer data from the frontend.
How to Migrate WooCommerce Store?
The migration process is lengthy and time-consuming depending on your store data volume. You have to export and import the following data from your old site to new domain.
- Plugin settings – manual process
- Orders, coupons and subscriptions
In addition, you may need to manually change the file path for downloadable files as the permission may not work on new domain.
Step #1 – Setting Up New Site
Before downloading content from your old site, make sure you have setup WordPress on new site. Your new site could be a subdomain or a new domain with different site address.
After setting up WordPress, install WooCommerce and activate the plugin. Make sure the plugin version is same on your old and new sites to avoid issues during importing. Unfortunately, there are no options to export all plugin settings from old site. You have to manually map the settings from old site to new site.
Step #2 – Install Import & Export Plugins in Both Sites
The process needs you to install 3 plugins on both old and new sites.
- Import Export WordPress Users
- Order Export & Order Import for WooCommerce
- Product Import Export for WooCommerce
For migrating products, orders, coupon and other data, you can also use the default WordPress Importer feature. In this article, we will explain the process with the above three plugins as it is easier. However, we will touch upon WordPress Importer later in this article.
- Go to “Plugins > Add New” section.
- Search “Import Export WordPress Users”, “Order Export & Order Import for WooCommerce” and “Product Import Export for WooCommerce” plugins.
- Install and activate the plugins.
Remember, you have to install all these three plugins on both old and new sites. Using these plugins, you can export data from old site and import on your new site.
Step #3 – Export and Import Customers
Follow the below instructions to export customer data from old site.
- Go to “WooCommerce > Customer Import Export” section of your old site.
- Under “User/Customer Export” section, select the “User Roles” as “Customer”. Leave the “Offset” as 0 and “Limit” as unlimited.
- Under “Columns”, select all the fields for downloading.
- Export all customer data in a CSV file.
Now you have all customer data that you can upload in your new site.
- Login to your new site’s admin panel and navigate to “WooCommerce > Customer Import Export” section.
- Go to “User/Customer Import” tab and choose the customer data file you have exported above.
- Click on “Upload file and import” button.
- The process may take some time depending on the number of users.
- You can find the status of the import for each user.
- Wait till the time all users are imported successfully into your new site’s database.
- The plugin will show a success message after finishing import.
Step #4 – Export and Import Orders
Follow the below instructions to export and import order and coupon data.
- Go to “WooCommerce > Order Im-Ex” section on your old site.
- Leave the “Offset” and “Limit” fields as it is and click on “Export Orders” button.
- Now that you have all order data in a CSV file, go to new site’s “WooCommerce > Order Im-Ex” section and upload the file.
- The process will take some time depending up on the number of orders.
- You can view the import status of each order and wait till the time all orders are successfully imported in your new site’s database.
Similarly, you can export and import coupons and subscription data from old site to new site.
Step #5 – Export and Import Product Data
Follow the below instructions to import and export product data from old site to new site.
- Go to “Products > Product Im-Ex” or “WooCommerce > Product Import-Export” section.
- Under “Product Export” tab, leave “Offset” and “Limit” fields as it is and select all the fields under “Columns” section.
- Click on “Export Products” button to download all your product data in a CSV file.
- Now that you have product data, you can import the same on your new site by going to “Products > Product Im-Ex” menu.
- Go to “Product Import” tab and import your product data file.
- Wait for the all the product data to be imported to your new site’s database.
Step #6 – Verify New Store Setup
Open your WordPress site and check all functions are working properly on the new store. Test the below actions as a basic checklist.
- Login and register a new customer.
- Add item to card and test the checkout process.
- Do the dummy purchase or download to make sure it works well.
- Test the new order and other emails are triggered properly as per your template settings.
- If you have downloadable products, most probably downloading files will not work on new site’s store. In such a case, you need to manually edit the products to update downloadable file path.
If everything works fine then you are ready with your new WooCommerce store.
Using WordPress Importer
The above plugins use import function of the default WordPress Importer. Therefore, in the above process, except user import/export, you can use the default WordPress Importer feature for orders, products and other data. If you prefer to use WordPress Importer then follow the below instructions.
- Go to “Tools > Export” section and download the data from your old store. You have to download each data like products, variations, orders, refund and coupons separately.
- On your new store, go to “Tools > Import” section and click on the “Install Now” link under “WordPress” option.
- This will install the WordPress Importer. Click on the “Run Importer” to go to the “Tools > Import” section.
- On the import section you can import product, orders and coupon data files.
WordPress also has options for importing products and tax rates from CSV file.
Alternate Method to Consider
As you see the process is so lengthy for migrating the entire store, there is another tricky way to handle this. It is to download your entire database and import on the new site. After importing, you can delete the unnecessary stuffs like posts and pages before making the store live.
- Login to you hosting account and open MySQL or phpMyAdmin or Backup option. Basically, you need to download the entire database which can be done using any of these apps.
- After downloading the database, create the same database name for your new site and import the old database.
- Go to phpMyAdmin app and delete unnecessary tables from the database. Alternatively, you can login to your admin database and delete the content. For example, go to “Posts > All Posts” and bulk delete the posts on your site.
This method works when you have store on different hosting account, so that the same DB name can be used on the new site. Otherwise, you can’t use the same DB name for two sites under same hosting account. You may need to change the DB name in the imported SQL file and then upload on your new site with the modified DB name. In addition, you need to manually change the DB settings in wp-config.php file on your new site.