How to Migrate Woocommerce Orders like a Pro
How to move Woocommerce Orders from one to site to another?
In this guide we will break it down. For example, you recently launched a new Woocommerce site at yourdomain.com. You have not re-imported your historical orders from your old site (i.e. old.yourdomain.com) and need to do so.
Also, if you would like help with migrating orders I can do the first few migrations for free! Why? I am always looking for more examples of this painful process. If interested, email me at simon [at] sgwebpartners.com.
How to move Woocommerce Orders from site to site?
- Download the Order Export and Import plugins and take a backup
- Set Order Export Format to CSV Import
- Download CSV from Export List tab
- Import orders CSV into Google Sheets or Excel
- Import Orders from Google Sheets CSV into site #2
- Frequently Asked Questions
- VIDEO tutorial
- Get FREE help for a migration
Step 1: Download plugins and take a backup
We will be using the following paid plugins (not affiliate links):
Yes, these plugins are paid but will save a lot of time and headaches.
I also would suggest installing the Disable Emails plugin. This plugin ensures that no email notifications go out to your customers in the migration process. I have made this mistake by not utilizing this plugin like this that sent over 2,000 order notification emails to past customers. Not a good sign and not a way to revert back once it happens.
Note: I highly suggest taking a backup before exporting your orders. However, if you want to wait to take a backup until Importing your orders that is fine.
Step 2: Set Order Export Format to CSV Import
On the WordPress dashboard, hover over Woocommerce and click CSV Export.
Next, click on the “Settings” tab and set Order Export format to “CSV Import”.
Go back to the “Export” tab and ensure toggle orders (default option) is checked.
Keep all default statuses unless you have a specific periods or order statuses you are looking to export.
I usually leave all field blanks to export all orders and click export.
Step 3: Download CSV file from Export List tab
Go to the “Export list” tab and download the exported CSV file.
Step 4: Import orders from CSV file into Google Sheets or Excel
After exporting the orders CSV, open up Google Sheets (or Excel).
Import the CSV file. I replace my current sheet and then click “Import Data”.
If you are using the Order Export format of “CSV Import”, the “id” column will be exported as default. If importing historical orders, do not import the “id” column, the first column in your CSV file.
If your exported orders have “status” in Column D that are need to be updated from “on-hold” to “completed” or from “processing” to “completed”, do the following:
- Highlight Column D > click Edit > click Find and Replace.
- Find “on-hold”, replace all to “completed”.
- Find “processing”, replace all to “completed”.
After your CSV file is ready to go, go to File > Download As > Comma-separated values (.csv, current sheet).
Step 5: Import Orders from CSV file
Go to your Dashboard on your live site > Woocommerce > CSV Import Suite > click “Import Orders”.
Next, upload your CSV file and configure your options.
- Allow unknown products: If you have products or product variations that have been discontinued, check “allow unknown products”.
- Merge/update: I only do this if I do not format the dates correctly or added line items to a single order and want to update the order.
Before staring the import, make sure you have gone to Plugins > and the Disable Emails is not only installed but also activated.
Single order import
If I have 10 or 100,000 orders to import, I always import a single order to minimize any trouble in migration. For example, if I did not remove the “id” column or the Disable Emails plugin was not activated, this could cause major issues for all 5,000+ orders.
Note: after the single order has been imported, I navigate to Woocommerce > Orders > and study the single order to ensure everything migrated correctly.
All orders import
If the single order import went well, repeat the steps above and import all orders into your site.
Frequently Asked Questions
I do not use a premium host such as WP Engine, Kinsta, or Flywheel. How can I easily create a backup with a plugin?
Answer: A few plugins to use are Duplicator, BackupBuddy, or BlogVault.
How come you wouldn’t just copy the live site to the dev site? Wouldn’t all orders be migrated?
Answer: If you are developing an entirely new theme I prefer to start with a fresh WordPress install, develop the theme, and then re-import the products, customers, coupons, and then orders.
Are you supposed to import the orders or customers first?
Answer: Customers should be imported first than orders.
Do you have a preference of disabling Order Notification emails vs. the Disable Emails plugin?
Answer: There is no right or wrong answer but I prefer the Disable Emails plugin. I have made a mistake when importing orders to not disable Woo email notifications or use the Disable Emails plugin. Over 5,000 email notifications were sent to previous customers. I am still paranoid about this happening and use the Disable Emails plugin to be safe. I do this in very low traffic times (i.e. after 11pm in my time zone).
I am using Excel and the file format does not working while importing?
Answer: While exporting your CSV file in Excel, ensure that the export format is set to UTF-8.
Also, I made a Youtube video with the steps below if you are more of a visual learner.
Get FREE help for a migration
Overall, the migration process can be painful. I have done this process a lot and put in a lot of hours before everything worked correctly. Be patient and practice if you need to on different testing sites. Remember to take a backup each time you do a migration.
Any questions or comments? I would love to hear any feedback and can even help you with this process. If you give me 48 hours notice I will do the first few migrations for free. Why? I am always looking for more examples of this process and currently am developing a Woocommerce Orders migration plugin to make this process easier.