Over the next few months, we will make our way through our first Magento 2 implementation. No doubt the experience will be a mix of foreseen and unforeseen challenges. To help you out, our Magento 2 systems architect will document those challenges monthly on this blog. By staying tuned in, you can approach your own Magento 2 implementation with slightly-less-white knuckles.
Before we rattle off those challenges, we thought it best to start with some advantages that make Magento 2 Enterprise worth your time and energy. They come from David Shuford, a member of Magento’s Certification Advisory Board and our senior solutions engineer. David spends most of his time working with our potential clients to build statements of work. To do that, he works alongside e-commerce managers and developers, technology platforms, and salespeople. His job often includes explaining reality to marketers like me who see new features through rose-colored lenses. Together we looked through all the promises Magento is making about the new platform and found eleven real situations that make it worth an upgrade.
A few reasons to upgrade have to do with making things easier for developers. You might wonder what that has to do with you. But remember that anything that’s easier for developers takes less time, and anything that takes less time ultimately costs you less.
Magento 1 requires a lot more hardware to scale. A few extra servers per year can be expensive, require more support, and create more things that can go wrong. As they say, mo’ hardware, mo’ problems. Additionally, and unofficially, we’ll say that Magento 1 doesn’t have the most stellar reputation for page load times. If you’re like us, a few bad experiences have given you nightmares about the SPOD (spinning pinwheel of death).
Because of the new code architecture and database design, Magento 2 requires less hardware. Not to mention, CSS pre-processing increases performance and speeds up page loads. Above everything else, this performance improvement is the number one reason you should consider Magento 2 (goodbye SPOD; you were loved by no one).
Regression testing ensures that whatever you’re adding isn’t breaking something else. If you have a complex e-commerce solution with a lot of moving parts, or if you have a large online presence and would like to maximize your risk mitigation, then you should be performing regression testing every time you roll out a big feature. Unfortunately, testing is a pain on Magento 1. Believe us, this may be the biggest pain point you didn’t know you had.
Magento 2 minimizes the effort required to test, which helps ensure that added functionality won’t unintentionally affect other features. The built-in testing framework helps facilitate functional testing and minimize the effort required to perform regression testing. The framework allows any site, regardless of size, to run automated tests.
If a page load is like a physical step, then a page reload is like being made to hop in place. It’s a maddening experience when your connection is slow. With Magento 1, every time you add a product to the cart, the page has to reload. This is yet another few seconds between your customer making a decision and seeing a result. It’s especially annoying to your customers if you have a high number of average items per cart or you have really heavy content on your product pages.
Ajax add-to-cart removes the need to reload all of the content on the entire page. The change will positively impact your customer’s experience even if they don’t directly notice the time you saved them.
Admin Table Filtering
Spend a lot of time sifting through data in Magento’s backend? Of course you do. Want to change the columns, switch up the rows per page, or filter the table in all of your Magento table views, but don’t want to spend hours customizing?
You can now do all of those things in a few seconds with a dropdown menu. Plus you can save your favorite ways to view data so that you can access them again or share them with other admins. We all like and need different ways to view data, so this ability to create, save and share your presets is one of the most practical and noticeable features of the new interface.
You want to access Magento on a mobile device.
Do you sometimes find yourself nowhere near your computer when someone sends you an email saying you need to get into Magento’s backend? Maybe you’re at a concert when you learn that a product description for a popular item has an embarrassing typo. Or maybe you’re lounging on a beach in Barbados when you suddenly want to know how many pairs of underwear you sold that morning (it could happen).
Thanks to Magento 2’s new interface, you can now use a tablet to manage your Magento store. We’ve even found that a large phone with a high pixel display works pretty well, too. Not to mention, the whole thing just looks better. Also, bonus fact, Magento 2’s new interface matches the look and feel of Retail Order Management. The more you know…
Prototype framework has been replaced with jQuery.
Blu-ray versus HDDVD. VHS versus Betamax. jQuery versus Prototype. Like so many of us who thought LaserDiscs were the future, Magento bet on the wrong technology. Prototype and jQuery were once neck and neck, but it’s now quite obvious that jQuery is the more robust, more supported technology. Working with Prototype is irritating for developers, and working with irritated developers is… well, it’s irritating.
So long SOLR, hello Elastic
While the integration of SOLR and Magento is native, the configuration of SOLR is not. In other words, the framework for integrating is offered out of the box, but customizing the search engine to fit your needs is not so easy. This is because SOLR doesn’t really have a configuration panel, so if you want to configure your indexing settings, you have to rely on a developer, who will also have to set up a SOLR database. If you’ve already got a configuration you’re happy with, feel free to move on to the next section. However, if you’re on Magento 1 and a good configuration is still on your roadmap, this is an inevitable hassle.
Elastic is Magento’s new search engine of choice. Besides easily integrating with Magento, the configuration is supposed to take less time than a SOLR configuration. We say supposed to, because the official integration hasn’t launched yet. That said, Magento promises a much easier solution for configuring indexing settings.
RabbitMQ (Message Queue Framework)
This next one takes care of two seemingly unrelated problems. First, everybody has problems with their integrations now and again. But as it is, it can be a hassle to figure out where and how messages (like ones between your warehouse and Magento) are getting dropped. And second, you probably dread the day you have to integrate a new ERP, warehouse, or other new system. Anything that can make that process easier (and cheaper) is a welcome change.
RabbitMQ (Message Queue) is a new piece of technology that comes with Magento 2. Basically, it makes it easier to find out where and why messages get dropped and lightens the workload when you’re integrating a new system.
The technology is named after it’s secondary function, which is to store undelivered messages in a queue until they are picked up by another system. Messages go undelivered for a number of reasons; maybe the connection is dropped or, for performance purposes, your warehouse only wants to update twice a day. In some ways, RMQ is like voicemail. Before its invention, it was either make a connection or try again later. RMQ allows you to leave messages until the receiver wants to pick them up.
Another great part of the queue is transparency. Site administrators can easily jump into RMQ and see a list of messages and their status. So if your customers call and say “Where’s my order?” and you find out that your warehouse hasn’t been receiving orders, you can go see which integrations are failing and where. After that, you can contact your developer to reconcile the issue. The alternative? No accountability of whether information was received or not. You wait for things to break and you spend hours trying to figure out where they broke.
Still, that’s not really the best part of this new feature. The primary function of RabbitMQ is to act as a hub for data that passes between systems. In this way, it could be defined as open-source middleware with a built-in integration for Magento Enterprise (not totally unlike SOLR). So what does this have to do with you? With Magento 2, you can add or switch out new systems without having to change the way Magento sends messages or exports data. That’s half the battle already won. You just have to put your messages in the queue.
Say you’ve been wanting to integrate videos on your product pages for a while, but it seemed like too much of a pain to customize. Also, with any customization, you might create bugs and errors, or if it the code is not written well, you’ll unnecessarily increase page load times.
In Magento 2, you just add a link to your video, a title, and a description as fields on the product page, and the video populates. You can even customize the preview image. There’s no need to worry about where you’re going to host the video or how this may interfere with performance.
Composer Installs – Package Manager
Your code depends on a number of libraries and some of those libraries depend on other libraries. One downside to this is a rather complicated and manual update process. When Magento comes out with an urgent security patch, this can be a hassle and a risk.
Composer allows you to declare the libraries you depend on and finds out which versions of which packages can and need to be installed, and installs them (meaning it downloads them into your project). For your developers, they only have to change one file and that instructs composer to pull the code. In simple terms, less time, smaller costs, and less risk.
Split the database
In Magento 1, customers browse and check out on the same database used by employees in the admin. Sharing a single database means that one overloaded area can devastate performance for all three. For example, if you’ve got too many admins poking around Magento’s interface, your customers are going to experience slower page loads.
With Magento 2, you have the option to create three separate databases, referred to as “main” (products and configuration settings), “checkout,” and “orders” (where the orders are stored). Therefore, your admins working in Magento’s OMS won’t bog down performance for your customers and vice versa.
DevDocs – Formal Documentation
Magento 1 documentation leaves a lot to the imagination. For example, maybe a developer has a question about configuring multiple databases like in the example described above. In the past, a developer’s best bet was to search Stackoverflow, an online forum for programmers. Barring that, there was always Google. But even if the developer managed to find an answer, there was no telling how reliable it was.
At an agency like Blue Acorn, teams work together to fill in knowledge gaps, but many Magento developers work alone. As the employer or client of such a developer, you’re often the one paying (directly or indirectly) for them to look for solutions instead of writing code. Paying for research is a part of any complex service, but a more efficient solution would be welcomed by everyone.
Luckily, Magento heard the cries of the community, and has released DevDocs, a community-driven documentation portal moderated by Magento. The information is consolidated in one place, and because Magento is moderating the community, it’s much more reliable. Magento 2 developers will spend less time looking for answers and more time programming.
The future is coming.
There are another few items on the roadmap for Magento 2. They aren’t far along enough for us to comment on in depth, but they have us excited. These include:
- Magento’s Visual Design Editor
- B2B Features
- Quality of the Magento 2 Marketplace
We’ll be sure to release more articles as these features are released. Next month, look forward to our next blog from Jim Simon. He’ll be diving into the challenges and solutions we find during an actual Magento 2 implementation. In the meantime, check out our work or contact us about having your next site built on Magento 2.