Manual for Free Magento 1 to Magento 2 migration add-on for Improved Import and Export extension

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.



NOTE: you need to install Improved Import and Export extension prior to installing any add-ons.

To install the add-on follow these steps

  1. Log into your FireBear account and proceed to My Extensions Download section.
  2. Download Free Magento 1 to Magento 2 migration add-on package.
  3. 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.
  4. Navigate to your store root folder in the SSH console of your server:

  5. Enable the add-on by running:

  6. Deploy content and flush store cache, log out from the backend and log in again. Run:



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:

  1. 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.
  2. First you need to import categories, then product attributes, and only after this, you can proceed with the products import.
  3. 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:

  1. First, migrate product categories.
  2. Then, product attributes.
  3. After, products.
  4. Customers.
  6. Orders.
  7. Invoices.
  8. Credit memos.

Make sure to stick to this migration order to avoid any issues.

Payment methods

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:

–migrate_from_date=”YYYY-MM-DD HH:mm:ss”

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 logic

Custom methods can be implemented in the di.xml file of the add-on.