As more e-commerce opportunities arise for Bluespark Labs we think having this kind of training gives us the confidence to handle more complex online business projects. We highly recommend this training to anyone who has or will be soon working with Drupal commerce projects. Having a real-world point of reference for the training definitely helps to bring clarity and specific business-case applicability to the lessons learned, and allows you to ask pointed questions that give you an even deeper grasp of the technology.
The trainers in attendance were Ryan Szrama, creator of Ubercart and now lead developer of the Drupal Commerce package; Bojan Živanović, a well known Drupal core contributor, and Greg Beuthin, a very experienced site builder and trainer, also from Commerce Guys.
We were around 15 attendees and, after a quick introduction from each one, Ryan helped us to have a default Commerce install running on our computers. There is an install profile called Commerce Kickstart that makes this task easy.
They introduced us to their amazing Apple store simulation made with Drupal Commerce (not publicly accessible for obvious reasons), that serves very well as a demonstration of what can be done with the Commerce modules.
If that weren't enough, we then did a walkthrough on all the different features and admin screens that come with the default install.
In addition to the high level overviews of how Commerce works as a toolkit, we also seriously dug into the code and underlying concepts-- you know, the developer stuff.
In order to properly understand how Commerce works you need to know how some of the new Drupal 7 APIs work.
So we spent the first morning learning about some very important aspects of entities: EntityFieldQuery (provided by Drupal core) and entity wrappers (provided by the contrib entity module). Both very useful not only for working with Commerce but as module development tools.
Over the three days we had the opportunity to learn a lot about these topics:
Entities, fields and Commerce architecture:
- Development techniques used in Commerce using EntityFieldQuery and entity wrappers.
- Commerce entity types and the relationships between them (products, product displays, orders, line items, customer profiles).
- Ajax features and how they work (product fields replacement).
- Hooks available to alter commerce data flow and behavior.
- Bulk creation of product using all the different variants of their attributes.
- Importing and updating products from xml feeds, csv files or other sources.
- Views bulk operations available to work with commerce entities.
- Building products views that integrate with the cart.
- How Commerce uses rules for implementing most of its behavior.
- How to build and customize rules to implement new behavior or alter the default one.
- How to debug rules evaluation.
- Using components.
- Exporting rules to code.
- How Commerce implements currency handling and conversion.
- Side effects of disabling/enabling products.
- How price for products and cart are calculated and how to alter the product pricing rules.
- How taxes work and how to add several kinds of taxes and discounts based on circumstances like user address, coupons, etc.
- How the cart and orders works. Conversion from anonymous to authenticated cart.
- How fields in line items work and how to apply pricing rules based on them.
Cart and checkout process:
- How a user can have several carts.
- Using cron execution and rules to cleanup old carts.
- How the checkout process works and can be altered from the UI.
- Existing rules to send confirmation messages to the user.
- Structure of session info stored for anonymous users.
- Payment methods and transactions.
- How to implement our own payment gateway module. Used Paypal's code as an example.
- How to use rules to make payment methods available depending on circumstances.
- Shipping methods available from contrib modules and how to work with rules to customize shipping rates depending on characteristics of the order.
- Contrib modules for handling stock.
- Building a site that sells file downloads.
- Using panels and page manager to build the product page.
- Building faceted search views for products with the Search API module and the Apache SOLR indexing server. (This one was featured by Damien Tournoud, Commerce Guys lead developer and important Drupal core contributor).
As you see the amount of topics was extensive and all this was spiced with tips and tricks which are not usually found in the docs.
They made the course really easy to follow and progress through by providing a written guide that summarizes each lesson and exercise. They gave us a chance to do the exercises which usually brought additional questions to mind that didn't come during the lecture.
This is also a developer oriented training so they give you plenty of code examples from the Commerce package itself and from other contrib modules.
Commerce Guys plan to do this training twice a year and they are also preparing other training programs for less technical people (ie: site builders).
And last but not least: the group photo -- some people had to leave early so not everyone in attendance are pictured here.