It seems like it was yesterday when in 2015 Magento launched the very first release of the platform's 2.0 version.
Everybody was slowly adjusting to the idea of migration, waiting for the platform to become more mature
and stable and the community to grow.
All of a sudden we landed in 2020 which means that Magento 1.X won't be supported in a couple of months.
In other words, it's high time to make some decisions.
In the last few months, we've recorded a peak in inquiries from clients all
over the world, asking us about the Magento 1 - Magento 2 migration.
This is why we decided to summarize and share our experiences.
We believe that sharing them will help you to go through the migration process successfully... and painlessly.
Let's start with the right approach.
You shouldn't think about the M1/M2 migration as an actual migration. You should think about it as a completely new platform you're about to build from scratch.
Don't think that hiring a reliable development team will solve the whole problem.
A solid plan is what you should start with.
Think about your business goals and how would you like to develop your business in the future. Keep the bigger picture in mind and remember that your ideas will be turned into functionalities.
It's not the part you want to save time on!
Below we summarized all the crucial "dos and don'ts" and divided them into steps. We hope to answer some of your questions or clarify your doubts.
Define your business goals.
We believe this step is essential.
Make sure you invest enough time to think through how you are planning to develop your business. Make sure you share it with your software development team. It will help to avoid deadends and costly changes in the future.
Choose an experienced and cross-functional team.
Choosing the right partner is challenging, and the fact the future of the whole project depends on it doesn't really ease the pressure.
So what are the key factors in selecting the right agency?
An agency that appeared on the market a year ago is not a partner you're looking for.
The ideal team has been working with Magento for years, starting from early versions. They have a proven record of successful M1 and M2 implementations and migrations to M2. Having long-term clients in the portfolio is also a good sign. It means the implementation phase ended with success and led to ongoing cooperation.
The migration of an advanced Magento 1 platform that's been developed for years is a demanding project and it should be conducted by a cross-functional team. It should include Front-End developers, Back-End developers, QAs and DevOps, preferably in-house. A team that has worked together successfully on one or more projects is able to do tasks in a fast and efficient way and avoids communication noise.
Certification is an excellent way to validate a developer's expertise in Magento. It also proves your
developer stays up-to-date with the latest trends and solutions Magento offers.
There are several different options depending on the area of specialization, from Front-End and Back-end to Cloud Developer.
All certificates are registered in Magento's directory so you can always validate them: https://u.magento.com/certification/directory
We know how important it is to potential clients to be able to do that. This is why on our website we added Magento badges to our Team Pictures, and then we linked them to the Magento Certification directory.
Now, what is the most desirable situation?
- 1.When your software development team is not only experienced and certified in both M1 and M2 but also business-conscious.
- 2.If you've had a chance to cooperate on your M1 shop and they're going to migrate your shop to M2 -it's a perfect situation.
However, if you doubt your team’s capabilities, look for a different team to conduct the migration. Skills and experience are the two most important things here.
Audit your current Magento shop
If you've been developing your Magento 1 shop for a couple of years, you probably have a lot of free or paid extensions installed.
They solve a lot of issues merchants encounter but be aware that their code might not be of the best
What's more, rarely all their functionalities are being used. As a result, you're stuck with long lines of unnecessary code which is eating your space and slowing down your webshop.
That's why we recommend you to start with auditing your current shop. Together with your development team analyze what solutions should be migrated (and by migrated we mean replaced by those for Magento 2), which of them can be replaced by Magento 2 out-of-the-box options and which should be custom-written.
We also recommend conducting UX analyses of your current M1 shop. You'll learn what's to improve in
your existing shop and use that knowledge to enhance the design of your new platform.
Remember that you're not able to move the design from your Magento 1 to Magento 2 so it needs to be implemented from scratch.
If you're planning to refresh it, it's the perfect time. Alternatively, you can postpone the redesign and do it in a little while. The downside is that you'll pay for design implementation twice.
To ensure no such issues occur, you should include developers responsible for the migration in the designing process. Auditing the design while it’s being created is way cheaper than applying the changes to the existing code. Developers should also keep the size of the project under control to make sure that attention is centred on architecture and functionalities. Such an approach will help you to divide the project into manageable steps to avoid too much complexity.
You should also consider turning your shop into a PWA (Progressive Web App).
A Progressive Web App is a website that looks and behaves like a mobile app.
In such a construct, there are several alternative approaches, such as:
- full Migration from Magento 1 to Magento 2 (overnight)
- Front-end migration only (in the first step) and then migration to Magento 2 (or an alternative platform)
You can read more about PWA in the section: To PWA or not to PWA - that is the question!.
Another key step is the shopping process evaluation.
Test different scenarios and search for weak points that would lead to cart abandonment. Make sure you analyze those issues with your development team which should propose solutions to eliminate them in the Magento 2 platform.
Carefully plan your new M2 shop.
At this point, you should have your business goals defined and a list of improvements to implement.
Now it's time for the requirements definition which is the crucial part of the project. If the prepared
documentation is inaccurate or incorrect, it results in higher development costs due to waste of resources
or delays in the development schedule.
We often hear that clients don't understand why this step is so important and suggest that we should simply base the project on their existing Magneto 1 shop.
Such an approach is highly incorrect. One of the benefits of having a brand-new shop is that you avoid old mistakes. If you copy-paste solutions without giving them a thought, you waste a chance for an improvement.
Keep in mind that your team might not know or not understand what the business objective is.
A well-prepared documentation answers most of the questions and describes the functionalities. It helps to avoid costly changes to the already written code.
We emphasize it because we know how important it is for the project's success.
If for some reason, the client chooses not to invest time in the requirements definition, we still need to divide the project into stages and describe them in writing.
At Hatimeria, we involve our QA team in the requirements definition process. They gather the requirements from the client and turn them into tasks for the development team. Once the functionality is built, our testers assess if it's working according to the requirements.
If you decided to redesign your shop completely and change it according to the UX designer's indications, it's a good idea to define an MVP (Minimum Viable Product). Even though an MVP is a very early, basic version of the product, it still enables us to verify if the business need is fulfilled.
It seems a bit early for making such a decision when your e-commerce platform is still in the planning
phase. However, choosing a hosting solution from day one of the development means that once your
Magento 2 is ready, it won't need adjustments to the hosting environment.
There are various scalable solutions on the market and choosing one of them helps to keep the costs under control.
Choosing the hosting provider at the very beginning has another advantage - it gives you time to verify
if it works with all the services you plan to implement.
If it doesn't, you still have time to change it.
Sometimes all the configuration is done by a hosting provider, and we are unable to speed it up. It doesn't seem to be that crucial at the beginning, but if you're about to launch your shop and every minute matters, it can be a huge obstacle.
Your shop needs to be fast and stable to get and keep a high conversion rate.
Share the accesses
Check two or three times if your development team has all the necessary accesses and all the logins and passwords actually work. A group of frustrated developers at the very beginning of the project is something you want to avoid.
Make sure your current and your future shops are appropriately secured. When a lot is going on, it's
easy to make a simple mistake that might lead to a security breach. If you work with professionals, the
risk is low but not non-existent.
Don't forget it also includes the testing environment such as staging servers. By doing it, you also keep your staging site out of index so it won't appear in search results. What’s more, you avoid duplicate content and Google ranking drops.
If you managed to keep your testing environment out of Google's reach, positioning it after the launch won't be an issue.
In other words, by securing it, you also take care of SEO.
Avoid the most common mistakes.
Such as using Data Migration Tool
Yes, we know you might find this surprising. We did, too, when we compared how much time it took us to migrate the data. Long story short - it went faster without it. Why? The Data Migration Tool works best if your shop is simple and barely customized. We haven't seen a Magento shop like this in years. In all other cases, you'll need to start with adjusting the tool to your client's M1 platform, then migrate the data and then adapt the data anyway. Magento 1 and Magento 2 are simply too different to use any non-custom-built automated migration tool, especially if you want to avoid wasting time on fixing the damages.
However, if your team writes a customized Product Database migrator, tailored to your shop’s needs,
you should be able to migrate the data rather painlessly.
If your catalog isn't large, it might be faster to move it manually than to write a migrator/importer. As usual, take costs into consideration.
Developing your M1 when your M2 is in progress.
Changing the code of your old platform when your developers are migrating it to Magento 2 is not a good
idea. You invest a lot of time and money into creating the new webshop, so stick to the development plan
to avoid chaos and unnecessary changes to the written code.
What you can do is to use the Magento 1 as a test field to try out new functionalities you plan to implement in the Magento 2 shop.
Moving Unnecessary Data
The biggest challenge is not to clutter your brand-new Magento 2 shop with unnecessary data.
Decide if it's necessary to keep all of it.
Here are some questions to help you make the decision:
- Does keeping the whole database fulfill any business need?
Do you need it for reporting purposes only? If so, you can simply compare reports from Magento 1 and 2, use Google Analytics, or, if you decide to use an ERP system you can generate reports directly from that software.
- Are you obliged by law to keep that database?
- Do you need to move all client accounts or only the accounts of those who made a purchase?
- Maybe it's time to consider moving your database to some ERP system?
- Do you want to move the whole product catalog as is, or perhaps is it time to update it as well? (fresh pictures, new descriptions, etc.)
- Maybe you should consider moving your catalog to a PIM (Product Information Management)?
It's possible to keep the passwords from the Magento 1, but you need to flag them in the database. By doing it this way you avoid numerous password recovery requests.
It's worth emailing your clients and notifying them that the shop was updated so they can expect some new functionalities, a new layout and so on.
Custom functionalities also store data which needs to be migrated.
If you can install a solution from the marketplace, which is based on the same data structure, it's great. If you can't, the best solution is to write a custom migrator to move it from the Magento 1 to the Magento 2.
Mailing lists: remember to copy those lists from the M1 to the M2 or, if you use some external solution, remember to connect your new Magento 2 shop to it.
Keep URLs or make sure the old links point to the new version (URLS mapping)
Customers Orders Database migration:
Here are some example solutions you should consider:
- You keep the key data and transfer it to your Magento 2.
- No orders history.
- You don't keep old data in your Magento 2 shop.
- Way cheaper migration.
- Your clients won't be able to check their order history without the additional work of the development team.
- If you decide to update your Magento or even change the platform, you won't need to move the database anymore.
- You need to integrate your Magento 2 with the chosen ERP software and move the data. Additional time and cost (but just once!).
- Extensions from the marketplace are rather cheap (or often free).
- Their code is often of poor quality, and adjusting it might take as much time as writing it from scratch.
Cluttering your M2
Think twice every time you want to install any new extension. You don't want to turn your fresh M2 into a garbage dump! Any extra line of code unnoticeably slows down your store. It seems cheaper than going for a tailor-made solution but, in the long run, it xmight be pricey.
Build your new platform
And finally, we got to this part!
The project is setting off, and you're about to (and by 'about to'
we mean a reasonable period of time) have your new sales platform.
Only a few aspects left to decide, and one of them is…
...choosing the design
We recommend two solutions:
As we mentioned before, migration to Magento 2 means we build
a new shop for you. It's a great moment to refresh the design. But remember, it means your
project will take more time and money.
Make sure your designer cooperates with your developers during the design process. It's way easier to change the project than to re-write the code.
Choose the PWA approach.
Build the PWA front-end, connect it to Magento 1, create a Magento 2 store, and connect the PWA front with it. So simple!
You can read more about the PWA solution below.
Regardless of the option you choose, make sure your designer is UX-conscious.
Ask about the wireframes, co-work on them, and don't redesign or make changes to the interface while it's already in development.
You do it all because your business goal is to sell more so the whole shopping process flow should be as easy and convenient for a client as possible.
And while we're on the subject, it's good to UX audit your shop from time to time. Here's a link to a study case describing how implementing changes led to a significant conversion rate improvement.
To PWA or not to PWA - that is the question!
As we mentioned before, the PWA approach has been growing in popularity since it was
introduced by Google in 2015.
Currently it's considered the future of web development.
It sounds very exciting (and it is), but before you make a decision, you should consider some factors:
The PWA is an ideal solution if:
- you have a shop with a highly-customized user interface,
- you want to have the best interface on the market, BUT
- you accept it's not the best quality/money ratio (i.e., it's not a cheap solution)
- you’ve got a long-term plan and strategy for your business
- you’re aware you’ll utilize its full potential in the future
- you want to gain a technological and competitive advantage
- you want to acquire new users and dominate the market (the best solution wins)
- you have content coming from various sources such as PIM, Wordpress, Instagram, etc.
These are three major factors for the project to succeed:
Your designs need to be refined and prepared with/by a UX designer who knows the PWA technology.
No or minimal changes to the designs during the development process. Any changes at this stage are costly.
You’re willing to spend 2-3 times more money on the PWA (than on a standard front-end), and you accept this risk.
Integration with external systems
Earlier in the text, we recommended starting from a Magento 1 shop audit. If you did that, you learned which apps were useful, and it's worth keeping them in your Magento 2 store. You also know best how do you want your business to grow and what solutions it requires to make it happen.
The most crucial integration is with the ERP system, if you decided to implement it.
Although you buy a ready solution that is Magento-dedicated, every shop is different, so it might need to be adjusted to your shop. Always analyze the solution first, decide if it fulfills your business needs, and if it requires any further development.
Another question you need to ask yourself is whether your business requires all of the functionalities this out-of-the-box solution offers. We've already mentioned in the text, you should avoid cluttering your shop with redundant code, which impacts the performance.
Payment and shipping solutions are also essential. Don't forget about the marketing side, from Google Analytics (or other tracking software) to mailings.
Check if the apps you decided to keep have Magento 2 versions (and as it's already 2020, the most
popular ones do).
If you decide there's no out-of-the-box solution that would fulfill your business needs, your team can help you with that by writing it from scratch. Remember, it increases the final cost, so double-check if no other application solves the problem.
Be careful, though, with payment gateways. In this case, it's better to stick to ready solutions that are well-tested in various scenarios.
You can get most of the apps online after you set up an account (and most often - pay). But be aware that to purchase some solutions (such as some ERP systems), you need to sign a paper contract. You need to take care of it in advance. Otherwise, it can impact the development schedule.
For complex integrations such as with ERP systems, ensure that there's a technical representative of the solution provider that can answer your questions. Otherwise you'll have to find the answers by yourself.
Make sure it's properly tested and keep in mind that sandbox testing options might not fully reflect the actual shopping process. Proper testing takes time and usually indicates areas for improvement. The development team also needs time to apply those changes.
The platform is almost ready, so it's time to challenge it to find areas for improvement. Some people say that clients are the best testers but believe us, it’s way better if your QA team finds and reports the bugs.
We do realize that at this point, you can't wait to launch the platform and don't want to postpone it.
If the performance tests indicate necessary adjustments, make sure there’s time to apply them (and test them again).
Make test orders, test payments (using real credit cards/ Paypal, etc.), and check if the shipping options work (shipping orders are being sent to shipping & delivery companies and email notifications to your test clients).
Your current shop has its URL schema, which is indexed by Google. During a migration, make sure that those URLs stay the same, or that redirects are made. A smart way to verify if it's done correctly is going to top-visited pages in Google Analytics and checking their paths on the new platform.
Train your in-house team
Book enough time to train your team and make sure they
know how to operate your shop.
Even if they used the Magento 1 version, the back-end of Magento 2 looks completely different. They must familiarize themselves with it before the shop is live.
If you decided to move the data to an ERP system or some other solutions were implemented, there is even more to learn.
Launch your new platform.
Check when the traffic in your Magento 1 store is low
and pick that time for the launch.
It's good to notify your clients that you're going to launch a new version and prepare a downtime page which will inform your clients what is going on and when they can expect it back online. If you have a LiveChat in Magento 1 and your clients are used to it, it’s worth to implement it also in Magento 2. In case of any questions or doubts, they can contact you right away.
Please remember that it will take some time until Google reindexes your site!
Ensure maintenance & development
Once you finally launch your new Magento 2 store, it's
just the beginning of the journey. You made some assumptions at the beginning, and now you test
them on a live version.
Some solutions turn out well, some don't and need further adjustments - and that's ok.
Investing in the development of your platform is not only crucial to maintaining a competitive advantage but also to ensure it's well-secured. Install the updates and security patches to avoid a security breach.
Like we said at the beginning, migration from Magento 1 to Magento 2 means we building an entirely new platform from scratch. The person responsible for decision-making needs to be engaged in every aspect of the project, especially with the PWA, and have clearly defined goals.
The key goal for an e-commerce platform is to sell more.
The whole development strategy should be focused on increasing the conversion rate. We can learn about
clients' shopping preferences from multiple reports analyzing every click they make on our website.
Make sure you make use of that knowledge and implement improvements, those suggested by your clients
in the first place.
Keep researching new solutions and ways to upgrade your platform. And if you haven't switched to the PWA yet, it is be an excellent way to achieve that.