The time has almost come. After June 2020, there will no longer be any quality fixes or security patches provided for Magento 1.
While you will still technically be able to use Magento 1 after support has ended, there won’t be any new features released and, most importantly, it will be much less secure. For this reason, Magento 1 users should strongly consider joining the ~57,000 online stores that are currently using Magento 2.
Of course, you need to be careful when you’re migrating your site. Otherwise, you run the risk of experiencing lengthy downtime, broken links and other unfortunate errors that are sure to frustrate your customers and tarnish your reputation.
In this guide, we’ll go over the steps you should take to ensure your migration goes smoothly.
1. Understand the Migration Process
Before you get knee-deep in your Magento migration, you should take some time to learn how this all works. This will help you avoid mistakes and delays later on in the process.
Magento provides a command-line interface, the Data Migration Tool, for transferring data from Magento 1 to Magento 2. The Data Migration Tool is used to verify that the tables and fields in databases are consistent, track the transfer process and run verification tests.
There are three modes for transferring data with the Data Migration Tool, which are run in the following order:
Settings: Migrates the system configuration and website settings.
Data: Migrates database assets.
Delta: Migrates incremental changes.
Within each mode, there are a series of steps which represent the different types of data that are being migrated.
And within each step, there are three stages that are used to ensure that data is successfully migrated:
Integrity Check: Compares the data (table field names, types, etc.) in Magento 1 and Magento 2 to verify compatibility.
Data Transfer: Migrates data from Magento 1 to Magento 2.
Volume Check: Compares the number of records between tables in Magento 1 and Magento 2 to confirm that they match, thus verifying that the transfer was successful.
2. Consider an Upgrade
Migrating from Magento 1 to Magento 2 is a big change. And since you’re making big changes anyway, it’s the perfect time to evaluate whether now is the right time to upgrade from Magento Open Source to Magento Commerce, or from the on-premises Magento Commerce (EE) to the cloud-based Magento Commerce (ECE).
But if you’re not happy with all the third-party solutions that are needed to make Magento Open Source fully functional, the feature-rich Magento Commerce is well worth a look. Magento Commerce’s extra features include business intelligence dashboards, customer loyalty tools (reward points, wish lists, etc.) and content staging/preview — and with the cloud-based version, you get built-in hosting as well.
3. Review Your Magento 1 Extensions
You’ve likely installed some extensions on your Magento 1 store in order to improve its appearance and expand its functionality.
Review all the extensions that you have already. How many do you want to keep? If there are any you don’t need anymore, deciding to get rid of them now will save some time during migration.
Of the Magento 1 extensions you want to keep, how many have a Magento 2 version available in the Magento Marketplace? You’ll need to find an alternative for any extension that doesn’t have a Magento 2 version.
You should also decide which database assets from your extensions you want to carry over to Magento 2. Again, removing this outdated data will make your migration more efficient. In fact, you should remove all outdated data from your Magento 1 store before you migrate for this reason.
4. Install Magento 2 and the Data Migration Tool
The next step is to install Magento 2 and the Data Migration Tool on a system that meets Magento requirements:
Operating System: Must be a Linux x86-64 distribution such as Ubuntu or Debian (Magento installation is not supported on Windows or Mac operating systems)
Memory: At least 2 GB of RAM is recommended
Composer: This PHP package manager is used to install Magento components
Web Servers: Apache 2.4 (also, the Apache mod_rewrite and mod_version modules must be enabled) and nginx 1.x
Database: Your options include MySQL 5.6, 5.7, NDB Cluster 7.4; MariaDB 10.0, 10.1, 10.2 and Percona 5.7
SSL: A valid security certificate is required (self-signed certificates won’t work)
Other System Tools: bash, gzip, lsof, nice, sed, tar
5. Do a Test Run
Measure twice, cut once.
That age-old adage has saved countless DIY enthusiasts from wasting time and materials on having to go back and fix mistakes.
Similarly, you would be wise to try the migration process before you actually go through with it. That way, you’ll be able to figure out how to fix any issues that pop up without it extending your downtime.
In the remaining steps below, we’ll review how to complete your Magento migration. But before you do this, you should copy your Magento 1 store to a staging server and migrate the copy to Magento 2 to test the process out. You should make sure you’ve backed up all your data at this point as well.
6. Use the Data Migration Tool
First, open the necessary ports in your firewall so that the Data Migration Tool has network access to the Magento 1 and Magento 2 databases. You should also stop all activities in the Magento 1 Admin Panel, except for activities associated with order management (shipping, invoices, etc.).
With those two conditions met, you can now use the Data Migration Tool to transfer your settings and data. Note, if there’s any Magento 1 extension data you want to transfer, you’ll need to have already installed the Magento 2 version of the extension.
7. Migrate Data Manually
The Data Migration Tool won’t handle everything for you. There are four types of data that need to be migrated manually:
Admin user accounts
Access control lists
Media files can be copied directly from the (root)/media folder in Magento 1 to the (root)/pub/media folder in Magento 2. But don’t copy over the .htaccess files from the Magento 1 media folder — the Magento 2 media folder has its own .htaccess files, which should not be overwritten.
8. Go Live!
Once your Magento 2 site is updated with all the settings, data and media from your Magento 1 site, you’ll be able to make the switch for your users:
In Magento 1, activate Maintenance Mode — this will kick off a period of downtime.
In the Data Migration Tool command window, press CTRL + C to stop incremental updates.