State of Magento 2 - Part 3 - Feature Development
This is the 3rd article in our State of Magento 2 series. You may want to read Part 1 - the changes and Part 2 - cost of ownership as well. The release of the first two articles seems to have stirred up some controversy and several small inaccuracies were pointed out. I have updated and will continue to update these articles based on feedback. A hearty thanks to everyone who has joined the conversation.
New Features - Worth It?
Fortunately, a pretty good article summarizing what to expect from the current release (at the time of writing), 2.3.0 has already been written by Roy Andre Tollefsen of Butikkeier in Norway. It’s a good, if somewhat meandering tour of promised features. His overall take is that 2.3.0 is not production-ready and to wait at least for 2.3.1.
Timing and roadmap
Olga Kopylova’s presentation at Imagine 2018 on Magento 2.3 promised a host of features. This article will ignore most of the under-the-hood stuff that developers are waiting for and focus on the top merchant-related features.
Version 2.3.0 was released in January of 2019. Honestly, we were really expecting this in mid-to-late 2018, but, as we all know, product roadmaps in software are navigated with crystal balls and not maps. We do not yet know when 2.3.1 will be release, but, as Tollefsen states, merchants should probably to wait for 2.3.2 or 2.3.3 before thinking about going to production.
I’ll stop you right there. There is no Pagebuilder in Magento Commerce 2.3.0 except for a select few ‘trial’ partners. In other words, for now it is just a toy for the in-crowd. I look forward to testing it after the 2.3.1 release - for which no date has been set.
Business-to-Business (B2B) Feature Set
Magento’s much-touted B2B feature set is available in 2.3.0(and has been in prior editions) so we were able to run it through its paces. There were really no surprises in terms of limitations because Magento has done a pretty good job of communicating the feature set and using the features is well-documented on the Magento user guide.
The key features offered are:
- Grouping customers into companies
- Company admin can manage company users
- Catalog sharing (required for custom pricing)
- Requesting a quote
- Quick order form
- Requisition list
There are some notable limitations that make me feel like the B2B features are designed more as a B2B-lite or B2B starter kit to be expanded by a developer than as an end game.
…the B2B features are designed more as a B2B-lite or B2B starter kit….
Magento allows you to create ‘Companies’ that have multiple users associated with them. Companies are created by the merchant. The company administrator can create hierarchical relationships within their company organization. These hierarchies really just allow the company administrator to keep their users organized visually. There is no implied inheritance of addresses, permissions or other attributes.
The ‘Company’ entity in the Magento admin panel seems to be window-dressing for the customer group feature. In fact, any companies you create wind up in the customer group list. You can assign a Company to a customer group which is a very useful feature. However, you can only assign a customer to a single shared catalog (kind of like a price list).
The ‘Company’ entity in the Magento admin panel seems to be window-dressing for the customer group feature.
For example, if Company C gets your regular tier I pricing, but, to seal the deal with them you had to match your competitor’s price on Widgets A and B, you’ll have to recreate the tier I pricing on their shared catalog for all prices and add custom prices for Widgets A and B. Additionally, if your tier I prices change on non-widget items, you’ll have to update all of the tier I prices on Company C’s shared catalog.
We will do a more thorough review of B2B features in a future post, but, I think you get the idea. If you are a company that sells principally to consumers and has a few B2B customers or wholesalers, this feature set could be useful. Or, if your customers consist entirely of small companies and all of your products are proprietary and there isn’t much pricing variation, then, I can see this working out for you. Otherwise, you’ll need to do some serious feature enhancement to meet your business needs.
Progressive Web Apps
Progressive Web Applications (PWA) is a handle for a front end development philosophy and set of tools that is probably the next step in our evolution from responsive web sites. The goal is to improve both the mobile experience to make it more like a native app on your phone while also improving the experience on desktop and other devices.
Magento (and most other CMS-type applications) does not really support PWA design out of the box, but, the Magento team is working to rectify this through a product called PWA studio. However, as of the time of writing, there are simply too many holes in the PWA studio offering for a merchant to simply install Magento and expect to be able to have a PWA up and running without an enormous amount of effort.
The PWA studio is a proof of concept which, though useful, is not complete. I succeeded getting a very limited storefront using the Venia store proof-of-concept PWA up and running without much trouble. However, it was far from production ready for too many reasons to list here.
My assessment? Magento’s current state of support for PWAs is only useful for merchants with very large budgets who can develop around the issues. Magento has been messaging very heavily that the PWA and PageBuilder will be compatible. I applaud their moxie. I doubt the two will be compatible at first launch of PageBuilder. In any case, there is not a clear timeline commitment for either.
Magento’s current state of support for PWAs is only useful for merchants with very large budgets who can develop around the issues.
Help may be on the way, however. Magento is working hard to release the next generation and there are several initiatives for PWA development using Magento (and other platforms) as a back end using different technologies like VueJS (which I personally prefer to React). It is entirely possible that Magento’s chief contribution to the PWA effort will end up being improving the GraphQL API.
Nobody is asking me, but, I would love to see something come out that is more standards-compliant and svelte like an ELM-based front end using WebComponents which would broaden the library of features tremendously and potentially be easier to make compatible with PageBuilder. I feel like tying ourselves to a React front end will end up limiting designers more than enabling them.
would love to see something come out that is more standards-compliant and svelte like an ELM-based front end using WebComponents
Multi Source Inventory
This module, developed entirely by the Community (volunteer resources), has been accepted into Magento core. This is probably the best addition to Magento in a long time for many merchants. It’s features include:
- Breaking inventory out into multiple physical locations (called ‘Sources’)
- Grouping physical locations into regions (called ‘Stocks’)
- Magento can choose the source for a shipment with rules set at the global level or per product either based on a priority or distance calculated by Google (account required)
- When shipping a package, you can either pull the quantity from the recommended source or change it
While I don’t think this solution will do much for large enterprise merchants, I can think of a number of mid-tier merchants whose sites we have worked on that will benefit from this feature.
Or initial round of tests show that it is relatively complete and, a look at the Magento MSI Project Board shows that most of the outstanding issues are relatively minor or corner cases.
Other Handy Feature Enhancements
I’m glad they got rid of the old WYSIWIG editor which was as confusing as it was useless (we almost always disabled it). It’s really more of a cleaning up than an upgrade, but, we’ll count this as a win. The only thing that I would have kept was the code eraser (for merchants who haven’t learned not to cut and paste from Microsoft Word, yet).
I’m glad they got rid of the old WYSIWIG editor which was as confusing as it was useless
This is essentially the same functionality as the “Buy Now” button in Amazon. Creatuity did a good job of implementing the functionality provided by BrainTree. It only works of you are using Braintree or Payflow Pro (by PayPal) as your payment processor.
Two Factor Authentication
As a big advocate of 2-factor authentication, I should be a big fan of this feature, but, I’m pretty lukewarm. It doesn’t support texting a code to a device, you have to use one of the authentication apps that are compatible with the system. The most popular app available is Google Authenticate, which I use, but, I prefer LastPass for a number of reasons but mostly because I would rather keep as much information about me out of Google’s hands.
They also support Authy, which I have not personally tried but which is popular in the privacy community overall. I hope Authy gains ground as it seems to be a very solid solution.
For now, this module has to be installed by a developer from the command line. Once installed, you can configure it form the admin panel. Though I have not tried to use it, yet, based on the number of caveats in the documentation and the general chatter, I would probably wait for the next release to try this feature.
…based on the number of caveats in the documentation and the general chatter, I would probably wait for the next release to try this feature.
This is certainly a bright spot for Magento and an area of enormous progress over the past couple of years. Documentation for platforms, especially open-source platforms is a constant battle. Updates and upgrades quickly render old descriptions obsolete.
This is certainly a bright spot for Magento and an area of enormous progress over the past couple of years.
While far from perfect, overall, both admin users and developers have benefitted from the upgrade in the way documentation has been written on Magento 2.
In the past, documentation basically went through the menus telling you what you can and cannot do and what is in the drop downs. It was wordy and generally told you nothing you couldn’t figure out by just clicking through the options yourself.
The new Magento documentation is much better. It explains longer workflows like setting up shared catalogs and the ideas and concepts behind features (in many cases) as well as linking to additional helpful information in related features without interrupting the flow of the prose.
So, ladies and gentlemen of the jury, what is the verdict?
Last year, a lot of announcements on features and feature development were made by Magento. For the most part, those promises remain unfulfilled or partially fulfilled. Yes, progress has been made, but, maybe we need to work on how features are announced.
Better Transparency on Community Projects
One of the absolute best things Magento has done in the past couple of years from a transparency perspective is the reorganization of their project boards on Github. For community-developed features, at least, you can now look for the Github repository, click over to the Projects tab and see what items remain. It appears that these boards are pretty-well maintained.
Why is this important?
The project boards are like a weather map for developers. When we’re evaluating if a new feature set will be available in time for a merchant to use, the board helps us determine if the community is getting stuck, if it is almost ready, it there are some features that have been pushed to a future phase, and so forth.
There are a lot of really talented people at Magento doing a lot of great work despite all the reshuffling by Adobe. They are making progress. For many developers, the frustrations fall into several big buckets.
- Magento has a history of prioritizing feature development over clean code. Each new release since the beginning of Magento 2 seems to add to overall technical debt and merchant frustration.
- Magento’s sales organization seems to add smoke to the marketplace by making claims that don’t hold water with reality. As developers and agencies we have to go back to clients and explain to them why the feature they want doesn’t work or why Magento Cloud hosting may not be the right choice for them. For non-partners like us, it feels like we shouldn’t have to correct misstatements. For Magento partners, it must be heart-wrenching and, potentially, a legally-ambiguous situation.
- Magento doesn’t seem to take into consideration the impact of cost of ownership. As a developer, I would much rather my clients spend their development funds on feature enhancement and innovation than testing, QA and fixing bugs.
Migrate or not? (TL;DR)
So, for the Magento 1 merchant who is considering a move to Magento 2, I recommend pausing and considering other options. In many cases, it is going to be the right move for you. Look around at other platforms and consider all the factors. The options have changed since you built your store on Magento 1. If you go through the platform evaluation process and you land on Magento 2, you can move forward with enough confidence to power through the inevitable challenges. You’ll have considered the differences and, hopefully, be ready to take full advantage of the power of Magento 2. If not, you may have just saved yourself a lot of trouble and expense.