Einblicke in die Core Architektur von Shopware 6

ShopwarePlatform_BLOG

In unserem heutigen Blogbeitrag erhaltet Ihr einen Einblick in die Core-Architektur von Shopware 6. Shopware 6 ist eine Open-Source eCommerce-Plattform, die aus den Ideen und dem Geist ihrer Community besteht. Durch den Einsatz modernster Technologien wie Symfony und Vue.js bietet Shopware 6 geringe Komplexität, modulare Anpassungsfähigkeit und gute Wartbarkeit. Mit Shopware 6 können alle Aspekte Eurer Plattform über eine API gesteuert werden, so dass Ihr verschiedenste Prozesse von Drittanbietern in Shopware automatisieren könnt.

Das oben abgebildete Diagramm zeigt, wie Shopware 6 in Euer Unternehmen passt. Es bietet Web-Frontends für die Verwaltung verschiedenster Vertriebskanäle, verfügt über eine Reihe von Benutzeroberflächen und bietet die Möglichkeit, sich über REST-APIs mit Eurer eigenen Infrastruktur und externen Diensten zu verbinden.

Die Shopware-Plattform besteht aus drei Bausteinen

Shopware core

Der Core ist das Zentrum der Plattform und umfasst alle eCommerce-spezifischen Workflows und Ressourcen. Er ist als modularer, nicht streng geschichteter Monolith aufgebaut. Die Module werden kategorisiert und auf verschiedene Verzeichnisse verteilt.

Shopware admin

Die Administration ist eine Single Page Application, die neben der REST-API-basierten Kommunikation mit dem Core eine umfangreiche Benutzeroberfläche bietet. Es handelt sich um ein interaktionsorientiertes System nach dem Vorbild der Web-Komponenten - realisiert mit Vue.js.

Shopware storefront

Die Storefront ist eine Web-UI, welche die Kundensicht und die Steuerung der Shopware 6 Sales Channels ermöglicht. Die Storefront-Komponente, welche der Administration konzeptionell ähnlich ist, setzt auf dem Core auf. Im Gegensatz zur Administration ist die Storefront ein Vertriebskanal und wird im gleichen Prozess wie der Core ausgeführt. Architektonisch gesehen ist die Storefront ein “backend for frontends” und eine klassische PHP-Anwendung mit HTML-Rendering, JavaScript-Erweiterungen (nach dem Vorbild der Graceful Degradation) und SASS-Styling, aufbauend auf dem Bootstrap Framework.

Mehr Informationen findet ihr in unserer Dokumentation.

Repository Struktur

Die Tatsache, dass Shopware 6 jetzt eine “vendor dependency” ist, führt zu einer Multi-Repo-Struktur. Damit Ihr wisst, welche Repos Ihr klonen müsst, um einen Shop einzurichten, haben wir hier eine kurze Übersicht zur Struktur für Euch. Shopware 6 besteht aus mehreren Repositories, zwei davon sind für Euch wichtig.

shopware/platform

Dieses Repository ist ein Mono-Repository, welches alle Module enthält. Hier wird der Shopware-Core entwickelt. Ihr benötigt es als Abhängigkeit in Euren Projekten. Es ist einfach, Änderungen an allen Modulen vorzunehmen, um die Stabilität zu erhalten. Hier tragt Ihr zur Entwicklung über Pull-Requests bei.

shopware/development

This repository is the development template and where your journey with shopware starts.

In diesem Repository findet Ihr das Projekt-Template, mit dem Ihr in die Entwicklung eigener Plugins und Themes starten könnt. Das Projekt-Template ist eine leichte Abwandlung eines Symfony-Projekt-Templates. Es verbindet Euren Webserver mit der Plattform als Einstiegspunkt. Wenn Ihr mit Symfony-Projekten vertraut seid, werdet Ihr mit dem Projekt-Template bestens arbeiten können.

Das Template kann an Eure Projektanforderungen angepasst werden

Erinnerst Du Dich an Shopware Playground? Unsere exklusive, getarnte Vorschau auf Shopware 6? Es handelte sich um ein zusätzliches Projekt-Template, welches über eine große Anpassungsfähigkeit verfügte, um AWS Managed Services zu verbinden, Metriken zu sammeln und die Erstellung eines mandantenfähigen Systems auf einer großen Container-Infrastruktur zu ermöglichen.

Ihr seid ein Teil des Cores

Jedes Shopware-Plugin ist ein erweitertes Symfony-Plugin, so dass Euer Code grundsätzlich Teil des Cores ist! Da mit großer Leistung große Verantwortung einhergeht, möchtet Ihr vielleicht mehr darüber erfahren, wie der Core funktioniert und wie Ihr Eure eigenen Plugins entwickeln könnt. Dafür informiert Euch einfach auf docs.shopware.com, schaut Euch einige Videos auf academy.shopware.com an und lasst Euch von unseren Core-Architekten Jan Bücker und Jonas Elfring informieren: