Free Magento 1 to Magento 2 migration add-on helps to move data from Magento 1 store to Magento 2, or from one Magento 2 instance to another. With the add-on you connect together databases of two stores, choose which entity you want to migrate, and hit ‘Run’ button.
The latest version NOW SUPPORTS MIGRATION FROM MAGENTO 2 TO MAGENTO 2 in addition to M1>M2.
Table of contents
NOTE: you need to install Improved Import and Export extension prior to installing any add-ons.
To install the add-on follow these steps
- Log into your FireBear account and proceed to My Extensions Download section.
- Download Free Magento 1 to Magento 2 migration add-on package.
- Extract the contents of the Free Magento 1 to Magento 2 migration add-on package to your Magento 2 root folder to app/code/Firebear folder.
- Navigate to your store root folder in the SSH console of your server:
- Enable the add-on by running:
1php bin/magento module:enable Firebear_PlatformM1
- Deploy content and flush store cache, log out from the backend and log in again. Run:
1php bin/magento setup:static-content:deploy -f
1php -f bin/magento cache:clean
The add-on configuration is all about specifying the credentials of the source store in the administrator panel. To access configuration section navigate to Stores > Configuration > Firebear Studio > Import/Export.
At the configuration section, expand Source Database section to see required credentials, they include:
- Host – the IP address of the source store server, where the database is located.
- Username – your account login to the source store server.
- Password – your account password to the source store server.
- Database Name – name of the source database that the add-on will use to transfer the data.
After filling all the fields above you are done with the add-on configuration and can proceed to the data migration.
The data base of the target store MUST BE EMPTY. In other words, you need to make sure you don’t have any products, customers, categories, or other entities at the target store. This limitation comes from the fact that Magento uses IDs to check the entities integrity.
Migrating to a store with the populated database may result in errors or not all data being migrated.
Order of the entity migration
All entities in Magento 2 are interconnected. That’s why when migrating the data one must remember the native Magento 2 logic of how products and other entities behave.
Here is a couple of examples:
- Products in Magento 2 must belong to a category and cannot exist without certain attributes. That’s why you cannot migrate right away. You need to have prepared the basis for them.
- First you need to import categories, then product attributes, and only after this, you can proceed with the products import.
- Orders in Magento 2 are placed by customers and include products. That’s why before migrating orders you need to have migrated customers and products.
And before products again: categories and attributes.
Firebear development team strongly suggests you refer to the below list of the entity migration order:
- First, migrate product categories.
- Then, product attributes.
- After, products.
- Credit memos.
Make sure to stick to this migration order to avoid any issues.
Migration of Orders will also require the same payment methods available at the target Magento 2 instance. If you migrate the order and payment method reference will not be available such order may cause issues and won’t open from the administrator panel.
If for some reason particular payment method is not available for your Magento 2 – you need to create it manually and set it to:
By doing so, you will enable the orders with this payment method in the Magento 2 backend and will perform a successful order migration.
Running migrating from Magento 2 administrator panel
Free Magento 1 to Magento 2 migration add-on features the possibility to migrate all the necessary data directly from the Magento 2 backend without using command line or any programming knowledge.
The add-on’s migration interface can be accessed from System > Improved Import/Export > Data Migration.
The interface features the following elements:
- Path to Magento Root Directory – here you need to specify the path to the folder at your server, where the target Magento 2 instance is installed. The add-on automatically detects the installation folder of the current store, however, if you have multiple Magento 2 instances installed – you may want to use another path.
- Command – in this dropdown menu you select the entity you want to migrate. The add-on allows migrating every entity separately, unlike native migration tool that attempts to migrate the whole store at once.
- Run – when you specified and double-checked the path to the store and selected the entity you want to import – you hit ‘Run’ button.
In the improvised command line above you will see all the executed commands and the status of the migration.
Running migration from command line
If you are migrating huge chunks of data you may prefer to use server command line and run migration manually. Magento 2 administrator panel may not be an option due to additional load on the system and architecture peculiarities.
With Free Magento 1 to Magento 2 migration add-on you have the possibility to also perform migration via command line. So the general rule is:
- Migration of a small amount of a single entity – use Magneto 2 administrator panel.
- Migration of huge amounts of data (several hundreds of Mbs of data) – use command line.
The commands for manual migration can be found below:
|Entity to migrate||Command to run|
|Categories||bin/magento firebear:migrate –entity=Categories|
|Product Attributes||bin/magento firebear:migrate –entity=ProductAttributes|
|Products||bin/magento firebear:migrate –entity=Products|
|Product media – images and videos||bin/magento firebear:migrate –entity=ProductsMedia|
|Inventory – product stock||bin/magento firebear:migrate –entity=Inventory|
|CMS blocks (static blocks)||bin/magento firebear:migrate –entity=CmsBlocks|
|CMS pages (static pages)||bin/magento firebear:migrate –entity=CmsPages|
|Customers with addresses||bin/magento firebear:migrate –entity=Customers|
|Email templates||bin/magento firebear:migrate –entity=EmailTemplates|
|URL rewrites||bin/magento firebear:migrate –entity=UrlRewrites|
|Store administrator accounts||bin/magento firebear:migrate –entity=UsersBackend|
|Quotes for orders||bin/magento firebear:migrate –entity=Quotes|
|Orders||bin/magento firebear:migrate –entity=Orders|
|Product reviews||bin/magento firebear:migrate –entity=ProductReviews|
|Product ratings||bin/magento firebear:migrate –entity=Rating|
|Invoices||bin/magento firebear:migrate –entity=Invoices|
|Credit Memos||bin/magento firebear:migrate –entity=Creditmemos|
|Catalog price rules||bin/magento firebear:migrate –entity=Catalogrule|
|Customer groups||bin/magento firebear:migrate –entity=CustomerGroup|
|Taxes||bin/magento firebear:migrate –entity=Tax,|
|Order taxes aggregated||bin/magento firebear:migrate –entity=TaxOrderAggregated|
|Cart Price Rules||bin/magento firebear:migrate –entity=SaleRule|
|Customer wishlists||bin/magento firebear:migrate –entity=Wishlist|
|Order shipping data||bin/magento firebear:migrate –entity=Shipping|
|Newsletter subscribers||bin/magento firebear:migrate –entity=NewsletterSubscribers|
|Core config data migration||bin/magento firebear:migrate –entity=Configuration|
Running migration from particular date
The latest version of the add-on allows to migrate the data from a particular date. For example, if you want to migrate the data you have only added since Spring 2019, you can do this. To migrate the data from a particular date, after the command including desired entity type:
The date format used is the native Magento 2 date format you can look in your database. For example, if you want to migrate products that have been added to the store starting from January 2019, you need to run:
bin/magento firebear:migrate –entity=Products –migrate_from_date=”2019-01-01″
That’s it. Now you can migrate the data from the particular date using Free Migration Add-on of Improved Import & Export extension.
Custom methods can be implemented in the di.xml file of the add-on.'