Drupal E-Commerce Evolution
From the outset of the Internet, entrepreneurs and corporations alike have been asking how they can best utilize it to serve their commercial prospects. They could take advantage of a host of possibilities between online marketing, email listservs, company websites or web advertisements. Out of a sea of options, industries discovered a novel opportunity: the e-store.
Recognizing the demand for such online stores, Drupal wasted little time in creating and providing users with the tools they needed to build their own virtual storefront. The Drupal website still stores these remnants from earlier days of e-commerce. Since that time, Drupal has become a major player in providing e-commerce solutions to anyone - completely free of charge.
Early Drupal E-Commerce
The Drupal e-Commerce module was a true pioneer, providing e-commerce capabilities to Drupal users when it was only in version 4.7. The module provided a framework using a collection of modules for those interested in creating their own virtual shop with the necessities.
Furthermore, the developers continuously released newer versions with upgraded fixes and features. They listened to their supporters and established a thoroughly developed 3.x release by the time Drupal 5 came out.
e-Commerce is not only important to review because it was the first comprehensive and actively developed Drupal e-commerce tool, but also because of the foundation it laid for the following years of Drupal. It was set up similar to an application or an extension of Drupal, where users had everything available to them included in a single download. This type of all-inclusive toolset set the stage for Ubercart to follow.
Ubercart came shortly after e-Commerce with their 1.x version built on Drupal 5. Similar to e-Commerce, they perfected their solution by making swift and regular updates. The architecture of their solution clearly emulated that of e-Commerce, but they included different modules aimed to improve the efficiency of creating an online store.
Ubercart 1.x was very popular and therefore actively supported up until the 1.11 release in early 2011. They supported their original release for a long time considering that Drupal 6 was released three years prior and Drupal 7 earlier in 2011. It was only when they needed to devote more resources to their 2.x and 3.x versions that they recommended e-commerce store users upgrade from Drupal 5 to Drupal 6.
Transitioning to Drupal 6
In the years leading up to Drupal 6, many were not entirely confident of Drupal’s ability to fully serve e-Commerce users. It had a loyal following, but popular alternatives like Zen Cart could offer equal (if not more complete) solutions.
However, along with Drupal 6 came a leap in e-commerce capabilities. Specifically, the two established module sets, e-Commerce and Ubercart, made significant additions and improvements to their packages.
It may be speculation that competition between the two groups helped to fuel an increase in features and quality. However, Ubercart strove to make it as simple and as fast as possible for a user to create a store. Meanwhile, the e-Commerce developers rewrote almost everything in their set of modules, resulting in intensive development work.
Ubercart version 2.x was released for Drupal 6 in July, 2008. Some of the main improvements included the new Rules module and Views integration. However, the only module required for its core was Token.
The main use of Views in this version of Ubercart was still primarily administrative. Quick and simple order management and other store maintenance functions were part of Ubercart’s end goal of delivering ease of use. The developers boasted of easy, out-of-the-box functionality, enticing those who were not well acquainted with Drupal to start using it.
Additionally, with more payment gateway integration, Ubercart drew ahead in features. Developers optimized the cart module, including the cart block, to increase accuracy and performance. They also made many new rules to enable configurable options for users. Mass importing and exporting of products facilitated migrating and logging products, making Ubercart all the more appealing.
e-Commerce in Drupal 6
The e-Commerce module also took advantage of Rules and Views. The package included the essentials of a store, such as the cart, checkout, and product sub-modules. However, there were new additions including the ‘Buy Now’ sub-module that allowed for processing with only one click (as opposed to using the cart).
At this point, e-Commerce was still regarded as more flexible than Ubercart because it was easy to customize and extend. It also had the benefit of seniority over Ubercart, which increased trust and support.
Nevertheless, it included only PayPal and was generally considered less easy to use out of the box. It had a more difficult user interface than Ubercart for administrators and it required a lot of theming. These shortcomings, coupled with a smaller community, made it more difficult and time-consuming than its competitor. Though, as with many choices, it often came down to personal preference.
Drupal 7: e-Commerce and Ubercart
e-Commerce started to fade into the background as Drupal 7 became more widely used. It aimed for a complete overhaul of its modules, but to this day it is still in beta. It is not nearly as supported as it once was, lacking a user base and a website. Without new features, it could not hope to compete with Ubercart, especially with Ubercart’s vast number of choices and growing module list.
With Ubercart’s solid performance in Drupal 6, it didn’t need a huge jump when adjusting to Drupal 7. Its first priority was simply to port all existing functionality to the new Drupal 7 architecture. Some other important changes were made, but nothing that drastically affected the end user.
Ubercart now requires the Views module for every installation, relying on it as well as Rules more than before and dropping the use of ‘Conditional Actions’. In the backend, Ubercart developers also standardized hooks to keep within Drupal best practices. No major changes were made and Ubercart continues to be a major player and provider in Drupal e-commerce.
The Rise of Drupal Commerce
Drupal Commerce was created when a group of lead developers at Ubercart came together and decided they wanted to take e-commerce in another direction – one that wasn’t in line with the previously established path. Even on the module page, they say “Drupal Commerce was developed with a framework mindset, focusing on what you can build with it,” rather than the Ubercart all-in-one solution.
Drupal Commerce makes no assumptions about what you need. In this way, Drupal Commerce is much like Drupal – it provides a very extensible core that you can build on. This approach has significant benefits. By providing the user with just the cornerstones, bulkiness is eliminated. Ubercart has so many built-in features that it can be cumbersome to sort through everything.
This module set relies heavily on Views and Rules just like Ubercart, but it organizes products differently and focuses on modularity. Many find it more complex because of its steeper learning curve (or at least a less fully-featured solution out of the box). However, the initial complexity makes for greater customization, choice, and eventual simplicity. As such, it is the growing popular choice among Drupal e-commerce users.
Commerce and Ubercart – the Bottom Line
Drupal 7 is approaching its final days as the most current version of Drupal. Looking back at the usage of these two modules during the transition from Drupal 6 to Drupal 7, an interesting picture emerges. Of those using e-commerce that also use Drupal 7, Drupal Commerce is the more popular choice. However, approximately half of Ubercart users are still using Drupal 6, meaning that Ubercart has many more users than Drupal Commerce does.
Regardless of total numbers, Drupal Commerce’s novelty did not seem to be a disadvantage because the developers were experienced. Both modules are very powerful tools that Drupal has to offer an e-store owner. It is widely espoused that each has benefits and disadvantages and each is a unique solution that should be maintained. No matter which is selected, website owners can rest assured that both are widely supported.
Looking Ahead – Drupal 8
The newest version of Drupal is fast approaching. Alpha releases have already been made available and the full release should be ready within the year. These e-commerce transitions depending on Drupal version naturally beg the question - what will happen during the shift to Drupal 8?
Ubercart announced that it would be ported to Drupal 8, but that because it is still undergoing changes, this process had not begun in earnest yet. Nevertheless, various discussion threads and an Ubercart 4.x roadmapexist where suggestions have been made for what Ubercart should do next.
Many want Ubercart to be overhauled specifically for Drupal 8 rather than a simple port. Moreover, some think that if it does not get revamped, Ubercart will decrease in popularity. They worry that by the time Drupal 9 rolls around, it will be in the same place as e-Commerce was. Whether or not Ubercart continues to evolve alongside Drupal is unclear. No official communications are publicized by Ubercart on this matter. However, the demand certainly exists for a redesign.
Drupal Commerce is much more forthcoming about their activities in preparing for Drupal 8. In May, they presented at DrupalCon Portland and talked about Drupal Kickstart 2.x, among other future plans. The second version of Drupal Kickstart will be released when Drupal 8 comes out. However, as for Drupal Commerce proper, they are waiting for the code to stabilize before releasing a version just like Ubercart. Fortunately, due to a more advanced Drupal core, it is likely that the Commerce core will be streamlined and slimmed down.
The team welcomes any suggestions on their issue queue, though they have many plans in mind themselves. Namely, they want easier integration with third-party software. This plan further shows that Drupal Commerce's focus is not on e-commerce as a singular application, but rather as a part of the Drupal site that requires integration and interaction. Additionally, they plan on making a more developed internal module API, removing a large reliance on Rules, and adding further customizability to allow for optimal performance. Furthermore, a comprehensive to-do-list exists for each internal part of Drupal Commerce and for integration with new core modules.
Both Ubercart and Drupal Commerce promise good functionality and features in the new version of Drupal, and their user bases are undeniable. However, it will be interesting to see what happens to users of Ubercart 2.x (Drupal 6). As mentioned before, half of Ubercart users still use 2.x. Many sites upgrade to a new version of Drupal if they are more than one version older than the current Drupal version – either because they want a modern and secure site or because modules cease to be supported. Many may transfer over to Drupal Commerce in a site migration to Drupal 8 if they decide to do an overhaul.
It is hard to predict what the future holds for Drupal e-Commerce. A new solution may yet emerge just as Drupal Commerce did. It is possible that Drupal Commerce may take over the market entirely – they do have the developer team, the community, and a clear vision. At the same time, Ubercart and Drupal Commerce may also continue to introduce new features and maintain a healthy balance of options for Drupal users.