Migrating from Magento 1 to Magento 2 is not a simple task. Using Magento data import tool may be a difficult task for the store owners who are not familiar with coding and working from the command line. Even for the Magento 2 developers this task may prove difficult because of how different the entities are stored in M1 and M2.
That’s why having a tool that simplifies the procedure and leaves you with only mechanical tasks is a great time savior. In this article we will talk about how to migrate to Magento 2 using Improved Import and Export extension.
Before we start the introduction, let’s first think about all the entities we will need to migrate to get a fully functional store. These entities will be:
That’s it. To get your store up and running with the minimum time and resources spent you need customers, orders and products they will be purchasing. Everything else is a matter of convenience and development as you probably will be customizing your Magento 2 store theme and layout.
Let’s start with products to see the main differences and peculiarities of product attributes.
About Improved Import and Export extension for Magento 2
First of all, this is a Magento 2 extension(!). It is important because you will not be using any third party applications, you won’t need to rely on an app running in the background. Every import and export process is managed from your Magento 2 backend.
Let’s run down through the feature list and explain how the extension works to save us time. Remember, you can always find more information about the extension at the extension product page and in the manual. The features include:
Import and export process scheduling – you can automate import and export processes with built-in cron schedule
Supports import from Google Sheets, FTP/SFTP, Dropbox, direct URL, file – you can copy links of the Google Sheet tables, use shared Dropbox files and use any FTPs/SFTPs to import files from.
Supports all product types, customers, categories, CMS pages, cart price rules, orders and other import entities – with the extension you can import almost any data to your Magento 2, create any product types on the fly, and add content directly.
Supports CSV, XML, Json and XLS/XLSX file types – default Magento 2 import allows only CSV file import, however suppliers tend to use different file types. XML files can be transformed into appropriate format using XSLT templates that can applied during the import procedure.
Rest API support – with the possibility to import Json file types comes the Rest API integration with third party services and applications. Synchronize your CRM, POS, ERP and other software with Magento 2.
Supports file and entity attribute mapping – when importing a table with custom field or value separators you can map them at your store backend, when importing custom product or customer attributes, you can specify the required values during the import procedure.
Price adjustments during import – you can update the product price as you import products. Specify either percent or flat value that should be added or deducted from the imported product prices.
No programming skills required – you manage import and export processes directly from your Magento 2 backend via user-friendly interface that you are familiar with.
These are the main extension features, it comes with even more and FireBear Studio is constantly working on new updates. You can always look through and vote for the Roadmap and Feature request page. Now, let’s see how the extension can handle migration.
How to migrate products from Magento 1 to Magento 2
It is not possible to export products from Magento 1 and import them to Magento 2 using default functionality straight away. Product attribute sets differ and require different attribute values. In addition, the default Magento CSV table structure differs when migrating products from M1 to M2, so it will not be possible without editing product tables.
If you still want to try doing it manually with the default Magento 2 import tool, you may first want to read the general Magento 2 import guide FireBear team composed for you.
There are two ways of exporting products from Magento 1 using default export procedure and Dataflow procedure.
However looking similar these two export procedures output CSV tables with different set of product attributes. We do not know why Magento team decided to do so. The differences may seem insignificant, though when the task comes to migration every attribute counts.
That’s why for convenience purposes for the product migration task we will stick with the default import that can be accessed from Magento 1 backend at System > Import/Export > Export.
The export table ready for migration to Magento 2 should look something like this:
We have already composed a sample M1 product export table for you in the Google Sheets. You can get your hands on it from the Google Sheet Master Table.
In the Google Sheet Master Table we have gathered all possible entities that you can import to Magento 2 and put together in a single table. For each entity we have added attribute description along with sample values and instructions on which values you can add.
If you have been using bundle products in your Magento 1 you will need to consider the following peculiarities:
Magento 1 doesn’t tie bundle product options to bundles. It means that when you migrate bundle products to Magento 2 you will need to add options with simple products manually. This relates to bundle product only, grouped and configurable products migrate regularly. However, Improved Import extension for Magento 1 by FireBear does tie simple products to bundles.
Magento 1 doesn’t export bundle product price_type, sku_type, weight_type, price_view, shipment_type attributes. These attributes are required in Magento 2. You will need to add them manually to the table, or copy these attributes from the Google Sheet sample table. To add this attributes to your Magento 1 export table simply copy them to the end to the list so the table looks something like this:
As for the attribute values you can use: price_type:dynamic – Dynamic Price enabled, fixed – Dynamic price disabled; sku_type: 0 – enabled, 1 – disabled; weight_type:0 – enabled, 1 – disabled; price_view:Price range, As low as; shipment_type:0 – ship together, 1 – separately.
When migrating products from Magento 1 to Magento 2 don’t forget about these bundle product peculiarities. This is an inconvenience coming from how Magento 1 export process has been built. FireBear team has a solution with Magento 1 Improved Import and Export extension.
Preparing Magento 2 attribute sets
When migrating product catalog from Magento 1 to Magento 2 the most common issues may arise from differences in the attribute sets. Both 1 and 2 Magento stores use attribute sets for identifying product properties – it means that the attributes in the attributes sets on both Magento 1 and destination Magento 2 stores must match.
If you are using custom product attributes such as ‘climate’, ‘season’ or ‘brand. Don’t forget to create such attributes in the attribute sets of Magento 2 PRIOR to migration. This will save you lots of trouble and will make the migration procedure simple and easy.
Importing Magento 2 product attributes
However, you can also import product attributes to your Magento 2 store. Improved Import and Export extension allows that. If you want to learn more about how to compose and import product attributes – read the extension manual.
Migrating products from Magento 1 to Magento 2
Let’s consider that you have purchased and installed Improved Import and Export extension for Magento 2 and prepared the CSV table with your Magento 1 products.
Now, you need to navigate to your Magento 2 administrator panel and get to System > Improved Import/Export > Import jobs.
Here, at the import job grid you need to click ‘Add New Job’ button to create your migration import job.
In the general job settings specify the name of the job and select the locale of the store you will be importing products to. You can leave the rest of the settings untouched. If you require full instructions on the import jobs – read the extension manual.
When done – proceed to the next settings section Import Settings.
Here you need to select products from the dropdown. You may also look through other entities you can import to Magento 2 later. For every entity we have composed a dedicated guide post you can find in our Magento 2 import and export guide list.
When done – proceed to the Import Behavior.
Here you need to select Add/Update from the dropdown. You do not need to adjust the table separators, the M1 CSV tables have the same formatting options as M2. However, when you will be migrating entities from the other sources you can take full advantage of these options.
Anyways, proceed to the next settings section Import Source.
Here you need to specify the file type – CSV in our case, and select the import source. For the example purposes we have uploaded the CSV table to the Google Sheets and copied and pasted its URL to the field.
You can use Import Source set to file and click ‘Browse’ button to specify the file location at your hard drive. In the Import Source field dropdown you can find the list of all supported import sources.
When the file is uploaded – click ‘Validate file’ button to let the extension verify its integrity. Once the verification is complete the new settings sections will appear. We need to proceed to the Map Attributes section.
Here from the Select A Platform dropdown select ‘Magento 1’ and hit ‘Load Map Attributes’ button. The extension will map Magento 1 product attributes with the proper Magento 2 product attributes automatically.
That’s it, the only thing you are left to do is to hit big orange ‘Save & Run’ button at the top right corner of the screen. When the popover appears click ‘Run’ button.
You have just migrated your Magento 1 product catalog to your new Magento 2 store.
How to migrate customers from Magento 1 to Magento 2
Now that you have imported product catalog it is time to import customers and their addresses to Magento 2.
In Magento 2 when importing customers you get to import three entity types:
Customers and addresses;
In Magento 1 however, you will always export Customers and Addresses file. This simplifies the migration process as almost all attributes in the customers and addresses file of Magento 1 match their counterparts of Magento 2.
Getting Magento 1 customers export table
To export customers from Magento 1 navigate to your store administrator panel and proceed to System > Import/Export > Export. In the Entity Type field select ‘Customers’ and click ‘Continue’ button at the bottom of the screen.
You will get the customers CSV file that matches Magento 2 customers and addresses file in its structure.
Migrating customers from Magento 1 to Magento 2
We believe that you have already purchased and installed Improved Import and Export extension for Magento 2. To migrate customers you need to proceed to your Magento 2 backend and navigate to System > Improved Import/Export > Import jobs.
Here at the import jobs grid click ‘Add New Job’ button to add new import instance.
Name the import job and select the locale of the store you will be importing customers to. You can pretty much skip other job settings. If you require more information on configuring the import job – read Improved Import and Export manual.
When done proceed to the next configuration section Import Settings.
In this section select ‘Customers and Addresses (single file) from the Entity dropdown. That’s it. You can also check other entities the extension allows importing to Magento 2.
Scroll down for Import Behavior section.
Here you need to select ‘Add/Update’ behavior in the Import Behavior dropdown. If you are using Magento 1 customers file for migration – don’t bother mapping CSV file separators. Magento 1 uses the same CSV table formatting as Magento 2.
Scroll down to the Import Source section to select where you will be importing the file from.
Set file type to CSV, in the Import Source select the most convenient source of the file. For the example purposes we will be migrating file from the Google Sheets. Once the source is selected and path to the file is specified click ‘Validate file’ button to let the extension check its integrity. That’s it, for the customers migration you do not need to map attributes. Magento 2 uses the same values for customer import. Now you need to click big orange ‘Save & Run’ button at the top right corner of the screen to proceed to running the import. When the import process is complete you will get to see the log file where you can check what entities have been imported and errors if any. Once you are done migrating your Magento 1 to Magento 2 keep the extension installed it will help you alot updating your product catalog with supplier tables, keeping you customer base synchronized with your CRM system and much more.
How to migrate orders from Magento 1 to Magento 2
To import the orders from Magento 1 to Magento 2 we first need to export orders from Magento 1. Native Magento 1 import/export tool doesn’t let you do that. That’s why we will be using free Improved Import and Export extension for Magento 1 by FireBear Studio.
The extension is fully open source and doesn’t come with any limitations. The latest update of the extension has added the possibility to export orders directly from Magento 1 in a format that Improved Import and Export extension for Magento 2 supports.
To draw the line, to migrate Magento 1 orders to Magento 2, the flow is the following:
Install FREE Improved Import and Export extension to your Magento 1 store.
Import Magento 1 orders CSV file to your Magento 2.
Lets review this flow step by step
Exporting orders from Magento 1
Let’s state that you have installed Improved Import for Magento 1. If not yet, you can ask Firebear Studio support team for assistance here.
To export orders navigate to your Magento 1 administrator dashboard and proceed to System>Import/Export>Import.
Improved Import extension has added a new export entity ‘Orders’ to the export list. To export orders follow the steps below:
Step 1: Select order entity (only available with Improved Import for Magento 1 installed)
Step 2: Select file format (CSV in our case)
Step 3: Click ‘Continue’ button.
Once done, you should get the CSV file with all the orders exported from your Magento 1. To edit it and remove the unwanted orders – upload the file to Google Drive and open it with Google Sheets. This is the easiest way to edit CSV files. Moreover, Improved Import and Export extension for Magento 2 supports import of CSV files directly from the Google Sheets, so you will only need to paste a link and run import.
You can also look through the sample Magento 1 order table without actually exporting orders.
Magento 1 order CSV sample table
Importing orders to Magento 2
So you’ve got the CSV table with Magento 1 orders. It is time to import them to Magento 2 using Improved Import and Export extension. If you are having troubled installing the extension contact Firebear Studio support team.
To start the import navigate to System>Improved Import/Export>Import jobs.
You will get to the Import Job grid where all the import jobs can be created an managed. To create an import job click ‘Add New Job’ button.
In the General Settings of the import job you are suggested to specify the name of the import job and decide on the schedule. Other fields are optional. When done with the General Settings scroll below to the Import Settings.
At the Import Settings you are suggested to specify the entity you are going to import. For this blog article we select ‘Orders’ as the import entity. Once done proceed to the Import Behavior.
Now you need to specify the behavior of the import job. As we need to migrate the orders from Magento 1 to Magento 2 we need to select ‘Add/Update’ behavior. Next we need to specify the import source.
If you edited your Magento 1 order table with the Google Sheets you can pretty much copy and paste a link to it. Improved Import and Export extension supports direct import from Google Sheets.
Once the file uploaded or the link to file specified you will need to hit ‘Validate file’ button. The extension will check if the file structure is proper and will let you actually run the import job.
That’s it. Now you only need to click ‘Save & Run’ and then ‘Run’. The extension will perform the order migration.
This is it. You have just migrated orders from Magento 1 to Magento 2 store.
Improved Import and Export extension for Magento 1 exports orders in the way that Magento 2 can read it. So no manual mapping of the attributes, renaming columns or other manipulations required. Just export the orders and import them to your Magento 2.
If you require a complete guide on how to use Improved Import and Export extension for Magento 2 you can check: