Magento 2.3.2

Magento 2.3.2 wurde Dienstag, den 25. Juni 2019 veröffentlicht.

Im Zentrum des Updates stehen 75 behobene Sicherheitsprobleme, aber auch über 200 funktionale Bugfixes und kleine Verbesserungen sowie 350 verarbeitete Community-Pull-Requests.

Richtig große Features bietet dieses Release nicht.

Alle Details finden Sie in den Release-Notes für Open Source und Commerce.

Barrierefreiheit

  • Verbesserungen in der Accessibility des Shop-Frontends

Checkout

Über zwei neue Optionen „Enable Address Search“ und „Number of Customer Addresses Limit“ kann man konfigurieren, dass KundInnen mit vielen Rechnungs- oder Versand-Adressen eine Suche statt der klassischen Adress-Auswahl angeboten wird.

Ist die Option aktiviert und z.B. der Wert „10“ als Limit gesetzt, dann wird KundInnen ab 10 Adressen die Suche statt dem Grid angezeigt.

Dieses Feature ist vor allem für B2B-Kunden interessant.

GraphQL

  • Checkout
    • Offline-Versand (= direkt in Magento) und Auswahl der Zahlarten
    • Erstellen der Bestellung
  • MSI
    • Detaillierte Lagerstands-Informationen
  • Performance-Verbesserungen
    • Varnish-Caching

Lagerverwaltung (MSI)

Bisher wurde das neue Lagerverwaltungs-Feature als „Multi Source Inventory“ oder kurz „MSI“ zur Unterscheidung vom bisherigen Feature geführt.

Nun, mit Magento 2.3.2, beginnt Magento die allgemeinere Bezeichnung „Inventory“ dafür zu verwenden. Das schlägt sich im GitHub-Repository, aber auch in den Changelogs und in der Dokumentation nieder. Der Grund ist, dass das alte Lagerstands-Feature mit nur einem Lagerstand demnächst durch MSI ersetzt wird.

Magento hat ja zum Ziel, einzelne Komponenten unabhängiger veröffentlichen zu können. So bekommt das Inventory parallel zum Magento-Release auch eine eigene Release-Nummer – Inventory Management 1.1.2. Das besondere: 1.1.2 ist auch mit Magento 2.3.0 und Magento 2.3.1 kompatibel. Von den Verbesserungen, die im Inventory-Management für 2.3.2 angekündigt sind, kann man in Wirklichkeit also auch mit 2.3.0 und 2.3.1 profitieren (auch wenn man die nicht im Einsatz haben sollte).

Befehl für Behebung von Inkonsistenzen

Es kann vorkommen, dass bei Reservierungen im Lagerbestand Inkonsistenzen entstehen. Wann das passiert, wird in der Dokumentation erklärt.

Es gibt nun zwei Befehle, um Abhilfe zu schaffen:

  1. bin/magento inventory:reservation:list-inconsistencies erkennt Inkonsistenzen in den Reservierungen und listet sie auf (Dokumentation).
  2. bin/magento inventory:reservation:create-compensations korrigiert die Inkonsistenzen (Dokumentation).

Unterstützung von Bruchstückzahlen

Im Gegensatz zur „alten“ Lagerverwaltung konnte man im UI von MSI bisher keine dezimal-Quantities, also Bruchstückzahlen (1,5 Stück, 0,01 Stück, …) angeben. Nun geht das.

Erweiterungen der GraphQL und Bulk API

Das InventoryGraphQl-Modul erlaubt nun das Auslesen der Multi-Lager-Verwaltung. Auch die Bluk-API unterstütz nun die Multi-Lager-Verwaltung. Damit kann man schneller viele Lagerstände aktualisieren.

Page Builder (nur Magento Commerce)

  • Migrations-Modul für Inhalte vom alten Bluefoot-CMS-Modul zu Page Builder

Performance

Magento 2.3.2 schafft Verbesserungen bei den Ladezeiten bzw. der Bedienbarkeit in mehreren Bereichen:

Admin-Bereich

Einige Aktionen im Admin-Bereich werden nun nicht mehr unmittelbar beim Klick ausgeführt, sondern asynchron über Cronjobs abgearbeitet. Es handelt sich um diese Bereiche:

  • Erzeugung von Gutschein-Codes
  • Massen-Bearbeitung von Produkten
  • Daten-Exporte (damit gehören Timeouts bei diesem Aufruf der Vergangenheit an)

Checkout-Vorgang

Die oben erwähnte Option, im Checkout eine Adress-Suche statt dem traditionellen Grid anzuzeigen, schlägt sich in einer besseren Performance im Checkout bei KundInnen mit viellen Adress-Einträgen nieder.

Hochlast-Szenarien

Wer Shops mit wirklich großer Last betreibt, darf sich über diese Optimierungen freuen:

  • Signifikante Ladezeit-Verbesserungen der Shop-Frontends (20+ Prozent). Erreicht wurde das, indem die Logik für parallele Zugriffe auf den Block-Cache optimiert wurde.
  • Auch unabhängig davon wurde die Antwortzeit für den Katalog, die Suche und die fortgeschrittene Suche unter Last wesentlich verbessert.

Produktseite: Bildergalerie

Auf der Produktseite dauerte es oft zwei bis vier Sekunden, bis die Bilder nach dem initialen Laden der Seite geladen waren un die Seite damit vollständig war. Nun wird die Galerie so schnell geladen wie der Rest.

Schnellere Darstellung durch Verlagerung von JavaScript

In „Stores > Configuration > Developer > JavaScript Settings“ kann man das Setting „Move JS code to the bottom of the page“ aktivieren. Dadurch wird nicht-kritischer JavaScript-Code erst am Ende des HTML-Codes eingebunden. Das führt zu einer schnelleren Darstellung der Seiten im Frontend.

Sicherheit

Eine genaue Auflistung aller Security-Probleme und Ihrer Einstufung findet sich in den Blog-Posts Teil 1, Teil 2 und Teil 3.

Außerdem neu dabei:

  • Das Google reCAPTCHA- bzw. CAPTCHA-Modul wurde im PayPal-Payflow-Checkout hinzugefügt. Wie das konfiguriert wird, finden Sie in der Dokumentation.
  • Amazon Pay PSD2 compliance

Speicherung von Plaintext-Passwörter in bestimmten Szenarien bis Magento 2.3.2

David Alger machte im März 2020 darauf aufmerksam, dass bereits mit Magento 2.3.3 ein Bug gefixt wurde, wodurch in bestimmten Szenarien das Passwort einer Userin / eines Users unverschlüsselt in einem Datenbankfeld gespeichert wurde. Das konnte zum Beispiel passieren, wenn man als Gast ein Produkt zur Wunschliste hinzufügen wollte und sich daraufhin mit seinem bestehenden Konto anmelden musste.

In Magento 2.3.3 ist der Fehler gepatcht. Für Magento 2.3.2 und früher gibt es ein Patch-Skript, das die Daten anonymisiert. Das Skript anonymisiert aber nicht alle nötigen Stellen – Peter Jaap hat daher eine verbesserte Version geschrieben.

Neue Software-Voraussetzungen

Für Magento 2.3.2 muss libsodium 1.0.13 oder neuer installiert sein (mehr dazu im DevBlog).

Ab Magento 2.3.2: CVE-Nummern für jeden Security-Bug

Beginnend mit diesem Release weist Magento jedem Security-Bug, der von Externen gemeldet wird, eine Common Vulnerabilities and Exposures (CVE) Nummer zu. Dadurch wird es leichter, den aktuellen Patch-Status zu überwachen: für CVE gibt es in der IT-Industrie weit verbreitete Tools, die diese Information verarbeiten.

Magento 2.3.2-p1: Security-only Patch Release

Damit Sie Ihren Shop möglichst schnell sicher machen können, können Sie ein „Security-only Patch Release“ einspielen, bevor Sie auf die nächste Version aktualisieren. 2.3.2-p1 ist das erste Release dieser Art.