When should I consider Magento2 instead of Magento1?
This looks like an opinion based question, but an interesting one.
I don't know if there is a right answer, but maybe you can draw a conclusion from the answers that are/will be added in here.
Here is my opinion:
I marked with +
what I think it's an advantage for M2 over M1 and with -
what's the other way around.
The order is kind of random.
- (+) Newer technology
- (+) Ability to write tests easier
- (+) Better implementation of the module pattern (still not perfect, but you can remove modules you don't need).
- (+) Some performance improvements
- (+) Dependency injection
- (+) It will still be supported after Q4 of 2018
- (+) require.js, to make it easier to load/override js files
- (+) css pre-procesor
- (+) Better documentation (this may not be a big plus if you are already a M1 guru)
- (+) Better user experience for the admin grids (manageable columns)
- (+) No more big, fat config and layout files. Makes it more extensible.
- (+) Plugins/Interceptors. Every public method has by default 2 events that don't need to be explicitly dispatched (before and after)
- (+) Additional features.
- (-) Lack of community extensions at this point.
- (-) Not "core" stable. You can do one thing in multiple ways and none of them or all of them are the right ones (example, creating admin grids and forms). And these things are going to change quickly.
- (-) Even if some concepts are similar with M1 you still have to get your head around things (this will pass over time).
- (-) Some of the simple things become a drag to accomplish. See Changing breadcrumbs separator symbol for example.
- (-) a bit harder to debug, specially the knockout js templates.
- (-) bigger boilerplate for CRUD modules: Code Generator for Services in Magento 2
That's all I can think of right now. I will add more as I remember things.
I'm not going to recommend you a switch or not, because at this point I have mixed feelings myself.
Well, the first thing you've got to have in mind is that Magento 1 End Of Life is in November 2018 so after that date, Magento 1 won't receive updates anymore which could result in Magento 1 shops being vulnerable.
Then, there's several points:
Performance
It is one of the key point, Magento performance has been improved with version 2. It includes Full page cache out of the box, supports Varnish and PHP7 natively. Maybe you can check this Q&A regarding M1 vs M2 performance: How is magento 2 better than magento 1?
The technology stack also includes Redis, RabbitMQ and Solr Search.
Extensions
Depending on what you want to achieve, not all extensions available for M1 have yet been ported to M2. This can definitely help to make a decision.
On the other hand, the new Magento Marketplace has improved the way extensions are made available to the community and thus, ensure a better quality for Magento 2 extensions.
Stability
As you may know, Magento 2 still has quite some bugs (most of them are minor bugs but some of them could be annoying).
Tests
Magento 2 is shipped with a lot of tests, which is great bonus points where it comes to code quality.
Learning curve
The learning curve for Magento 2 is way different than Magento 1. As the software is still quite fresh, the community has not written/documented as many customization/development processes as there is for Magento 1 (but that's what StackExchange is for right ;) )
Your choice may not be that important ?
Another great point is that the Magento team provides a tool to migrate from Magento 1 to Magento 2. Thus, and depending on your project, you may want to start with Magento 1 and migrate to Magento 2 before Magento 1 end of life.
There are many reasons why we should move from Magento 1.x to 2.x. Some of those are:
Performance improvements
- Magento 2 officially supports latest PHP versions. Those versions already include new security fixes and improvements that directly affect web store’s speed.
- Ability to use Varnish caching out of the box. No need to install third party extensions for that.
- Improved process of browser caching for static content.
Better admin user experience
- Modern admin panel navigation interface.
- Now you can also link videos to your products in addition to the images.
- You do not need to contact your developers every time you want to add or remove the columns on the orders or customers management grid, you can simply choose the required columns from the available list in the admin panel.
Better frontend user experience
- Checkout steps have been improved and now it is easier for users to navigate. Guest checkout is allowed (if this feature is set to “yes” in the admin panel) and Magento 2 can automatically find the existing registered customers by analyzing their email address.
- Billing information of the customers is sent from the website directly to the payment gateway, which is a secure way. Magento 2 includes PayPal, Braintree, Authorize.net, WorldPay and few other payment methods out of the box.
Other improvements
- Modern JS Stack
- CSS preprocessing
- Composer (for managing dependencies)
- From now on only the high quality coded extensions will be available on the marketplace. The strict code quality as well as functionality duplication control are the main features of new Magento 2 Marketplace.
One big plus point why we should start with Magento 2.x is that Magento 1.x will stop receiving updates anymore after November 2018 which could result in Magento 1.x shops being vulnerable.
You can get more info from official site of magento.