Deconstructing drupal commerce

Post on 18-Jul-2015

508 views 1 download

Transcript of Deconstructing drupal commerce

BLUE-BAG

GUY SCHNEERSONDRUPAL: guy_schneersonGUY@BLUE-BAG.COM TWITTER: guy_schneerson

www.blue-bag.com

Established in 2000

Deconstructing Drupal Commerce

blue-bag

Deconstructing Drupal CommerceThis is going to be a non technical presentation and no Drupal knowledge is required. !

If I use words like “Contrib module” that don’t mean a thing to you or I stop making sense then do stop me :)

blue-bag

Commerce KickstartA shop distribution based on Drupal & Drupal Commerce

Text

blue-bag

A shop with all the bells and whistlesA solution that competes with all the other big players out there

Text

blue-bag

A shop with all the bells and whistlesA solution that competes with all the other big players out there

blue-bag

The real power of Drupal Commerce

Comes from the components that make up Drupal

commerce

blue-bag

why does it matter ?What makes a framework based on distinct independent components better then a highly featured solution?

blue-bag

why does it matter ?What makes a framework based on distinct independent components better then a highly featured solution?

• It is impossible to think up of every use case

blue-bag

why does it matter ?What makes a framework based on distinct independent components better then a highly featured solution?

• It is impossible to think up of every use case

• The more features, the more permutations – difficult configuration & more prone to bugs.

blue-bag

why does it matter ?What makes a framework based on distinct independent components better then a highly featured solution?

• It is impossible to think up of every use case

• The more features, the more permutations – difficult configuration & more prone to bugs.

• It is easier to focus on individual components than on one large system

blue-bag

why does it matter ?What makes a framework based on distinct independent components better then a highly featured solution?

• It is impossible to think up of every use case

• The more features, the more permutations – difficult configuration & more prone to bugs.

• It is easier to focus on individual components than on one large system

• Individual components have more use cases – more use cases more people using and testing – more robust and flexible components :)

blue-bag

Take control By understanding the components that make Drupal Commerce you can:

blue-bag

Take control By understanding the components that make Drupal Commerce you can:

• Put them together in new ways, creating new and unique products.

blue-bag

Take control By understanding the components that make Drupal Commerce you can:

• Put them together in new ways, creating new and unique products.

• Customise to your needs

blue-bag

Take control By understanding the components that make Drupal Commerce you can:

• Put them together in new ways, creating new and unique products.

• Customise to your needs

• Adapt - because things never stay the same

blue-bag

The Drupal building blocks

blue-bag

The Drupal building blocks• Entities - Are data types that can be extended by code

and configuration

blue-bag

The Drupal building blocks• Entities - Are data types that can be extended by code

and configuration

• Views - A visual tool for producing lists and reports on any Drupal entity type (you can even extend it to work on other databases you may have)

blue-bag

The Drupal building blocks• Entities - Are data types that can be extended by code

and configuration

• Views - A visual tool for producing lists and reports on any Drupal entity type (you can even extend it to work on other databases you may have)

• Rules - A visual tool for building business logic using an Event - Condition - Action

blue-bag

The Drupal building blocks• Entities - Are data types that can be extended by code

and configuration

• Views - A visual tool for producing lists and reports on any Drupal entity type (you can even extend it to work on other databases you may have)

• Rules - A visual tool for building business logic using an Event - Condition - Action

• Widgets - for data editing

blue-bag

The Drupal building blocks• Entities - Are data types that can be extended by code

and configuration

• Views - A visual tool for producing lists and reports on any Drupal entity type (you can even extend it to work on other databases you may have)

• Rules - A visual tool for building business logic using an Event - Condition - Action

• Widgets - for data editing

• Formatters - for displaying fields

blue-bag

The Drupal building blocksRules - A visual tool for building business logic using an Event - Condition - Action

My Silly discount

If the name of the user is Guy

Set the price to Zero

blue-bag

The Drupal building blocksRules - A visual tool for building business logic using an Event - Condition - Action

I love this site its all free (as long as your name is Guy)

blue-bag

Add to cart

blue-bag

Add to cart

blue-bag

The Drupal building blocks

blue-bag

The Drupal building blocks

blue-bag

The Drupal building blocks

blue-bag

The Drupal building blocks

blue-bag

Drupal Commerce Entities (Data Elements)

blue-bag

Drupal Commerce Entities (Data Elements)

blue-bag

Drupal Commerce Entities (Data Elements)

No need to panic!

We will go over this one at a time :)

blue-bag

Drupal Commerce Functional Elements

blue-bag

Drupal Commerce Functional Elements

blue-bag

Drupal Commerce Functional Elements

This should start making some sense

blue-bag

Lets take a kickstart JourneyVisiting our elements along the way

blue-bag

The Product Page

blue-bag

The ProductThe product title

The Product description

All the elements of the product that don’t change

blue-bag

Product variations

Price

Colour and size

All the elements that vary

Image

blue-bag

Add to cart

blue-bag

Add to cart

blue-bag

Add to cart Converts a product into a line item

blue-bag

Add to cart Converts a product into a line item

copy info from the product variation

colour, size & price

blue-bag

Add to cart Converts a product into a line item

Defined by the line item type.

Quantity & custom fields (Gift wrap)

blue-bag

Add to cart Converts a product into a line item

The form submit will kick this off

blue-bag

Cart page

blue-bag

Cart page

blue-bag

Cart page

blue-bag

The cart page

blue-bag

The cart page

Is a view

blue-bag

The cart pageYou can add fields to the view

blue-bag

The cart page

Add a field

blue-bag

The cart page

Add a field

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout

blue-bag

Checkout pane

blue-bag

Checkout pane

blue-bag

Checkout pane

blue-bag

Checkout pane

blue-bag

Checkout pane

blue-bag

Checkout pane

blue-bag

Checkout pane

blue-bag

The Profile & AddressSo we almost covered all entities. only Address and payment to do.

blue-bag

The Profile & AddressSo we almost covered all entities. only Address and payment to do.

blue-bag

The Profile & AddressSo we almost covered all entities. only Address and payment to do.

blue-bag

The Profile & AddressWe have two profiles on this page Billing

blue-bag

The Profile & AddressWe have two profiles on this page Billing

blue-bag

The Profile & AddressWe have two profiles on this page Billing

blue-bag

The Profile & AddressWe have two profiles on this page and shipping

blue-bag

The Profile & AddressLets expand the shipping details so we can see both addresses

blue-bag

The Profile & AddressLets look at how those are configured

blue-bag

The Profile & AddressLets look at how those are configured

blue-bag

The Profile & AddressLets look at how those are configured

blue-bag

The Profile & AddressWe can add a new field

blue-bag

The Profile & AddressAnd it is now shown on the billing profile

blue-bag

Payment methods & transectionsAnd finally

blue-bag

Payment methods & transectionsAnd finally

blue-bag

Payment methods appear inside the checkout Pane

Payment methods

blue-bag

New Payment methods can be downloaded from drupal.org

Payment methods

blue-bag

and can be configured using rules

Payment methods

blue-bag

That’s me adding a condition to say: Sagepay support will stop on the 20th of Jan

Payment methods

blue-bag

are added to the order whenever a payment or other transactions are made

Payment transactions

blue-bag

are added to the order whenever a payment or other transactions are made

Payment transactions

blue-bag

are added to the order whenever a payment or other transactions are made

Payment transactions

blue-bag

So lets recap

blue-bag

Drupal Commerce Entities (Data Elements)

blue-bag

Drupal Commerce Functional Elements

blue-bag

The Drupal building blocks• Entities - Are Data types that can be extended by code

and configuration

• Views - A visual tool for producing lists and reports on any Drupal entity type (you can even extend it to work on other databases you may have)

• Rules - A visual tool for building business logic using an Event - Condition - Action

• Widgets - for data editing

• Formatters - for displaying fields

blue-bag

A few examples of extending functionalityUsing Contrib Modules

blue-bag

Contrib ModulesCommerce Shipping by Jakob Torp (googletorp)Part of the kickstart distribution

blue-bag

Contrib ModulesCommerce Shipping by Jakob Torp (googletorp)Part of the kickstart distribution

• Adds a new Line item type

blue-bag

Contrib ModulesCommerce Shipping by Jakob Torp (googletorp)Part of the kickstart distribution

• Adds a new Line item type

• Adds a customer profile + a checkout pane (Shipping information)

blue-bag

Contrib ModulesCommerce Shipping by Jakob Torp (googletorp)Part of the kickstart distribution

• Adds a new Line item type

• Adds a customer profile + a checkout pane (Shipping information)

• Rules integration - Activate relevant shipping options & work out shipping costs.

blue-bag

Contrib ModulesCommerce Shipping by Jakob Torp (googletorp)Part of the kickstart distribution

• Adds a new Line item type

• Adds a customer profile + a checkout pane (Shipping information)

• Rules integration - Activate relevant shipping options & work out shipping costs.

• Extended by other shipping modules like Commerce UPS & FedEx

blue-bag

Contrib ModulesCommerce Stock by Guy Schneerson (guy_schneerson)

blue-bag

Contrib ModulesCommerce Stock by Guy Schneerson (guy_schneerson)

• Adds a stock level field to the product variation entity

blue-bag

Contrib ModulesCommerce Stock by Guy Schneerson (guy_schneerson)

• Adds a stock level field to the product variation entity

• Manipulates the add to cart, cart & checkout form

blue-bag

Contrib ModulesCommerce Stock by Guy Schneerson (guy_schneerson)

• Adds a stock level field to the product variation entity

• Manipulates the add to cart, cart & checkout form

• Uses rules for checking stock availability

blue-bag

Contrib ModulesCommerce Stock by Guy Schneerson (guy_schneerson)

• Adds a stock level field to the product variation entity

• Manipulates the add to cart, cart & checkout form

• Uses rules for checking stock availability

• Uses rules to control the Add to cart action - Disable & repurpose.

blue-bag

Contrib ModulesCommerce Stock by Guy Schneerson (guy_schneerson)

• Adds a stock level field to the product variation entity

• Manipulates the add to cart, cart & checkout form

• Uses rules for checking stock availability

• Uses rules to control the Add to cart action - Disable & repurpose.

• Field formater - Under 5 display “Low stock”

blue-bag

Other modulesProduct Pricing modules

blue-bag

Other modules

• Commerce Discount - by bojanz

Product Pricing modules

blue-bag

Other modules

• Commerce Discount - by bojanz

• Commerce Coupon - by hunziker

Product Pricing modules

blue-bag

Other modules

• Commerce Discount - by bojanz

• Commerce Coupon - by hunziker

• Commerce Multicurrency - by das-peter

Product Pricing modules

blue-bag

Other modules

• Commerce Discount - by bojanz

• Commerce Coupon - by hunziker

• Commerce Multicurrency - by das-peter

• Commerce price table (quantity pricing) - by pcambra

Product Pricing modules

blue-bag

Other modulesOthers

blue-bag

Other modules

• Commerce Fancy Attributes - by Artusamak

Others

blue-bag

Other modules

• Commerce Fancy Attributes - by Artusamak

• Commerce Reorder - by ikos

Others

blue-bag

Other modules

• Commerce Fancy Attributes - by Artusamak

• Commerce Reorder - by ikos

• Commerce Customizable Products (allows the creation of new line_item types) - by rszrama

Others

blue-bag

Other modules

• Commerce Fancy Attributes - by Artusamak

• Commerce Reorder - by ikos

• Commerce Customizable Products (allows the creation of new line_item types) - by rszrama

• Commerce Google Analytics - by Cyberschorsch

Others

blue-bag

A few examples of extending functionality

Configuration and custom code

Using Contrib Modules

blue-bag

Develop a new custom checkout pane

blue-bag

Develop a new custom checkout pane

Oops it’s in Russian (Did I mention Drupal kicks Localisation Ass)

blue-bag

Develop a new custom checkout pane

That’s better

blue-bag

Buying options - Using commerce stock

Configuration Only !Commerce stock Provides powerful add to cart configuration. !

blue-bag

Image download - Using commerce stockUsing some custom code to extend the commerce stock functionality.

blue-bag

Cross selling using views

blue-bag

Link Blog posts to products

Add a reference field to your blog post type !

Just one field

blue-bag

A use case - Store open state

We need to be able to close the online store at times

blue-bag

A use case - Store open state

blue-bag

A use case - Store open state

• For stock checking

blue-bag

A use case - Store open state

• For stock checking• Financial audit

blue-bag

A use case - Store open state

• For stock checking• Financial audit• Payment configuration

and testing

blue-bag

A use case - Store open state

• For stock checking• Financial audit• Payment configuration

and testing• Security emergencies

blue-bag

A use case - Store open state

blue-bag

A use case - Store open state

I have an idea !

blue-bag

A use case - Store open state

I have an idea !I will create a simple module called “commerce store” with an Open property

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open state

We can then use rules to check for the store open state.

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open stateLike so:

blue-bag

A use case - Store open state

Cool I think I got it - I will be able to add another condition that will allow admins to use the store while it is closed.

blue-bag

A use case - Store open state

blue-bag

A use case - Store open state

Yes you got it.

blue-bag

A use case - Store open state

Yes you got it.give it a go

blue-bag

A use case - Store open state

Yes you got it.give it a go

BLUE-BAG

GUY SCHNEERSONDRUPAL: guy_schneersonGUY@BLUE-BAG.COM TWITTER: guy_schneerson

www.blue-bag.com

Established in 2000

Questions ?