Shopify is the fastest growing eCommerce platform in the world and now hosts some 150,000 stores. That rapid growth is no accident of course; Shopify stores are fast, feature rich and usually look fantastic. The numerous advantages of the Shopify system add up to a compelling proposition for many e-commerce store owners, particularly when compared to ailing systems and stores which might be overdue for an overhaul! It shouldn’t come as a surprise then that migrating to Shopify is an intriguing proposition for many store owners.
Of course Shopify’s gain is another platforms loss: Be it Big Commerce, Spree, PrestaShop, Magento, Volusion, or any number of alternative ecommerce platforms, the relatively fresh-faced upstart is snatching away custom at a surprising rate. Since store owners are choosing to migrate to Shopify despite the complexities of the migration process, we thought we’d put together a definitive migration guide.
Lets get started though with an comprehensive overview of the steps you’ll need to take during the migration process regardless of the platform your store currently resides on.
Manual or Automatic Migration?
Almost all ecommerce platforms store information about products, orders, customers and many other things displayed on their storefronts in databases. The databases of different systems arrange and categorize that information according to their own architecture – there is no standard way to store data and no standard list of the pieces of data which are stored. While you can be pretty sure that essentials like Product Name, Product Description and Price will be stored somewhere in any ecommerce database, there is no shared rule which says where, or how!
This means that when it comes to getting data about products, orders or customers out of one system and into another, we typically need some kind of intermediary step where the arrangement and content of data on our originating system is converted into the format and content expected by our destination system. Let’s imagine we are migrating a list of products from Magento to Shopify for example: If Magento stores the information shown on a product page as: Product Name, Description, Image and Price, but Shopify stores its data as Product ID, Product Price, Product Name and Product Image, then we’ll need someone or something to re-arrange the Magento data so that Shopify can understand it. If we don’t rearrange that data, then Shopify might think that the Product Name is the Product ID, that the description is the Product Name and so on. There are many other considerations in this process, but this is a very simplified explanation of the key principle: The way data is stored in one system will almost certainly not match up with the way Shopify stores data. It requires interpretation.
This guide will cover the basics of manually migrating data from any given platform to Shopify and point to services which can provide automatic migration.
In some cases you can also migrate your old data (Products, Customers and Orders) automatically. Where this option is available, automatic migration will probably be the quickest and simplest way to migrate your core store data. However, automatic migration may not be possible for large stores with lots of complex data and custom systems and does cost a few hundred dollars, depending upon need. Note: Migrating Data is only part of the story. Read on for that, and more…
Manual Products, Orders and Customer Migrations
If you elect to migrate your data manually, you’ll probably be importing it into Shopify as a CSV file. One of the first things you’ll need to accomplish this is templates of the Shopify CSV formats which you may transpose data into. Shopify imports and exports products, customers and orders as CSV files with particular column headers, just like an excel table. If those column headers change from what Shopify is expecting then it may not be able to read the file, so it’s best to work with templates.
Getting Shopify Products, Orders and Customers CSV templates:
Lets generate a products CSV file to use as a template:
- log into your Shopify store admin and open the Products page.
Tip: If you don’t have any products yet, use the ‘Add a product’ button to add a couple. The data stored for any products you have created in your store will be in your CSV file when you export it. This will help you better understand the purpose of each column since you’ll be able to compare the product data you see in Shopify with that held in the CSV.
- If and when you’ve got some products in your store, find the Export button from your product list page (it’s a button in the very top right of the page). You should be presented with some options. Select to export All Products as a CSV for Excel, Numbers etc. Shopify will dutifully notify you that the file is being generated. This will be emailed to the email address you’ve used for your Shopify account.
- Dig out the export email from Shopify and download the linked CSV file. Save it somewhere easy to access.
Tip: Open your CSV file in a Google Docs Spreadsheet. Complex CSV files contain hidden code and sometimes Microsoft Excel or other desktop publishing applications will add even more – this can confuse Shopify when you later try to import them. Google’s Spreadsheet system saves very clean files with the minimum hidden content.
You’ll use the same or very similar processes to export your Orders and Customers templates. Once you have your desired CSV’s open in Google docs or similar, you are ready to begin transposing data from your current store.
Getting Current Store Products, Orders and Customers data:
Each non-Shopify store platform will require slightly different steps to export this data. The general rule however is that your store will export data in much the same way as Shopify: This is true of Magento, Prestashop, BigCommerce and most other popular platforms, however, some store systems like SpreeCommerce require a more convoluted process, possibly even involving programming, to get at your stored data. Here are a few specific guides for the easier systems:
Whatever the platform, you should aim to export CSV’s containing your intended Data. It’s OK if some platforms want to export a single CSV with all your product, customer, orders and other data mixed in, though of course it does make them more tricky to pick apart.
Understanding and Transposing the Data:
OK, so you’ve got your Shopify products/customers CSV file, and you’ve exported a similar file from your current platform. At this point, by opening the two files you should be able to compare the header row of them both and see the titles of each column. If you’re lucky, your Shopify CSV columns will be similar to those of your current platform. Here’s an example of the Shopify Customers CSV next to the export from a different platform.
Don’t worry that the colour, font sizes etc are a bit different – you might see that in the sheets you export but, for our purposes, it’s just fluff. What matters is the column titles, and the info beneath them. As you can see from our images, both Shopify and our example platform share First Name, Last Name, and Email fields. We’ll also find Address columns in the example platform sheet. So this is good news for us – we need to double-check the contents of each column to be absolutely sure, but we should be able to immediately transpose the email, first name and last name columns straight into the Shopify table.
We do still have to be careful though. Remember that Shopify needs to read exactly the same column titles, in exactly the same order, to be sure that it’ll interpret the data correctly. That means, for example, that to copy our email list into the Shopify CSV we should start from the first actual email address in row 2 (to exclude the Email column title) and paste that into the Shopify sheet without including any text styling, box colours etc. The golden rule is that whatever information we are bringing into the Shopify CSV, the column titles set by Shopify must remain untouched.
You don’t need to include data for every column presented in the Shopify CSV, indeed if you created a few example products or customers before exporting your Shopify CSV’s you’ll probably see that Shopify does not fill all the columns – many are there just in case, and very rarely used. At a minimum, we advise importing at least the First Name, Last Name, and Email. Addresses, Country Codes, Phone, Order totals etc are all bonuses.
You might also see that our example table also includes an INVOICEID and INVOICE NUMBER columns. We can simply ignore these; If Shopify does not provide a comparable column header then this information has no home in this particular CSV file. “But these columns must have important information in them, otherwise why would my old system store then?” I hear you ask. In this case, the INVOICEID and INVOICE NUMBER columns exemplify how different systems architect their data. Architecture in this case basically means: how and where data is stored. The creators of the system we’ve used in our example CSV decided to store invoice identifying information with their customer data, but Shopify stores that data in a completely different place: Orders, and even then, it does not directly correlate with the way Shopify associates invoices with customers.
So what do we do with orphaned data? Data which has no apparent home, like our Invoice Number and INVOICEID needs to be considered on a case by case basis. Sometimes you’ll decide you really don’t need that old information in Shopify, but sometimes it’s crucial. If the data is crucial then you might need to seek the advice of a Shopify Expert to help you figure out how best to migrate your awkward data, or a variation of it, into Shopify.
Content migrating to Shopify
Unfortunately there’s no automatic way to migrate content from other platforms into Shopify. Moving your articles, blogs and general pages needs to be handled by hand. It’s good old fashioned copy and paste all the way – but before you do that – consider these things:
- Migrating platforms is a great opportunity to refresh your content. Instead of copying your old page content directly, consider copying manually and adding some finesse, new sections, images, video’s and other media to your content as you migrate. This will increase user engagement and help your search optimisation.
- Moving your site to a new platform presents an opportunity to redesign and reorganise things. If you have re-organised your menus, you may have to create new pages, or tweak existing content to ensure it makes sense in the new navigational context.
- Don’t copy and paste directly in from Microsoft Word – it can add unintended hidden code (a lot like using Excel for your CSV’s). Instead, copy into a text editor first, then into Shopify before re-formatting within the Shopify WYSIWYG editor.
Search Optimisation Considerations:
There is a high probability that the Shopify URL’s of your newly migrated pages will not be the same as your old site. For example: any article pages in Shopify will always have /pages/ before the page name. If your About Us page is currently at www.seo-disaster.com/about-us/ it’ll probably be at www.seo-disaster.com/pages/about-us in your new Shopify store.
No big deal? Businesses have been toppled by getting this part of site migration wrong.
You see – as you add pages, create new content and grow and update your site over time your various site pages are being linked to by others, being shared on social media, being visited by search engines and being bookmarked by customers. People and search engines alike are relying on your site pages being accessible at the URL’s they have visited in the past. If you have a long established site, suddenly changing the URL structure of your pages will bottom out your search rankings in weeks; Where you might be benefiting form thousands of organic visits from customers who have found your site through google, bing or others, those visits will vanish the minute your old page URL’s return the dreaded 404 error.
For this reason it’s absolutely critical that you create things called 301 redirects to tell visitors (that includes search engines) who come to your old page url’s, where they must now go to find the equivalent new page. If a brick and mortar store moves premises, they pop a sign in the window inviting customers to visit their new location – a 301 redirect is a digital window sign, but remember you’ll need one for every URL path that has changed between the old and new site.
Fortunately, Shopify makes this easy:
1. Visit your navigation page. You’ll find it here: https://yourstore.myshopify.com/admin/links (make sure you change the text ‘yourstore’ in the link to be the name of your shopify store)
2. In the top right of this page, select the URL Redirects button. If you don’t have any redirects yet, immediately click the ‘Add a URL redirect’ button in the same location.
3. Now use the popup form to add the url path of the page in your old store, and the new path of the page for your Shopify store. In our example for the about us page, we’d enter the following in the first field: /about-us/ and this into the second: /pages/about-us/
Most ecommerce platforms come with a host of configurable settings which you’ll need to configure before launching. This is where you might set operational considerations like postage, taxes, payment gateways, system email content and more. If you’re migrating from a self-hosted system like Magento to Shopify then this bit will be a breeze for you because Shopify automatically looks after many, many hosting settings.
The simplest way to deal with your settings is to head into the settings section of your Shopify admin, and click through each page in order. Having said that, there are a few misc items which are not contained in this settings section, which you don’t want to forget. Here are a few reminders of those extras:
- Discount / Coupon codes. Often overlooked – don’t forget to migrate these from your old store to Shopify
- It’s difficult to forget this one, but you’ll need to migrate your domain name. This usually involves updating your DNS records to point your A and CNAME toward Shopify. Any web developer should be able to help you with this if you have trouble following the instructions given by Shopify – it takes a few minutes to an hour in most cases.
- Gift cards – get ’em shifted and don’t spare the horses!
Shopify hosts an abundance of documentation which can help you understand each setting you might find. Visit the general section of the settings guide and work your way through them using the menu on the left.
A word on incompatible settings:
In some cases, Shopify might do things a bit differently from your old ecommerce system and this might prevent you from reproducing the exact processes and business systems you had been using previously. One of the most common hangups when migrating to Shopify is postage! Shopify allows you to set postage pricing by Cart Weight and Cart Value. You can not set postage per product or product group, and can not modify postage rates or set discounts depending upon user groups. These are features which some platforms do indeed have, but Shopify does not. Systemic limitations like this are not unique to Shopify of course – all ecommerce platforms have preferred methods for dealing with things like this – the trick is to work with them creatively.
We would encourage you to be pragmatic in these instances. Look upon system limitations like this as an opportunity to re-work your processes a little but remember that, in most cases, if you really are in a fix and absolutely have to have a system work the way it did in your old store, the abundance of Shopify apps can often present a solution.
Specific data migration guides
That’s it for now, but we’re working on guides to the specific data migration stage (getting those Customer, Product and Order details over to Shopify) and will add them as they are completed. If you’re a Shopify developer with a recent experience of manual data migration from another platform to Shopify then drop us an email or tweet @shopifyrvw