Hello, Amasty blog readers!
Magento 2 has just celebrated its first birthday. From its very beginning, we at Amasty started developing Magento 2 extensions, and now we have 57 tools available at our store. That’s almost five products a month on average!
We don’t know if Magento will continue releasing 2.1.X versions or will jump to Magento 2.2 version soon – but looks like after the New Year we have a chance to see a new version.
It’s not a surprise that for now Magento 2 is still in the phase of active improvement – I think that almost everyone who works with Magento 2 can say the same.
We already know Magento 2 as good as we know Magento 1, and today we’re sharing our thoughts on what we expect from Magento 2.2: not just fixed bugs, but some improvements which will be of use both for the merchants and for the developers.
Alexey, Certified Magento developer
I do think that the Disable Output setting should be removed. It often confuses the customers, because they don’t see the difference with just disabling extensions, and it is causing a lot of issues. The number of support tickets we’re receiving on that issue is enormous.
What is more, I’ve seen a lot of confusion when it comes to changes in the production mode. Maybe it’ll be better to show a notification in the admin panel or at least an additional field to display the current mode. Very often the customers are making changes in the production mode and then don’t understand why they can’t see the changes on the website, or the site just shuts down.
Sometimes I really need a setting for disabling automatic logging out for cases when you log in under the same user, but in another browser. Now the automatic logging out is very inconvenient when you’re developing and testing the extension in several browsers, and I wish I could turn it off for a period of time.
And last, but not least – I’d really like to see more public methods in Magento 2.2, because it would give us more opportunities when it comes to changing their functionality.
Valentina, Magento developer
When working with Magento 2 extensions, I found that it is still very slow, especially the checkout, when you’re building extensions without turning the cache on. I do hope that Magento 2.2 will be much faster.
Pavel, Magento developer
Sometimes, when you dig deep into the code while building a complex extension, you can see things that are not quite perfect and are likely to be in the stage of development. For example, this functionality is not exactly what we see in the Magento 2.1 code.
That’s why I really expect that with the Magento 2.2 release we will see a clearer picture of where the code will be heading to in the nearest future. Also, it would be great to have the docs that are closer to the reality, and more examples from the github would be of great help to us, Magento 2 developers. The current github examples were updated a year ago, and only one of them was updated 6 months ago. A lot has changed in Magento 2 since then!
Vitaly, Magento developer
Of course, I would be really happy to see the majority of bugs and issues fixed in Magento 2.2.
It would be great to have additional instruments for creating ready made models via the console.
For example, we could create a table, run the console command, giving the table name and the model name as the values. The result could be the necessary files with field setters and getters functions – a great time saver for developers!
The UI components don’t always allow to delete objects while rewriting. For example, we can add an element to the grid, but we can’t remove it.
It would be nice to have dispatchEvent back. It was left in a couple of places, and I’d like to see more of them. Of course, there’s a replacement – plugins, but they can be used only for the public methods, i.e. with certain limitations.
Now I see Checkout_index as a bulky solution. It eventually comes to creating a huge json-data and using js-components. And here, again, we can’t replace entities, we can only add them, not always gracefully. As a result, we are dealing with rather strict structures, where it’s difficult to incorporate the new stuff.
Stas, Certified Magento developer
Here’s the case I would like to see as solved in the new versions.
- Single-Store Mode is off, I’m going to change something on the website level, for example, disable the module output
- Turn Single-Store Mode off
- And we’re getting an unexpected result: the site’s behavior looks like output is off, but the advanced page will look like it’s on. The same applies to the other settings as well.
So, if Single-Store Mode is on, the platform should ignore the other settings.
As I know, currently we can add a condition to layout only using ifconfig, which is often insufficient. I think that it would be of great help to have something like ifclass=”Amasty/Model/Helper/SomeClass”, where the execute function could run any logic you want, returning true or false, and then the part of the layout with the ifclass could be added or removed depending on the result. Maybe this isn’t the best option when it comes to speed, but it’s just an idea of fixing the inconvenience.
A script for generating install data from a database table would be very effective when transferring extensions from Magento 1 to Magento 2 or when building Magento 2 extensions from scratch.
In general, here’s what I’m expecting from Magento 2.2:
- It would be great if the backward compatibility stays when going from Magento 2.2 to 2.3, and during similar upgrading.
- The current official documentation helps a lot, but I often see it could be more relevant and detailed, more of a CookBook.
- If the official Magento 2 guidelines say you shouldn’t use deprecated functions, then Magento 2 shouldn’t use them as well =) Being serious, I understand that it will be done in baby steps, because the platform is very complex and is heavily with each release.
- Of course, the speed is the area when there’s room for improvements.
Leonid, Magento developer
I’m really waiting for the possibility of adding the additional fields to checkout.
As for the PHP backend, everything looks great. We can add our own layoutProcessor, where we have the complete tree of checkout page elements, which are set from layout.xml and are loaded from the database. And we can be good with just checkout_index_index.xml as we have lots of settings for the checkout page elements.
But when it comes to saving, I’m often facing troubles. Each field has settings from JS when it comes to saving, and the only loophole I found is to use customAttributes for addresses. It’s strange to see such a great number of options and variants in the backend, and only restrictions from the JS side.
As with Magento 2 we’re getting certain code standards to follow, still some Magento 2 extensions are not quite following them.
Sometimes I find the code a little bit too hard to understand, and more detailed comments would really help. For example, EntityManager is a very useful thing, but it’s challenging to actually understand how it works – and I imagine how hard it is for developers which are not as experienced as the most of Amasty team members are.
Despite all this, I really like Magento 2 and eagerly waiting to see the new things than might come in Magento 2.2 release.
Andrey, Head of System Administration Department
I expect that in Magento 2.2 the bin/magento console script will have the return error code fixed. Now, if an error happens during the command execution, it is shown on the screen, but the return code is zero (which technically means that there was no error).
Eugene, Certified Magento developer
In xml configuration, we can’t set validation classes for parameters with xsi:type=”text” (well, as for all the other, too). The only option available is required=”true”.
Something like this would be beneficial while creating, say, some widget options. I do hope this will be fixed in Magento 2.2.
<parameter name=”image_width” xsi:type=”text” visible=”true” validate=”validate-number” required=”true”>
<label translate=”true”>Image Width</label>
All in all, we weren’t talking about Magento 2 strong sides today (their name is Legion, for they are many), because this article was devoted to the Magento 2 parts which need improvement. It’s a complex system, and none of the existing e-commerce platforms can boast of perfection, because of the essence of an e-commerce platform in general.
And we want Magento to grow, evolve and go even more practical both for merchants and developers.
We can’t wait to see the new Magento 2.2 version release and how the platform becomes better.
Now, the stage is yours! What do you like in Magento 2.1? What are your personal expectations from a developer’s point of view? Please share your ideas in comments.