Shop Drupal Commerce vs Ubercart

04-Apr-2017
Shop Drupal Commerce vs Ubercart

Drupal 7 as one of the most popular content management systems in the world gives us the opportunity to implement an online store on our website. Currently, in this field we have a choice of two leading modules with open source code - Drupal Commerce and Ubercart. Regardless of what you want to sell, whether transactions will concern only one item or many, in the case of a developed e-Commerce platform, it is worth analyzing both modules separately before proceeding.

Which module to choose?


Certainly many of the beginners in this field of Drupal programmers were asking this question. Senior practitioners certainly know the Ubercart module, which was already available at the 5th version of Drupal. Although it is still being developed and available in the alpha version for Drupal 8, many of its components have stopped at Drupal 6 and have not been updated yet. On the internet you can find many statements that Drupal 6 and Ubercart are the perfect choice. Drupal 7 also successfully cooperates with it, but it is necessary to use other components in the form of additional modules to some extent replace those from previous versions.

Compared with it, the Drupal Commerce module is relatively young because it appeared only for Drupal 7. It is worth noting that some of the people responsible for its creation are the former members of the team working at Ubercart. On the Internet, we can find rich documentation about it and very helpful video materials that will certainly help familiarize yourself with its capabilities (especially programmers accustomed to Ubercart - many basic procedures when creating a store takes place in a different way).

Both modules offer us standard functionalities including such as creating products and their attributes, choosing currencies, specifying taxes and rebates, shopping cart and methods of payment and shipping. Despite the similarities at first glance, there are major differences in terms of options available from both the programmer and the seller, which usually has little in common with programming.


Installation and configuration


Installation of modules is standard as for any other module for Drupal 7. Both Drupal Commerce and Ubercart use the basic solutions available in Drupal, such as content, taxonomy or views. After installing the module, we can go to the store configuration. In this respect, Ubercart is more "out of box" than Drupal Commerce. The programmer may be surprised when after the installation Drupal Commerce will not find options implemented on the payment method or shipping - even the basic ones. This requires the installation of additional modules.
Ubercart after installation is immediately ready for operation (at least in a basic degree). All you need to do is fill in the information about our store, add payment and shipping methods and add products. All activities are approximate and should not be a problem even for a novice programmer.
The configuration of the Drupal Commerce module may be less informative, but its creators meet programmers and provide the Commerce Kickstarter. It has its own wizard that will guide us through all the configuration steps. In the end, we get Drupal 7 + Drupal Commerce installed with all required modules. We will also install an additional skin and additional modules that we will not find in the basic version of Drupal Commerce. During the installation, we can also choose an additional option that allows you to attach a demo version of the online store with examples of products and opportunities that gives us Drupal Commerce. For sure it is easier to configure the store, but from the programming point of view, we install a lot of add-ons that we probably will not use, and they will occupy both the database and the server, slowing down our store. Demo version is also available online, so after deciding on this module, it is better to install its basic version and extend it only with those functionalities that we want to use.

 

Adding products



In both cases, the products are created based on the content type, but with some differences.
In the Ubercart module, by default, we have created one product class that represents content type called product. It is worth creating separate classes for groups of products that differ for example in the amount of tax - it will facilitate their management. By adding a product, we create content that we can enrich with any fields that enrich the description of products. Each product can have attributes available from the general list available for all products (eg color or size).
Drupal Commerce has a different solution. Each product is based on two content types. The first one is responsible for the product variant, the second for displaying it. For example, by selling T-shirts in two sizes (S, M) and two color variants (blue and red), we must first create four variants, i.e. four content (blue + S, blue + M, red + S, red + M). Then, each variant (content) based on the SKU (Stock Keeping Units) number must be added to the next content responsible for displaying it.

As you can see in the case of Ubercart, the operation is much simplified and takes up less memory. Also for the person managing the shop, this option will be more affordable. In favor of Drupal Commerce in the case of the sale of items, the variants of which differ in the photo, we can add to each variant of the other photos, which will be displayed only for him. Ubercart has the option of displaying photos based on the attribute, but using an additional module (currently in beta). Of course, we can solve the problem through other solutions offered by Drupal, but in Drupal Commerce we have the solution immediately on the tray.


Basket


Configuration of the interface for the basket in the Drupal Commerce module is much easier than in Ubercart, because we do not need to interfere in the module code. The shopping cart is based on the Views module, thanks to which we can display all fields of interest to us in an accessible way. We can also display it in several ways, eg as a preview basket from the corner of the screen and a full summary before completing the order. Ubercart also allows you to edit the basket, but it requires a basic knowledge of even the PHP language to freely interfere in the code of the module. Beginning users of Drupal will certainly be easier to configure the basket for their requirements using Drupal Commerce, but closing the module at a certain moment can be a limitation, which will eventually have to be solved through their own modules. If we are only interested in the basic options like product name, price and photo, both modules will give us similar solutions in a standard way.


Vat tax and promotions


When providing prices in a Polish online store, please note that the price is included with the VAT tax. Both Drupal Commerce and Ubercart allow you to set the tax amount (both for an individual product and a group of products). In the case of Drupal Commerce, we add a new tax and indicate in the product that its price includes this tax. Ubercart approaches the matter a little differently. After installing the basic module, we have the option of adding a tax, but it is added to the price we entered when creating the product. In skin: in Drupal Commerce we give the gross price and in Ubercart net. This can be confusing, so if you decide on Ubercart, it is worth installing an additional module that includes the tax on the price of the product.

In both modules, we can set promotional prices, reductions depending on the number of items purchased or rebate vouchers. In the base, we can find a price reduction for products, but if we want to create more extensive promotions, we have several additional modules to choose for both Drupal Commerce and Ubercart.


Payments


As we currently can not imagine online shopping without the possibility of instant payment, we have many additional modules to choose from which we can pay, among others via PayPal, credit cards or a standard postal order. Both modules are well equipped in this field. We must take into account that these payments will be served by foreign services. If we create a Polish store, we may not find the websites that our client expects. In the case of Drupal Commerce, there is a module associated with PayU, but it is not in the stable version (from 2012).

 

Shipment



Drupal Commerce and Ubercart allow you to create your own shipping options and conditions of using them (eg depending on the weight, number of items or place of residence). This is done in an accessible way, but as in the case of payments, the Drupal Commerce module will not find shipping options in the basic module. In addition, additional modules are easy to configure.
Both modules support shipping via UPS. Thanks to the additional module, we can calculate the shipping price for each customer. Drupal Commerce also has a module that calculates the shipment via DHL, which Ubercart does not have. Regarding DHL, in both cases it is not possible to order a courier to collect a parcel, which would be a great help for the seller.

Orders

Ubercart has a detailed description of all orders (both completed and abandoned). The buyer can leave a comment on the order that the seller can respond to. Buyer's data are divided into the data of the person ordering, for which the invoice is to be issued and for the data to deliver the parcel. The seller can generate an invoice based on a basic template (or his own after installing an additional module), which he can immediately print or save in PDF format.
Drupal Commerce has a less extensive ordering system. Customer data in the base is limited to a single column with information about the customer. The order description is slightly cut compared to Ubercart. After installing Drupal Commerce, we will not find any invoice option, which can be considered as one of the basic functionalities of the store.


Order confirmation


After the order is completed both in Drupal Commerce and Ubercart the customer and the sellers get a message via e-mail about the order. We can configure messages under the store's requirements. We can enrich them with HTML code and internal styles through additional modules. In Drupal Commerce, the message is edited by the Drupal administration panel, in the case of Ubercart we edit the template files located in the folder with the module.

Summary

 

We have analyzed the basic steps for both modules. Both of them enable us to run an online store. So which one should you choose? It all depends on individual preferences and the programmer's abilities. Before we reject one of the options, it is worth installing both and getting to know them separately.


Drupal Commerce



+ installation wizard and the opportunity to familiarize yourself with the demo version;

+ basic skin with an accessible user interface;

+ open source;

+ most necessary changes can be made from the Drupal admin panel;

+ a complex system of variants, gives a lot of possibilities;

+ basket based on the Views module;

+ product price quoted as Gross price;

+ many additional modules;

+/- more complex, but more difficult to configure from scratch

 

- less efficient in terms of memory occupied, slower than Ubercart;

- the first version available for Drupal 7, does not appear in earlier versions, which are still used in spite of previous years;

- lack of basic functionalities in the basic version of the module, many options require additional installations;


Ubercart


+ easy to implement for a working site;

+ less extensive, but easier to configure;

+ open source;

+ richer in the basic version, more "out of box" than Drupal Commerce;

+ product as a single content;

+ simple attribute / variant system;

+ efficient in terms of memory occupied;

+ first version available for Drupal 5;
 
+/- a lot of additional modules, but many of them have stopped on earlier versions of Drupal and have not been updated;


- many changes require interference in the module's code;

- the newly installed module does not introduce the user interface, the basket and the rest of the ordering stages are unformatted or are but at a very low level;

Quick contact

6 + 1 =