Magento Migration for Dummies

created June 18, 2019, last updated January 30, 2020.

closeThis post was last updated 3 years 6 months 5 days ago, some of the information contained here may no longer be actual and any referenced software versions may have been updated!

If you are a Magento 1 Ecommerce Store owner you are probably well aware that support for Magento CE 1.x will stop in 2020.

The nice folks at Magento call it “Sunsetting

We have all known this for some time, exactly what that means for Magento 1 stores is open for debate, I doubt the world is going to end but are the risks associated with running deprecated ecommerce store software acceptable?

Magento 2 has been maturing nicely over the last few years and now is definitely as good a time as any to start working on your migration plan.

The costs and time associated with migrating a Magento1 store with “minimal” third party integration are estimated at between $5,000 to $60,000 – 3 to 6 months. Even a very basic migration will require a new custom theme, modules and data export.

The total cost of migration depends of course on the in house skills you or your company possess. Chances are if you are reading this you already have Magento 1 and PHP experience. That’s good news! If you are new to Magento 2 the bad news is that it’s a steep learning curve to get up to the same speed with Magento 2 that you have right now with trusty old Magento1.

Time invested now in setting up an Magento2 development environment is time well spent. I spent the last couple of years dabbling with Magento 2when I had the time – most of my time was spent getting my Magento 2 Docker environment right and testing migration methods.

Migrating a mature Magento 1 store to Magento 2 is a daunting task. If your store has been around for a long time (mine started life as Magento 1.3 in 2009) no doubt you will have a very customised theme and installed or developed a lot of custom modules and features over the years. You may have 1000’s of products, 10’000s of customers and hopefully a lot of order data.

So where do you start? In a perfect world you would start with the official Magento 2 migration plan and within half an hour and a few clicks your Magento 1 store is automagically migrated to Magento 2. This fairy tale migration only really works on vanilla Magento 1 installs with no customisation. Having said that as of the latest Magento 2 (2.3.x) the migration process has matured and improved. It is definitely worth familiarising yourself with the migration tool as you probably will need it to migrate some of your Mage 1 data.

For me the migration tool worked perfectly for customer data, but not for products. And of course unless you want to use the basic Magento 2 theme, migrating your Magento 1 theme is simply not possible.

Once you accept the fact that you are going to have to pretty much rebuild your Shop from scratch it’s time to step back and have a think about how to rebuild 1000’s of products.

Having worked with Magento 1 for almost 10 years I was used to exporting product data for use in other applications such as Amazon and eBay product feeds, so I thought why not simply export the Magento 1 data in a format that Magento 2 can import.

This is not a bad idea, but we are talking about a lot of data – thousands of products, multi store views, lots of custom attributes. That’s a pretty big CSV file to manage.

A much better idea is to create a “skeleton” export of your Magento 1 product data – just the bare bones of the products, enough for Magento 2 to import them with enough data to create the product.

Once you have the basic product structure imported simply synchronise the data between MAGE1 and MAGE2! Sounds complex but actually it is pretty easy.

We just need two PHP scripts, one with access to the MAGE1 source files and database and one with access to the MAGE2 installation. The MAGE2 script calls the MAGE1 script to request product data for a SKU. The MAGE1 script extracts all the product data you need into an array returning it in JSON format to MAGE2 which in turn updates the corresponding MAGE2 skeleton product. This is done for each store view.

There are some complications associated with configurable products, attribute sets and product attributes which you need to create and import, but once the basic product is in MAGE2 the synchronisation process works perfectly.

At the time of writing I can synchronise all data for all product types including, pricing, tier pricing, custom attributes and product images.

I can keep Magento 2 in sync with changes or updates to the live Magento 1 shop simply by restoring the latest database backup to my Magento 1 migration database and performing a new product sync.

I started my Migration about 6 weeks ago (May 2019) and having developed the import and sync process I am just about ready to start on a “live” dev build of my new Magento 2 store. I don’t have a new theme yet but there is a lot of work to do getting the catalog ready and customising core templates and code.

I will be updating this blog with my progress and hopefully developing the MAGE1 to MAGE2 export and sync scripts to be made available to download.

Stay tuned to watch this dummy migrate a Magento 1 store to Magento 2!


This site uses Akismet to reduce spam. Learn how your comment data is processed.