Going to DrupalCon Denver was a welcome break from the cold and gloom of a northwest spring. The Rocky Mountain sunshine provided a backdrop for the largest DrupalCon on record.
This DrupalCon was especially notable since it was my first opportunity to attend in person. I've made it a point in the past to watch the keynotes, especially Dries, as close to real time as possible. As well as jealously following the Twitter feeds of those in attendance to glean any breaking news from the forefront of the Drupal community. As expected, there were too many good sessions to choose just one to attend.
One particular track that caught my attention was the eCommerce track. For sometime I've felt that Drupal's greatest untapped potential was in this sphere and it was a welcome change to see eCommerce receive the kind of attention given to other Drupal application classes. To complete my excitement for this particular track, I noted Ryan Szrama's Drupal Commerce session on Wednesday Morning. As a project lead for the very popular Drupal commerce project and long time Drupal eCommerce guru, sitting in on this session was my chance to get a sneak peak at arguably the fastest growing sector of Drupal.
For a 30 second introduction to Drupal Commerce, it's important to know the past. Drupal Commerce grew out of UberCart, a highly successful set of eCommerce modules for Drupal 6, it provided a simplified eCommerce solution.
Shortly thereafter, Ryan Szrama started a new project, that expanded the horizons of eCommerce in Drupal. New to Drupal 7 was the concept of entities. Objects that behaved like nodes, but could be displayed and manipulated more flexibly.
Furthermore, entities could have fields placed upon them, and thus the Commerce concepts of using entities as components in a commerce website was born. With entities, products could be freely displayed privately, abstracting the stock keeping and managerial facets of commerce away from the display side. In addition, products could be uniquely identified by a Stock Keeping Unit or SKU, in Drupal much in the same way products are tracked by SKU in warehouses.
Since entities could be referenced in a node, creating a display page became as simple as creating a product display node and referencing the products that belonged to that particular display. Whereas UberCart was designed as a starter store in a box, more of a plug and play solution. Drupal Commerce provided a more fully customizable framework, that allows businesses to modify the framework to fit their particular business model. Drupal Commerce was designed to leverage the full potential of Drupal 7 for power and flexibility.
As a framework, Commerce core is as lean as possible, so much so that the Commerce shipping module doesn't even ship with Commerce core. The rationale is that not all stores have physical products that need to be shipped. As a side note, there exists a Commerce shipping module, maintained by the same crew that work on Commerce core, that is easily download-able for shipping physical products. Since commerce is so flexible, there exists a myriad of neat and, possibly, ready to use solutions for nontechnical users. Contributed modules such as a wish-list, reorder functionality and stock keeping extend the power of commerce and make it easier for those new to Drupal and Commerce to utilize these resources, with the end result of increasing the adoption of the Drupal Commerce framework.
While Drupal Commerce is receiving a lot of attention for the flexibility of the framework. The learning curve can be a little steep, especially for those new to Drupal.
One of the main initiatives to be undertaken by Commerce Guys to help increase adoption is to increase the overall amount of documentation, with a focus on how to do basic tasks like calculate a tax rate or how to create a discount for certain customers. There exists a fair amount of documentation both in the form of step by step guides and in screen-casts or video format.
Another sticking point in using Drupal Commerce is the lack of a clear, easy to use UI. One of the powerful things about Drupal Commerce is that it's built on existing Drupal tools and infrastructure. One such example is the pervasive use of the Views and Rules contrib modules that make it easy to create and customize data displays of products, shopping carts and lists of line items. The catch with using some of the more complex sets of contrib modules is that in order for store administrators to make simple changes, they must first learn the basics of things like Views.
One perfect example of this would be where a store administrator, someone who normally uses the middle part of the site to administer transactions, needs to adjust the percentage of a discount. This discount might be offered to individuals who purchase more than a set cost of items. Editing the discount amount requires no less than diving three levels into the commerce product pricing rules interface and then an additional two levels via the Rules interface directly. While this might be a trivial task for a lifelong Drupalista, for someone more at home in a WYSIWYG editor, this could be scary and confusing.
The aim is to make simple tasks that site managers do regularly more straightforward. That having a familiarity with Drupal not be a requirement for administering a Drupal Commerce site. In short, to drive adoption of the Drupal CMS via Commerce installs by introducing people to Drupal as a course of building a Commerce site.
To help accelerate the adoption of Commerce another initiative is to release a new version of Commerce Kickstart. Commerce Kickstart is an introductory install profile containing a basic store, with a trio of example products, an example payment method and not much else. In my experience I've used it more as a testing suite or a playground to get a feel for what Commerce is and what it can offer me in terms of tools and examples to build a commerce setup for a client. This focus on developers was helpful to me, but probably isn't for someone looking to setup a small eCommerce site with little to no custom code. This will no long er be the case for Commerce Kickstart 2.0, who's focus will be squarely on site builders.
In that vein, Commerce Kickstart 2.0 will be redesigned from the ground up. Commerce core, by design, lacks anything not considered absolutely essential for eCommerce. This includes things like shipping, since not all stores sell physical products. However, Commerce Kickstart 2.0 will have the shipping module built in.
One other sticking point is appearance. Again as Drupalistas, we're used to seeing an unthemed site, something in perhaps in Bartik or maybe even -gasp- Garland. That said, the rest of the world may not share this understanding view of Drupal's theme layer. As such, Commerce Kickstart 2.0 will have its own Omega based sub theme that would function as an introductory theme for people just looking to get an eCommerce site up and running as quickly as possible.
To make this even more exciting, Commerce Guys has of pledged to release Commerce Kickstart 2.0 by DrupalCon Munich this August, quite the ambitious time line.
Needless to say I'm very excited in the direction Drupal Commerce is taking, I'd love to see Drupal take off in the eCommerce, much in the same way it has taken off in government and the NGO space.
Mike Nielson - nielsonm