SlideShare a Scribd company logo
1 of 26
Download to read offline
Development journey of the Shopware Administration
@klarstil
@klarstil
@klarstil
Extensibility
Easy-to-use data handling
Maintainability
DX
What was the goal of the admin panel?
- Extensibility - every part should be customizable by third-
party developers
- Easy-to-use data handling - no need to define models on the
client, no additional overhead for developers
- Great DX and a flat learning curve
- Maintainability - tech stack has to work >5 years
@klarstil
VueX
Vue.js
Twig.js
lodash
Autoprefixr
uuid
Webpack
Vue Router
Axios
SCSS
Symfony
@klarstil
ModuleShopware
Extensibility
@klarstil
@klarstil
Extensibility in detail
- Ability to extend & override components
- Component template needs to be extensible too
- Components need to access services, the data handling & helpers
- Ability to inject routes in an existing module
- Extensions needed to be injected into the application without
compiling on production systems
@klarstil
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
@klarstil
Templating system
- Component templates are written in Twig syntax
- Twig in the storefront & administration = flat learning curve
- Partial overrides / extends are possible with {% block %} & {% parent %}
- Data rendering is entirely Vue.js based
- Vue.js with Runtime & Compiler with Twig.js for template compiling
@klarstil
Extending component logic & template
@klarstil
@klarstil
Module system
- Translations can be registered independently per module
- Color-coded UX system & icon for your module
- Define routes & child routes as well as support for route middleware
- Definition of a navigation entry for the main menu
@klarstil
Injecting routes into an existing module
- Middleware pattern known from frameworks like Express.js
- Ability to add new child routes or replace existing routes
- Allows to have a flexible way to intersect the registration process
- Built on top of Vue Router
@klarstil
Third-party interface & dependency injection
- Provides access to all parts of the application from every components
- Extensions can register their own services
- Services can be decorated and providing middleware hooks
- IoC DI built on top of Bottle.js
@klarstil
Webpack Building Pipeline
- PHP process provides list of installed extensions as a JSON file
- Custom Webpack plugin injector adds extensions to the core Webpack configuration
- Global third-party interface prevents bundling the same dependency twice
- Ability to extend the Webpack configuration to add extension specific dependencies
- Extensions getting bundled and will be injected at runtime in the bootstrapping
Data handling
@klarstil
@klarstil
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
- You define the data and associations you would like to use
@klarstil
Repository SearchResult
EntityDefinition
Factory
Entity
Vue.js ComponentSave entity
Request
Changeset
GeneratorPayload
API
Server Administration
Data flow through the application
@klarstil
Define the data you want - Criteria system
- Repository factory which provides all endpoint to all registered
entities in the system
- Criteria system which allows filtering and sorting
- Associations can be loaded right away
- Automatic mapping of errors to a VueX store for save requests
Maintainability
@klarstil
@klarstil
Credits: https://qz.com/646467/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code/
https://www.zdnet.com/article/another-one-line-npm-package-breaks-the-javascript-ecosystem/
Why is NPM a risk factor?
- Our software stack has to work for >5 years
- You never know if a package is getting abandoned
- API changes / breaks of a package imply refactoring
of your code base
- Not every package is following semantic versioning
@klarstilCredits: https://commons.wikimedia.org/wiki/File:Npm-logo.svg
Thin layer / wrapper pattern
- Wrapping third-party dependencies in factories / helpers
- We're defining the public API for the application code
- Everything below the thin layer can be refactored
without breaks
- Packages can be switched out
@klarstil
...it's more than just a website
@klarstil
@klarstil
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 ModuleHelper
Thank you! Questions?
@klarstil
https://www.shopware.com/en/
https://docs.shopware.com/

More Related Content

What's hot

What's hot (20)

Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
 
Mule architecture
Mule architectureMule architecture
Mule architecture
 
Enterprise service bus mule
Enterprise service bus  muleEnterprise service bus  mule
Enterprise service bus mule
 
Mule mule runtime engine
Mule  mule runtime engineMule  mule runtime engine
Mule mule runtime engine
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub application
 
Anypoint connector dev kit
Anypoint connector dev kitAnypoint connector dev kit
Anypoint connector dev kit
 
Mule anypoint data gateway
Mule  anypoint data gatewayMule  anypoint data gateway
Mule anypoint data gateway
 
MuleSoft CloudHub FAQ
MuleSoft CloudHub FAQMuleSoft CloudHub FAQ
MuleSoft CloudHub FAQ
 
Mulesoftanypointplatformintro
MulesoftanypointplatformintroMulesoftanypointplatformintro
Mulesoftanypointplatformintro
 
Features of Mule SAP Connector
Features of Mule SAP ConnectorFeatures of Mule SAP Connector
Features of Mule SAP Connector
 
CloudHub networking guide
CloudHub networking guideCloudHub networking guide
CloudHub networking guide
 
Mule
MuleMule
Mule
 
Mule cloud hub
Mule  cloud hubMule  cloud hub
Mule cloud hub
 
Logging best practice in mule using logger component
Logging best practice in mule using logger componentLogging best practice in mule using logger component
Logging best practice in mule using logger component
 
MULE-JAAS
MULE-JAASMULE-JAAS
MULE-JAAS
 
Web Programming - 3 Laravel Framework
Web Programming - 3 Laravel FrameworkWeb Programming - 3 Laravel Framework
Web Programming - 3 Laravel Framework
 
Mule connectors
Mule  connectorsMule  connectors
Mule connectors
 
Anypoint data gateway
Anypoint data gatewayAnypoint data gateway
Anypoint data gateway
 
Mule groovy
Mule groovyMule groovy
Mule groovy
 
Deploying mule applications
Deploying mule applicationsDeploying mule applications
Deploying mule applications
 

Similar to Development Journey of the Shopware Administration

Martin Koons Resume 2015
Martin Koons Resume 2015Martin Koons Resume 2015
Martin Koons Resume 2015
Marty Koons
 
Построение частного облака на примере использования Windows Server 2012R2 и ...
Построение частного облака на примере использования Windows Server  2012R2 и ...Построение частного облака на примере использования Windows Server  2012R2 и ...
Построение частного облака на примере использования Windows Server 2012R2 и ...
TechExpert
 
Adopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuiteAdopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuite
AnswerModules
 

Similar to Development Journey of the Shopware Administration (20)

sveltekit-en.pdf
sveltekit-en.pdfsveltekit-en.pdf
sveltekit-en.pdf
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
Martin Koons Resume 2015
Martin Koons Resume 2015Martin Koons Resume 2015
Martin Koons Resume 2015
 
Customer FX Technical Reference Sheet
Customer FX Technical Reference SheetCustomer FX Technical Reference Sheet
Customer FX Technical Reference Sheet
 
Vue micro frontend implementation patterns
Vue micro frontend implementation patternsVue micro frontend implementation patterns
Vue micro frontend implementation patterns
 
#ITsubbotnik Spring 2017: Roman Dimitrenko "Building Paas with the HashiStack"
#ITsubbotnik Spring 2017: Roman Dimitrenko "Building Paas with the HashiStack"#ITsubbotnik Spring 2017: Roman Dimitrenko "Building Paas with the HashiStack"
#ITsubbotnik Spring 2017: Roman Dimitrenko "Building Paas with the HashiStack"
 
What's new in IBM MQ Messaging
What's new in IBM MQ MessagingWhat's new in IBM MQ Messaging
What's new in IBM MQ Messaging
 
Intro to Environment as a Service - Cloudify 5.0.5 Webinar
Intro to Environment as a Service - Cloudify 5.0.5 WebinarIntro to Environment as a Service - Cloudify 5.0.5 Webinar
Intro to Environment as a Service - Cloudify 5.0.5 Webinar
 
Cisco project ideas
Cisco   project ideasCisco   project ideas
Cisco project ideas
 
NextGenML
NextGenML NextGenML
NextGenML
 
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
 
Построение частного облака на примере использования Windows Server 2012R2 и ...
Построение частного облака на примере использования Windows Server  2012R2 и ...Построение частного облака на примере использования Windows Server  2012R2 и ...
Построение частного облака на примере использования Windows Server 2012R2 и ...
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
 
Build cloud native solution using open source
Build cloud native solution using open source Build cloud native solution using open source
Build cloud native solution using open source
 
MuleSoft Surat Virtual Meetup#27 - MuleSoft Runtime 4.4, Transit Gateway and ...
MuleSoft Surat Virtual Meetup#27 - MuleSoft Runtime 4.4, Transit Gateway and ...MuleSoft Surat Virtual Meetup#27 - MuleSoft Runtime 4.4, Transit Gateway and ...
MuleSoft Surat Virtual Meetup#27 - MuleSoft Runtime 4.4, Transit Gateway and ...
 
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdfNET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
NET Aspire - NET Conf IL 2024 - Tamir Dresher.pdf
 
Enabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeEnabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using Steeltoe
 
Fs And Self Service
Fs And Self ServiceFs And Self Service
Fs And Self Service
 
Adopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuiteAdopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuite
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Development Journey of the Shopware Administration