Drupal 7 Commerce Initiative

Drupal Commerce is the new way to do e-commerce on Drupal 7. Drupal Commerce is the logical successor of Ubercart with a new name and a new approach. We're reimplementing Ubercart's feature set from the ground up to take advantage of the awesome new Drupal 7 APIs, enforce a clean separation of the Commerce API from the default UI, and adhere to a strict set of development standards. We're building the project with maintainability, scalability, and interoperability in mind to bring Drupal based e-commerce to the Enterprise.

For more information, join the discussion and specification going on here or follow along on our drupal.org project page. The bleeding edge development is happening on GitHub in forks of the main repository. Commits to this repository are automatically synced to CVS on drupal.org.

Start developing today by grabbing some of the "low-hanging fruit" in our issue tracker.

July / August 2010 Development Roadmap

Our code sprint at the end of June resulted in an abundance of tickets for outstanding development on existing systems and projected improvements to checkout to accommodate the payment system. Several of these include UI mock-ups provided by Bojhan for us to work towards. We also planned out the payment implementation as much as possible, considering different payment workflows (CC on site, hosted payment, hosted checkout, etc.) and payment information security. There were also certain items that we tabled for future discussion, like the implementation of shipping and taxes.

Tangibly, this discussion and development boils down to two things. First, there's a fine queue of issues tagged dcsprint3 in the d.o tracker to complete. Second, we have the following roadmap for development leading up to DrupalCon Copenhagen:

DrupalCon Copenhagen, August 23-27, 2010

DrupalCon Copenhagen is only a month and a half away, meaning we have our work cut out for us to prepare a Drupal Commerce release for presentation at the conference. After last week's code sprint, summarized here, we have a clear path forward and will be posting a roadmap for the next few weeks in the next day or two.

Drupal Commerce Sprint June 29 - July 2

After DrupalCamp Colorado, we'll be flying back to the Commerce Guys office in Jackson, MI for a Drupal Commerce sprint. We'll be traveling Monday June 28, so the sprint will be Tuesday through Friday, June 29 - July 2. DamZ and bojhan will be joining us from Europe, and it looks like we'll have mfer for a day.

If you're interested in joining us, let us know so we can work out travel arrangements from the airport in Detroit and lodging in Jackson. I'm looking forward to a productive week after an extended weekend of hacking and brainstorming in Denver.

Prior to the sprint we'll post a list of high priority issues for our time together. This is bound to include further work on the Rules based price handler and completion of the critical Addressfield module.

Those wishing to pitch in virtually can also keep the low-hanging fruit issue queue handy. We've had some good participation in there this past week and I'm eager to see it pick up.

Checkout Form: Pages and Panes

The Checkout module is purely a UI module designed to present a form that allows a user to fill out the details of an order and submit payment. It is based on the never released UC Advanced Checkout module I wrote for a client on Drupal 6. It defines several menu paths used for displaying and administering the checkout form, including:

checkout - the URL of the checkout form
checkout/complete/%commerce_order - the URL of the checkout completion page for the given order
admin/commerce/config/checkout - checkout form / behavior settings form

DrupalCamp Colorado

I'll be heading to DrupalCamp Colorado with some of the other Commerce Guys to present the current status of Drupal Commerce, promote the project, and collaborate with other Drupallers there. We went last year in a combined DrupalCamp / Ubercamp, and the e-commerce focus of the camp was very well received. Hopefully we can repeat the success and get some other contributors to show up... or find new contributors while we're there!

If you're interested, the camp is in Denver, CO on June 26-27th. The price of the event is dirt cheap, and we'll be hanging out around town the day before. I'd love to do a Commerce sprint while we're there, and I'd encourage anyone interested in presenting Drupal Commerce or general e-commerce sessions to do so!

Comment here if you're thinking of going so we can coordinate our time in town.

Drupal Commerce Demo Site

I presented the current work of Drupal Commerce at DrupalCon San Francisco. The session had a few slides of minor consequence but was mostly a technical demonstration / walkthrough of what has been implemented and how it was done.

View the demo site: http://bit.ly/dc-demo

Watch the video: http://bit.ly/9vF4fO

I've updated the front page here with some of the text from the demo site, but it also includes the following bullet points about what's implemented so far:

  • Commerce entities: products, orders, and line items
  • Commerce fields: product reference, line item reference, price, postal address
  • Views integration: full entity coverage, default administrative UI, cart line item Views
  • Product functionality: product types with custom "Attribute" fields, product creation and management
  • Line item functionality: module defined line item types, #ajax enabled line item manager as a field widget
  • Order functionality: order creation and management, module defined order states and statuses
  • Cart functionality: add to cart form (via product reference field formatters), shopping cart orders, shopping cart block, drag-and-drop multi-page checkout form builder

Check it out and lemme know what you think!

Currently, I'm creating an installation profile based on that site and updating the code to run on Drupal 7.x-alpha3. Then before the CMS Expo next week I'll have the front end of checkout working with Damien's Postal Address module integrated.

Orders, Line Items, and the Cart

What follows is a rough summary of our conception of orders on Drupal 7. This brainstorming began in October at the first San Francisco sprint, and we spent a lot of time on Monday in Paris hashing out the details. There's still plenty more to consider, so feel free to speak up!

Order Summary

Like Products, Orders in Drupal Commerce are top-level fieldable entities. Unlike Products, we are initially supporting only a single Order Type, but this in no way limits the ability of contributed modules to alter in support for multiple Order Types.

March 2010 Development Roadmap

The content of this post should be boiled down into an easy to read documentation page, probably at development/roadmap, and it might even do to have a link in the sidebar directly to it. We spent quite a bit of time at the Paris Sprint discussing the various systems we needed to develop in order to start checking out orders. This involved a lot of great discussion about the future of orders, the shopping cart, checkout, and price handling.

Summary of prices, and price handling

Overview

Unfortunately pricing is not as simple as a decimal, because the price stored with a product is simply a starting point. By the time a customer completes checkout, the price may have discounts, fees, taxes, and nearly unlimited unforeseen modifications. In order to handle the wide variety of pricing models, taxes, and other price alterations, we must create a well defined, flexible price system.

Paris Drupal Commerce Sprint, February 22-26

During our last IRC meeting, we discussed a sprint in Paris at the end of this month. We set the dates for February 22-26 and will be working out of af83's office. We got a little bit of planning in but will need another meeting or two between now and then to be best prepared for our time together.

Syndicate content