Drupal Commerce and Ubercart Comparison

Ubercart and Commerce are the main options for ecommerce when it comes to Drupal 7. Ubercart started long back and initial release was for Drupal 6 later ported to Drupal 7. Ubercart has great features for Online shop but it lacks support required for product management. Commerce is new for Drupal 7 and redefines the way Drupal handles e-commerce. Choosing the right suite of e-commerce module for your online shop is an essential starting point. Please ensure that you invest time comparing each solution before selecting one. Once your website is live, it will be difficult to switch from one solution to another and also time consuming. 

 
Drupal commerce was designed from the ground up with intent of being more extensible using drupal best practices by some of the same people who started ubercart. Ubercart code was becoming messy to manage especially when adding features. Ubercart had bypassed Drupal APIs and created their own. 
 
Ubercart is a popular E-Commerce and Shopping cart solution for Drupal and Drupal commerce was recently developed. Ubercart is easy to set up and get started and its mature product. When using Drupal Commerce when you have products that have multiple sizes like say bottles/containers its a pain to have to create a product for each size and gets quite tedious but you can get better product weight separation for shipping this way.
 

Commerce

UberCart

Product Management

Each variation is its own entity and SKU. Provides greater flexibility for products with several variations, such as t-shirts,  Powerful when it comes to handling multiple product variations. Products are not displayed on their own; a display node must be created to display a product or a set of products via a relationship field. If you have used Ubercart , Commerce is more difficult to understand , however its closer to real-life tangible products management. Each size , color variation is a different product in Commerce.   Once you have entered all variations as separte product, you will need  to create one node for display, and reference to all variations of products within the display node.  Splits product from the display node, so that other modules will always work correctly with the products. Read this Products vs. Product Display Treats each product as a content node, all of the options and attributes are stored in the  product node . One drawback is , it can lead to errors with shipping, billing, and product stock. Easier to manage for simple singular products, like a books. Eg: Two Pants - Color red and black and size small, medium, and large sizes , 5 variations of same pant. With Ubercart one product node will be added (pant) With Color and size attributes. Its easy to manager and understand however when you start filling orders, tracking stock levels, or updating individual variations, it becomes increasingly difficult to track the variations / SKU of pants

Shipping and Payments

Does not come with a shipping module or any payment gateways. You will need additional modules for these functionalities. No module to ship via FedEx or Accept Google Wallet PaymentsIncludes both shipping and payment options in its suite. You have options on which ones to install.

Learning Curve

More complex and has learning curveEasy to Learn and similar to other e-commerce website.

Similarities

Installation and setup requirements, administration sections , Complete customization of storeInstallation and setup requirements, administration sections , Complete customization of store

Contributed modules needed

Address Field, CTools, Entity API, Rules and Views.CTools, Entity API, Rules, and Views

Configuraitons

For the majority of configurations, leaving the default settings will work fine. Located@ /admin/commerce/config . Checkout settings .,  payment methods ,  pricing rules , Currency needs to be customizedDefault configurations will work fine and you can setup your store with defaults, located @ /admin/store/settings. Do change Address, Currency , Contact.

When to use

Complex product variations, huge store. Small store with few product variations and Easy to use. 

Documentation

Better and relates well with Drupal APIGood , sometimes not adequate.

Long Term

Design is more suited for extensibility and long term you can expect more enhancements and simplificationsDesign Restricts you from creating large stores. May be outdated going forward. 

Extensions

Commerce ExtensionsUbercart Extensions

 

Commerce Kickstart is a Drupal distribution that can be used to simplify usage of Commerce with intent of making Commerce easier. All the basic modules and changes the administration sections are done. It automatically creates display nodes for products and makes adding variations more like Ubercart’s way of adding attributes.

This comes at the cost of rest of  Drupal administration which becomes nearly impossible for users used to Drupal. Having said that , its still a great bridge to fill the gap for those used to Ubercart, while keeping the power of Commerce. Give a  Kickstart a try and you will learn more about Commerce. 

Related Links

How-To: