Recently I had the opportunity to setup a bilingual Drupal eCommerce site for a client. My immediate reaction was to use Drupal Commerce for this project. After all, it's architectural design and codebase are more inline with Drupal's best practices, especially with the use of entities for each product variation (size, color, etc. where each variation would have its unique SKU) whereas UberCart treats each product as a separate node all together. I find the former approach more appropriate for managing inventory for each product variation for the site we are working on since that was one of the client’s requirements.
I started with the Commerce Kickstart distribution and realized that Drupal Commerce is not just a module but rather a comprehensive eCommerce framework - much like Drupal being a content management system (CMS) framework - that can be tailored and shaped with some development work to suit the needs of complex eCommerce requirements: e.g. different tax codes for different counties/states/provinces/countries, different currencies, different shipping methods depending on products weight and/or size, an array of payment methods, different checkout workflows, pricing rules, discount codes and discounts based on purchased quantity, an eCommerce sales dashboard for different reports, and many other features. As a module, Drupal Commerce is very light, it doesn't try to jam your site with tons of PHP code files, instead it adopts a modular approach where you, the developer/site builder, can tailor the eCommerce site based upon its unique set of requirements and sherry picking the extra pieces that can vary from one online vendor to the other. So the above features made Drupal Commerce a more favorable solution for our client based upon the requirements we had for that project.
But I also wanted to tryout UberCart and actually I was pleasantly surprised. Unlike Drupal Commerce's modular approach, UberCart is more like a car loaded with full options; everything is there at your fingertips. Whether we'll need an engine block heater or windshield wiper de-icers while the car is mostly driven in Florida is a different story. But hey, these features are not going to make our driving experience less favorable. And perhaps that is the reason why UberCart is more favorable for simple eCommerce stores (selling an array of products with few variations) and a narrow scope. UberCart is easy to configure and more intuitive but it may not fulfill all requirements for certain eCommerce use cases.
As far as setting-up the bilingual component, there is tons of information online on this and basically you got two routes: either Entity or Content Translation. Content Translation was the way to go at some point in the distant past, today the way to build a multilingual Drupal site is using Entity Translation and that is what is shipped with core Drupal 8. So don’t waste your time with Content Translation.
To conclude, Drupal Commerce was built with extensibility in mind while at the same time overcoming UberCart’s deficiencies. I feel like I am preaching to the choir here, but really, before selecting any eCommerce option, spend sometime with two Drupal installs, one with Drupal Commerce the other with UberCart, simulating different use cases from the client's specifications on each install. The online comparisons between the two modules are useful, but nothing compares to a week spent doing a dry run with both routes.
- Log in to post comments