Neue Features in Magento 2.3

Magento hat auf der Konferenz Magento Imagine angekündigt, welche Neuigkeiten die für Herbst 2018 geplante Version Magento 2.3 bieten wird. Soviel vorab: uns erwartet eine Vielzahl an neuen Features. Auch für die Open Source Edition gibt es tolle Neuigkeiten: alle Features bis auf Page Builder sind direkt in Open Source enthalten. Dieser kann jedoch zugekauft werden. Sehen wir uns die Features in einem Überblick an.

Page Builder

=> Hauptartikel: Page Builder

Eines der spannendsten Neuigkeiten für HändlerInnen wird der so genannte Page Builder sein. Dahinter verbirgt sich im Prinzip die überarbeitete Bluefoot-CMS-Extension, die Magento vor längerer Zeit aufgekauft hat. Bisher war das Feature als „Advanced CMS“ angekündigt worden.

Was der Builder alles bietet:

  • Drag-and-Drop-Funktionalität.
  • Ein flexibles und responsives Grid-System, d.h. die Inhalte sehen auf allen Endgeräten vom Smartphone bis zum Desktop gut aus.
  • Texte und Bilder können in-line bearbeitet bzw. eingefügt werden.
  • Es gibt eine Vielzahl an Content-Elementen, mit der man Inhaltstexte mit dem Commerce-Anteil seines Shops verschmelzen kann. Dazu gehören neben den üblichen Überschriften, Text-Blöcke und Bildern auch Buttons, Newsletter-Elemente, Videos, Slider, Banner, Karten und vieles mehr. Die Funktionalität wird erweiterbar sein.
  • Content-Elemente können auf Kunden-Segmente zugeschnitten werden.
  • Previews für die Änderungen.
  • Anleitungen und Tutorials.

Nach einem Early Access Programm und einer Beta im Merchant-Portal ist das Feature seit Magento 2.3.1 für alle Commerce-Kunden direkt verfügbar.

Elasticsearch

Das bisherige Commerce-Only-Feature, die Unterstützung der Search-Engine Elasticsearch, wird ab Magento 2.3 in der Open Source Edition verfügbar sein. Damit erhalten auch Open-Source-HändlerInnen die Möglichkeit, eine sehr leistungsfähige Suche in ihrem Shop einzubinden. Es ist noch nicht beschlossen, aber unter Umständen wird Elasticsearch in Zukunft die Standardsuche. Bis dahin kann sie optional eingerichtet werden.

Außerdem wird nun Elasticsearch 5 unterstützt.

PWA (Progressive Web App)

Der nächste Meilenstein ist die nativ in Magento eingebaute PWA (Progressive Web App) Funktionalität, deren erste Ausbaustufe nach langer Entwicklungszeit in Magento 2.3 landen wird.

Für das gesamte Ökosystem ist das ein großer Gewinn. Es wird möglich, Frontend und Backend wesentlich stärker zu trennen. Das macht schlanke, moderne und auch sehr individuelle Frontends wesentlich einfacher und kostengünstiger realisierbar als bisher.

Paralllel zu den bisherigen Theme wird Magento das PWA-Studio anbieten. Daraus können ProgrammiererInnen dann eigene Themes bauen. In der ersten Phase wird PWA nach aktuellen Informationen den Checkout noch nicht unterstützen. Dies soll später nachgereicht werden.

GraphQL

Möglich wird die PWA zu einem großen Teil erst durch die neue GraphQLSchnittstelle. Dieses Format ermöglicht es ProgrammiererInnen, die Daten effizient aus der Datenbank abzufragen und so ein schnelles Frontend zu bauen. Auch hier werden in Magento 2.3.x und 2.4 API-Aufruf für den Checkout, die Bestellungen und die Account-Seiten nachgereicht.

Multi Stock Inventory (MSI)

Das MSI-Community-Projekt ist eigentlich einen eigenen Blog-Post wert, denn es handelt sich um ein Feature mit großem Funktions- und auch Code-Umfang. Es enthält schon jetzt in der Entwicklungsphase zehn Prozent des gesamten PHP-Codes von Magento 2!

MSI oder „Multi Stock Inventory“ ist das erste und zugleich ambitionierteste Projekt des Community-Engineering-Teams. Sein Ziel ist es, multiple Lagerstände in Webshops zu zu lassen. Der Clou daran: HändlerInnen können zwischen verschiedenen Algorithmen auswählen, die bestimmen welche Lager bei einer Bestellung herangezogen werden. Themen wie Entfernung / Versanddauer des Lagers, aktuelle Stückzahlen oder Lager-Reserven machen dies zu einem mächtigen Tool im Fulfillment.

Google reCaptcha

Das kostenlose reCaptcha-Modul von MageSpecialist wird ebenfalls in Magento 2.3 integriert. Es erlaubt, das Captcha das wahrscheinlich jeder von Google kennt beim Login in Frontend und Backend, bei der Registrierung, der Kontakt-Form und dem Passwort-Vergessen-Formular zu aktivieren. Neben dem Standard-Captcha gibt es auch das unsichtbare Captcha (wie ein Honeypot).

Zwei-Faktor-Authentifizierung (2FA)

Und eine zweite MageSpecialist-Extension wird Teil von Magento 2.3: das Zwei-Faktor-Authentifizierungs-Modul. Dieses Feature erhöht, wenn für die User aktiviert, die Sicherheit der Backend-User wesentlich.

WYSIWYG-Editor Technologie-Update

TinyMCE, der WYSIWYG-Editor der in Magento zum Einsatz kommt wird mit Magento 2.3 auf Version 4 aktualisiert. Den kann man losgelöst von Magento auf der Website ausprobieren.

Der Editor wird damit vollständig anpass- und austauschbar. Magento-spezifische Funktionen wie Widgets, Plugins und die Media-Gallery sind als Plugins implementiert und können global oder pro Shop-Instanz definiert werden. Man kann natürlich auch eigene Plugins bauen.

Die jetzige Version TinyMCE 3 wird mit Magento 2.4 entfernt. Bis dahint kann man im Backend die gewünschte Version von TinyMCE auswählen.

Declarative Schema

Hinter diesem Begriff verbirgt sich ein EntwicklerInnen-Feature. Bisher müssen wir jedes Mal, wenn bei einer Code-Änderung Datenbank-Modifikationen anstehen Skripte schreiben, welche die nötigen Schritte in Form von Datenbank-Befehlen genau beschreiben. Das ist zeitaufwändig, der gewünschte finale Zustand der Datenbanken ist nicht einfach nachzuvollziehen und diese Vorgehensweise kann bei ungenauer Arbeit leicht zu Fehlern führen.

Hier hilft ein deklaratives Schema Abhilfe. Im Fall von Magento 2.3 können EntwicklerInnen über ein neues XML (ja – endlich wieder mehr XML! :-)) definieren, wie der gewünschte End-Zustand des Datenbank-Schemas aussehen soll. Magento kümmert sich dann darum, dass die korrekten Datenbank-Befehle ausgeführt werden um diesen Zustand herzustellen. Die Befehle sind idempotent, das heißt man kann denselben Code mehrmals ausführen ohne dass ungewünschte Nebeneffekte entstehen und es gibt einen Rollback-Support, d.h. es gibt eine Möglichkeit die Änderungen wieder zurück zu nehmen.

Ein deklaratives Schema kann nicht alle Datenbank-Änderungen abdecken. Trotzdem sollte das in der Zukunft eine Hilfe werden. Ab Magento 2.4 werden die bisherigen Upgrade-Skripte „deprecated“, d.h. der Support für diesen Weg der Updates wird nach und nach eingestellt.

PHP 7.2

Mit Magento 2.3 wird PHP 7.2 offiziell unterstützt werden. Ich muss dazu gleich anmerken, dass 2.3.0 die aktuelle PHP-Version noch nicht vollständig supporten wird. Vor allem die kritischen Szenarien werden abgedeckt. Der Rest wird in einem Patch-Release (das heißt 2.3.x) nachgereicht. Genauere Infos finden sich im Projekt-Wiki.

Es ist wichtig das wir PHP 7.2 bald verwenden können, weil PHP 7.0 nur noch bis 3. Dezember 2018 mit Security-Patches versorgt wird. PHP 7.1 bekommt Sicherheits-Fehlerbehebungen zwar noch bis 1. Dezember 2019, aber der sonstige Bugfix-Support wird ebenfalls mit 3. Dezember 2018 eingestellt.

Message Queue

Ebenfalls mit Unterstützung der Community wird die bisherige Commercey-Only-Funktionalität einer Message Queue auch in der Open Source Edition verfügbar sein.

Damit wird es für Extension-Entwickler leichter, die Module für beide Editionen nach modernen Best Practices umzusetzen. Open-Source-HändlerInnen profitieren davon, dass rechenaufwändige Operationen (wenn entsprechend programmiert) asynchron im Hintergrund abgearbeitet werden können und damit der Kunde ein ungestörteres und schnelleres Webshop-Erlebnis hat.

Asynchrone Web-APIs

Verwandt mit der Message-Queue und ebenso von der Community unterstützt: asynchrone Web-API-Aufrufe werden möglich.

Das heißt, dass externe Systeme wie Warenwirtschaftssysteme/ERPs Magento mit einer großen Anzahl an Daten-Updates versorgen können und nicht auf die Antwort warten müssen. Damit kann Magento 2.3 im Hintergrund werken und die Aufgaben zuverlässig abarbeiten. Das erhöht die Stabilität von Schnittstellen, weil Verbindungsunterbrechungen oder Timeouts als potentieller Störfaktor wegfallen.

Über eine Status-Reporting-API können externe Systeme den Fortschritt der asynchronen Aufrufe überprüfen.

Sicherheit: libsodium statt mcrypt

Bisher verwendet Magento wie die meisten Projekte die PHP-Bibliothek mcrypt für Verschlüsselungen. Diese wird allerdings seit längerer seit nicht mehr gewartet.

Das PHP-Team entfernt diese Bibliothek daher aus PHP 7.2. Magento 2.3 wechselt deswegen zu einer zeitgemäßen Alternative namens libsodium.

Cache-Management ACL

Eine weitere nützliche Verbesserung, für der wir Community in Magento 2.3 danken werden ist eine granulare Cache-Management-ACL. Auf gut Deutsch: man kann genau steuern, welche User-Rollen welche Caches löschen dürfen. HändlerInnen mit viel Traffic werden vielleicht schon einmal erlebt haben wie es ist, wenn jemand zum falschen Zeitpunkt Caches löscht.

Import/Export-Verbesserungen

Magento 2.3 wird für den Import/Export vor allem Bugfixes bringen. Diese kann man im Detail im dazugehörigen Projekt-Wiki sehen. Funktionale Verbesserungen hingegen wird man vom Bulk-API-Projekt erwarten dürfen, dass Massen-Updates z.B. durch ERP-Systeme verbessern wird.

Fazit: Magento 2.3 ist ein richtiges Community-Release!

Und das gleich in zweifacher Hinsicht:

  1. Ein großer Teil der Features entstand durch die Community oder sie war involviert
  2. Zusätzlich zu diesen Features, die natürlich in die Open Source Edition gelangen werden einige Commerce-Features wie Elasticsearch und die Message Queue für alle verfügbar

Natürlich muss Magento auch in Zukunft an Themen wie Performance und Stabilität arbeiten. Dennoch kann man Magento sicher nicht vorwerfen, dass es sich nicht weiterentwickelt. In diesem Release erwarten uns viele nützliche neue Features! Einen großen Teil davon steuert die Community bei oder liefert einen Teil dazu. Auch wenn Magento natürlich ein wirtschaftlich orientiertes Unternehmen ist darf man gratulieren, dass die Integration der Community und des Open-Source-Gedankes immer besser gelingt. Magento trägt hier die Abstellung eines dedizierten Community-Engineering-Teams bei, das sich ausschließlich dieser Arbeit widmet und immer weiter wächst.

Vielen Dank an alle, die auf Twitter so fleißig von Magento Imagine berichtet haben. Ihr habt diesen Blog-Post erst möglich gemacht!

4 Antworten

  1. Ja, da habe ich mich vielleicht missverständlich ausgedrückt: Luma wird weiter unterstützt. Da beide Themes bzw. Frontends, denn das wird auch Block-Klassen betreffen, inkompatibel zueinander sind, aber PWA einfach die zukunft auch hinsichtlich des leidigen Performance-Themas darstellt, wird Luma wahrscheinlich bald als deprecated gekennzeichnet werden und irgendwann eingestellt. Das ist aber eher spekulativ, aber sicher logisch, da mit einer breiten PWA-Unterstützung auch der Bedarf an Server Side Rendering nicht mehr da sein wird. Auch Modulhersteller werden sich ähnlich wie beim RWD-Theme in M1 recht bald auf das Venia-Theme einstellen.
    Es gibt Bestrebungen mit Elasticsearch das komplette Frontend im Hinblick auf den Katalog zu bedienen, was dann auch zu einer weiteren Trennung von Frontend und Backend ähnlich wie bei anderen neueren Shop-Systemen wie Spryker führen wird. M.E. werden diese Entwicklungen schon nächstes Jahr Früchte tragen, so dass man bald mit einer völlig neuen Architektur in Magento arbeiten kann – vielleicht nennen sie das ja dann schon Magento3 😉

    • Alles klar, danke 😉 Luma wird wohl noch einige Zeit unterstützt werden müssen, weil es doch viele Shops gibt die bereits auf dem traditionellen Frontend aufbauen.

      Ich bin sehr gespannt, wie die Neuerungen bei den EntwicklerInnen und letztlich bei den HändlerInnen ankommen. Jedenfalls sollte das Gespann PWA/GraphQL und die breite Elasticsearch-Unterstützung ab 2.3 für einige neue Impulse sorgen!

  2. Björn sagt:

    Danke Matthias für die wieder mal tolle Zusammenfassung!
    Hinsichtlich PWA kann noch erwähnt werden, dass Magento rechtzeitig zur Imagine das passende Venia Thema veröffentlicht hat (https://github.com/magento-research/venia-pwa-concept). Es ist als „experimentell“ gekennzeichnet und dient als neues PWA Frontend, das die ganzen neuen PWA-Technologien mit Magento2 verbindet. Mittelfristig wird es Luma ablösen, sobald es stabil ist und in den Core aufgenommen wird – vermutlich mit M2.4. Die Ablösung von Luma durch Venia wird ein heftiger Schritt werden, da sämtliche Module (einschließlich Magento-eigene Module) ein neues Frontend UI unterstützen müssen.

    Neben PWA und Venia gibt es auch für GraphQL ein Community Project. Magento setzt also weiterhin auf die Community, um innovativ ihr Produkt voranzutreiben. Intern konzentriert man sich wohl mehr auf Themen wie PageBuilder, OMS und die weitere Integration von BI, was irgendwann auch als Datenlieferant für eine neue Reco Engine dienen wird.

    Magento ist gerade mega-agil und treibt enorm viele Themen, was ich wirklich großartig finde! Nachdem sich die Firma so lange auf den M2 Core fokussiert hat, wird sie wieder zum Innovationstreiber in der eCommerce Landschaft.

    • Vielen Dank für deine Ergänzung, Björn! Mein Letztstand war, dass Luma und Venia parallel unterstützt werden. Darfst du eine Quelle nennen, von der du das hast? 🙂