The word "migration" often conjures up images of birds leaving one environment that no longer sustains them and flocking toward another that offers more of what they need. You can think of ecommerce data migration in essentially the same way: moving data from one platform that is no longer suitable to another that meets your needs better. Maybe you've outgrown your commerce platform, or maybe the platform is shutting down and is not supported anymore. For whatever reason, your current platform is no longer an option and you need to move to a new one.
What exactly is a migration?
It's data that is moving over to a new platform. You have a whole bunch of products, orders, users, blog posts, and other stuff inside your site, and it all has to go to whatever your new platform is. You need to do this in order to avoid having to tell all your customers to create a new account because you no longer have all their old info.
Why do some people get mixed up between replatforming and migration?
That's generally because you usually have to do both of them at the same time. If you're replatforming, you have to get the data over, so migration is part of that. That makes some people think they are one and the same. But the truth is that replatforming involves making a design and setting up all your customizations and so on. It's an entirely separate project.
Why would migration not be straightforward?
The problem is that the data isn't always the same between the two systems, even if they're both ecommerce. How are the line items stored, for instance? How do coupons get added? Do you have the same discounts in the new system and the old system? It's all these little pieces that need to match up. Maybe in the original system the SKUs don't have to be unique, but in the new system they do…so what happens when you move two of the same SKUs into the new system and you get an error? How do you handle that?
To do a migration properly, you need some knowledge of the old system, some knowledge of the new system, and some knowledge of how the business is run. Let's say you come across some piece of data that can't quite be moved over. You as a business owner can explain how you use that particular data, and the company doing the migration can say here is similar functionality in the new system that will serve your needs. (Or maybe the new system has a different way of doing things, so the old way shouldn't be used anymore.)
What would go into creating a migration path?
It's a little different for every platform, but essentially you take all the fields in the data (i.e. order number and so on) and match them to appropriate fields in the other system. But you can't literally just move it over; in between, you have to do transformations. So if you have a "shoe" category in one system and you want to match it up with the "shoe" category in the other system, you need the category ID for "shoes" in order to match them up.
Sometimes that can be difficult if not everything can be pulled out of a system. Maybe it's a SaaS platform that only exports so much of the data, for instance, so you have to do a bunch more manual work to get everything moved over.
Do you always have to migrate? Can't you just integrate a legacy system with a new platform?
That depends. If it's not supported, you usually have to move away from it. If you've just outgrown it, maybe you can simply add new functionality. You might be able to use a different piece to add new stuff, but still use the old stuff to manage stock and accounting on the back end, for instance. In that case, you're not doing a data migration; you're just integrating and passing data between the two systems. Then you're in a situation where you will have to keep syncing stuff up on an ongoing basis. Whereas with a data migration, you do it a finite number of times, then shut down the legacy system.
If you utilize various 3rd party platforms and/or legacy systems within your commerce ecosystem and you are unsure of how they can all work together, if at all, check out our webinar on "Understanding Digital Commerce Architecture for Better Platform Selection".
What does the Drupal migration do: match it to a Drupal site, or match it to Drupal Commerce?
Both. It matches to a Drupal site and then there are specifics for Drupal Commerce as well. It takes that input data, does a bunch of transformations, and puts it into Drupal. We have a bunch of existing transformations and mappings, but we can also build new ones for custom sites or platforms we don't currently support. Right now, we support Drupal Commerce 1, Ubercart, Magento 1 and 2, Shopify, and Woocommerce.