These slides come from a webinar I delivered with Acquia introducing the primary change in philosophy from Ubercart to Drupal Commerce. With Ubercart, our foundational question was "What can I do with it?" With Drupal Commerce, it is "What can I build with it?"
This change is reflected in both our understanding of a healthy Drupal Commerce ecosystem and the architecture of the modules thus far. These things are covered in a few slides, and the rest of the presentation was a feature walkthrough of the demo site, http://demo.commerceguys.com/dc/.
2. History of e-commerce on Drupal Drupal powered e-commerce has a storied history, reaching back to the development of the e-Commerce project on Drupal 4.x. Succession of e-commerce projects: 1. e-Commerce ► Peaked around 800 installs on D5 in 2008 The original e-commerce project, focused on APIs and module integration. 2. Ubercart ► Grew from 2k to 20k installs on D6 in 2009 Focused on out-of-the-box usability at the module level and aggressive user support. 3. Drupal Commerce ► D7 b eta in 2011 with active dev community Focusing on APIs and module integration with usability at the installation profile level. Why the change to a new project? Drupal 7 has changed the way developers can write complex contributed modules. Drupal Commerce is a ground-up rewrite based on D7, Views, and Rules. The project lead and many active developers are the same, with new contributors every week.
3. Evolving from Ubercart to Drupal Commerce What can you do with it? Ubercart offers a wide feature set, but operating outside of the core feature set is difficult at best. “ Application” mindset focusing on the modules’ performance out-of-the-box. Sacrificed API functionality and i18n for UI based customizations. What can you build with it? Commerce modules offer core e-commerce systems and components, providing basic functionality with amazing flexibility. “ Framework” mindset focusing on loosely coupled modules and adaptability. Privileges developers and site builders at the core level, administrators and reusable feature development at the profile level.
4. Building a Drupal Commerce ecosystem “ Our vision is for Drupal to be the number one e-commerce platform in the world.” Formula for a winning Drupal Commerce ecosystem: Accessible experts and integrators (Commerce Guys and partners) Pre-configured features and use case specific distributions Essential contributed modules maintained along with core “ APPLICATION” FEATURES USER EXPERIENCE SUPPORT & DEVELOPMENT SOLID FOUNDATION +
5. Core components and systems Drupal 7 includes a “fieldable entity” system providing CCK functionality in core not just for nodes but for any type of data defined by your modules. Commerce entities and fields: 1. Product ► SKU, title, and price with custom attribute fields Uses a price field for the base price; discounts, taxes, and currency conversion via Rules. Displayed on nodes with an Add to Cart form via the product reference field. 2. Line item ► Any item on an order calculated into its total Uses two price fields for the unit price and total price (unit price times quantity). 3. Order ► Order ID / number, references, and order total Uses a line item and customer profile reference fields to associate them with the order. Uses a price field to keep track of the order total based on referenced line items. 4. Customer profile ► Profile / user ID, address, and custom fields Uses an address field to collect country-specific address data. 5. Payment transaction ► Created for every attempted transaction
6. Core components and systems Drupal Commerce’s core systems make as few hard-coded assumptions about business rules as possible, providing a small set of base systems meant to be built on in contrib. Commerce systems: 1. Product pricing ► Price lists, discounts, taxes, multi-currency Allows for Rules based calculation of product sell prices on display and in the cart. Actions allow for swapping / manipulating prices, calculating taxes, and converting currency. 2. Shopping cart ► Dynamic Add to Cart form, cart block / edit form Add to Cart form handles one or many products on a form with dynamic page updates. Shopping carts are full-fledged orders from the first “Add to Cart” on. The cart block and edit form are built with Views for UI based customization. 3. Checkout ► Drag-and-drop form builder Checkout form builder provides UI based customization for single and multi-page workflows. Functions as an order edit form tracking changes through status updates and order revisions. 4. Payment ► Profile / user ID, address, and custom fields Any number of payment methods with checkout availability determined via Rules. Order payment log allows tracks all payment attempts and allows for direct payment entry.