Magento 2.4.2 wurde am 9. Februar 2021 veröffentlicht. Zeitgleich erschienen 2.4.1-p1 und 2.3.6-p1 als Security-Releases.
Die Hauptpunkte, die nach außen sichtbar sind, beschreibt die offizielle Ankündigung. Eine vollständige Liste der Änderungen findet man in den Release Notes für Open Source und Commerce. Neben neuen Features enthält die Version über 280 Bugfixes (darunter laut Ankündigung alle in Magento 2.4.1 bekannten Bugs) und 35 Security-Fixes.
Hier gehe ich auf wichtige Neuigkeiten und Änderungen ein.
Inhaltsverzeichnis
- Neue Features in Magento 2.4.2
- GraphQL-API mit neuen Features
- PWA Studio mit Internationalisierung und neuen Komponenten
- Nativer AWS S3-Support und Remote-Storage-Unterstützung
- 20-mal größere Katalog-Datenmengen durch Performance-Verbesserungen möglich
- Bessere API-Performance und Admin-Perfomance für große Produktkataloge
- Media Image Gallery Optimierungen
- B2B: alle Zahlungsarten für Purchase-Orders mit Approvals verfügbar
- Verbesserungen bei der Sicherheit: Same-Site-Cookie-Attribute, Content Security Policy (CSP) und mehr
- Unterstützung für Composer 2.x
- Unterstützung für Elasticsearch 7.9.x
- Unterstützung für Redis 6.x
- Änderungen in Magento 2.4.2
- Probleme in Magento 2.4.2
Neue Features in Magento 2.4.2
GraphQL-API mit neuen Features
Die GraphQL-API, die für Headless-Implementierungen verwendet werden kann, unterstützt nun weitere Magento-Standardfunktionen. Dazu zählen folgende B2B-Features:
- Bearbeitung von Firmenstrukturen: Hinzufügen, Aktualisieren und Löschen von Administratoren, Usern, Rollen und Teams
- Abfragen von Firmeninformationen: Firmendetails, -strukturen, Company-Credit-Details und der -History
- Login as Customer
- Requisition List
Weitere Details gibt es in den Release-Notes von 2.4.2 Open Source und 2.4.2 Commerce.
PWA Studio mit Internationalisierung und neuen Komponenten
PWA Studio unterstützt nun mehrere Lokalisierungen (= Mehrsprachigkeit / Anpassungen für mehrere Länder) und Währungen. Außerdem bietet die Referenz-Implementierung, das Venia-Theme, neue „Komponenten“ für den „My Account“-Bereich.
Auch darüber hinaus gab es Verbesserungen in der Erweiterbarkeit und Performance der PWA-Lösung. Weitere Details finden Sie in den 2.4.2-Release-Notes sowie in den PWA Studio Release-Notes.
Nativer AWS S3-Support und Remote-Storage-Unterstützung
Sie können nun Ihre Media-Files direkt auf Amazons Webspeicher-Lösung S3 (AWS S3) ablegen. Das gilt für die Core-Features inklusive Adobe Stock und in der Commerce-Edition Page Builder und B2B-Modulen.
Vorteile sind unter anderem, dass:
- Sie weniger Speicherplatz auf Ihrem Server benötigen,
- der Server entlastet wird weil er die Files nicht ausliefern muss,
- bei Ihrem Hosting-Paket weniger Traffic erzeugt wird
- und Sie von der S3 Infrastruktur mit ihrer Performance, Zuverlässigkeit etc profitieren.
Allgemein bereitet Magento damit vor, dass in Zukunft weitere Daten (Objekte) auf S3 ausgelagert werden können.
20-mal größere Katalog-Datenmengen durch Performance-Verbesserungen möglich
Skalierung verbessert. Magento spricht von „20-mal mehr effektiven SKUs“. Die effektiven SKUs berechnet sich aus Anzahl der SKUs multipliziert mit der Anzahl der Stores und der Anzahl der Kundengruppen.
Ein Beispiel:
- 10.000 SKUs
- 8 Stores
- 300 Kundengruppen
Das entspricht 10.000 * 8 * 30 = 2.400.000 effektiven SKUs. In dieser Ankündigung für ein Hangout erwähnt das Community-Engineering Team 200 Millionen effektive SKUs und mehr. Das entspricht, als Beispiel, 100.000 Produkten bei 10 Stores und 200 Kunden-Gruppen.
Diese Performance- und Skalierungsverbesserungen sind auch als Patch für ältere Versionen ab Magento 2.3.1 verfügbar.
Bessere API-Performance und Admin-Perfomance für große Produktkataloge
Magento 2.4.2 verspricht allgemeine Leistungsverbesserungen im Bereich der API und des Admin-Panels für Shops mit großen Produktkatalogen.
Media Image Gallery Optimierungen
Es gibt eine neue Option im Admin-Panel zur Performance-Optimierung. Wenn Sie diese aktivieren, dann bleiben die originalen Medien-Dateien vorhanden, im Frontend werden aber für die jeweilige Größe optimierte Dateien ausgeliefert, die als Kopie am Server gespeichert werden. Details dazu finden Sie hier.
Außerdem können Händler nun Admin-UserInnen feiner abgegrenzte Rechte beim Media-Asset-Management geben. Konkret gibt es diese Rechte:
- Media-Assets in den Inhalt einfügen
- Assets hochladen
- Details der Assets bearbeiten
- Assets aus der Media Image Gallery löschen
- Die Verzeichnis-Struktur managen
Das ist zum Beispiel praktisch, wenn Ihnen externe Anbieter zuarbeiten.
B2B: alle Zahlungsarten für Purchase-Orders mit Approvals verfügbar
Bisher waren für B2B-Bestellungen, wenn es einen Approval-Workflow gibt, nur die so genannten Offline-Zahlarten wie Kauf auf Rechnung verfügbar.
Mit 2.4.2 werden neu „Online-Zahlarten“ per Kreditkarte, PayPal u.ä. unterstützt. Erste Details finden Sie in den Release-Notes. Es lohnt, sich mit den neuen Abläufen genauer zu beschäftigen, da der Genehmigungsprozess bei B2B-Bestellungen Auswirkungen auf den Bestellablauf im Detail hat.
Verbesserungen bei der Sicherheit: Same-Site-Cookie-Attribute, Content Security Policy (CSP) und mehr
Hier eine Sammlung von diversen Verbesserungen in Sachen Sicherheit:
- 35 Security-Bug-Fixes beheben unter anderem Schwachstellen, die Remote Code Execution (RCE) and Cross-Site Scripting (XSS) erlauben
- Alle Core-Cookies erlauben/setzen nun das SameSite-Cookie-Attribut
- Verbleibende Content Security Policy (CSP) Verletzungen im Core wurden behoben
- Magento warnt jetzt beim Speichern, wenn man über die Felder für Kategorie- und Produktbeschreibungen potentiell bösartige Inhalte einfügt
- Dateisystem-Operationen über die diversen Magento-Komponenten hinweg wurden standardisiert und weiter dagegen abgesichert, dass bösartige Inhalte hochgeladen werden können.
Unterstützung für Composer 2.x
Magento 2.4.2 unterstüzt als erste Version Composer 2.x. Composer 2.0 wurde im Oktober 2020 veröffentlicht und verspricht ProgrammiererInnen bessere Geschwindigkeit sowie weniger Speicherverbrauch beim Management von PHP-Paketen.
Unterstützung für Elasticsearch 7.9.x
Zusätzlich zu Elasticsearch 7.4 unterstützt Magento nun auch Elasticsearch 7.9. Es wird auch gleich empfohlen, diese Version ab 2.4.2 zu verwenden.
Unterstützung für Redis 6.x
Zuletzt können wir ab 2.4.2 auch Redis 6.x verwenden. Die alte Redis-Version 5.x funktioniert weiterhin.
Änderungen in Magento 2.4.2
Commerce-Feature „Split Database“ deprecated
Mit dieser Version wird das „Split Database“ Feature der Commerce Edition als veraltet markiert (Quelle). Es gibt dafür nur noch Security Bugfixes und Magento rät dazu, die Migrationsanleitung zum Umstieg auf eine einzelne Datenbank zu vollziehen.
Unter dem „Split Database“ Feature versteht Magento, dass man die Datenbank horizontal auf drei einzelne Datenbanken aufspalten kann. Es wurde ursprünglich für Performance-Verbesserung für große Systeme eingeführt. Tatsächlich zum Einsatz kam es jedoch selten. Die Trennung der Datenbanken für Verkäufe, Katalog und den Rest sorgte nämlich für einige Komplexität, wenn die Daten vom einen Bereich im anderen benötigt wurden. Besonders Third-Party-Extensions sind kaum darauf vorbereitet.
Das Feature wird in 2.4.2 deprecated und in Magento 2.5 entfernt.
Rückwärts-inkompatible Änderungen
Wie bei anderen Patch-Releases gibt es rückwärts-inkompatible Änderungen, auf die man als ProgrammiererIn beim Update achten muss. Details liefert die Referenz für rückwärts-inkompatible Änderungen.
Probleme in Magento 2.4.2
Achtung bei deaktivierter Opcache-Timestamp-Validierung
Wie Sergii Shymko schreibt, wurde in Magento 2.4.2 ein Bug eingeführt. Wird in php.ini das Setting opcache.validate_timestamps=0 gesetzt (also die Validierung der Timestamps für den PHP Opcache deaktiviert), dann führt das zu erhöhtem Speicherverbrauch und der Opcache wird ständig invalidiert, was zu verschlechterter Performance führt.
Als Workaround kann man die Timestamp-Validierung aktivieren oder (besser, weil performanter) man trägt die absoluten Pfade zu app/etc/env.php and app/etc/config.php in opcache.blacklist_filename ein.