Prior to Drupal 7, developers had generally relied on Ubercart to provide eCommerce functionality for the websites they built, be it for their own company or a client’s. Other options did exist, but none were truly able to compete with Ubercart as a full-fledged shopping cart solution, primarily due to the level of (community) developer support that escalated its growth and propagation.
Unfortunately, Ubercart is built in a way that does not always encourage modification of its core behaviors. Anything is possible, certainly, but the cost-to-value relationship of fundamentally altering Ubercart’s workflows or approach to customer and order management does not always make good financial sense for the investor.
What is Drupal Commerce?
Drupal Commerce was not designed to be an entire eCommerce solution out-of-the-box. It was envisioned as a much more flexible system, engineered specifically to allow for customization. You might ask “Well, if it’s not an application, then what is it?”. The answer to that question is simple. It’s a framework.
What’s the difference between an application and a framework, in the context of Drupal Commerce? The most notable is the presence of the many APIs that have been written by the Commerce development team. These APIs are what give Commerce its flexibility, by allowing developers to replace/augment/extend existing functionality, or even develop brand new features that didn’t exist before.
Why is this better than Ubercart? It’s better because it doesn’t make assumptions about how you want your store to work. It leverages core components in Drupal rather than defining its own custom methods to handle certain things. A great example of this is how Commerce uses Views. Since all of its catalog, cart, and checkout pages are controlled with Views, modifying their behaviors is a snap.
Barrier to entry
When a framework such as Commerce is released into the community, its adoption is seldom very rapid. The primary reason for this is that framework/API modules necessitate that the community contribute code in the form of support modules, which can limit adoption rates for people interested in “out of the box” solutions.
Ubercart provides more functionality in its core module suite, and less technically-savvy users tend to appreciate this. Ironically, this ease-of-use is also what makes Ubercart harder to modify or extend.
Commerce’s popularity is rising in the community, and it is expected that it will gain a much firmer hold in Drupal 8 due to its rich Views integration (Views is being rolled into Drupal 8 core).
If I build a site today, should I use Ubercart or Commerce?
Choosing between Ubercart and Commerce can still be difficult, depending on what you’re trying to accomplish. A good question to ask yourself is “How much does my ideal eCommerce solution differ from standard eCommerce functionality?”. If you’re running a mom-and-pop store, or are selling simple products (as opposed to configurable attribute-driven products) in the typical manner, with no specific unique requirements, then Ubercart is likely your best bet.
On the other hand, if you’re trying to put together a custom shopping cart solution, or specific functionality that Ubercart doesn’t support, chances are that it’s not only possible in Commerce, but also much easier to build. And as the community-contributed module list grows, so will Commerce’s popularity, until Ubercart is eclipsed completely. Interested in seeing what modules exist already? They’re available here.
Did you know that Singlemind is recognized as not only a Top eCommerce Development Company in California, but also a Top eCommerce Development Company in the United States overall? We are even honored to be recognized as one of the Top Drupal Web Design Companies in 2020.