Magento Development

A Simple Step By Step Guide for Migrating from Magento 1 to Magento 2

Magento 1 is slowly moving into oblivion and Magento 2 is taking its place. With Magento team having officially announced ending support for Magento 1 from June of 2020, time is running out fast for businesses especially retailers that are still persisting with Magento 1. They have only two options, either to be on their own with anything their eCommerce store’s website may require after June 2020 or migrate their website to Magento 2, the more advanced version of Magento. Going with the latter option is in the best interest of your business.

Migrating your site from Magento 1 to Magento 2 may seem to be a daunting task for you. But there is nothing to worry as we are here to help in making this transition easier for you. Through some simple steps, we will guide you on how to migrate from Magento 1 to 2 in a smooth and easy manner.

The Background

According to BuiltWith, a leading business intelligence tool providing company, Magento is currently powering 28 percent of internet websites with 16 percent of the top websites using it as their favored eCommerce platform.

Though Magento 1 was flexible and popular, its slow performance gave rise to many issues including the poor page load speed. For this reason, it was frequently criticized by both magento development experts and critics. To resolve these issues, Magento team developed the Magento 2 version that comes with new features, changes and improvisations, including new marketplace, increased speed, flexible architecture, advanced content staging, elastic search and responsive admin panel.

Though Magento 1 ceased to exist from November of 2018, Magento will continue to provide support for Magento 1 till 2020. But the fact is, Magento 2 is holding that place which was once held by Magento 1.

Magento 2 has proved to be a huge upgrade from Magento 1.x version especially in terms of performance and usability, so you need not delay any more switching your eCommerce store from Magento 1 to Magento 2.

Reasons for Migrating to Magento 2

Reasons-Migrating-to-Magento-2

  • Magento has stopped introducing any new features in the Magento 1.x versions now. It only comes with the security updates.
  • Magento team has already announced that it will not provide official support for the Magento 1.x versions and stop bringing out new security updates after 2020.
  • All the customizations you will be performing on your Magento 1.x version will need to be repeated in the Magento 2.x version, whenever you opt for the Magento 2 upgrade.

Enhance Your Understanding of the Magento Migration Process

You need to follow these four stages for migrating your website from Magento 1 to Magento 2:

  • Data Migration
  • Extension Migration
  • Customizations Migration
  • Theme Migration

In this technical note, we will explain to you the procedure of Magento 2 data migration by using the data migration tool.

The data migration tool was released by Magento to help developers migrate data from a Magento 1.x version to a Magento 2.x version. This tool is a command line interface that provides logging, tracking, verification, progress and testing functions.

5 Easy Steps for Migrating from Magento 1 to 2

Step 1: Setting up of Magento 2 Instance

Setting-up-of-Magento-2-Instance
This step firstly requires downloading Magento 2 from https://www.magentocommerce.com/download without the sample data. Then you need to extract the downloaded data and follow the setup wizard for installing the platform. Now, you have Magento 2 setup with a database that is empty. The data of your site will be migrating in the database of this Magento 2 instance.

Step 2: Perform Download of the Data Migration Tool

You have to open the command line in the root folder of Magento 2. Then, download the data migration tool in the newly setup Magento 2, by using this command:

composer require Magento/data-migration-tool:

You need to ensure that the version of the data migration tool matches with the version of the Magento 2 codebase. You can find the version of the Magento 2 in the composer.json file that is located in the root of the Magento 2 directory.

As an example, for Magento version 2.1.17 the command would be:

composer require Magento/data-migration-tool:2.1.17

You will be prompted to enter the public key and your private key for performing authentication.

For accessing these key values, you need to log in to your account in www.magentocommerce.com. After you have logged in, you need to click on the “My Accounts” option. Now, click on the developer’s link that lies in the left menu and click on the security keys. Here, you can find the keys.

After you have entered these details, a new folder named data migration tool will get created in /vendor/magento/. You can also download the data migration tool from Github through https://github.com/magento/data-migration-tool.

Step 3: Configure the Data Migration Tool

After you have downloaded the data migration tool, you need to set the configuration for it. Under the data-migration-tool/etc folder, there are three folders, named ce-to-ce, ce-to-ee and ee-to-ee.

The folder ce-to-ce contains configuration files and scripts for the migration of data from Magento 1 CE to Magento 2 CE. The folder ce-to-ee holds configuration files and scripts for the migration of data from Magento 1 CE to Magento 2 EE. The folder ee-to-ee contains configuration files and scripts for the migration of data from Magento 1 EE to Magento 2 EE.

Now, fill in the directory for which you are doing the migration ( as an example: ee-to-ee if you are migrating data from enterprise edition to enterprise edition). Now fill in the directory with the Magento 1 version name. For instance, if you are doing migration for Magento 1.9.2.3. version, then you should enter the folder 1.9.2.3.

The next thing you should do in this folder is to create a copy of the file map.xml.dist and rename it as map.xml. (To give you a better understanding, the use of this file is explained in the migration step.)

<source><database host="”magento1host”" name="”magento1databasename”" user="”magento1databaseusername”" password="”magento1password”">
<destination></destination>
<database host="”magento2host”" name="”magento2databasename”" user="”magento2databaseusername”" password="”magento2password”"></database>
<options><source_prefix>magento1tablesprefix</source_prefix></options>
</database><dest_prefix>magento2tablesprefix</dest_prefix>
<crypt_key>f3e25abe619dae2387df9fs594f01985</crypt_key>

Then, in this folder create a copy of the file config.xml.dist and rename it as config.xml. Open this file and make the following changes in it:

Values Needed:

Under source fill in the Magento 1 database details, and in the destination fill in the Magento 2 database details.

You can find the crypt_key value in the local.xml file which lies in the Magento 1 instance directory at: app/etc/local.xml in tag.

Values That are Optional:

In case you do not have a prefix set for the Magento 1 and Magento 2 tables, you need not fill the “1” source prefix and “2” source prefix fields.

Database mapping between your Magento 1 and Magento 2 databases is done by mapping the files that are located in: /vendor/Magento/data-migration-tool/etc/

These files are used for changing names of tables, names of fields, ignoring tables and fields and transferring a field’s data to the Magento 2 format. You have to remove the .dist extension of these files for using these mappings.

After you have removed the .dist from file names, you need to change these file names (removing the .dist) in the config.xml file which is located under the options tab. Here you can see the location of the files that have to be renamed.

<options>
<map_file>etc/ce-to-ce/1.9.3.0/map.xml.dist</map_file><eav_map_file>etc/ce-to-ce/map-eav.xml.dist</eav_map_file>
<eav_document_groups_file>etc/ce-to-ce/eav-document-groups.xml.dist</eav_document_groups_file>
<eav_attribute_groups_file>etc/ce-to-ce/eav-attribute-groups.xml.dist</eav_attribute_groups_file>
<log_map_file>etc/ce-to-ce/map-log.xml.dist</log_map_file>
<log_document_groups_file>etc/ce-to-ce/log-document-groups.xml.dist</log_document_groups_file>
<settings_map_file>etc/ce-to-ce/settings.xml.dist</settings_map_file>
<customer_map_file>etc/ce-to-ce/map-customer.xml.dist</customer_map_file>
<customer_document_groups_file>etc/ce-to-ce/customer-document-groups.xml.dist</customer_document_groups_file>
<customer_attribute_groups_file>etc/ce-to-ce/customer-attribute-groups.xml.dist</customer_attribute_groups_file>
<delta_document_groups_file>etc/ce-to-ce/deltalog.xml.dist</delta_document_groups_file>
<order_grids_document_groups_file>etc/ce-to-ce/order-grids-document-groups.xml.dist</order_grids_document_groups_file>
<map_document_groups>etc/ce-to-ce/map-document-groups.xml.dist</map_document_groups><class_map>etc/ce-to-ce/class-map.xml.dist</class_map>
</options>

This is how it will look:

<options>
<map_file>etc/ce-to-ce/1.9.3.0/map.xml</map_file><eav_map_file>etc/ce-to-ce/map-eav.xml</eav_map_file>
<eav_document_groups_file>etc/ce-to-ce/eav-document-groups.xml</eav_document_groups_file>
<eav_attribute_groups_file>etc/ce-to-ce/eav-attribute-groups.xml</eav_attribute_groups_file>
<log_map_file>etc/ce-to-ce/map-log.xml</log_map_file>
<log_document_groups_file>etc/ce-to-ce/log-document-groups.xml</log_document_groups_file>
<settings_map_file>etc/ce-to-ce/settings.xml</settings_map_file>
<customer_map_file>etc/ce-to-ce/map-customer.xml</customer_map_file>
<customer_document_groups_file>etc/ce-to-ce/customer-document-groups.xml</customer_document_groups_file>
<customer_attribute_groups_file>etc/ce-to-ce/customer-attribute-groups.xml</customer_attribute_groups_file>
<delta_document_groups_file>etc/ce-to-ce/deltalog.xml</delta_document_groups_file>
<order_grids_document_groups_file>etc/ce-to-ce/order-grids-document-groups.xml</order_grids_document_groups_file>
<map_document_groups>etc/ce-to-ce/map-document-groups.xml</map_document_groups><class_map>etc/ce-to-ce/class-map.xml</class_map></options>

Step 4: Perform the Prerequisites

Before you start migrating to Magento 2, you must do all the following:

  • You have to stop all the current activities in Magento 1.
  • Stop all the cron jobs that are running on the Magento 1 version and put the website on maintenance mode. The purpose of this is to cease all the activities which make any changes in the database. You need to ensure that there is no activity in the database after the data migration process starts.
  • Open ports in your firewall for allowing the migration tool to communicate with databases and for enabling the databases of Magento 1 and Magento 2 to communicate with each other.
  • Migrate your theme to the structure of the Magento 2 theme.
  • Migrate all your Magento customizations and extensions from version 1 to version 2.

There is a possibility of unexpected issues arising that may cause redundancy, for this reason we advise you to take a backup of your Magento 1.x database.

Step 5: Migrate the Sites

Migrate-the-Sites
Now you will do the migration of the stores, websites and system configuration such as tax settings, shipping, payments, etc. For this, you have to run the command mentioned below in the Magento 2 instance:

bin/magento migrate:settings [-r|–reset] {<path to="" config.xml="">}</path>

[-r|–reset] is an optional argument which starts the migration from the beginning.

{} is the absolute path to config.xml file. It is a required field.

The command should be:

sudo bin/magento migrate:settings /var/www/magento2/vendor/magento/data-migration-tool/etc/ce-to-ce/1.9.0.1/config.xml.

Once it is done, you will get to see the “migration complete” status.

Next, you will have to execute the data migration command:

bin/magento migrate:data [-r|–reset] {}

The command should be like this:

Sudo bin/magento migrate:data /var/www/magento2/vendor/magento/data-migration-tool/etc/ce-to-ce/1.9.0.1/config.xml

This command performs the checking of consistency of tables and fields between Magento 1 and Magento 2. In case any problem is found, then an error message will be shown with a list of all tables and fields which are not mapped.

As an example, you may see the extension tables error, and the custom field which you created in one of the tables. So, you got the following error.

For resolving this problem, you have to install the Magento 2 version of the extensions in the Magento 2 instance, so that the missing tables are also in the Magento 2 instance database.

You are also allowed to ignore the tables and fields. To ignore them, you need to add their entries in the map.xml file.

After entries are made, the corresponding tables and fields will get ignored and they will not migrate to the Magento 2 database.

Now, execute the migration command again for verifying that the issues are fixed.

The data migration gets completed at the time you receive the migration complete message.

After the completion of migration, if there are any new changes in the database like new reviews are added or new orders are placed, then you can migrate this data by running the following command:

bin/magento migrate:delta [-r|–reset] {}

The command should be like this:

sudo bin/magento migrate:delta /var/www/magento2/vendor/magento/data-migration-tool/etc/ce-to-ce/1.9.0.1/config.xml

To stop this command, you need to press ctrl + C, or else it will keep on getting executed.

Now your database has migrated successfully to Magento 2.

Flush your Magento 2 cache and do re-indexing of all the Magento 2 re-indexers, then perform a thorough testing of your new Magento 2 website.

After the migration, you have to copy the media files from Magento 1 to Magento 2.

Prepare yourself for these challenges that you may face during Magento 2 migration:

If you have set a custom layout for the home page in your Magento 1 version, then the home page will not appear correctly in the Magento 2 after migration. Either you will have to create a custom layout in Magento 2, or you need to go to the admin panel of Magento 2 and change the layout in pages for your homepage.

Products Not Visible in the Category:

You need to do re-indexing of all the indexers. In Magento 2, you have to use the command line as it cannot be performed from the admin panel like in Magento 1.

Unable to Load CSS JS Files:

To fix this, flush your cache and after that deploy the static content.

(In case the problem still persists after removing the cache, then you need to manually remove all the subfolders from the cache folder.)

Before we share with you the advantages of Magento 2 migration, let us tell you about the other three stages, apart from data migration that you need to go through for migrating your store’s website from Magento 1 to 2.

These are the stages:

Extension Migration

Extensions are used for providing new features and extending the functionalities of your Magento store.

You need to do the installation of your preferred Magento 2 extension. This is required as Magento 1 extensions do not work on Magento 2 and severe compatibility issues can arise while integrating the extensions.

Customizations Migration

In many cases, the custom code used in Magento 1 store is compatible with Magento 2. To help users like you in this process, Magento offers a Code Migration Toolkit. The worth noting thing here is that because of structural differences in the two platforms, this Magento migration may need additional work for ensuring the custom code integrates successfully with the Magento 2 store. For seeking more knowledge about the integration, you should visit the GitHub repository of the Magento Code Migration Toolkit.

Theme Migration

There are new technologies and methodologies for providing an enhanced store and shopping experience to both owners and users. However, you cannot directly migrate your Magento 1 theme to Magento 2. Therefore, you need to create a new theme for Magento 2 and make it responsive for the best user experience.

Either you can create a custom theme in Magento 2 or simply buy and install a Magento 2 theme from Magento Marketplace.

The Advantages of Magento 2 Migration

It is now time to reveal to you the benefits of Magento 2 migration.

1. Increased Performance and Scalability

Undoubtedly, Magento 2 performs superior than Magento 1 in all cases. It comes with an improved indexer which helps in increasing its query performance speed. Also, Magento 2 uses Varnish cache, a leading HTTP accelerator technology which simplifies caching of requests.

This makes it simple for multiple admin users to create and edit eCommerce products information without causing data conflicts in Magento 2. It has increased performance and scalability because it:

  • Boosts server response times for all website-related activities
  • Helps to improve web pages for faster delivery
  • Increases proficiency of backend operations
  • Makes database more flexible and scalable for dealing with peak loads

2. Makes database more flexible and scalable for dealing with peak loads

Magento 2 platform provides a simple and safe checkout for your eCommerce website. It offers an approach that involves recognizing visitors as guests of businesses. This does away with the login or registrations form that is required by users for continuing the checkout process.

Also, it offers an active shipping rate on the basis of country, region, or postal code. Magento 2 enables you to easily integrate the convenient payment method into the checkout procedure. Several payment options including Paypal and Braintree are available. You can make your own specific preferred payment modules with easy integration with any merchant checkout platform.

Magento 2 checkout process, in the same way, consists of the order summary where you will be able to view the summary of your shipping information. These features help to lower checkout hassle and make the customer experience better. It even reduces the time it takes to checkout, giving a fillip to your conversion rate while lessening cart abandonment.

3. Responsive and mobile friendly design

Responsive-and-mobile-friendly-design
Magento 2 offers responsive and mobile-friendly designs for providing the perfect checkout experience to everyone around the world. It enables you to build a Magento eCommerce website which is supported by different devices including mobile by using any screen resolutions.

The admin panel of Magento 2 is touchscreen friendly and it makes it easy for you to deal with your store through your mobile or tablet. It renders your website engaging, easy to navigate and easy to use irrespective of the device used and its resolutions. Magento 2 makes your website to emerge and enables customers to see your products and place an order effortlessly on your eCommerce store.

4. A Better Organized Admin Interface

The admin panel of Magento 1 was complex due to which it was always criticized. Compared to it, the admin panel of Magento 2 is more user-friendly. New dashboard in it displays average order, last orders, lifetime sales, last and top search items which helps you in monitoring the current state of your business.

It is a modern admin interface that enables users to navigate all parts of the admin panel with ease, find information more easily and manage their store in a more efficient manner. Now, you can customize the admin panel as per your convenience.

This allows every user to personalize each admin panel for enhancing productivity when they are managing products, orders and customer-related data. Creating products in the admin panel is more easy than before with four times faster product import capabilities.

5. Easily Upgradeable

Magento 2 is a continuous process and can be easily upgraded for improving the platform. It provides security patches for helping retailers stay secure. This requires the release of the latest version of Magento every time.

The redesign elevates the eCommerce experience for both you and your customers. At the time of releasing a new version, Magento developers look for how to include new features and improve the old ones for providing a better user experience.

6. Increased Security

Increased-Security
Magento 2 has put immense focus on security, and eventually, has more secure information handling. With its prime focus on securing user details and providing a secured checkout process, this new version will satisfy every important requirement of an advanced eCommerce store.

You can select any payment method for completing the transaction in the advanced eCommerce site and allow the version to secure your key details. High security will provide you more protection.

7. Offers Many Important Integrations

Magento 2 is designed to provide many key integrations which are beneficial extensions. The Magento 2 extensions provide you a way to perform crucial activities in your e-store. It improves the features and functionalities of your eCommerce store.

Many retailers are using these extensions for customizing their eCommerce store as per their requirement. The Magento 2 extensions include various payment gateways like Paypal, Braintree besides others. This gives multiple payment options to your customers for making a judicious selection and helps in augmenting sales.

8. Quick Purchase

When a customer comes to your eCommerce site for making a purchase, they tap on the instant purchase button located on the detail page of the product. Then, they get redirected to a confirmation page, where they can place their order.

The instant purchases make use of the Braintree Vault that is available on Braintree PayPal, Braintree credit card and PayPal Payflow expert for stored payment information. This reduces the amount of time taken for placing an order by 90 percent. It is beneficial for mobile shopping as it makes it easy for customers to place orders.

9. Automation of Email Marketing

Automation-of-Email-Marketing
The dotmailer email marketing automation happens to be one of the best features contained in Magento 2.2 and the later versions. With it, merchants can create campaigns in a few minutes. You can create automated campaigns through email, SMS, Push besides other channels as well as manage transactional emails for your Magento stores.

The toolset of dotmailer is easily usable. If you need assistance from it, its support is available on a 24 x 5 basis for solving problems of customers. You can sign up for its free 14-day trial for testing out dotmailer.

10. Computerization of Email Advertising

The dotmailer email advertising computerization features among one of the most recent highlights of Magento 2.2. It allows traders to make crusades in a couple of minutes. You can make mechanized crusades through Push, SMS, email and various other channels. Also, you can oversee value-based messages for your Magento stores. Dotmailer’s toolset is easy to utilize.

If you need help from dotmailer, it offers 24 x 5 support for dealing with clients’ issues. For trying out dotmailer, you have to agree to accept its free 14-day preliminary trial.

11. Advanced Reporting

The report gets ceaselessly refreshed for displaying new information. This element gives you the information, understanding and measurements you need for the management of your web-based business.

Reporting is very crucial for getting success in your eCommerce business. There are new advanced reporting features located in Magento Admin which provide you 20 reports through its web interface. This feature gives you a deep understanding of three critical areas like:

  • Orders – the number of orders, average order value, taxes and shipping fees collected
  • Customers – the number of registered accounts
  • Products – the number of products orders and which is the best selling product

The report gets continuously updated for displaying new information. This feature gives you the understanding and the metrics you require for the better management of your eCommerce business.

Still Contemplating on Magento Migration?

Migrating from version 1 to version 2 of Magento is a must for retailers. It enables them to make their eCommerce site support a broad range of functionalities and offers them a faster time to respond to users.

As the time of withdrawal of Magento 1 support is drawing closer, retailers have no other choice but to move to Magento 2. So they should opt for it sooner than later. If you are planning to transition to Magento 2 any soon, you need to make sure that you are ready for the challenges and the changes involved. Any expert Magento development company can help you prepare for this migration.

So, are you ready to move on to Magento 2?

If you are looking for help for migrating from Magento 1 to Magento 2, you can bank on our certified Magento developers. They will ensure the migration of your existing eCommerce store from version 1 to 2 of Magento is a seamless and smooth affair. Once done with the migration, the developers will also work collaboratively with you for optimizing the conversions for your eCommerce site.

Get in touch with our Magento specialists for a free consultation.