When you’re a large e-commerce store pushing thousands of orders every month – the last thing you want to think about is completely migrating your money-maker to another platform. It’s a lot of work, and you’re pretty sure it will destroy sales. So you put it off. You keep putting it off until eventually, your site is broken beyond repair or your competition is gaining too much ground.
We just did it. We moved our giant online store from Magento to Shopify Plus. A lot of people were actually surprised with our decision to move to Shopify Plus. They were convinced that Shopify Plus couldn’t handle our 10,000 SKUs, our thousands of transactions, our custom widgets, etc.
They were wrong. No site migration is without its frustrations though. Hopefully this guide will help you navigate them. I’m going to lay out everything that went well, everything that went wrong, how we overcame those hurdles and why we even made the switch in the first place.
A few quick stats about us:
- We had about 10,000 SKUs at time of launch
- We process over 3,000 transactions a month
- Our site traffic is about 150,000 visits a month
Why did we switch from Magento to Shopify Plus?
Our Magento site wasn’t that old. When we started looking for a new platform – it was only about a year and a half old – and had just undergone a ton of CSS changes six months previous. The problem though, is that it still wasn’t what we needed to keep growing.
Magento wasn’t very secure
The site was barely over one year old when we got hacked, compromising our customer’s information. That was an awful email to have to send out to our list of over 150k people. It broke our hearts, and frustrated our customers.
That wasn’t entirely Magento’s fault – but it’s based on the way our Magento site was set up. All of that data, all of that information – it was all stored on our own hosting server. If one area of the website security was weak, it opened up issues with critical pieces in our backend.
Shopify solves this by hosting it entirely in their own environment. Everyone gets hacked – even Sony, but being in a more locked down environment can help protect you from small code instabilities that open your site up to malware and hackers.
Shopify maintains PCI Level 1 Compliance – the same as your bank, and the way they’ve set up their platform, customer data isn’t stored on your crappy web hosting solution’s servers – it’s stored within Shopify’s ecosystem.
Magento was infested with bugs
Again – this isn’t entirely Magento’s fault. It’s simply a byproduct of having a solution that is so dependent on outside programmers. Shopify has their own internal programmers keeping you perfectly up to date. If they find a bug, they fix it, and your site keeps moving forward without having to rely on a developer to push a patch to your website – which always ended up creating more bugs and more issues for us.
Every update from Magento cost us a few hours of developer time at a rate of $150 per hour, which is pretty cheap for Magento developers. Those updates would break things on our website which we would then have to pay to fix as well – not fun.
Our site was junk
It really wasn’t programmed well to begin with. The dev team we worked with must not have been very high on the list of good programmers. This was the source of a ton of problems. If you have the best Magento developers, and you pay them top rates, you could probably maintain a great Magento site at our size – but at a cost.
It cost way too much money to maintain it
I’m not allowed to say exactly how many thousands of dollars we spent on our Magento website every month, but it was enough that we almost felt like paying eBay and Amazon fees was a lower cost than running our own website. It should never be that way.
The worst part about it, is that we weren’t exactly paying all that money for improvements. We were paying for bug fixes that created more bugs that we then needed to pay to fix. The cycle continued and we grew frustrated with our website experience.
Shopify solves a lot of this by keeping a ton of the functionality within their hosted e-commerce solution – so you know that it pretty much always works the way it’s supposed to. You still have to worry about the actual website though (the HTML and CSS that your internal dev team adds) – and a lot can go wrong there regardless of which platform you’re on. Even on Shopify, your site is still only as good as the code that went into it.
It wasn’t marketer friendly
If I wanted to add a Facebook conversion pixel to the website, I wasn’t allowed. The dev team had the staging site set up and the git repository locked down so that there was no way for me to do this. I’m not afraid of using git, or code – but I wasn’t even allowed in there or it would “break something”.
To be fair – that’s probably a reasonable point, but there are a ton of things that I want to do as a growth marketer, and quickly adding a conversion pixel to a website is one of them so that I can assess the effectiveness of my marketing today – not in three weeks when my dev team can get around to it – and pay them for their slow work.
Shopify actually let’s me add this to my store through the admin panel. What a relief. Was that really so hard?
Apps weren’t exactly plug and play
I don’t think we encountered a single app on Magento that was truly just plug and play – one that allowed me the marketer to install it and not bother the dev team. “You want to improve your customer service experience by installing Zendesk, that will cost you 12 hours of dev time and we can have that done for you in about a month.” At least – that’s what it seemed like I was always being told for everything. It makes growing your company a very slow and expensive process.
With Shopify, I’ve run into very few apps that actually required a developer. There are definitely ones that did – and required a lot of dev time, like our custom search solution, Algolia. But, there’s a ton of stuff involved in custom search. Zopim chat? Zendesk support? Signifyd fraud protection? LuckyOrange heatmaps? Those are all things that I should be able to install in a few minutes and get my teams working on. I was able to do all of those with ease on Shopify.
People couldn’t actually checkout on our site
Everyday for about six months we were getting multiple emails of people that were unable to checkout on our Magento site. They were getting a 500 error. Our dev team looked into it, multiple times, for multiple $$, but we were never able to completely figure this out.
Thankfully we have a very loyal customer base that was willing to try checking out for several hours sometimes (crazy, right?!) and then take the time to email us with screenshots letting us know what they were experiencing.
On Shopify – the checkout is locked down pretty good by them. This helps to ensure your checkout always works. If people can’t checkout on your website, you lose money – you lose customers.
If you add all of these problems together – you can begin to see why we were looking for a new platform. OK, maybe we only needed a new website, but we figured if we were going to go through the trouble of a new website, we might as well try out a new platform that seemed to offer a solution to everything that was annoying us with our current platform. No platform is perfect – but Shopify Plus seemed to have everything we were looking for.
What was the process like?
Step 1: Evaluate the solutions available
The first thing we had to do was get on a call with Shopify and really see if they could handle everything we wanted to do. I’d encourage you to map out what you need to have on your site to be happy and successful – then ask them those questions. The rep that worked with us was incredibly helpful. If there was something that didn’t come standard with Shopify, she knew which apps would work for that and she gave a few suggestions.
Don’t just talk to Shopify though, talk to a bunch of other options. Talk to BigCommerce, DemandWare, LemonStand, Mozu, and even Magento. You need to ask them all the same questions. You need to really dig into this because once you choose a platform – you probably won’t want to change it again for a while.
Step 2: Find the right development team
I had to laugh a few times when I was working with the Shopify Plus rep. She did mention several times that many people don’t really need a programmer. This tells me that Shopify Plus still doesn’t see a ton of clients my size. They were good, however, at recommending some awesome development teams that are great at working with Shopify and their API.
We also spoke with a couple of other local firms that we had personal connections with, and ultimately, Foundry won our bid. Things that are important for you to consider are:
- Their exposure to the Shopify setup and API – this will determine how quickly they can work on your site. If they’re still learning the Shopify setup, it can take a lot longer than anyone planned.
- Their payment plan – this was a huge deciding factor for us in determining who we went with. Cost and payment terms can make a big difference on cash flow – which you still need for inventory.
- Their personalities – you gotta find someone that you’re comfortable working with, because you will spend 100’s of hours with each other, and will, at times, want to strangle each other. Find someone that you can get along with.
Step 3: Create your POC (Proof of Concept)
Don’t skip this step. You need to pay the few grand to really test this out before you go too far down the wrong path. Make sure Shopify Plus really can do everything that is absolutely vital to the success of your business. Don’t focus on style/CSS changes – this is just to make sure that the core functionality is there.
Step 4: Set reasonable goals, and make sure they’re in your SOW (Statement of Work)
We were all a bit over-confident in our abilities to work with a new platform. We were convinced that we could get the basics of the site done in 45 days, tweak the bugs and test, and have it live in three months.
In reality, it took us six months to get the site live – and that was still a push. That included 800 hours of billable dev time, and at least that same amount from all of us internally, from the product team, the marketing team, the executive team and the customer support team. We all had to be involved and spend countless hours making sure that everything was integrated correctly. We also did the Design and UX in-house, so it took even more of our time.
What are some of the problems we ran into?
Being a larger retailer comes with a few specifics that need to be addressed when switching to Shopify Plus. While we enjoyed 90 percent of the process, there was 10 percent that completely irritated us, because it meant that we had to change how we did things – and we don’t like change.
Problem 1: The importer just couldn’t handle us
We initially thought that the easiest way to transfer everything from Magento to Shopify Plus would be to use their app. It quit working halfway through the import dozens of times before we actually got it to work.
After that, we realized that it creates the URI for the product dynamically based on what the title of the product is. Since we wanted to improve the URIs anyways, we figured it would be a good idea to delete all of the products the week we planned on launching and do a fresh import (we didn’t think it was a good idea but we did it anyway – hopefully you picked up on that sarcasm).
Ultimately the CSV import was so much better for importing. The URIs ended up being cleaner, the way we wanted them and it didn’t crash the way the app did.
Problem 2: The CSV import is still not a great solution
This is really an internal problem – not a Shopify problem. Our database is outdated and when it spits out the CSV of all our products, it puts everything in a separate column. Most of this was easy to fix in Excel (we also over utilize Excel), but Shopify wants alternate product images to be in a separate row instead of a new column. Not the end of the world – but if you’re used to doing things the “old” way – it can be very frustrating to change.
Also – every time you update via the CSV import, you have to include almost every single column (and row for each image) for every product. This makes the import slower and more susceptible to overwrite something that you didn’t mean to do.
Solution: Ultimately the best solution would be to use the API and create something custom, but this is pricey and wasn’t in our budget. If you have a lot of products, you should consider working a custom solution for importing information into your budget.
Problem 3: Metafields aren’t a core part of Shopify Admin
After we get done importing the Shopify Product import CSV, we then have to import the metafields separately. We have to do this in an app though, and we aren’t very impressed with the app. It’s slow, and the only way to find a product in the app admin is by exact match of title – not SKU or Handle. We will probably try a different solution for the Metafields, but I would still love to see this as a core part of Shopify. I’d love to be able to see the metafields in the individual products admin, and have it be a part of the main Shopify import.
Solution: If you do want to see metafields in the admin – you can use this Chrome plugin call ShopifyFD. It’s spectacular. It’s also technically free, but I gave the guy some money through donation because it seriously saves me from headaches daily.
Problem 4: No DHL integration
Being able to show live shipping prices for USPS and UPS is great, but we have a ton of international customers (about 33%), and they use DHL. This isn’t a Shopify problem though – it’s apparently a DHL problem since they don’t have an API that can do that yet. At least that’s what our DHL rep told us.
Solution: There are apps that do allow you to get DHL rates in your shopping cart – unfortunately for us it would mean changing who we use for shipping and fulfilling orders. Not the end of the world – but not a project we were ready to tackle at the same time.
Since we didn’t want to change. I had to manually build out hundreds of custom shipping rates and options for different shipping zones. No way to import them, so I had to do it all by hand.
Problem 5: We already had a blog set up on WordPress
Solution: Use your dev team to make sure you keep your WordPress blog intact through the move – and stick with the blogging platform that you’re used to.
Problem 6: No social login
We wanted to have social login on our site. We installed an app called Social Login – and it worked great, except that when someone creates an account with you using the social plugin, it appends your URL to their email address, creating a new account (if they had one already). So I ended up with an account email@example.com firstname.lastname@example.org – the problem with that is that I now had two accounts. This is because of the way Shopify handles the social login.
Solution: There isn’t one that I could find. We simply turned off social login. Not a deal killer – but not the greatest news. This is something Shopify should include in their core product.
What are the tools and Shopify apps we used?
These are the tools and apps that we found to be most helpful to us. They might be good for you, they might not – but at least this gives you a starting point. You can try these tools out and then recommend some better ones to me in the comments below. Oh – and another great thing to keep in mind, is that a lot of these apps offer discounts for Shopify Plus users.
I can’t stress the importance of this tool enough. This is how we managed all of the tasks internally among the different departments – as well as critical discussions with our developers.
You can assign people tasks, add a due date, and even a due time. You can also assign subtasks because sometimes there are five things that need to happen before you complete that one big task. Asana was the lifeline that kept us all moving, on the same page, and not lost in chat messages and cluttered email inboxes.
Slack is my personal favorite chat application and that one that we used to communicate our critical site issues with our developers. It’s also a great place to share GIFs when you’re excited with the progress of your new website.
Zendesk (Shopify app)
We used to just use a shared Microsoft Outlook inbox for all of our customer service requests from the website, eBay, Amazon and more. I honestly don’t know how those incredible customer support reps kept it all organized. It was a daunting task for sure.
Now we use Zendesk, and I didn’t need to work with our dev team to set it up. It organizes everything, helps you assign people so that you don’t double up your work, and helps you find quick responses you can use for frequently asked questions.
Zopim (Shopify app)
Zopim chat integrates nicely with Zendesk – so you can create support tickets directly from your chat sessions. Having live chat was crucial to the early success of our new website. We have so many customers that are used to our old site, old navigation, old checkout flow, etc. – and we wanted to make sure that we were able to help them navigate the new site and find what they were looking for.
Back In Stock (Shopify app)
We had something rudimentary on our old site, but it didn’t work – at least that’s what our customers told us. With Back In Stock though, we’ve been getting a ton of requests for products to come back in stock. Seeing what people are excited to purchase helps us prioritize what we need to be spending our money on.
YotPo Reviews (Shopify app)
Site reviews are huge for increasing conversions. Yotpo does a great job of keeping them clean, easy to read and easy to contribute. They also have a tab that allows customers to ask questions about specific products, and get feedback from other customers that have purchased that product before. This is critical when you have nearly 10,000 SKUs and can’t possibly be a real world expert on every one of them.
Spently (Shopify app)
The stock emails for Shopify aren’t exactly the most exciting. We used Spently to brand them better and add our own personal flare to them. Our customers love the personality we put into our emails and the ease of using Spently (along with the low cost) made this app a no-brainer for our team.
Traffic Control (Shopify app)
Making sure you redirect all of your old URLs is absolutely critical to the success of your new site. I won’t go into an SEO 101 lesson for you. Traffic Control made it incredibly easy to bulk import our 301 redirects, since you can’t do that in the .htaccess file like you would for other sites.
Signifyd (Shopify app)
Shopifyd does a decent job of highlighting orders that it suspects are fraud, but if you are as big of a retailer as we are, you need something more. And, since so many of our clients are international – we were getting notified for a bunch of APO/FPO addresses.
Signifyd helped us keep better tabs and get more relevant information about every order – and they also allow you to submit questionable orders to them for guarantee. If they approve it, you pay them 4% of the sale, if they don’t approve it, you pay nothing. Pretty nice deal.
DataFeedWatch (Shopify app)
LuckyOrange: Heatmaps (Shopify app)
When you launch your new site, you need to start getting metrics on how well it’s performing. What areas are people getting stuck on, what pages are doing the best, how far are people scrolling, where are people clicking – all of that is critical to solve any unforeseen issues as soon as they arise. LuckyOrange makes this easy.
Persistent Cart (Shopify app)
People don’t want to have to add things to their cart, and then log in later and re-add them. Persistent Cart makes it so that logged in users see their cart, regardless of the device they’re in. If they created the cart on their phone, and then later went to their desktop to complete their order, the cart is still there for them.
Metafields Pro (Shopify app)
Metafields Pro is the metafields editor we’re using. I’m not the biggest fan, but I haven’t found a better one. In my opinion – Shopify needs to just add this as a core part of the Shopify Plus product.
Buy X Get 1 (Shopify app)
The stock Shopify Discounts generator is pretty bland and basic. The Buy X Get 1 app let’s us create a ton of other options for discounts and sales – which is usually a pretty big part of any big online retailer’s game plan.
Algolia (Shopify app)
Algolia is our custom search app – and we love it. We have so many products, that a facet menu is absolutely necessary so people can find exactly what they’re looking for.
Algolia solves that and so much more for a great price. We helped them work out a bunch of the kinks (you’re welcome), and they are pretty good about daily improving their product for us larger e-commerce stores.
Minifier (Shopify app)
Minifier is a great way to quickly get some optimized Image titles, image sizes, and image alt text without a ton of manual labor. It’s not the perfect way to do it – but it sure beats an image that’s too large of file size named picture1.jpg with no ALT text.
S Loyalty (Shopify app)
You should probably have a great customer loyalty and referral program on board. We’ve been very pleased with the team at S Loyalty – it offers everything we want, at the price we want, without being bogged down with a ton of unnecessary features.
All things considered, this was a very easy, smooth transition – which is saying a lot for a large retailer migrating its entire online platform to another one in only 6 months.
Hopefully this guide gives you a taste of what to expect when making the switch from Magento to Shopify Plus. If you have any questions about it – I am seriously willing and able to help – just shoot me a comment.
Oh – and a friendly full disclosure, I own a few stocks in Shopify and Zendesk. That didn’t play any bias though – because the amount I own is really worth a hill of beans. I own their stock because I like their product – not the other way around.
Also – if you’re interested in working with a stellar development company for your e-commerce store, especially if you’re moving to Shopify Plus, I highly recommend the team that built our site – The Foundry. Mention me by name, William Harris, and they should give you a better rate – and who knows, maybe they will even give me a kickback (I’m probably dreaming on that part, though). On a serious note – they kick butt.
This post is part of our contributor series. The views expressed are the author's own and not necessarily shared by TNW.