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

Drupal 414: Meet Commerce 2.0
Drupal 414: Meet Commerce 2.0Drupal 414: Meet Commerce 2.0
Drupal 414: Meet Commerce 2.0Matt Glaman
 
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...Pavel Pratyush
 
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 8Iztok Smolic
 
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
 
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.0Mark Hamstra
 
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...Ruth Cheesley
 
Managing Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoManaging Multiple Store Fronts on Magento
Managing Multiple Store Fronts on MagentoGeoffrey Mobisson
 
Drupal Commerce contributed modules overview
Drupal Commerce contributed modules overviewDrupal Commerce contributed modules overview
Drupal Commerce contributed modules overviewPedro Cambra
 
Akretion magento erp_connect
Akretion magento erp_connectAkretion magento erp_connect
Akretion magento erp_connectNico Tristan
 
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.comMongoDB
 
MongoDB@sfr.fr
MongoDB@sfr.frMongoDB@sfr.fr
MongoDB@sfr.frbeboutou
 
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 2017Iztok Smolic
 
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 UniversePuneet Parashar
 
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 UniverseMagento 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...Aaron Saray
 
Myntra.com's Big Data Platform
Myntra.com's Big Data PlatformMyntra.com's Big Data Platform
Myntra.com's Big Data PlatformApoorva Gaurav
 
Let's go shopping with Drupal!
Let's go shopping with Drupal!Let's go shopping with Drupal!
Let's go shopping with Drupal!agileware
 
Spring 21 Salesforce Release Webinar
Spring 21 Salesforce Release WebinarSpring 21 Salesforce Release Webinar
Spring 21 Salesforce Release Webinarbrightgenss
 
[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.XSrijan Technologies
 

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 » 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
 
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
 
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

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

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?