Editor’s Note: This post is crafted from my interview with Adam Warner, co-founder of FooPlugins and brand ambassador for the WP Valet, and Eric Hoanshelt, co-founder and CTO of the WP Valet. Adam is an internet addict and is passionate about web businesses that provide both solutions and empowerment for clients, while Eric is a migrations sorcerer and has carried out over 150 successful migrations, ranging from simple WordPress migrations to custom databases.
eCommerce Site Migrations Made Easy
Beka: I like to start things and finish them. Completing tasks and crossing them off my to-do list is what really motivates me – I need to make sure that list is full of struck-through lines of my accomplishment. My interest in eCommerce seems weird to me in light of that preference, as eCommerce sites are constantly changed, updated, and improved, and are never “complete”. In an ideal world, we could research solutions to find the best platform and build a site that never has issues. However, platforms change and some adapt faster than others. New plugins are also introduced to provide more competitive eCommerce solutions for business owners.
Why do we care about this? If you want to make sure you have the best solution for your business, your work on your eCommerce site won’t have a clean beginning and end – it’s constantly improving. Sometimes that means that you switch from one platform to another as your business needs change and grow, and sometimes it means you move to better hosting or a site maintenance plan. You can’t truly cross “Set up an eCommerce Site” off your list. However, some people leave that list item hanging because migrating between platforms or hosting providers seems like a daunting task. In this interview, we’ll cover some points to consider when migrating your site to make sure your eCommerce solution is the best that it can be.
Points to Consider for eCommerce Site Migration
Beka: What data and information can be migrated between platforms? Some people only think you can take products with you when you migrate between cart systems, or don’t understand the complexity involved in moving over order information, product images and data, and more.
Adam: Every piece of data that resides in your current WordPress install can be migrated. This can include:
- products (or any custom post type)
- plugins (and their specific settings)
- and any custom meta data associated with the above types of content
Beka: The important thing here is that information must be stored within WordPress. For example, if your customer data isn’t stored in WordPress user accounts, then moving that data will not be possible without the cooperation of the service storing that data (for example, moving customers from Cart66 Cloud, which uses it’s own customer management system – you’d need them to help with that data).
What about some trickier items, like product data? Since the way this is handled is different in many platforms, it can pose a problem for those of us migrating between cart systems.
Eric: This really depends on what your new system is. This will let you know how to store that data into the database. I always recommend that you create a product in your new system with fake data but in the format you want. Then, check out the database to see how it is all being stored and connected. From there, it’s just simply writing either a MySQL function or a PHP function to get the data moved over properly so that formatting is consistent.
Beka: When do importer plugins work well, and when is a more hands-on approach needed?
Adam: It really depends on what is meant by “importer plugins”. Importer plugins like the WordPress default importer or Tumblr importers only migrate your content. This does not include your theme files or plugins and their settings. It also doesn’t account for any custom development work that may have been done on your site.
If we’re talking about migration tools like BackupBuddy or WP Migrate DB Pro, they do a great job when you have a very straight-forward site. Straight forward would be that you do not have anything custom and you know all your plugins built with top quality code.
An important thing to keep in mind is if you’re moving to a Managed WordPress Hosting environment like WP Engine or Pressable, they have security features in place that limit the usage of certain PHP functions that are required in plugins like BackupBuddy and the like.
Beka: More specifically, what about product importers or CSV importers intended to move store information? What are their limitations?
Eric: BLAH….CSV importers cause a lot of headache! They can be life savers from time to time, but it’s all based on whether the export process will be successful or not. If the export process doesn’t properly escape commas, for example, then the import will get messed up. Also, large CSVs with thousands of products are hard to import. I would always look to get the data out by using XML instead. You can use the WordPress exporter to export the custom post type of “product” and then import them into WordPress if that is how your current cart is setup.
Really, these solutions can sometimes work well, but there are times that they don’t, and you’ll have to dig into the issue manually, and can end up having to do even more work to get everything transferred properly.
Beka: What’s commonly overlooked in a migration?
Adam: The debugging process. Unfortunately, in our work at WP Valet, we find that people assume that because their site use to work on their old hosting, it should work exactly the same on their new hosting server. This is akin to putting a brand new 2014 Ford engine in a 1973 Volkswagen Bus. It’s possible, but not without some detailed work getting things to run smoothly together.
The WordPress core software and individual plugins rely on specific server settings, server locations, and other factors that can kill a site’s functionality (or severely limit it) when moved from one server to another. These items need to be debugged by someone familiar with how to find problems and how to fix them. In other words, hoses, wires and available hood space aren’t likely to be exactly the same so inevitably you’ll will need to do some tweaking.
Beka: What are some general tools or tricks that are most helpful in a migration?
Adam: Experience is our most valuable tool. When performing site migrations, it’s important to rely on someone that has experienced the drama and stress of failed migrations, learned from them, and who have the internal processes in place to achieve repeatable successes. The experience of knowing what types of issues could arise and knowing what to do when they happen, is what has allowed us to grow our business and to create the partnerships we have with industry-leading hosts.
Another tool that we’ve relied on and have learned much from is the Database Search and Replace Script by the fine folks at interconnect/it. This tool can be your best friend or worst enemy. This script will do complete search and replaces of your WordPress database including serialized data. Serialized data has been the enemy of many do-it-yourselfers in the past, myself included.
In short, developers use serialization to store data in a more efficient manner. The data that is stored in serialized arrays relies on the text length. If you exported your database and did a simple search / replace of text of different lengths (like changing from the domain myreallyawesomesite.com to mysite.com), there’s going to be a problem. If any of the data within that site was stored in serialized arrays, you would simply lose that data.
When I said I speak from experience, here’s what I meant. Some years ago I was moving a WordPress Multisite installation that had 8 sites in total. Certainly not much for a Multisite install. However, each one of these sites had over 150 widgets, each with a custom table generated from a plugin containing dozens of rows. That’s over 1,200 widgets. Guess what happened when I did a simple search and replace without accounting for serialized data? You guessed it…PANIC as all of those 1,200+ widgets were now GONE.
Luckily, I was smart enough to have backups and was able to learn why it happened and how to do it right quickly enough to get the project completed on time.
Beka: What risk is involved and how do you mitigate it?
Adam: The risk as I indicated above, is the catastrophic loss of data. But let me phrase that in a way that we can all understand a bit more personally. Imagine you’ve spent years writing blog posts, building your site and it’s traffic (and most likely, your livelihood). Whether that’s a traditional blog or one specifically for marketing your products, communicating with your customers, tutorials, photography portfolios, etc., it’s a representative of huge chunks of your valuable time. If a migration is done incorrectly, you could lose hundreds or even thousands of pages of your website. Broken. In an instant. Poof!
Every single day we are dealing with precious data for our customers and we fully understand the risks of losing that data. Our business is built on our ability to create and adhere to processes that mitigate that risk. Before we touch anything, we run backups of the data we are going to move to a secure S3 environment and that backup remains there for 30 days after completion of the migration and of the project itself.
Migrating information between different cart systems or hosting providers can be tricky and vital aspects are frequently overlooked or go wrong. However, that doesn’t mean you should neglect to improve your business structure when possible if it can improve your bottom line. Learning from the experiences of others or getting help can greatly reduce the friction present in this process and is a valuable investment in your own sanity. For example, WP Engine recommends Eric’s company, the WP Valet, to do hosting migrations in order to ensure that the process is as smooth as possible.
Thanks so much to Eric and Adam for their help and insights!
More eCommerce Site Migration Resources
Here are some other resources you may be interested in checking out if you’re planning a migration in the near future:
- Practice eCommerce has an eCommerce Site Migrations Checklist, as well as some SEO points to bear in mind for migrations.
- Here’s more information on migrating your site using WP Valet.