[module] Drupal Commerce


Project page quote (external)

Drupal Commerce is used to build eCommerce websites and applications of all sizes. At its core it is lean and mean, enforcing strict development standards and leveraging the greatest features of Drupal 7 and major modules like Views and Rules for maximum flexibility.

Whereas eCommerce solutions are often developed with an application mindset, highlighting what you can do with it out of the box, Drupal Commerce was developed with a framework mindset, focusing on what you can build with it. The core Commerce systems make no hard-coded assumptions about your business model, privileging developers and site builders at the core level to build custom eCommerce solutions to suit.

Sponsored by Commerce Guys.

Reported installs (as of 12 Feb 2014): 35,397 sites currently report using this module. Downloads: 298,312

Required by modules [Drupal7[

This very popular eCommerce module is the main "competitor" of Ubercart and is growing rapidly in popularity and in extensions support. Some of the developers behind them have worked on both projects, and one could argue that they meet slightly different needs.

The basic gist seems to be that Drupal Commerce for Drupal7 is more complex to setup (and offers deliberately much less out-of-the-box, relying on a large number of related extension modules), but it is also more flexible for handling complex product types (and addresses some of the short-comings of the Ubercart "product attributes" approach identified for complex product cases). Drupal Commerce is strongly Rules based.

One distinguishing aspect is that in Commerce each product option (even something as simple as colour) is treated as a new, distinct product. By comparison, Ubercart treats product variations as "attributes" of one main product's node; While this parametrisation of a single product might at first seem like a good idea (and can reduce maintenance in some cases) it actually introduced some problems and restrictions in handling subtle product variation and product combination cases.

Another difference with Commerce is that, as explained in Ubercart 3 Vs. Drupal Commerce: The Choices for Drupal 7 Shopping Carts Get More Complicated by Mark Royko:

Products in Commerce aren't traditional nodes. Instead, they're really just data units that store the unique information about each SKU. By default, these units aren't displayed on the site on their own. Instead, users have to create separate display nodes tying product variations together for display on the site. (A product display node handles the Title and Body text. It also collects information about product variations and displays them to the visitor.)

What all this means is that creating a product is actually a three-part process. Imagine a retailer selling t-shirts. The sizes are small, medium and large and the colors are blue and red. To achieve this in Drupal Commerce, a user follow theses steps: First, the retailer creates a 'tshirt' product type. (Fields for any variation are created at this step, so size and color options are added here.). Next, individual SKUs are entered for each possible combination of size and color. Finally, a new product "display" is created, which includes the title and body text. The separate SKUs you entered earlier are added here through an auto-complete field, much as you'd add taxonomy terms to a Drupal node.

See also Building a Drupal Commerce Product Display, by Ryan Szrama, one of the Commerce developers.

You can find heaps of online discussions (and arguments) about which module is better, and I give a long list of links to some of the more useful discussions under Ubercart, and a couple of links to some of the main Ubercart vs Drupal Commerce discussion pages below.
Update: Feb 2015: I am currently working on a Drupal7 site with Commerce and custom integration with the eWay online payment gateway , using the Commerce Payment API.

Will Ubercart die out in favour of Drupal Commerce ?

I hope Ubercart will not die out, because I consider it has some strengths over Drupal Commerce for simpler eCommerce tasks, but consider the following remark from Ryan Szrama, the former lead of Ubercart and now lead of Drupal Commerce, from February 18, 2011:

'Ubercart development will likely continue for some time in tandem w/ Drupal Commerce development. I'm no longer working on UC, but my old co-maintainer has taken over the effort for D7.

My goal is obviously for DC to succeed UC, and I feel the new architecture puts the project in a very strong position. We found at Commerce Guys that we simply couldn't use UC for the types of sites we needed to build, hence the rewrite to develop an e-commerce system native to Drupal 7.'

Visit also