This page is also available in English. Change to English page

Tauche in die Technologie von Shopware 6 ein

Shopware_SCD_2019_0210_cover

Beim Shopware Community Day 2019 wurden zum ersten Mal zwei Keynotes gleichzeitig gehalten: Die Haupt-Keynote von unserem CEO und Mitbegründer Sebastian Hamann – und die technische Keynote, die ich selbst gehalten habe. Für mich war es eine große Ehre und ich habe mich gefreut, Euch einen technischen Überblick über Shopware 6 geben zu können. In diesem Blogbeitrag möchte ich meine Gedanken zu Shopware 6 noch einmal zusammenfassen.

Warum Shopware 6?

Bei Shopware 6 handelt es sich um einen kompletten Rewrite von Shopware. Natürlich haben wir das Rad für die Dinge, die wir an Shopware 5 großartig finden, nicht neu erfunden. Gleichzeitig wollten wir aber viele Bereiche verbessern, die wir in Shopware 5 noch nicht angehen konnten.

Wir haben auch viel darüber nachgedacht, wie E-Commerce in ein paar Jahren aussehen könnte, welche Anforderungen wir vielleicht erfüllen müssen – und welche Kundensegmente wir erreichen wollen. Schnell haben wir festgestellt, dass Technologie-Hypes hier nicht im Mittelpunkt stehen werden. Wir wollten eine breite Basis schaffen, mit der kleine und kleinste Händler ebenso wie große Enterprise-Kunden erfolgreich sein können. Neben vielen technologischen Überlegungen bedeutet das insbesondere, dass Händler verstehen müssen, was der Kunde will – auch dann, wenn der Kunde das selbst noch nicht so genau weiß.

Ich habe in meiner Keynote drei Bereiche herausgestellt, um Bestands- und Neukunden zu erreichen:

  • Internationalisierung
  • Neue Kanäle
  • Kundenbindung

Auf diese Bereiche haben wir in Shopware 6 einen besonderen Schwerpunkt gelegt. Für die Internationalisierung gibt es neue Konzepte für Übersetzungen (und die Vererbung von Übersetzungen). Auch die Handhabung von Brutto- und Nettopreisen sowie von Preisen in anderen Währungen wurde verbessert. Das neue Sales-Channel-Konzept ermöglicht einen neuen Blick auf zusätzliche Kanäle wie eBay, Amazon, Instagram, usw. Der neue Rule Builder ermöglicht es, jeden Sales Channel spezifisch zu bearbeiten – er ist auch in Bezug auf die Kundenbindung sehr leistungsstark, denn Ihr könnt sehr individualisierte Kundensegmente gestalten und jeden Kunden ganz präzise ansprechen.

Um das Potenzial dieser Bereiche auszuschöpfen, muss die Komplexität verringert werden. Händler müssen Neues ausprobieren können. Sie wollen Fehler und Erfolge schnell ermitteln können, um aus ihren Erfahrungen zu lernen. Kreativität und Geschwindigkeit zu ermöglichen, bedeutet gleichzeitig auch, dass Entwickler wissen möchten, in welche Richtung die Reise gehen soll. Ein Satz wie „irgendwie wird das schon möglich sein“ hilft einem nicht dabei, großartige Softwareprojekte umzusetzen. Deshalb haben wir uns beispielsweise noch einmal angesehen, wie wir unser Datenmodell gestalten, wie Erweiterungen umgesetzt sollen und wie Entwickler mit dem Warenkorb arbeiten wollen.

Wenn wir die Menschen in die Lage versetzen wollen, die neuen Technologien nutzen zu können, bedeutet das auch, rechtliche Hindernisse aus dem Weg zu räumen. Shopwares Wechsel auf die freizügigere MIT-Lizenz ist ein eindeutiges Bekenntnis zur Open-Source-Community.

Für mich ist das der Grundgedanke hinter Shopware 6: Uns begeistern neue Technologien und wir haben Spaß dabei, sie auszuprobieren. Aber es sind die Entwickler und Händler, die die tatsächliche Innovationsarbeit in ihrem Projektalltag leisten. Und diese brauchen weder ein enges E-Commerce-Korsett noch eine abgespacete Toolbox. Sie benötigen ein zuverlässiges Fundament, auf dem sie aufbauen können. Und das ist Shopware 6: einfach, flexibel, modern und als Open Source verfügbar.

Die neue Technologie in Shopware 6

Werfen einmal einen Blick auf die Technologie. Die auffälligste Veränderung ist natürlich der Wechsel zu Symfony. Symfony ist wahrscheinlich eines der beliebtesten PHP Frameworks und hat eine ganze Generation von Entwicklern geprägt. Durch die Nutzung von Symfony in Shopware sorgen wir dafür, dass es einfacher wird, neue Entwickler für Shopware 6 zu gewinnen.

Aus demselben Grund wechseln wir von Ext JS zu Vue JS als JavaScript Framework für unsere neue Admin. Vue JS beschreibt sich selbst als „progressives und inkrementell anpassbares“ Framework. Für uns bedeutet das, dass es exakt auf unsere Bedürfnisse und Anforderungen zugeschnitten werden kann. Auch hier gilt: Wir sind davon überzeugt, dass wir dadurch neue Entwickler für Shopware 6 begeistern können. .

DAL

Eine weitere große Veränderung ist der neue Data Abstraction Layer (DAL). Dabei handelt es sich um eine Schicht zwischen eurem Datenbankspeicher und der eigentlichen Anwendung, die alle eure Datenvorgänge übernimmt – Lesen, Schreiben, Suchen oder Aggregationen.

Data abstruction layer

In Shopware 5 haben wir einen ähnlichen Layer nur für Lesevorgänge für Produkte in der Storefront eingeführt. Aus unserer Sicht wurde Shopware dadurch deutlich verständlicher und vorhersagbarer für die Entwickler-Community. Aber im Gegensatz zu den Produkt-Services in Shopware 5 übernimmt der DAL alle Entitäten und alle Arten von Datenzugriffen. Somit sollten keine benutzerdefinierten SQL-Abfragen mehr nötig sein. Außerdem kann der DAL auch die Synchronisierung verschiedener Speicher übernehmen: In modernen E-Commerce-Infrastrukturen gibt es neben MySQL häufig auch Elasticsearch und Redis. Mit dem DAL können diese Speicher synchronisiert werden, sodass Elasticsearch zusätzlich zum Hauptspeicher MySQL immer mit aktualisiert wird. Und es gibt noch mehr Funktionen, wie die Versionierung oder Übersetzungen, die ihr ganz einfach nutzen könnt:

Shopware 6 product manufacturer entity

Das Beispiel oben zeigt, wie man eine Produkthersteller-Entität mit verschiedenen übersetzbaren Feldern und Bezügen zu beispielsweise Medien und Produkten definieren kann. Weitere Details findet Ihr in der Beschreibung in unserer Dokumentation.

Erweiterungen

Wenn Ihr Euch mit dem Plugin-System von Shopware 5 auskennt, habe ich gute Neuigkeiten für Euch: Viele der Muster werden Euch bekannt vorkommen.

Extensions code

Es gibt immer noch eine Basis-Plugin-Datei, in der Ihr verschiedene Methoden umsetzen könnt, um das Verhalten eures Plugins während der Installation oder Deinstallation festzulegen. Das Erstellen neuer oder die Erweiterung bestehender Services ist über die service.xml-Definitionsdatei möglich. Und wenn Ihr Events nutzen wollt, könnt Ihr die gleichen Subscriber schreiben, die Ihr auch schon in Shopware 5 verwendet habt. Weitere Details findet Ihr in unserem Quickstart für Plugins.

Zusammenfassung

AInsgesamt hat sich einiges getan in Shopware 6. Wir sind aber davon überzeugt, dass Euch diese Änderungen das Leben langfristig leichter machen werden. Zusätzliche Ressourcen findet Ihr in unserer Dokumentation oder unserem Schulungsprogramm. Es gibt zahlreiche kostenlose Remote-Schulungen, die Euch beim Einstieg in Shopware 6 unterstützen.

Neue Geschäftsmodelle mit Shopware 6

In einer technischen Keynote über Geschäftsmodelle zu sprechen, mag zunächst etwas seltsam erscheinen. Aber wenn wir wirklich verstehen wollen, welche Anforderungen für unsere Entwicklungs-Community relevant sind, mussten wir herausfinden, welche Anforderungen Euch in euren Projekten begegnen – und an welchen Stellen eure Arbeit in der Vergangenheit sehr mühsam wurde.

Rule Builder

Der Rule Builder ist ein komplett neues Konzept für die zielgerichtete Ansprache von Kunden. In Shopware 5 (und vielen anderen E-Commerce-Systemen) gibt es nur bestimmte „Gruppen“, die für Preisgestaltung, Verkaufsförderung, Content, Kategorieeinschränkungen, Länder, usw. genutzt werden können. Je mehr Anwendungsfälle man hatte, desto komplizierter wurde es, all diese Gruppen zu verwalten.

Der Rule Bilder verfolgt hier einen anderen Ansatz: Damit könnt Ihr komplexe und geschachtelte Regeln erstellen, die den Kunden beschreiben, den Ihr für einen bestimmten Use Case ansprechen wollt. Das erleichtert nicht nur das Erstellen „dynamischer Gruppen“ (z. B. einer Gruppe mit allen Kunden, die älter als 18 Jahre alt sind, oder einer Gruppe mit allen Kunden aus einer bestimmten Region), es macht es auch einfacher, diesen Gruppen spezielle Preise oder speziellen Content zuzuordnen oder Bestellungen/Zahlungen/Lieferungen für sie einzuschränken.

Mit dem neuen Rule Builder kann Shopware 6 Anforderungen erfüllen, für die in der Vergangenheit eine individuelle Erweiterung nötig gewesen wäre.

Neuer Warenkorb

Der neue Warenkorb war einer der ersten Bestandteile von Shopware 6. Bereits 2016 wurden hierfür die ersten Konzepte ausgearbeitet. Wir haben viele Use Cases analysiert, in denen man den Warenkorb anpassen musste, um die Anforderungen des Händlers zu erfüllen. Da mit dem neuen Rule Builder auch Preisdefinitionen erstellt werden können, wird das Preis-Handling im neuen Warenkorb erheblich flexibler. Der Warenkorb ist nicht nur viel leistungsstärker, wenn es darum geht, bestimmten Kunden bestimmte Preise zuzuweisen: Er ist auch flexibler, was Schwellenpreise in verschiedenen Währungen und den Umgang mit Brutto-/Nettopreisen anbelangt.

Ein weiteres großes Thema war die Datenbank-Performance. Einerseits wollen wir sicherstellen, dass alle Preise und Lagerdaten während des Warenkorbprozesses übereinstimmen und korrekt sind und dass keine Bestellung verloren geht. Andererseits möchte man die Auswirkungen des Warenkorbs auf die Datenbank möglichst gering halten, da dieser kritische Bestandteil der meisten E-Commerce-Systeme für seine massiven Schreibvorgänge bekannt ist. Darum ist der neue Warenkorb viel leichtgewichtiger und reduziert die Lese-/Schreibvorgänge so weit wie möglich. Der Preis dafür sind Konventionen für die Informationen, auf die Ihr mit euren Erweiterungen zugreifen sollt/könnt.

Erlebniswelten

Ein neues Tool für Händler sind die sogenannten „Erlebniswelten“. Mit diesem Instrument erleichtern wir das Erstellen von einzigartigem und ansprechendem Content für den Online-Shop. Natürlich könnt Ihr – wie Ihr das bereits von den Einkaufswelten in Shopware 5 kennt – Content erstellen. Die Erlebniswelten setzen jedoch einen anderen Schwerpunkt:

Es gibt Dutzende vorgefertigter Blöcke, die Euch verschiedenste Kombinationen von Bildern, Texten, Slidern, Videos und Commerce-Komponenten aufzeigen. Ihr wählt einfach den Block aus, der eurer Vorstellung am nächsten kommt, und zieht ihn in den Designer. Im Designer erhaltet Ihr immer einen realistischen Überblick darüber, wie das Einkaufserlebnis im Frontend aussehen könnte. Gleichzeitig könnt Ihr damit die Elemente gemäß euren Anforderungen konfigurieren: Ihr könnt Texte bearbeiten, Elemente austauschen oder Blöcke umgestalten. Jeder Block ist standardmäßig responsive. Ihr müsst Euch also keine Gedanken mehr um Viewports und Spalten machen.

Shopping-experiences

Die Einkaufserlebnisse sind besonders leistungsstark, weil jede Seite, die Ihr so erstellt habt, wiederum als Layout für Kategorieseiten, Produktseiten oder Landing Pages genutzt werden kann. Die Eigenschaften dieser Seiten könnt Ihr sogar dynamisch referenzieren. Als Beispiel: Wenn Ihr ein Layout für die Kategorien erstellt, könnt Ihr den Namen der Kategorie dynamisch referenzieren. Bei einem Produktlayout könntet Ihr ein Bild des Produkts oder dessen Beschreibung dynamisch zuweisen.

In Zukunft planen wir weitere Funktionen, die sich in vielen Projekten als nützlich erweisen werden: Beispielsweise Redaktions-Workflows für Content-Seiten oder die Versionierung.

Fazit

Natürlich kann das nur ein kleiner Einblick in die neuen Technologien, Funktionen und Konzepte von Shopware 6 sein. Was es aus meiner Sicht aber so großartig macht, ist die Tatsache, dass wir uns aufgrund unserer Erfahrungen mit kleinen, mittleren und großen E-Commerce-Projekten die Frage gestellt haben: Was wollen Kunden? Was brauchen Händler? Was braucht Ihr als Entwickler? Das ist der rote Faden, der sich durch Shopware 6 zieht. Deshalb macht es so viel Spaß, damit zu arbeiten – und deshalb kann es in Projekten mehr leisten. Beim SCD 19 haben wir die Developer Preview von Shopware 6 vorgestellt. Mit dieser Version wollen wir Rückmeldungen von Euch Entwicklern sammeln. Schaut doch mal auf unserem Repository für Shopware 6 auf GitHub vorbei. Wir freuen uns auf Euer Feedback.

 

Schaut Euch jetzt die Keynote von Daniel Nögel an