It remains open season for Magento Open Source. As a general rule in our eCommerce world, we see Q3 as a calm period. We tend to take much-needed vacations. However, this year we see an absolutely different situation developing: tons of new contributions, lots of merged pull requests. The main reason is not only in postponed vacations stemming from the business impacts of COVID-19.
Development continued apace throughout Q3. This season, we’ve finally got Magento 2.4 released. Countless development time went into processing all the features and addressing all the bug fixes. Those contributions are now complete – we were able to include much in the new release. This publication provides highlights of the release and a quick recap of what we accomplished in the Magento open source world during Q3.
Read also: Magento Open Source vs. Magento Commerce
Not so long ago, the Partner Acceleration Program (PAP) was introduced. In case you are not familiar with this program, PAP is a way for agencies (Adobe partners) to involve their employees in the development of Magento core features. Basically, developers work on the Magento codebase for a limited period of time.
This program has shown itself as a good win-win solution: for agencies who suffered from a lack of work on one side, and for Adobe (Magento) who is always glad to have another pair of hands to move things faster on the other side. Pull requests (PRs) made during this program are usually marked by the “PAP” label. You may check examples of such pull requests using the following link.
By this time we have around 60 PRs (not all of them are in public repositories) submitted. This fact shows that the program works and delivers really well. By reviewing the output, we may conclude that most of the work was focused on the Commerce and B2B features. For example, reward points for GraphQL coverage and endpoints for working with companies (B2B) were delivered during Q3 by PAP. We will explore the information on GraphQL achievements later.
At some point in time, the Magento Community Engineering Group introduced the priorities system for processing pull requests – they are reflected as “Priority” and “Severity” labels for most of the PRs. They are assigned by the Community Engineering Group based on the importance of the feature or bugfix in the PR. Pull requests with severity S1 or/and priority P1 are being processed in the first turn. I must admit that the new system was a very good idea and has shown positive outcomes. Instead of waiting for a month, the most important changes are being delivered within a couple of weeks. To check PRs with S1 severity you may use the following link. You may get another severity or priority by changing the corresponding value in the filter.
We saw a short outage in the new PRs delivery right before the 2.4.0 release. This was not surprising since most resources had been allocated to the release’s stabilization. But the surprising thing was the pace of PRs processing between 2.4.0 and 2.4.1 releases. It looked like the main idea was to review everything that somehow wasn’t a part of the 2.4.0 release and make it happen for 2.4.1.
I won’t bother you by copy-pasting a changelog here. However, there are a couple of PRs worth mentioning.
- Admin Global Search. With new changes, you may use a search in the admin panel to look for categories. Previously, this option was not available [details].
isTableExistmethod of MySQL adapter. With the new changes, the performance of different operations with the database (especially create, update, delete) was improved significantly [details].
- Prevent session start for web API. The problem was in creating and checking a customer session for every request, even when the session is not necessary. As the result, the system needed additional unnecessary I/O operations that slowed the performance down. The issue has already been fixed in 2.2, but the fix for some reason has not been migrated to 2.3 and 2.4 [details].
- Improved product reviews API. The main problem of the product reviews API was the set of limits that prevent developers and system integrators from working with product reviews via API effectively. The new PR brought a huge rework to the reviews API including support for extension attributes and many other handy things. The work has started back in 2018 and merged recently [details].
During Q3 we saw really impressive activity in GraphQL coverage. Particularly, PAP helped a lot in introducing new functionality. But also, the community did a great job since we finally had a transparent backlog with constant support from the core developers.
The main goal of Q3 was to finalize coverage for some missing components and remove roadblocks from the Magento PWA Studio development team. Here are some features that were successfully delivered to the Magento core.
- Product reviews [details].
- Single mutation for adding different types of products to the shopping cart [details].
- Wishlist [details].
- Products comparison (still in progress) [details].
- Newsletter subscription and password reset.
- Gift Wrapping and Gift Message (Commerce only).
- Reward points (Commerce only).
Also, we finally see some new coverage for B2B features. During Q3 we had a set of GraphQL queries and mutations for working with the Company entity added to the core. By analyzing the current activity on GitHub, there’s a high chance to get the following parts in the nearest future:
- Requisition lists (B2B)
- Negotiable quote (B2B)
- Shared catalog (B2B)
- Catalog permissions (B2B)
- Product Returns (Commerce).
Magento PWA Studio
Such good progress in GraphQL coverage allowed the Magento 2 PWA Studio team to move forward and implement some important features that we already saw in the 7.0 release and will see in the upcoming 8.0 release. For example, the newsletter subscription and password reset are in place (we mentioned the corresponding GraphQL mutations earlier). Also, My Account’s functionality is progressing forward, and we may use the initial version of the order history and wishlist. Also, My Account section finally allows editing account details including the password.
It’s encouraging to see the reworked UI/UX concepts that the team is developing. We have refreshed form inputs, buttons, and some common components in the Venia theme. Also, the “desktop” view of the theme looks much better now from the user experience perspective. Some UI components that were hidden in the sidebars now turned into modal popups (which is a common case of most desktop UIs). A good example of that is the new My Account menu [details].
Another good example is the “Shopping Bag” – a new name of the minicart concept used in the past. Now we may see the minicart module instead of the drawer component [details]. It’s worth mentioning that the UX team has finalized concepts for the full-page shopping cart and checkout.
The multi-store support is being extended from day to day. We got the localization support for header and footer, My Account section, Sign In component, Shopping Cart page.
One of the biggest recent changes is the upgraded Apollo client (v3.0). It provides better cache controls and better network fetching performance in general.
There’s a couple of ongoing pull requests indicating that we may get some great features soon.
- Expanded order history. The grid with orders history will allow expanding records to see more details (i.e. order items) [details].
- Change currency and store locale using corresponding switchers. Switchers for changing the store view, similar to those at the standard storefront (Luma/Blank themes), will be available [currency switcher] [locale switcher].
Distributed Contribution Day
- Magento core
- Magento PWA
- Magento GraphQL coverage
- Magento PHPStorm plugin
- Magento DevDocs
Don’t miss the event and register now!
Subscribe to our blog! Make sure to sign up and receive Atwix’s November MageNews digest and our next Open Source Recap – please be sure to leave comments and share with your network. After all, the essence of Open Source lies in contributing and sharing!