Updating our clients to Magento 2 hasn't been easy. Now that we've been working on upgrading several clients we have a bit we can share on the process. Some of the challenges that we've had to overcome include:
- If a Magento 1.9 or 1.14 merchant has advanced customization (i.e., inventory synchronization, custom modules, etc.), then all of their code will need to be re-built for Magento 2.0. Many 3rd party Magento extensions have been upgraded, but not all of them. You can either wait for the extension provider or have your developers update the code for you.
- Data migration requires a fresh install of Magento 2, and then you move your data. However, media storefront design, and ACLs (Access Control Lists) will all need to be migrated manually.
- There is no backwards compatibility, so once you upgrade you can't roll back.
- There is a migration tool ready that should help you with most of the data (store configuration, products, customers, orders, promos and shopping cart rules, etc.) - however, you need to migrate custom data and extension data manually.
- No themes from Magento 1.9 will work out of the box on Magento 2, meaning they have to be completely redone.
Magento 2 frontend has a lot of issues, one being the most important: CSS preprocessing. If you want to follow the rules and keep your theme modular and compatible with all extensions on the market, you will need to use built-in LESS preprocessors. Less is a CSS pre-processor that extends the CSS language, adding features that allow variables and functions that will allow you to get more out of your theme.
Some of these challenges will bear fruit. Going through the upgrade process allows you to:
- Get a fresh perspective on admin and business processes
- Fix UX, UI, or conversion issues
- Remove old legacy code
If you have 50+ extensions on your store (and we've seen sites with more), Magento 2 can be a lifesaver as it will make you think and re-think things, hopefully in a better way. Long-term, you gotta bite the bullet and upgrade before Magento abandons your current version and stops releasing patches. You'll eventually be happy you did it anyway since there are some cool new bells and whistles.