OXID eShop Compilation 7.5.0

Veröffentlichungsdatum: TBD

Neuheiten

Content & Medien Bundle 10

OXID eShop 7.5 bringt das neue Content & Medien Bundle 10 mit sich. Dieses enthält folgende Erweiterungen:

  • Mediathek 5

  • WYSIWYG-Editor 7

  • Visual CMS 10 (nur Enterprise und Professional Edition)

Mediathek 5:

  • Suche nach Medien-ID: Das Suchfeld findet Medien nun auch anhand der Medien-ID, nicht nur anhand des Dateinamens.

  • QueryBuilder: Repository-Schicht auf QueryBuilder umgestellt.

  • Bootstrap Icons ersetzen Font Awesome.

  • Datei-Upload-Validierung: Inhalts- und MIME-Typ- Prüfung beim Upload. SVGs mit Skripten, Foreign Objects, on*-Event-Handlern oder javascript:/ data:-URLs werden abgelehnt; Rasterbilder (jpg, jpeg, gif, png, webp, avif) müssen als gültiges Bild parsen.

  • Pfad-Sicherheit: Path-Traversal-Zeichen (/, \, ..-Segmente, Null-Bytes) in Upload- Dateinamen werden abgelehnt; einheitliche Dateinamen- Bereinigung bei Upload und Umbenennen.

  • FileFormatRegistry und ContentValidatorInterface: Integratoren können zusätzliche Dateiformate per Service-Konfiguration registrieren und formatspezifische Inhaltsprüfungen einhängen.

  • Behoben (durch die obigen Validierungen): #0007937 und #0007938.

  • Behoben: Strg+Klick-Mehrfachauswahl funktioniert wieder (war durch falsche Event-Button-Prüfung defekt).

Hinweis für Integratoren der Mediathek:

  • Die Upload-Validator-Kette enthält jetzt MimeTypeValidator und ContentValidatorChain nach dem FileExtensionValidator. Module, die UploadedFileValidatorChainInterface vollständig ersetzen, müssen beide Validatoren in derselben Reihenfolge auflisten, um den Upload-Inhaltsschutz zu erhalten.

  • FilePathInterface enthält die neue Methode getExtension(). Module, die dieses Interface selbst implementieren, müssen die Methode ergänzen — sie gibt die kleingeschriebene Dateiendung zurück.

WYSIWYG-Editor 7:

  • Erweiterbar durch Module: Neue Twig-Blöcke ddoe_wysiwyg_plugins und ddoe_wysiwyg_summernote_options erlauben es Modulen, den Editor mit eigenen Plugins und Optionen zu erweitern.

  • DOMPurify-Integration: Normalisiert HTML-Inhalte im Editor.

  • Konfigurierbar: Neuer Twig-Block ddoe_wysiwyg_dompurify_config erlaubt Modulen, die DOMPurify-Optionen anzupassen.

  • Alt-Text-Migration: Neuer Befehl ddoewysiwyg:migrate:alt-texts ersetzt fehlende oder leere Alt-Attribute auf Medienbildern.

  • Bootstrap Icons ersetzen Font Awesome.

  • Behoben: Fehlerhafte Bootstrap-Style-Imports, die Shop-Styles beeinflussten (aus v6.0.3 übernommen).

Visual CMS 10 (nur Professional und Enterprise Edition):

Visual CMS 10 ist die konsequente Weiterentwicklung der mit Visual CMS 9 eingeführten Architektur. Die wichtigsten Neuerungen:

  • „Anything-First“-Bearbeitung: Wählen Sie ein beliebiges Gerät als Ausgangspunkt für das Design. Passen Sie die Widget-Größen explizit für jedes Gerät an — volle Kontrolle über alle Breakpoints.

  • Gerätetypabhängige Widget-Größen: Separate Konfiguration für Smartphone, Tablet (Hoch-/Querformat), Desktop und große Bildschirme.

  • Gerätetyp-Umschalter im Editor zum schnellen Wechsel zwischen Viewports.

  • Verschachtelte Aktivitätsgruppen: UND/ODER-Logik für komplexe zeitbasierte Sichtbarkeitsregeln von Widgets, einschließlich Ausschlusszeiträumen.

  • Lokalisierte Datums-/Zeitanzeige in den Aktivitätseinstellungen, 12h/24h-Unterstützung.

  • TypeScript: JavaScript-Dateien auf TypeScript migriert.

  • Bootstrap Icons ersetzen Font Awesome im Admin-Bereich.

  • Behoben: WidgetModal — interne Referenz korrigiert (public $modalprivate #$modal).

  • Behoben: Responsive Layout-Einstellungen werden im Widget-Bearbeitungsdialog ausgeblendet, wenn eine Zeile bearbeitet wird.

  • Behoben: CMS-Seiten mit abgelaufenem „Aktiv bis“-Datum werden im Frontend nicht mehr angezeigt.

  • Behoben: Datumsauswahl-Felder respektieren die im Shop konfigurierte Datumsformat-Einstellung (aus v9.2.1 übernommen).

  • Behoben: Karussell-Widget behält Bilder und Links nach erneutem Öffnen des Bearbeitungsdialogs (aus v9.2.1 übernommen).

Wenn Sie die Vorgängerversionen beibehalten möchten, können Sie Ihr Update vorkonfigurieren. Weitere Informationen finden Sie in unserer Update-Anleitung.

PHP 8.5 Unterstützung

Die OXID eShop 7.5 Compilation und alle unten aufgeführten Erweiterungen wurden mit PHP 8.3, 8.4 und 8.5 getestet. Die Mindestversion ist PHP 8.3. PHP 8.2 wird nicht mehr unterstützt.

API-Entrypoint

Eine neue API-Schicht (api.php) auf Basis des Symfony HttpKernel ermöglicht es, beliebige Shop-Funktionen als API-Endpunkte bereitzustellen. Das Routing erfolgt über PHP 8 #[Route]-Attribute. Die API ist JSON-basiert und zustandslos. Vier Authentifizierungsmodelle stehen zur Verfügung: öffentlich, JWT-Token, Frontend-Session und Admin-Session.

Zusammen mit OXAPI (GraphQL) bietet der Shop damit zwei komplementäre Schnittstellen: OXAPI für das umfangreiche Produkt- und Commerce-Datenmodell und benutzerdefinierte API-Endpunkte für individuelle Anforderungen.

Neuer Such-Service

OXID eShop 7.5 bietet eine neue, austauschbare Sucharchitektur. Das neue ProductSearchServiceInterface ermöglicht es, die eingebaute SQL-Suche durch externe Suchmaschinen wie Meilisearch oder Elasticsearch zu ersetzen. Bei einem Ausfall der externen Suche greift der Shop automatisch auf die SQL-Suche zurück.

Weitere Informationen finden Sie in der Entwicklerdokumentation.

Neuer E-Mail-Service

OXID eShop 7.5 enthält einen neuen E-Mail-Service auf Basis des Symfony Mailers. Saubere Schnittstellen und eine erweiterbare Architektur ermöglichen die Anbindung weiterer Mail-Transports über die verfügbaren Symfony-Mailer-Konfigurationen — ohne Core-Eingriff. In der 7.x-Serie läuft der neue Service parallel zum bestehenden System; Core/Email funktioniert weiterhin, und neue Module können die Schnittstelle MailerInterface direkt verwenden.

HTML-Sanitizer

OXID eShop 7.5 enthält einen integrierten HTML-Sanitizer als Framework-Baustein zur Bereinigung von HTML-Inhalten. Er basiert auf dem Symfony HtmlSanitizer und ist standardmäßig deaktiviert — Projekte aktivieren ihn gezielt über einen Service-Parameter, definieren Allow-/Deny-Regeln und setzen den neuen Twig-Filter sanitize_html in den Templates ein, in denen er greifen soll. Damit lässt sich der XSS-Angriffsvektor bei CMS-Inhalten systematisch adressieren, ohne dass bestehende Shops automatisch verändert werden.

Sicherheitsverbesserungen

Mehrere Verbesserungen stärken die Sicherheit des Shops:

  • Sensible GET-Parameter entfernt: Zustandsändernde Operationen (z. B. Artikel auf die Merkliste setzen, Gutschein entfernen) wurden von GET-Links mit Session-Tokens in der URL auf POST-Formulare mit versteckten Feldern umgestellt. Session-IDs und CSRF-Tokens sind nicht mehr in URLs sichtbar.

  • Bootstrap-3-Bereinigung: Verbliebene Bootstrap-3- CSS-Klassen im APEX Theme wurden entfernt. Templates verwenden nun ausschließlich Bootstrap-5-Klassen.

  • HTML-Sanitizer: Siehe oben.

Performance-Verbesserungen

Mehrere gezielte Optimierungen verbessern die Ladezeiten:

  • Leere Warenkörbe werden frühzeitig erkannt — keine unnötigen Berechnungen mehr bei jedem Seitenaufruf.

  • Deaktivierte Module beeinflussen die Renderzeit des Shop-Frontends nicht mehr.

  • Unnötige Instanziierungen der Warenkorb-Komponente wurden eliminiert.

  • Konfigurationsabfragen lösen keinen vollständigen Shop-Bootstrap mehr aus.

  • Modul-Lookups sowie Editions- und Cache-Pfad-Abfragen werden zwischengespeichert, um wiederholte Dateisystemzugriffe zu vermeiden.

  • Der Template-Chain-Cache verkürzt das Auflösen von Template-Erweiterungs-Ketten — relevant insbesondere in Shops mit vielen aktiven Modulen, die Templates überschreiben. Der Cache wird beim Leeren des Shop-Caches über ./vendor/bin/oe-console oe:cache:clear automatisch mitgeleert.

Optimierungen & Fehlerbehebungen

  • #0007881 Model extension chain bypass: Bugtracker

  • #0007877 composer/composer fälschlicherweise in require statt require-dev: Bugtracker

  • #0007907 Hilfetext für Rabattmengen verdeutlicht: Bugtracker

  • #0007178 Kategorie-Dropdown wird für Kategorien ohne sichtbare Unterkategorien nicht mehr angezeigt: Bugtracker

  • #0007921 Template-Erweiterungen für Modul-Templates rendern korrekt: Bugtracker

  • Menü-Zähler für herstellerspezifische Menübereiche korrigiert: PR-10

  • Falsche Produktbild-Anzahl 13 statt 12 korrigiert: PR-14

  • #0007922 Produktgalerie und Grid-Bilder respektieren nun die Einstellung blConvertImagesToWebP, Hover-Bild auf mobilen Viewports nicht mehr defekt: Bugtracker

  • #0007751 Hinzufügen von Lizenzschlüsseln über die Kommandozeile löscht keine bereits hinzugefügten Schlüssel mehr (PE und EE): Bugtracker

  • #0007182 Falsche Subquery in PE-zu-EE-Migration für xxx2shop-Tabellen behoben (nur EE): Bugtracker

  • Unified Namespace Generator: Dateipfad-Normalisierung für Sub-Namespaces, die Backslashes enthalten, korrigiert

Packages

OXID eShop CE Compilation

Die OXID eShop CE Compilation enthält die folgenden Pakete:

  • APEX Theme v3.1.0: Changelog

  • Eye-Able Assist v3.0.3

  • GDPR Opt-In Module v4.4.0: Changelog

  • Makaira Connect Essential 2.2.0: Changelog

  • Media Library Module v5.1.0 (oder v4.2.0 oder v3.0.0 bleibend): Changelog

  • OXID Cookie Management powered by Usercentrics v3.3.0: Changelog

  • OXID eShop CE v7.5.1: Changelog

  • OXID eShop Composer Plugin v7.4.0: Changelog

  • OXID eShop Demodata CE v8.1.0

  • OXID eShop Demodata Installer v3.3.0

  • OXID eShop Doctrine Migration Wrapper v5.5.0: Changelog

  • OXID eShop Facts v4.4.0: Changelog

  • OXID eShop Unified Namespace Generator v5.3.1: Changelog

  • OXID eShop Views Generator v2.2.0

  • Twig Admin Theme v3.1.0: Changelog

  • Twig Component v2.8.1: Changelog

  • WYSIWYG Editor Module v7.0.1 (oder v6.0.3 oder v5.0.1 bleibend): Changelog

OXID eShop PE Compilation

Die OXID eShop PE Compilation enthält zusätzlich die folgenden Pakete:

  • OXID eShop Demodata PE v8.1.0

  • OXID eShop PE v7.5.1

  • Twig Component PE v2.6.0

  • Visual CMS Modul v10.0.1 (oder v9.2.1 oder v8.0.2 bleibend)

OXID eShop EE Compilation

Die OXID eShop EE Compilation enthält zusätzlich die folgenden Pakete:

  • OXID eShop Demodata EE v8.2.0

  • OXID eShop EE v7.5.1

  • Twig Component EE v2.6.0

OXID eShop EE B2B Compilation

Die OXID eShop EE B2B Compilation enthält zusätzlich die folgenden Pakete:

  • OXID eShop B2B Approval Procedure Modul v7.5.0

  • OXID eShop B2B Basket Modul v7.5.0

  • OXID eShop B2B Budget Modul v7.5.0

  • OXID eShop B2B Bulk Orders Modul v7.5.0

  • OXID eShop B2B Buying Agent Modul v7.5.0

  • OXID eShop B2B Custom Prices Modul v7.5.0

  • OXID eShop B2B Offers Modul v7.5.0

  • OXID eShop B2B Quick Orders Modul v7.5.0

  • OXID eShop B2B Scheduled Orders Modul v7.5.0

  • OXID eShop B2B Service Products Modul v7.5.0

  • OXID eShop B2B Services Modul v7.5.0

Für weitere Informationen zu Veröffentlichungen der B2B Edition, siehe die (passwortgeschützte) OXID eShop Enterprise B2B Edition Dokumentation.

Kompatible OXID Erweiterungen

Update

Der Update-Vorgang wird Schritt für Schritt in unserer Update-Anleitung beschrieben.

Installation

Wenn Sie OXID eShop 7.5 neu installieren möchten, folgen Sie bitte unserer Installationsanleitung.