Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Plugin Development in Shopware 6

Plugin Development in Shopware 6

We would like to give you an overview of the plugin development and provide you with a behind-the-scenes look how Shopware 6 works.

Stephan Pohl

June 19, 2020

More Decks by Stephan Pohl

Other Decks in Programming


  1. @last__sgt Plugin system facts you need to know - Changelogs

    are in a simple markdown structure - Uses the same database migrations as the core - Plugin config for easy configurations in the administration - Versioning is driven by Composer @klarstil Extensibility Stability Performance DX
  2. @klarstil @last__sgt ...but what is a plugin? - Symfony bundle

    with lifecycle functionality (install, uninstall, activate, deactivate) - composer.json for versioning and meta data - PluginBaseClass as the entry point for your extension
  3. @klarstil @last__sgt Serverside aka Symfony - 99 console commands ready-to-use

    - Controllers for our API actions - EventDispatcher driven EventSystem - DependencyInjection out-of-the box - Cart process chain uses tagged services
  4. @klarstil @last__sgt Repository SearchResult EntityDefinition Factory Entity Vue.js Component Save

    entity Request Changeset Generator Payload API Server Administration Data flow through the application
  5. @klarstil @last__sgt Sophisticated data handling - Entity scheme generated based

    on the defined server side entities - Automatic generation of repositories and entities - Changeset generator to minimize the payload - OpenAPI compatible format - Resolves associations between entities out-of-the box
  6. @klarstil @last__sgt Module system - Registration of module specific snippets

    out-of-the-box - Color-coded routing system & icon for your module by definition - Define routes & child routes as well as support for route middleware - Definition of a navigation entry into the main menu
  7. @klarstil @last__sgt Module Routes Page component Vue.js Components Child Routes

    <router-view> component View component Routing & components handling General Component handling Client-side routing
  8. @klarstil @last__sgt Component system - Register, extend & override components

    - 230 pre-defined components ready to use - Access the entire application using the third-party interface - Built-in dependency injection combined with Vue.js' "inject & provide" pattern
  9. @klarstil @last__sgt app Order Module Product Module Settings Module Customer

    Module CMS Module Media Module Login Module Vue.js Adapter Initializers Decorators Filters General Snippets Mixins Components Assets Icons General Routes Vue.js Plugins Data Layer Factories Dependency injection Workers core module Category Module Dashboard Module Helper
  10. @last__sgt @klarstil A closer look on the Storefront - Using

    well-defined standards like Symfony, Twig & Bootstrap - Vanilla ES6 JavaScript plugins (jQuery optional) - Pre-processing using Webpack, SCSS & Autoprefixr - Hot-module reloading for a great DX
  11. @klarstil @last__sgt Other things you can do - Extend the

    cart behavior by writing your own CartCollector & Processor - Implement your own payment method - Add filters to the storefront listing page - ...and much more!