Lessons Learned Migrating from Magento to Shopify, Part 1
Learn about product migration and management along with key catalog features important for a smooth migration.
When I first broke into the eCommerce world in the early 2000’s, Shopify and Etsy were platforms I looked to for inspiration when trying to build my own marketplace for independent boutiques and designers. I probably have a few old stores with 10 years of dust on them somewhere. I even got the chance to talk with Robert Katlin (founder of Etsy) at a Techcrunch Disrupt conference to pick his brain about eCommerce and marketplaces.
Seeing these two platforms continuing to thrive and evolve is pretty amazing…12+ years later.
And the craziest thing? The Etsy UX that you see today is not that much different than it was 10 years ago. Obviously they’ve made continual improvements along the way but they’ve never gone through a complete redesign overhaul (that I’m aware of at least). Amazon is another example of this continual improvement vs full overhauls. Heck – look at Craigslist!
The point I’m making is – I think we’re well past the time where full (expensive) redesigns, alone, are going to make a significant impact (def. 2-3x ROI) on the bottom line. Stability, agility, efficiency are king when it comes to measuring the bottom line.
Bonus: Read my redesign vs replatform ROI analysis if you’re in need for some hands on # crunching.
You might be thinking – what the heck does this have to do with migrating from Magento to Shopify? I’m not sure yet..I’m just typing words 🙂 .
During my 5 years working at Blue Acorn, we worked pretty much exclusively on Magento Enterprise. I experienced some amazing rebuild/migration success stories while also taking my fair share of bruises along the way. Unexpected “things” always come up during new site builds.
I can point to one common trait among the successful launches: alignment across entire teams (client and agency) on everything from UX to integrations to how the new site will support customer acquisition tactics. When there was toxic friction or political battles then this led to problems. You’re probably saying “No sh!t, Brad”. But honestly – don’t take this for granted. IT needs to support innovation and vice versa. Companies that do this well will outperform their peers.
The last couple of years I’ve been back in the Shopify world (read other Shopify how-to’s here) with the stampede of Magento migrators moving to Shopify/+.
So I thought I’d share some of my in-the-weeds learning lessons for those that are considering or in the middle of making the transition now. Out of everything I’ve experienced, I think the biggest difference is catalog architecture. If you have a large catalog then this will require some critical thinking.
And I will say – new features (with growing automation tools) roll out extremely fast on Shopify. It’s pretty amazing.
We even have an Elevar client that is doing north of $10+mill/year with less than 5 employees. No lie.
A few notes:
- This is NOT a Magento bashing/”Shopify is the best” platform post. I’m still a fan of Magento for the right use case.
- I don’t know everything there is to know about Shopify so I have blind spots. Send me additions/edits and I’ll add to this post.
- Yes, I understand you can technically do everything through the API. Same can be said with (most of) Magento. Sometimes life can’t wait for API integrations though.
- My brain got tired writing this so I’ve decided to break up into a few posts. This is part 1.
OK – in this first post I’ll be covering:
- Magento to Shopify Product Migration
- Collections vs Categories
- Tags vs Attributes
- Ongoing Product Management (i.e. imports, updates)
- Order Integration Tools
- Shopify “Apps” vs Magento Plugins
- Product Feeds
- Managing 301 Redirects
Shopify SEO Guide
Read part 2 on our Shopify SEO learning lessons.
1. Magento to Shopify Product Migration
The first thing you’ll discover is – the Shopify product architecture is really FLAT. Not in a bad way. Just in a very confusing “why don’t you have configurable products” way. Once you get over that then you’ll start to settle in as it can provide more flexibility.
There’s no such thing as importing different files for products, attributes, categories (well, you can’t import categories at all from the admin in Shopify), etc. Everything is done in a single CSV, per row.
I’m going to ignore product catalogs that are “simple” product types only and calling BS on any automated tool that says they can migrate your products from Magento to Shopify without any manual intervention or crazy issues. You’ve been warned.
- uRapidflow doesn’t exist in Shopify world 😢
- The import “key” to Shopify products is the url_key, not SKU. Translation: when importing product associations, you don’t do through a parent config SKU, you do this through a custom url_key.
- Configurable products: Shopify does not have parent aka configurable products that act as a way to associate siblings. All products in Shopify are saleable SKUs. Once you’ve created your first base product SKU then you add additional children through variants on that same first product.
- Pricing: Are you really old school Magento where you manage simple SKU pricing by +/- difference from your parent configurable (I feel sorry for you if so)? If you are then these need to be translated to actual prices per simple SKU.
- Images: 50% of Magento sites I worked on had images stored on configurable products where the other 50% were on the simple products. Hopefully yours were on the simple product because this will make your life a lot easier when importing to Shopify since the import file is flat. Translation: each image for your simple product needs to go on a single row. Additionally, each alternate image goes on it’s own row as well.
- Super configurable attributes: these are called options in Shopify. No, not those custom options that you’re thinking about on Magento. Options. The product.configurable_parent_sku field from uRapidflow will be your best friend for this. Without making this a full article on product migration, you’ll need to identify your attributes from Magento that are to act as your “options” in Shopify and move these into the options columns in the Shopify import instead of tags (WTF are tags? Read #3 below!). You’ll need to watch out for the ordering of these options in bulk. For example if you sell shirts and pants that both have color and size as super configurable attributes in Magento, and color is the first selection for shirts but the second selection for pants, then you’re going to need to do some Excel or DB wizardry to manage this. Otherwise if you just mass associate the color column as option # 1 in your Shopify import then color will now be first for pants as well.
- Last but not least is the whole sort ordering of your first import into Shopify. If you have 10 sibling products being imported then Shopify will take the name, url, description, etc, from the first product out of the 10. If you’re like many Magento stores then it’s highly likely your invisible simple SKUs have minimal product detail data and all of your SEO friendly data lives on the configurable SKU…..which won’t exist in Shopify. So getting your SEO friendly data from your configurable to your first simple is very important.
Now if you are using a PIM and feeding all of your product data from the PIM to Shopify then hopefully this process won’t be as painful. But, you’ll still want to know these foundational differences and do this dirty work early in the project to prevent delays when trying to QA products across different channels (e.g. Shopify, Amazon, etc).
2. Collections vs Categories
Remember when I said the product architecture is flat? Well that is the same thing for categories. Category > Sub-Category > Sub-Sub Category does not exist on Shopify.
Category in Magento = Collection in Shopify.
There are a ton of posts stating how frustrating this is for SEO, navigation, etc. But I have come to really like this because it forces you to use tags (again, see # 3 below) in an SEO and UX friendly manner. The benefit to me is that your ability to really stretch your long tail SEO potential without a ton of work grows exponentially.
Example: Let’s say you sell dresses that come in a variety of colors and styles. This is ripe for long tail SEO:
In the “Magento” way, you would need to either:
- Create multiple layers of sub-categories to target this type of search query
- Properly implement a 3rd party app like Amasty Layered Nav Pro or customize your filters so they aren’t IDs (e.g. color=23) after filtering.
- Properly implement Magento 2 (I’ve seen a lot of different variations on Magento 2).
With Shopify, you can achieve this long tail search heaven much easier through product tags (aka attributes in Magento). Here’s an example that doesn’t have any customization to modify the description:
The canonical URL is set to this URL as well.
There are some SEO quirks that you’ll need to consider like how to handle pagination on category/search pages (canonicals are set to ?page=2), title & H1s, etc but the potential to stretch your long tail is still there with the filtered navigation.
3. Tags vs Attributes (oh and Metafields)
Tags = Attributes.
Here are interesting things I learned about tags:
- Tags can be internal or external facing tags (translation to Magento: attribute is or is not visible on frontend). Tag parents (like “Size”) are magically created by your tagging like: “Size_Large” and “Size_Small” where everything before the _ is the attribute name. Otherwise if you just tag “Large” and “Small” then these may not appear in layered navigation filters.
- Depending on your theme, you may need to duplicate your options (i.e. configurable attributes) as their own tags in order for them to appear as filters on collection and search pages. Power Tools is an App that I’ve found to be really helpful…especially since it automates the creation of options as filterable tags :). If you have a decent size catalog then you’ll probably want to use this app to help make the cleanup process go faster.
- Tags can help drive dynamic collection assignment.
You’ll likely spend time learning about the close cousin to tags – metafields. These are basically custom data storage objects that you can use to extend any data type you’d like (e.g. products, customers, etc). One place this really came into play was managing price differences between Shopify and Amazon/eBay channels. You can use metafields to store different prices per SKU if your product sync is initiating from Shopify (instead of a multi-channel ERP).
4. Ongoing Product Management
I repeat – there is no such thing as uRapidflow in Shopify 😢. This is really painful if you’ve been used to uRapidflow to quickly make changes/updates to your product data.
I’ve found the native import/export in Shopify more useful than the native tool in Magento but the downside is that you have to import your full product data. Translation – you can’t import 2-3 columns of data at a time.
This is where using the admin or 3rd party tools kick in. If you’ve tagged your products well then you can quickly filter products in the admin and make changes in bulk straight within the product grid.
Power Tools is once again a tool that has been very helpful to manage updates in bulk.
The other big difference you’ll notice when managing “configurable” products (still using Magento terminology for ya) is you can do all of your changes pretty much within the same product UI. You don’t have to bounce between different products.
5. Integration Tools
This is where the Shopify API can be really helpful. My subjective experience is creating an integration layer on Shopify is much less labor intensive to Magento. This could be due to the flat architecture and well documented APIs.
But, if you are a power user of Xtento in Magento then here are a few apps I’ve found useful:
- EZ Exporter by Highview Apps: this is probably the closest app to Xtento for managing order exports. You can do most of the manipulation and calculated fields etc within the admin similar to Xtento and configure a schedule to export to an FTP location. This is a good app if you batch your order exports vs real-time processing.
- UpTracker and Massfulfill for shipping imports if you don’t have a multi-channel ERP/software to manage this for you. Neither of these match the features and consistency of Xtento’s shipping import in my experience but they are the best that I’ve found.
- StockSync for scheduling regular inventory or product updates.
One random thing I’ve noticed for most integration apps – you can’t schedule like you might be used to in Magento with cron expressions. You’re forced to run with specific increments (i.e. hourly, daily, etc).
Alternatively implementing GTM’s dataLayer on your own instead of using the built-in Google Analytics setting is completely doable as well.
I’ve used the new native Enhanced eCommerce in Magento 2 and imported the sample GTM container provided – but it falls short of what is really needed. Shopify isn’t 100% either (it would be nice to get more merchandising list data by collection) but man it’s nice to just plug and play.
Implementing order success conversion tracking is also simple and painless within the admin if you prefer the non-GTM route as well.
In short – no need to worry about crazy complexity when implementing digital marketing tags like Doubleclick, Criteo, etc.
7. Shopify Apps vs Magento Plugins
One of the biggest selling points of Shopify is the hosting and support nightmares are over. That and there are a plethora of apps that can be installed in seconds and you’re ready to go.
Both are true. It really is amazing at how simple it is for a non-technical user to install and configure a plugin. No lie. But be wary of low quality apps. Since you don’t have hardware to host your site and all of your apps on your own, you are left to trust the infrastructure of the app provider.
Yes – the app providers (see examples from integrations above) are actually hosting your app and integration. So if they have issues, you have issues.
8. Product Feeds
If you have a catalog of simple product SKUs only then the native Google Shopping feed within Shopify should suffice. Otherwise if you have a more complex product setup then I recommend using an app like DataFeedWatch or Feedonomics.
Be sure you really focus on your product quality during migration to ensure no hiccups at launch with your new feeds. You’ll notice that all of your product IDs are automatically tagged with a shopify_id as well. I suggest trying to keep your SKU as your product ID in your feed (vs this internal Shopify product ID) so you can perform quicker analysis matching up shopping paid spend per ID to Google Analytics conversion data.
Also, if you are a paid search power user and using features like custom labels to help extend product dimensions for analysis then I’ve found this pretty easy to do with DataFeedWatch as well.
9. Managing 301 Redirects
This can all be managed within the Shopify admin. I recommend installing this Traffic Control app which allows for easy importing in bulk CSVs as well.
If you’re handy in Excel then you should be able to make quick work matching your old URLs from Magento to the new URLs in Shopify, including for simple/configs as well. You can also work in batches if you’re managing internally vs doing everything at once and handing off for one final import before launch.
That’s it for this first post. I’d love to hear from your experience so feel free to leave your comments/or suggestions to add to this.
Sign up for our email to be notified of part 2.