Hi Alan,
Welcome to Shopify! I’m an app developer and one of our apps is the Ablestar WooCommerce Importer. Over 10,000 stores have used the app to move data to Shopify so while I can’t answer all your questions there are a themes we’ve seen over the years that might be helpful.
You’ll probably need to move your data over more than once
In the time between when you first copy products or orders to Shopify and when you make the final switch, the data on WooCommerce will have changed and you’ll need to incrementally update what you have in Shopify. However you choose to bring the data over, keep notes so you can easily repeat the steps and make sure you don’t overwrite data that’s already been brought over to Shopify.
A common workflow we’ll see is:
- Copy over the product data to Shopify and edit them to be sure they’re looking correct
- Migrate the orders/customers next, so the historical orders can be linked to specific products in Shopify
- As you’re getting the theme and integrations set up on the Shopify side, you’ll have new products and orders in WooCommerce. Do one or more incremental updates (not overwriting the products you’ve already edited in Shopify) of this data
- Launch your Shopify store (yay!)
- Bring over any final orders that might have been placed between the last incremental update and the launch
Some data won’t transfer over exactly
WooCommerce is very customizable so it’s possible that you have a WooCommerce plugin that stores some data that Shopify doesn’t support. Even if you’re just using a plain WooCommerce installation, there’s some product fields like ‘short description’ that Shopify doesn’t have (although they could be stored in a metafield). Also, if your product descriptions have links to URLs or images, make sure those will still be accessible when you move your domain to Shopify.
With our app, after you import products, we also provide a CSV file of you WooCommerce data along with the corresponding product IDs in Shopify. This allows you to do a spreadsheet edit with our Bulk Product Editor app to selectively update fields that didn’t come through as expected.
Phone numbers and emails in orders
Shopify is also more strict when it comes to validating data. When you’re importing orders for example, WooCommerce will accept invalid phone numbers, or emails from domains that don’t exist, but Shopify will reject those. If you still need that information, one option is to import it into the order notes.
Related to that, if you have a number of invalid emails a tempting solution is just to replace them with an email address to your store, like admin@mystore.com. This will allow them to be imported to Shopify but since they all have the same email, Shopify will create a single customer for all these orders. That can affect your reporting.
A work around, if you use Google for your email, is to set the invalid emails to something like admin+1234@mystore.com, where 1234 is the order number. Google will ignore everything from the plus sign onwards, but they’ll still have a unique email address and customer in Shopify.
Historical order data might not match exactly
You can migrate the orders but it’s more to be able to look up old orders than to get exact historical reporting. WooCommerce is more lenient that Shopify and lets you have orders where the math just doesn’t work (eg, the line items don’t add up to the subtotal). It depends a lot on your WooCommerce setup but it might not be possible to match the numbers up exactly.
Be careful when importing orders (!)
Importing orders will trigger other apps that handle orders which can have unintended side-effects. For example, if you’ve hooked up an app to Shopify that sends new orders to a fulfillment service (like ShipStation), it might see the migrated orders being created in Shopify and start trying to fulfill old orders. Make sure these integrations are disabled before migrating.
Be especially careful for this if you’re doing one final incremental order migration after you’ve launched your Shopify store.
When you migrate orders I’d recommend starting with a few test orders that were placed with an email address you have access to. Check the email, or any other 3rd-party fulfillment apps after you migrate the order to make sure there’s nothing unexpected.
This isn’t as important but by default Shopify will also send the store owner an email when an order is created. You can disable these notifications in the Shopify admin and that will prevent you from receiving hundreds of emails when you migrate the orders.
Making the DNS switch
When you actually make the switch to Shopify you need to update your DNS records to point from your WooCommerce store to Shopify. This change will take a while to spread through the internet because different servers will cache the values for your domains.
The DNS records have a field called TTL which gives guidance on how long a server should cache DNS records. About 24 hours before you move your domain, you can lower your TTL to a value like 300 (this is in seconds, so 5 minutes). This will allow your changes to propagate faster when you actually make them. Once everything’s set up and you’re happily on Shopify you can increase it again.
This is optional but might help decrease downtime during the switch.
SEO Redirects
On the SEO side, since the URL structure is different in Shopify, you’ll need to create redirects in Shopify for your old WooCommerce URLs. For example: redirecting /product/t-shirt to /products/t-shirt (product becomes plural in Shopify). Depending on your setup, you might also need to create redirects for URLs that contain the category in them. Unfortunately Shopify doesn’t support wildcard redirects so you’ll either need to use Excel to create the possible permutations (and upload them in the Shopify admin) or use a 3rd-party app (we have a free integration with our Link Manager app to do this)
Keep access to your WooCommerce store
Before launch your store on Shopify make sure that you can access your WooCommerce admin from an alternate URL. This could be a subdomain of your store (Eg, oldwoocommerce.mystore.com). This way, when you point your domain to Shopify, you can easily log into WooCommerce to check data.
Depending on the cost, I’d keep the WooCommerce hosting up for several months at least and have a way to retrieve the data afterwards if you really need to.
Hopefully some stuff in here helps when it comes to the data migration from WooCommerce. Happy to answer any of questions in more detail,
Daniel