SlideShare a Scribd company logo
1 of 26
Silverstripe & E-commerce
History

●   Originally started by Silverstripe Ltd at least five
    years ago – abandoned due to lack of
    community buy-in
      ●   Payment module continued to be developed
          by Silvertripe (and now part of GSOC)
●   Since then, developed by Nicolaas and Jeremy,
    Jeremy later starting his own module: shop
●   Silvercart and SwipeStripe are more recent e-
    commerce modules.
Today

●   Four über-developed modules, including
    demo sites, installers, tests, in-depth
    documentation
     ●  Do you see this level of development in
        any of the other modules ?
●   Lots of developers (and their clients) are keen
    to be develop e-commerce applications
     ●   Are they confused by the options?
     ●   Do they use Magento or other applications
         rather than Silverstripe ones?
Modules out there
●   Silvertripe Shop:
      ●   Jeremy, NZ
●   SwipeStripe:
      ●   Frank, NZ
●   Silvercart:
      ●   Roland, Germany
●   Silverstripe E-commerce
      ●   Nicolaas, New Zealand
Silverstripe Shop

●   Author: Jeremy Shipman
●   Excellent documentation
●   Best practice release process
●   Quality tests through TravisCI
●   Code simplicity as well as strong usage of
    Silverstripe core code base and Best
    Practice
●   http://ss-shop.org/
SwipeStripe

●   Author: Frank Mullenger
●   Lots of tests
●   Innovative CMS features
●   Xero integration
●   Virtual products
●   Small licensing fee
●   3.0 ready!
●   http://www.swipestripe.com/
SilverCart

●   Author: Roland Lehmann et al.
●   Probably most polished documentation and out-of-
    the-box solution
●   Does not use the original e-commerce as code base
●   Master-Slave product relationships
      ●   product variations can be grouped while the
          variations can be independently maintained
●   PDF invoices
●   Most usage of third-party tools (e.g.
    DataObjectManager, the YAML CSS framework) and
    most intrusive (e.g. Page extends SilvercartPage)
●   http://www.silvercart.org/
select an e-commerce module

●   What features do I need?
●   What is the smallest code base to achieve this
      ●   The bigger the code base, the more to
          develop / test / maintain
●   Documentation
●   Tests
●   DYI vs Pre-Baked
●   Can I get help? How much will it cost?
E-commerce is Zpeshial
E-commerce is zpeshial 1

●   My experience: all parties underestimate the work
    involved
      ●   Site owner:
            ●   entering / importing products: Images, pricing,
                descriptions, product grouping, variations
            ●   Policies and business processes: delivery costs, tax,
                cancellations, customer communication
      ●   Designer: the amount of screens to design
            ●   You can save a lot of time by standardising forms, etc...
                but many web designers are not very good at this.
      ●   Front-end developer: interaction required
            ●   Ajax stuff, difficult forms, products and product category
                pages work with few or many – definitely diverse -
                products
E-commerce is zpeshial 2

●   Back-end developer:
     ●   this is more an application than a website
           ● Keep a record of transactions (e.g.
             address of the member at time of order –
             not just today)
           ● Many tricky relationships and coding

             challenges
               ● Discounts, delivery, tax, etc... etc...

           ● You have to be precise otherwise end

             customers get upset (websites can be
             more loosely coded)
Silverstripe E-commerce Module
Silverstripe E-commerce

●   Based on the original e-commerce
●   Developers include: Sean, Romain, Jeremy,
    Nicolaas and many others!
●   Original idea: very flexible data structure
●   Currently being developed mainly by Nicolaas
●   Uses Payment Module
Data Structure
●   Config                                             ●   Sales
             EcommerceDBConfig
                                                                 Order
       ●
                                                             ●

       ●     YAML file replaces traditional
             static variables
                                                             ●   Order has many
                                                                 OrderAttributes (abstract
●   Product Pages / Objects                                      class)
       ●     Product Category                                        ●   Item
             (ProductGroupPage)
                                                                     ●   Modifier
                 ●   Can show all sorts of
                     combination of products                 ●   Order has one Billing +
       ●     Product Page                                        Shipping Address
                 ●   Product Variation (many for one                 ●   Linked to Country + Region
                     Product)
                                                       ●   Customer (Member extension)
       ●     Other buyables
                 ●   Create as needed, any
                                                       ●   Process
                     DataObject can be turned into a
                     buyable                                 ●   OrderStep
●   Other Pages                                              ●   OrderStatusLog
       ●     CartPage + CheckoutPage +
             OrderConfirmationPage
                                                             ●   OrderEmailRecord
       ●     AccountPage
Product (buyable) Features

●   Product Categories CMS customisation
    ●   products to show, filter, sorting
●   Full Site Tree Sorting
    ●   retain product sorting outside of traditional
        structure
●   Best Available Image
    ●   inherit image from parent (be it Product,
        ProductGroup or Default Image)
●   Optional weight, model (SKU), IsFeatured,
    quantifier (e.g. per month)
●   Full (hidden) Title for efficient Keyword Searching
Cart / Checkout Features

●   All cart functions “ajaxified”
●   Currency conversion
●   Editable checkout steps (one to many steps) –
    always ending in a confirm and pay then “print
    invoice” page.
●   Ability to add zero to many forms / fields for
    collecting additional info in checkout
●   Optional password field
        ●   Customer has option but does not feel like they have to
            create an account
●   Remember previous addresses for Member
●   Shop Admin (separate security group) can create
    also create full Order from CMS
Post Sale Features

●   Ability to pay again / later
●   Customisable Order Steps (Jeremy's idea) from
    “creation” through to “archiving”
      ●   Allows connectivity with third-party applications at
          “precise” step in order process
      ●   Admin reviews Orders “stuck” at each step
            ●   e.g. 10 orders to mail out, 7 orders to confirm payment
●   Ability to send updates to customer (e.g. courier
    code)
●   Customer can cancel Order (if configured this way)
●   Nicely formatted emails with logo, shop address,
    etc...
●   Restful API
A few add-ons we have built
●   also recommended - if you buy         ●   corporate account (approve account,
    this, also buy ...                        security groups as customers)

●   any price product + donations
                                          ●   discount coupon
    including round-up donation           ●   product tags: alternative product
                                              grouping
●   check product availability: place
    order, but hold to confirm            ●   product variations with colours
●   club order: place order for a group   ●   repeat orders
    of people                             ●   stock control
●   combination product: combine          ●   tax – per country / per product
    products into a package
                                          ●   quick add system
●   complex pricing: pricing based on
    country or member security group      ●   delivery costings for NZ + AU based on
                                              postal system
●   delivery based on weight, price,      ●   reward system
    country, etc...
                                          ●   Favourites
●   electronic download product
                                          ●   Quick Checkout: fastest way to add lots
                                              of products
Features in the pipe-line

●   3.0 !
●   Xero Connectivity
●   PDF invoices
●   Many Images for each product
●   Improved importing
●   Twitter + Facebook integration
●   Multi-shop
Development tools

●   YAML configuration
●   /dev/ecommerce/
●   Templates broken up into smaller snippets for
    mix and match
●   Migration task takes you from 0.5 to 1.0
●   Variables for Ajax html classes and Ids
YAML example
/dev/ecommerce
Settings review
Coding challenges in e-commerce
●   Versioning / rules about                    ●   Keep code flexible enough
    changing data                                   to work with many
                                                    requirements
      ●   canCreate, canEdit,
          canDelete are carefully                     ●   Add lots of “hooks”
          defined                                     ●   Allow class replacement
      ●   Keep version number                                ●   e.g. Order = new
          relating to sales                                      $MyOrderClassName
      ●   Referential integrity                 ●   Many objects relationship
             ●   can we delete a product?             ●   BAD: one Order HasMany
      ●   “De-normalisation”                              Products
             ●   product price changes !=             ●   GOOD: one Order
                 price in old orders for this
                 product                                  HasMany “Buyables”
                                                      ●   Save ClassName + ID (+
                                                          Version)
                                                      ●   Challenge: Buyable Form
                                                          Field
Silverstripe improvements needed

●   ModelAdmin: better presentation and easier to
    customise
      ●   Solution: gridfield?
●   Versioning and staging
      ●   Clearer documentation
      ●   Easier to implement
●   Forms more flexible
●   Many of these features are available in 3.0!
THANK YOU – QUESTIONS?

More Related Content

Similar to Silverstripe Ecommerce

openERP- How to connect OpenERP with external Systems, AkretionAkretion base...
openERP-  How to connect OpenERP with external Systems, AkretionAkretion base...openERP-  How to connect OpenERP with external Systems, AkretionAkretion base...
openERP- How to connect OpenERP with external Systems, AkretionAkretion base...
Odoo
 
Managing Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoManaging Multiple Store Fronts on Magento
Managing Multiple Store Fronts on Magento
Geoffrey Mobisson
 
Akretion magento erp_connect
Akretion magento erp_connectAkretion magento erp_connect
Akretion magento erp_connect
Nico Tristan
 
MongoDB@sfr.fr
MongoDB@sfr.frMongoDB@sfr.fr
MongoDB@sfr.fr
beboutou
 

Similar to Silverstripe Ecommerce (20)

Drupal 414: Meet Commerce 2.0
Drupal 414: Meet Commerce 2.0Drupal 414: Meet Commerce 2.0
Drupal 414: Meet Commerce 2.0
 
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
 
Drupal commerce 2.x for Drupal 8
Drupal commerce 2.x for Drupal 8Drupal commerce 2.x for Drupal 8
Drupal commerce 2.x for Drupal 8
 
Odoo Akeneo Connector
Odoo Akeneo ConnectorOdoo Akeneo Connector
Odoo Akeneo Connector
 
openERP- How to connect OpenERP with external Systems, AkretionAkretion base...
openERP-  How to connect OpenERP with external Systems, AkretionAkretion base...openERP-  How to connect OpenERP with external Systems, AkretionAkretion base...
openERP- How to connect OpenERP with external Systems, AkretionAkretion base...
 
The (Long) Road to Commerce 1.0
The (Long) Road to Commerce 1.0The (Long) Road to Commerce 1.0
The (Long) Road to Commerce 1.0
 
Joomla User Group Suffolk - July 2012 - Crossing the line first or last - per...
Joomla User Group Suffolk - July 2012 - Crossing the line first or last - per...Joomla User Group Suffolk - July 2012 - Crossing the line first or last - per...
Joomla User Group Suffolk - July 2012 - Crossing the line first or last - per...
 
Managing Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoManaging Multiple Store Fronts on Magento
Managing Multiple Store Fronts on Magento
 
Drupal Commerce contributed modules overview
Drupal Commerce contributed modules overviewDrupal Commerce contributed modules overview
Drupal Commerce contributed modules overview
 
Akretion magento erp_connect
Akretion magento erp_connectAkretion magento erp_connect
Akretion magento erp_connect
 
E-Commerce and MongoDB at Backcountry.com
E-Commerce and MongoDB at Backcountry.comE-Commerce and MongoDB at Backcountry.com
E-Commerce and MongoDB at Backcountry.com
 
MongoDB@sfr.fr
MongoDB@sfr.frMongoDB@sfr.fr
MongoDB@sfr.fr
 
Drupal Commerce 2 for Drupal 8 - Drupal camp Antwerp 2017
Drupal Commerce 2 for Drupal 8 - Drupal camp Antwerp 2017Drupal Commerce 2 for Drupal 8 - Drupal camp Antwerp 2017
Drupal Commerce 2 for Drupal 8 - Drupal camp Antwerp 2017
 
Magento live eCommerce demo tutorial for beginners by Magento Universe
Magento live eCommerce demo tutorial for beginners by Magento UniverseMagento live eCommerce demo tutorial for beginners by Magento Universe
Magento live eCommerce demo tutorial for beginners by Magento Universe
 
Magento Live eCommerce Demo Tutorial for Beginners » Magento Universe
Magento Live eCommerce Demo Tutorial for Beginners » Magento UniverseMagento Live eCommerce Demo Tutorial for Beginners » Magento Universe
Magento Live eCommerce Demo Tutorial for Beginners » Magento Universe
 
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
Enterprise PHP Architecture through Design Patterns and Modularization (Midwe...
 
Myntra.com's Big Data Platform
Myntra.com's Big Data PlatformMyntra.com's Big Data Platform
Myntra.com's Big Data Platform
 
Let's go shopping with Drupal!
Let's go shopping with Drupal!Let's go shopping with Drupal!
Let's go shopping with Drupal!
 
Spring 21 Salesforce Release Webinar
Spring 21 Salesforce Release WebinarSpring 21 Salesforce Release Webinar
Spring 21 Salesforce Release Webinar
 
[Srijan Wednesday Webinars] Meet Commerce 2.X
[Srijan Wednesday Webinars]  Meet Commerce 2.X[Srijan Wednesday Webinars]  Meet Commerce 2.X
[Srijan Wednesday Webinars] Meet Commerce 2.X
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Silverstripe Ecommerce

  • 2. History ● Originally started by Silverstripe Ltd at least five years ago – abandoned due to lack of community buy-in ● Payment module continued to be developed by Silvertripe (and now part of GSOC) ● Since then, developed by Nicolaas and Jeremy, Jeremy later starting his own module: shop ● Silvercart and SwipeStripe are more recent e- commerce modules.
  • 3. Today ● Four über-developed modules, including demo sites, installers, tests, in-depth documentation ● Do you see this level of development in any of the other modules ? ● Lots of developers (and their clients) are keen to be develop e-commerce applications ● Are they confused by the options? ● Do they use Magento or other applications rather than Silverstripe ones?
  • 4. Modules out there ● Silvertripe Shop: ● Jeremy, NZ ● SwipeStripe: ● Frank, NZ ● Silvercart: ● Roland, Germany ● Silverstripe E-commerce ● Nicolaas, New Zealand
  • 5. Silverstripe Shop ● Author: Jeremy Shipman ● Excellent documentation ● Best practice release process ● Quality tests through TravisCI ● Code simplicity as well as strong usage of Silverstripe core code base and Best Practice ● http://ss-shop.org/
  • 6. SwipeStripe ● Author: Frank Mullenger ● Lots of tests ● Innovative CMS features ● Xero integration ● Virtual products ● Small licensing fee ● 3.0 ready! ● http://www.swipestripe.com/
  • 7. SilverCart ● Author: Roland Lehmann et al. ● Probably most polished documentation and out-of- the-box solution ● Does not use the original e-commerce as code base ● Master-Slave product relationships ● product variations can be grouped while the variations can be independently maintained ● PDF invoices ● Most usage of third-party tools (e.g. DataObjectManager, the YAML CSS framework) and most intrusive (e.g. Page extends SilvercartPage) ● http://www.silvercart.org/
  • 8. select an e-commerce module ● What features do I need? ● What is the smallest code base to achieve this ● The bigger the code base, the more to develop / test / maintain ● Documentation ● Tests ● DYI vs Pre-Baked ● Can I get help? How much will it cost?
  • 10. E-commerce is zpeshial 1 ● My experience: all parties underestimate the work involved ● Site owner: ● entering / importing products: Images, pricing, descriptions, product grouping, variations ● Policies and business processes: delivery costs, tax, cancellations, customer communication ● Designer: the amount of screens to design ● You can save a lot of time by standardising forms, etc... but many web designers are not very good at this. ● Front-end developer: interaction required ● Ajax stuff, difficult forms, products and product category pages work with few or many – definitely diverse - products
  • 11. E-commerce is zpeshial 2 ● Back-end developer: ● this is more an application than a website ● Keep a record of transactions (e.g. address of the member at time of order – not just today) ● Many tricky relationships and coding challenges ● Discounts, delivery, tax, etc... etc... ● You have to be precise otherwise end customers get upset (websites can be more loosely coded)
  • 13. Silverstripe E-commerce ● Based on the original e-commerce ● Developers include: Sean, Romain, Jeremy, Nicolaas and many others! ● Original idea: very flexible data structure ● Currently being developed mainly by Nicolaas ● Uses Payment Module
  • 14. Data Structure ● Config ● Sales EcommerceDBConfig Order ● ● ● YAML file replaces traditional static variables ● Order has many OrderAttributes (abstract ● Product Pages / Objects class) ● Product Category ● Item (ProductGroupPage) ● Modifier ● Can show all sorts of combination of products ● Order has one Billing + ● Product Page Shipping Address ● Product Variation (many for one ● Linked to Country + Region Product) ● Customer (Member extension) ● Other buyables ● Create as needed, any ● Process DataObject can be turned into a buyable ● OrderStep ● Other Pages ● OrderStatusLog ● CartPage + CheckoutPage + OrderConfirmationPage ● OrderEmailRecord ● AccountPage
  • 15. Product (buyable) Features ● Product Categories CMS customisation ● products to show, filter, sorting ● Full Site Tree Sorting ● retain product sorting outside of traditional structure ● Best Available Image ● inherit image from parent (be it Product, ProductGroup or Default Image) ● Optional weight, model (SKU), IsFeatured, quantifier (e.g. per month) ● Full (hidden) Title for efficient Keyword Searching
  • 16. Cart / Checkout Features ● All cart functions “ajaxified” ● Currency conversion ● Editable checkout steps (one to many steps) – always ending in a confirm and pay then “print invoice” page. ● Ability to add zero to many forms / fields for collecting additional info in checkout ● Optional password field ● Customer has option but does not feel like they have to create an account ● Remember previous addresses for Member ● Shop Admin (separate security group) can create also create full Order from CMS
  • 17. Post Sale Features ● Ability to pay again / later ● Customisable Order Steps (Jeremy's idea) from “creation” through to “archiving” ● Allows connectivity with third-party applications at “precise” step in order process ● Admin reviews Orders “stuck” at each step ● e.g. 10 orders to mail out, 7 orders to confirm payment ● Ability to send updates to customer (e.g. courier code) ● Customer can cancel Order (if configured this way) ● Nicely formatted emails with logo, shop address, etc... ● Restful API
  • 18. A few add-ons we have built ● also recommended - if you buy ● corporate account (approve account, this, also buy ... security groups as customers) ● any price product + donations ● discount coupon including round-up donation ● product tags: alternative product grouping ● check product availability: place order, but hold to confirm ● product variations with colours ● club order: place order for a group ● repeat orders of people ● stock control ● combination product: combine ● tax – per country / per product products into a package ● quick add system ● complex pricing: pricing based on country or member security group ● delivery costings for NZ + AU based on postal system ● delivery based on weight, price, ● reward system country, etc... ● Favourites ● electronic download product ● Quick Checkout: fastest way to add lots of products
  • 19. Features in the pipe-line ● 3.0 ! ● Xero Connectivity ● PDF invoices ● Many Images for each product ● Improved importing ● Twitter + Facebook integration ● Multi-shop
  • 20. Development tools ● YAML configuration ● /dev/ecommerce/ ● Templates broken up into smaller snippets for mix and match ● Migration task takes you from 0.5 to 1.0 ● Variables for Ajax html classes and Ids
  • 24. Coding challenges in e-commerce ● Versioning / rules about ● Keep code flexible enough changing data to work with many requirements ● canCreate, canEdit, canDelete are carefully ● Add lots of “hooks” defined ● Allow class replacement ● Keep version number ● e.g. Order = new relating to sales $MyOrderClassName ● Referential integrity ● Many objects relationship ● can we delete a product? ● BAD: one Order HasMany ● “De-normalisation” Products ● product price changes != ● GOOD: one Order price in old orders for this product HasMany “Buyables” ● Save ClassName + ID (+ Version) ● Challenge: Buyable Form Field
  • 25. Silverstripe improvements needed ● ModelAdmin: better presentation and easier to customise ● Solution: gridfield? ● Versioning and staging ● Clearer documentation ● Easier to implement ● Forms more flexible ● Many of these features are available in 3.0!
  • 26. THANK YOU – QUESTIONS?