Magento 2 has, of course, been with us for a bit, now. If you’re running a Magento storefront, or if you’ve considered doing so, you’ve almost certainly read about this new version. Magento 2 is a dramatic change from Magento 1.x, both for the end-user and the developer. I’ve (finally) taken some time to experiment with it over the past couple of weeks, and I’m impressed with the improvements that have been made. Magento 1.x, as feature-rich as it was, never felt fully polished to me, leaving many common functions un-necessarily complex for the end-user. That’s where this version of the industry-leading e-commerce platform has made the most improvements. It’s not perfect, though, and I’ve certainly had my frustrations with Magento 2, as well. Here’s a breakdown of my thoughts on the newest version so far.
The Admin Dashboard
The Magento administration area has been visually improved by an order of magnitude. The clumsy, Windows-like interface of version 1 is gone and replaced with a responsive, clean and modern design. Everything about the dashboard is more welcoming, like something that you want to log into instead of something that you have to manage every week.
The visual aesthetic isn’t the only thing that’s been improved, however. The information architecture has been streamlined, as well. Remember what was, in essence, two dashboards in Magento 1, burying the developer and system settings deep and in a way that was not at all easily accessible? That’s gone, as well. Everything is re-organized, and it took a few minutes of playing around with the application for me to become comfortable with where everything lives (Themes is located under Content > Design, for example), but Magento 2’s organization is much more logical, and the learning curve is short.
All of the functionality that makes Magento such a excellent choice for e-commerce, especially for larger storefronts, is still present. Easy to set-up email and newsletters, product shipping directly from the dashboard, and the impressive selection of shipping and payment gateway integrations provided out-of-the-box, are all still available. Backups can now be performed from the dashboard, as well. The SEO options (especially the Google API) feel more robust than in Magento 1. I am slightly disappointed to see that Stripe is not included as a payment gateway. Not surprisingly, however, there are a plethora of PayPal options (including Braintree), and, of course, Authorize.net.
Setting Up Magento 2
All of these things are discovered, of course, after having a Magento instance running that one can experiment with, and that was quite a journey. Magento has always required a very specific server arrangement, and that has become even more the case with Magento 2. Most notably, Magento 2 requires MySQL 5.6. Arguably, most of the world still uses MySQL 5.5, and, accordingly, so does my development environment. Gone are the days when a Magento instance can be dropped into MAMP and I’m up and running, because many of my other (non-Magento) client projects are running MySQL 5.5. After a couple of weeks of playing around with various Vagrant boxes and other solutions, I’ve finally had the most luck with this Docker image by Alan Kent, the lead architect at Magento. That said, this is still far from a working development environment (I’m relying on FTP via PhpStorm to edit files, and still have no MySQL access established). Magento’s decision to require MySQL 5.6 is a serious development frustration, as well as leaving clients with the need for a very specialized (and, thus, potentially more costly) hosting arrangement. I wonder if Magento is moving toward becoming exclusively an enterprise solution? I hope not, because it is still an excellent choice for medium, and even some smaller, storefronts.
Theme development in Magento 1.x was a ridiculous endeavor, but that pain point has changed for the better in Magento 2, which now ships with a Blank theme that can serve as a parent for most custom themes that clients will require. I established a new child of the Blank theme in a matter of minutes, having never touched the codebase of Magento 2 previously. This is going to make life for my Magento clients so much easier, as I can already feel estimates for custom themes going down. The file structure is significantly less complex in Magento 2, and modern package managers, like Composer and npm, are used for dependency management. Magento 2 ships ready for Grunt, which is a huge win for front-end developers. My only lament here is that the decision was made to use Less instead of Sass as a CSS pre-processor (I thought that war had been finished), but that’s mostly a personal preference on my part.
After a (significant) amount of frustration in establishing a working environment, I’m convinced that Magento 2 is even more of a force with which to be reckoned than its predecessor in the e-commerce space. Of course, Magento isn’t the right choice for every store front, because every project is different, but it is an excellent choice for many clients. I’m excited to see how Magento continues to evolve as a platform.
Are you looking to set up a new e-commerce storefront and considering Magneto as an option? Get in touch. I’d love to talk with you about your project.