Drupal Commerce as compared to Magento CE
Today we will be comparing Drupal Commerce to Magento CE. It wont be pretty, Magento is super powered compared to Drupal Commerce. It became obvious shortly after finishing the install of Drupal Commerce that many things are missing when you compare it against Magento. Unless Drupal Commerce has some sort of Kryptonite, it just wont be a fair fight.
Image thanks to Talesh Seeparsan and DC Comics
An Ecommerce platform should be providing an online store. There are several components to online stores, and all of them are nearly equally as important. We have two major actors, customers and administrators. For customers the entire experience happens in the front of the store, and includes the entire process of purchase. This includes selection of the items, checkout, returns, reviews, and many enquiries into the status of the order process.
Ecommerce administrators work behind the scenes, and have even more requirements. No two stores work the same way and many times business logic is all tangled up in the application. Warehouse management, accounting, shipping api integrations, and many other complicated systems get integrated into the ecommerce platform.
I will try to leave out many of the Magento EE features in my comparison. That being said, Magento CE still has a lot of enterprise features included with it or available via extensions. Extensions are a big part of Magento and it has an amazing collection of work that the community has done, Drupal Commerce does not have anything like this.
INSTALLATION - DRUPAL COMMERCE AND MAGENTO CE
Drupal Commerce 7.x-2.20 was used for testing. Magento CE 22.214.171.124 will be our comparison. In both cases we will just use the sample data and sample design.
"Anyone who wants to skip weeks of configuration to build a commerce site on the Drupal Commerce framework."
This statement was shocking to me as I did not have a weeks to configure and build a commerce site. Especially a simple small ecommerce site. In fact I had less than a day, I am just testing the features and trying to do a simple comparison of the platforms. Magento installation took about 10 minutes using a pre-existing VM and I was done, more about this later.
Installing Drupal Commerce using the kickstarter provided a nice easy install on standard nginx/php-fpm box that had been preconfigured to work with Drupal. Advertisments in the installer... classy. The custom Drupal installer seemed robust. Worked pretty well, ran into some initial MySQL errors during the install, which a refresh "fixed".
However this lead to a very interesting issue that I ran into during install. Percona ran out of memory on my droplet, and crashed. After debugging this, by limiting memory settings for percona, I started the installer again. This worked perfectly picking right back up where it was. I am not sure if it's always this solid but it seemed to hold steady throughout the issues I encountered.
Comparing this to Magento, I would say the commerce kickstart auto-installer process is on par. It was easy to get a store up and running. I used the standard Magento installer, and everything took about 10 minutes. I had a store up and running, with nearly everything I would need out of the box.
I would like to take a look at automated installers, and using drush to install Drupal Commerce. Magento has several automated ways to install it which are used often during the development process. Installing Magento using n98-magerun to do the heavy lifting on the install trivializes the process.https://github.com/netz98/n98-magerun/wiki/Magento-installer.
Taking a quick look at how to install Drupal Commerce over an existing Drupal site was frightening. It looks like it would be very hit or miss, and without having anything to test this against I cannot definitively gage the difficulty. https://www.drupal.org/node/1007434
FRONTEND CUSTOMER EXPERIENCE
The difference in customer experience is tangible, Magento clearly has a better design and it translates well through the whole experience. This was especially clear from the transaction emails. Magento had well formatted good looking transaction emails, while Drupal Commerce sent something very broken, with HTML rendered in a text format. This could have been settings or something else I didn't attempt to debug it.
There were a lot of frontend elements that seemed well thought out in Drupal Commerce. I liked the blog integration. You have the backend of Drupal 7 at your disposal, go crazy and make some stuff. However, the purpose of an ecommerce platform is to provide an online store and in some ways if it's not directly linked to the core process of purchase then its distracting for the customer.
FRONTEND FEATURES MATRIX
|Feature||Drupal Commerce||Magento CE|
|Homepage||This was missing some luster. Perhaps there was something wrong with demo-data, or not enough content was populated.||Well thought out responsive design with good banners, easy to navigate sections with lots of stuff to buy.|
|Other Content||Drupal Commerce has very good Drupal integration which gives it a complex set of content types and some very nice looking defaults for display the content.||Magento CMS pages look ok, but lack the finished look of the pages rendered from Drupal.|
|Categories||Again when compared to Magento this lacked out of the box "new car smell". The ALL products page felt buggy. No good banners or additional content on the categories.||Amazing. Filtering, multiple category layouts, highly configurable and easy to use.|
|Search||Not semantic and filtering suffered from same issues that the all category showed.||Not much better, clever administrators can improve this in there catalogs, and search on Magento can be improved with solr or elastic search easily.|
|Product Page||Adequate for simple catalogs. It does not appear to look as good on smaller viewports.||Very good responsive design, and a copious amount of features. It is a great starting point to add on your look and feel.|
|Cart||Lacking many features: Discount Code , Estimated shipping and Tax. Getting to the cart requires you to click checkout. Not a good UX.||Very sharp design, additional features make this page feel like it's a mature ecommerce application.|
|Checkout||At first glance they look the same, however Drupal Commerce lacks a lot when you compare the error handling and other elements of the features and implementation.||Many payment gateways, shipping methods, and a ton of other features all well integrated in a responsive design.|
|Transaction Emails||Broken out of the box, did not debug but it could have been the vm I was working on.||Well formatted emails.|
|Shipment Tracking||No shipping notifications or tracking information. Once I ordered something the only thing I could see as a customer is that it was "complete".||Integrated shipping and order status help the customer understand where there order is at.|
|Returns||No support||No support, without extensions.|
Looking at the Frontend Features you can easily see that Magento CE is clearly more suited for an ecommerce site given the responsive design is more mature and works better in almost every case. The only real sore spot for Magento is the content pages, but some complex pages are possible with the CMS blocks and a clever developer. Looking at content on product and category pages Magento seems to have done a good job allowing for adding blocks where needed.
BACKEND ADMINISTRATION CONCERNS
This is where Drupal Commerce really started to break down. Magento has its quirks and the admin panel is intimidating, but it is a fully functional ecommerce backend. Tightly integrated features that are designed around ecommerce requirements make Magento a clear winner in this concern.
Drupal Commerce lacked cohesion between Drupal core and the implementation of required tools and data objects that drive an ecommerce store. The customer data object is a great example of this, in Drupal Commerce its under "Customer Profiles" and lacks any sort of additional features that you would need day to day as an ecommerce manager.
Most of the features in the below graph are missing from Drupal Commerce, or are not well thought out and are hard to use. I think some of these are easy to add to Drupal Commerce, but out of the box Magento CE has a distinctively more mature look and feel.
Magento CE Features
|Magento CE Feature||Concerns / Description|
|Multi Store, Language and Currency||Magento has a ton of support for this feature set. You can setup store views, multiple store fronts, and accept many different currencies. This is well integrated and can scale up very nicely, allowing for dozens of storefronts.|
|Promotions||Coupon codes, customer based discounts including customer groups. Catalog price rules are very extensible and there are many quality extensions that allow for a variety of complex discounts.|
|Reporting||Magento has adequate reporting, with exports of the reports possible in various formats.|
|Import / Export||Customer data, orders and product data can be imported and exported, with varying degrees of difficulty.|
|Complex Product Types||Bundles, subscriptions, downloadable and other product types are available in Magento.|
|Catalog Management||Magento has a very nice product and category editor. There is a large amount of options and it can be a little intimidating to new comers. Import/Export functionality including API's are built in for products and categories.|
|Customer Management||Customer management is much easier in Magento. Looking up customers is easy and maintaining them is straight forward. Customer groups allow for a variety of features.|
|Order Management||Again Magento shines here. Looking at orders, and the invoices and shipments that go with them is easy. Orders go through a distinctive order flow and each step is more clearly defined than Drupal Commerce.|
|Payment and Shipping Integrations||Tightly knit integration with PayPal and Authorize.net, easy to setup payment options for many other payment options. Shipping integration is the same, with many built in and ready to use including API based shipping rates.|
|Product - Reviews and Wishlist||These features are used on many sites and are well integrated to the products. Gift messaging and other features are also available.|
|Extensions and Design||Magento is very extensible, and at this point is very mature. There are easy to use extensions for nearly every outlying business logic requirement. Frontend Design wise Magento has matured very nicely and it has an easy to use base responsive design.|
Support and Community
Both are great platforms and I think that Drupal Commerce has a bright future but has a lot of maturing to do to be able to live up to the standard that has been set by Magento CE. This article may seem very biased toward Magento but I wanted to say that Drupal has an amazing community and I would not rule out Drupal Commerce becoming a contender in the future given that.
Magento has an amazing community of developers you can find a lot of support for it. It is smaller than the overall Drupal community but it is laser focused on Ecommerce and you will find a lot of very talented people ready to help you if you do use Magento for you project.
There is no contest here, Magento clearly wins this round. We barely tapped into the benefits of Magento, it has an amazing community and a robust extension and design ecosphere to lean on. Magento does have a few downsides, such as the lack of a solid content managment tool, but they are secondary to the function of running a Store.
My biggest concern with Drupal Commerce is that it presents a brittle integration of the business logic that drives an ecommerce store. It underestimates the process of selling things online and in doing so it trivializes the concerns that merchants should have.
Running a store requires a lot of parts to work together. Things like shipments, product management, customer management and many other basic things are required to make an online store successful, without them in place your setting your merchants up for failure. Drupal Commerce does not have many of the typical required features I have run into as an ecommerce developer.
Special Thanks to Jam @ Acquia and php[world]
I had a wonderful time discussing this with Jam at the php[world] conference, and its that converstation that inspired this article. Thanks to both the conference organizers for making a wonderful forum, be sure to attend next year it was a great conference.