Magento 2 is gaining popularity amongst the eCommer business owners worldwide and they are migrating their eCommerce websites from Magento 1 Magento 2 because of advanced features that Magento 2 provides
One of customers had 2 sites on Magento 1 and they wanted to migrate it into a single Magento 2 set up. One of the specifications was to merge databases from both the Magento 1 websites to a single Magento 2 database
The reason behind this business decision was that they wanted to group everything together on a single website so that they don’t need to switch between 2 website back ends
I hope you can understand that when you have two independent Magento 1 websites with different products data, customer’s data and order history – It’s not that easy to migrate both into a single Magento 2 website
That being said, Our magento 2 experts planned this well and finished effectively. We are sharing our experience here on this post so it can help others who may need to work on similar projects in future
It’s always best to be safe than sorry. Take complete backup of your Magento 1 store so if anything goes wrong during migration you still have your original files and database to restore to.
There are 2 phases of the process to migrate two different Magento 1 websites in one single Magento 2 website
First of all you need to know that Magento does not have any guideline or tutorial which provides information on how you can migrate two Magento 1 stores into one Magento 2 website or in other words – it’s not supported by Magento. So, how do we achieve this?
We have the migration feature of Magento to get Magento 1 upgraded by migrating to Magento 2 with multi store. So, we can use this feature but before that we need to merge the data of 2 separate Magento 1 stores into one so that we can do the migration of that merged Magento 1 multi store to new Magento 2 website.
We will need to use any one of the two Magento 1 stores as base first. Choose one Magento 1 store which you will be using as main store in Magento 2 as base store and let’s name it Store A and another Magento 1 store will be referenced as Store B.
It would be good if you consider the website which has less data of Products, Customers and Orders as base Store A so you do not face any timeout issues during merge process. Next step is to prepare the base store to create new store and website in Store A for setup of Store B.
After that create a list of all the Attributes and Attribute Sets from Store B and create those in Store A so that before importing the data it has all the section ready for catalogue
Now that we have Store A ready for data of Store B, we can start importing all the data of Store B starting with Products and Categories.
First we need to export Catalog data from Store B. In Store B’s Admin go to System → Import/Export → Dataflow → Profiles → Export All Products
Then in Profile Wizard choose the store and in Data Transfer drop down menu, choose Local/Remote Server. In Data Format choose CSV/Tab Separated for type and Save Profile
In Run Profile tab, click on button Run Profile in Popup which will save a file with given name in the
var/export/ directory of your Magento root.
Download that file with FTP client and then we need to run same process but for Import in Store A.
Now in Store A go to Admin System → Import/Export → Dataflow → Profiles → Import All Products
Then go to Upload file tab and select the .csv file on your computer which you downloaded from Store B export and click Save
Once it’s uploaded, click on Import All Products and Run Profile and select the .csv file you have just uploaded from the drop down menu and click on button Run Profile in Popup. Once import is complete it will show you an export success message
After we are done with Products, we need to import Categories as well. Unfortunately Magento does not have any feature to import/export Categories so we will be using a free extension which can help us with this process. Download the free extension MagentoWorks Category Import/Export and install on both Store A and Store B.
Once it’s installed, go to Admin → Mageworks→ Export Profiles to export the categories andclick on Categories button which export and will create file in var/export/category directory of your Magento root and download that file.
Now in your Store A, go to Admin →Mageworks→ Import Profiles to import the categories and specify the file name which you uploaded in directoryvar/import/category of Store A.
Then we can set the imported category of Store B as main/root category in Store A multi store which we setup as Store 2. This will mark data of Store B coming into Store A’s Store 2.
Once you have completed the Catalog import in Store A, you can now move to Export Customers from Store B into Store A.
We can follow same process as above and go to System → Import/Export → Dataflow → Profiles → Export and thereselect entity type as Customers which will export the file in /var/customers directory of Magento root.
Download that file and upload in your Store A and Import Customers by going to System → Import/Export → Dataflow → Profiles → Import and thereselect entity type as Customers and select the uploaded file.
After that follow same process to Export Customer Addresses from Store B and Import Customer Addresses to Store A’s Store 2
Now that all Catalog and Customer data is imported only Sales data is remaining to import which will be needed to keep the track of Orders/Invoices/Shipments in sync with your previous store.
Once again Magento does not have any feature to Import/Export Sales Data so we will be using free extension Order Import/Export which you can download and install
Once it’s installed on Store A and B you need to Export from Store B by following path Admin→ Exporter→ click on Export All Orders button
This will show you a popup and ask you to download the file with all the Orders exported. Save it
Now go to Store A and Admin→ Exporter→Import and select the Store 2 which requires import of Store B and select the downloaded export file and click on Import button.
With this we have successfully merged two Magento 1 stores and finished Phase 1.
Now that we have completed the process and merged 2 stores into single Magento 1 website we can proceed to next phase where you can setup Magento 2 and start migration process
To start with migration to magento 2, first you will need to setup Magento 2 store as base where you can transfer data from Magento 1. Install the latest version and test it thoroughly to make sure everything is working fine on the new blank setup before you get everything from older version.
Make sure that Magento cache is disabled so that you don’t have to clear the cache every time you make changes in the theme. This will save you a lot of time in development.
To disable cache is to go to Admin → System → Cache Management → select all cache types and disable them.
Ensure that your Magento store is in developer mode so that all changes are reflected in real time and you can view any errors you come across while doing coding.
For this you have to run commands from terminal using SSH access. Login to your Magento store SSH account and go to Magento root directory and run below command:
php bin/magento deploy:mode:set developer
Once the fresh Magento 2 store is ready, you have to export the Magento 1 database and import it into the same server MySQL instance as Magento 2 setup.
Make sure that both databases have different users and access level to ensure the original database of Magento 1 stays intact during the migration process. Note down database name, database username and password of both databases as you will need it in next step.
After this follow the Magento’s guide of migration to start migration process to efficiently move all of your products, customers, and order data, store configurations, promotions and more to Magento 2
Remove outdated and redundant data from your Magento 1 database like logs, order quotes, recently viewed or compared products, visitors, event-specific categories, promotional rules, etc.