Zum Inhalt

Änderungsprotokoll

Alle wichtigen Änderungen an Intelligentes Cross-Selling für Endbenutzer.


[5.2.8] - 2026-04-14

Fehlerbehebungen

  • Drastisch schnellere Produktdetailseiten bei großen Katalogen: Cross-Selling-Abfragen laufen nun über Elasticsearch (falls aktiviert) und die MySQL-JSON-Indizes statt auf LIKE '%uuid%'-Volltabellen-Scans zurückzufallen. ContainsFilter auf propertyIds und categoryIds wurde durch den ES-kompatiblen EqualsFilter ersetzt — mehrsekündige Cold-Loads bei Katalogen mit Millionen von Produkten entfallen
  • Doppeltes Laden des nativen Cross-Sellings entfernt: Die native Shopware-Cross-Selling-Route wird nicht mehr bei jeder Anfrage zusätzlich aufgerufen, um ihre Ergebnisse mit unseren zu vermischen. Sie wird nur noch als Fallback verwendet, wenn unser Loader keine Treffer liefert — oder wenn sie explizit über die neue mergeNativeCrossSelling-Konfigurationsoption aktiviert wird

Verbesserungen

  • Schlankerer Produkt-Preload: Das vorab geladene Produkt und ConfigurationResolverService::loadProduct laden nicht mehr die Assoziationen properties.group, options.group oder categories. Das Scoring nutzt ausschließlich denormalisierte Skalarfelder (propertyIds, optionIds, categoryIds, streamIds) — deutlich schneller bei Produkten mit vielen Kategorien oder Varianten
  • Kleinerer Kandidatenpool: Das Limit für die Kandidatenabfrage wurde von max(length*10, 200) auf max(length*5, 50) reduziert — etwa 4× geringere MySQL-Fallback-Kosten in Shops ohne Elasticsearch

[5.2.7] - 2026-03-27

Fehlerbehebungen

  • Extrem langsamer globaler Cross-Selling-Modus behoben: Aufwändige ProductStreamBuilder-Abfragen durch speicherinterne streamIds-Prüfung ersetzt — eliminiert N Datenbankabfragen pro Produktseite bei Stream-basierten Konfigurationen
  • Kategorie-basierte Kandidatenabfrage hinzugefügt: Produkte aus derselben Kategorie werden zuerst abgefragt (schnell), der gesamte Katalog wird nur bei unzureichenden Ergebnissen durchsucht — deutlich reduzierte Abfragelast bei großen Shops
  • Leeres Cross-Selling bei reinen Varianten-Eigenschaften behoben: Eigenschaften, die ausschließlich als Varianten-Optionen verwendet werden (z.B. Größe), werden nun neben regulären Produkteigenschaften beim Gewichts-Matching berücksichtigt
  • Leere Ergebnisse bei fehlenden gewichteten Eigenschaften behoben: Statt nichts anzuzeigen, zeigt das Plugin nun Produkte aus derselben Kategorie oder dem Katalog an

Verbesserungen

  • Aktive Konfigurationen pro Request gecacht: Die Plugin-Konfigurationsabfrage wird nun einmal pro Request statt einmal pro Produkt ausgeführt — weniger redundante Datenbankabfragen

[5.2.6] - 2026-03-16

Fehlerbehebungen

  • Langsame Ladezeiten auf Artikeldetailseiten behoben: N+1-Abfragemuster in der Cross-Selling-Empfehlungslogik eliminiert. Bisher löste jede gewichtete Eigenschaftsoption eine separate Datenbankabfrage mit aufwändigen JOIN-basierten Filtern aus — bei 15 gewichteten Optionen waren das über 18 Abfragen pro Anfrage. Nun wird eine einzelne gebündelte Abfrage mit leichtgewichtigen JSON-Spaltenfiltern und PHP-seitiger Bewertung verwendet, wodurch die Plugin-Abfragen von N+3 auf 2-3 reduziert werden

[5.2.5] - 2026-03-13

Fehlerbehebungen

  • Absturz bei Varianten-Deduplizierung behoben: ParentAssociationCanNotBeFetched-Ausnahme behoben, die bei aktivierter Option „Eine Variante pro Hauptartikel" auftrat. Die Parent-Assoziation kann in Shopwares DAL nicht direkt geladen werden — Hauptartikel werden nun über eine separate Abfrage geladen

[5.2.4] - 2026-03-11

Fehlerbehebungen

  • Leeres Cross-Selling bei Produkten ohne Eigenschaften behoben: Produkte ohne zugewiesene Eigenschaften erhalten nun Cross-Selling-Empfehlungen basierend auf Kategorie-, Lagerbestands- und Sichtbarkeitsfiltern, anstatt ein leeres Ergebnis zurückzugeben
  • Fallback auf natives Cross-Selling bei Fehler hinzugefügt: Tritt in der Empfehlungslogik des Plugins ein unerwarteter Fehler auf, wird nun auf Shopwares natives Cross-Selling zurückgefallen, anstatt den gesamten Cross-Selling-Bereich zu beschädigen

[5.2.3] - 2026-03-11

Fehlerbehebungen

  • Migrations-Absturz beim Upgrade von älteren Versionen behoben: Fünf ALTER-TABLE-Migrationen referenzierten den alten Tabellennamen webla_intelligent_cross_selling_settings, ohne zu prüfen, ob dieser bereits in webla_cross_selling umbenannt wurde. Dies führte dazu, dass Upgrades von Versionen vor 5.0 fehlschlugen. Alle Migrationen ermitteln nun dynamisch den korrekten Tabellennamen und prüfen vor der Änderung, ob Spalten bereits existieren.

[5.2.2] - 2026-03-10

Fehlerbehebungen

  • Migration-Absturz bei Neuinstallation nach "Daten behalten"-Deinstallation behoben: Zwei frühe Migrationen (Migration1649663958Initialisation und Migration1650453780UpdateSettings) verwendeten CREATE TABLE ohne IF NOT EXISTS. Bei der Deinstallation mit "Benutzerdaten behalten" entfernt Shopware die Migrations-Einträge, lässt aber die Tabellen bestehen — was bei der Neuinstallation zu einem Absturz führte und auch Storefront-Produktseiten beschädigte

[5.2.1] - 2026-03-05

Fehlerbehebungen

  • Neuinstallation fehlgeschlagen behoben: Migration AddOneVariantPerParentSwitch referenzierte den alten Tabellennamen webla_intelligent_cross_selling_settings statt des umbenannten webla_cross_selling, was bei einer frischen Plugin-Installation zu einem Fehler führte

[5.2.0] - 2026-03-03

Neue Funktionen

  • Eine Variante pro Hauptartikel anzeigen: Neue Option, um in Cross-Selling-Ergebnissen nur eine Variante pro Hauptartikel anzuzeigen und so doppelte Hauptartikel in den Empfehlungen zu vermeiden

[5.1.2] - 2026-03-02

Fehlerbehebungen

  • Absturz bei fehlenden Übersetzungen behoben: TypeError behoben, bei dem getTitle() abstürzte, wenn Übersetzungszeilen fehlten — verursachte "Leider ist etwas schiefgelaufen"-Fehler auf Artikeldetailseiten im Storefront
  • Unvollständige Deinstallation behoben: Fehlende DROP TABLE-Anweisungen für webla_cross_selling_category und webla_cross_selling_product_stream Tabellen hinzugefügt, die FK-Constraint-Fehler bei der Deinstallation verursachten — hinterließen verwaiste Daten, die eine Neuinstallation beschädigten
  • Null-sichere Entity-Getter: isActive(), isShowTitle() und getMaxProducts() geben nun sichere Standardwerte zurück, anstatt bei null-Werten abzustürzen

[5.1.1] - 2026-02-19

Verbesserungen

  • Schnellere Cache-Treffer: Alle Datenbankabfragen bei gecachten Cross-Selling-Anfragen eliminiert — die Konfigurations-ID-Abfrage, die bei jeder Anfrage (auch bei Cache-Treffern) ausgeführt wurde, wurde entfernt
  • Weniger DB-Abfragen bei Cache-Misses: Eigenschaftsgewichtungen werden nun aus bereits geladenen Konfigurationsdaten gelesen, anstatt eine separate Abfrage pro Konfiguration auszulösen
  • Produkt-Vorausladen: Das Quellprodukt wird einmal geladen und bei mehreren Cross-Selling-Gruppen für alle Konfigurationen wiederverwendet
  • Schlankere Suchabfragen: Unnötiges Laden von Assoziationen bei reinen ID-Suchabfragen entfernt

[5.1.0] - 2026-02-05

Neu

  • Mehrere Konfigurationen: Erstellen Sie mehrere Cross-Selling-Konfigurationen, jede mit eigenen Eigenschaftsgewichtungen und Einstellungen
  • Kategoriezuweisung: Weisen Sie Konfigurationen bestimmten Kategorien zu - Produkte in diesen Kategorien verwenden diese Konfiguration
  • Dynamische Produktgruppen-Zuweisung: Weisen Sie Konfigurationen dynamischen Produktgruppen (Product Streams) für flexible Ausrichtung zu
  • Prioritätsbasierte Auflösung: Setzen Sie Prioritäten, um zu steuern, welche Konfiguration gewinnt, wenn ein Produkt mehreren entspricht
  • Alle passenden anzeigen: Neue Plugin-Einstellung, um alle passenden Konfigurationen statt nur der höchsten Priorität anzuzeigen

Fehlerbehebungen

  • Shopware 6.7 Kompatibilität: Entity-Multi-Select-Komponenten funktionieren nun korrekt in Shopware 6.7 (Vue 3)
  • Versionsübergreifende Unterstützung: Entity-Selektoren funktionieren jetzt korrekt auf Shopware 6.5, 6.6 und 6.7

Verbesserungen

  • Überarbeitete Admin-Oberfläche: Neues Listen-/Detail-Muster zur Verwaltung mehrerer Konfigurationen
  • Bessere Organisation: Gruppieren Sie Cross-Selling-Regeln nach Produktkategorien oder dynamischen Gruppen

[5.0.1] - 2026-01-29

Fehlerbehebungen

  • Empfehlungsgenauigkeit verbessert: Kritischen Fehler behoben, bei dem Produktfilter über Eigenschafts-Iterationen akkumulierten und zunehmend falsche Ergebnisse lieferten
  • Absturz bei fehlenden Produkten behoben: Null-Prüfungen hinzugefügt, um Fehler zu verhindern, wenn ein Produkt nicht existiert oder keine Eigenschaften hat
  • Variantenausschluss korrigiert: Hauptartikel zeigen nun nicht mehr fälschlicherweise ihre eigenen Varianten im Cross-Selling
  • Leere Kategorien behandelt: Edge-Case behoben, bei dem leere Kategoriebäume Filterfehler verursachen konnten

Verbesserungen

  • Performance optimiert: Gewichtungs-Lookups verwenden nun O(1) Hash-Map statt O(n) linearer Suche
  • Bessere Cache-Invalidierung: Cache wird nun korrekt geleert, wenn Eigenschaftsgewichtungen oder Einstellungen geändert werden
  • Verbesserte Gewichtungsvalidierung: Ungültige Gewichtungen (null, Null, negativ) werden nun übersprungen

[5.0.0] - 2026-01-29

Neu

  • Einheitliche Multi-Version-Unterstützung: Das Plugin unterstützt nun Shopware 6.5, 6.6 und 6.7 aus einer einzigen Codebasis
  • Automatische Versionserkennung: Das Plugin erkennt automatisch Ihre Shopware-Version und lädt die passenden Komponenten

Verbesserungen

  • Moderne Admin-Oberfläche: Die Benutzeroberfläche wurde für Vue 3 optimiert
  • Verbesserte Stabilität: Alle Migrationen sind nun mit verschiedenen Datenbankversionen kompatibel

Wichtige Änderungen

  • Das Plugin benötigt mindestens Shopware 6.5.0
  • Maximale unterstützte Version ist Shopware 6.7.x

Migration von 4.x

  • Keine Konfigurationsänderungen erforderlich
  • Alle Funktionen aus Version 4.x bleiben erhalten
  • Das Plugin erkennt automatisch Ihre Shopware-Version

[4.1.0] - 2026-01-16

Neu

  • Mehrsprachige Titel: Der Titel der Cross-Selling-Sektion kann nun pro Sprache unterschiedlich definiert werden
  • Nutzen Sie den Sprachumschalter im Admin-Bereich, um Titel in verschiedenen Sprachen zu pflegen

[4.0.1] - 2025-10-17

Fehlerbehebungen

  • Migrationsprobleme behoben: Das Plugin prüft nun vor der Migration, ob Spalten bereits existieren
  • Verhindert Fehler bei wiederholter Installation

[4.0.0] - 2025-07-21

Verbesserungen

  • Shopware 6.7 Kompatibilität: Vollständige Unterstützung für Shopware 6.7

Versionsübersicht

Version Veröffentlichung Highlights
5.2.6 2026-03-16 Performance: N+1-Abfragemuster eliminiert, 83% weniger DB-Abfragen
5.2.5 2026-03-13 Absturz bei Varianten-Deduplizierung behoben
5.2.4 2026-03-11 Leeres Cross-Selling bei Produkten ohne Eigenschaften behoben, Fehler-Fallback
5.2.3 2026-03-11 Migrations-Absturz beim Upgrade von älteren Versionen behoben
5.2.2 2026-03-10 Migrations-Absturz bei Neuinstallation nach Daten-behalten-Deinstallation behoben
5.2.1 2026-03-05 Neuinstallation fehlgeschlagen behoben
5.2.0 2026-03-03 Option: Eine Variante pro Hauptartikel anzeigen
5.1.2 2026-03-02 Absturz bei fehlenden Übersetzungen behoben, Deinstallation korrigiert
5.1.1 2026-02-19 Performance: keine DB-Abfragen bei Cache-Treffer
5.1.0 2026-02-05 Mehrere Konfigurationen, Kategorie-/Stream-Zuweisung
5.0.1 2026-01-29 Kritische Bugfixes, Performance-Optimierung
5.0.0 2026-01-29 Multi-Version-Support (SW 6.5-6.7)
4.1.0 2026-01-16 Mehrsprachige Titel
4.0.1 2025-10-17 Migrations-Bugfix
4.0.0 2025-07-21 Shopware 6.7 Support

Upgrade-Hinweise

Upgrade auf 5.0.0

  • Keine Aktion erforderlich: Das Upgrade erfolgt automatisch
  • Alle bisherigen Einstellungen und Gewichtungen bleiben erhalten
  • Das Plugin erkennt Ihre Shopware-Version automatisch

Upgrade auf 4.1.0

  • Nach dem Upgrade können Sie mehrsprachige Titel einrichten
  • Bestehende Titel werden in der Standardsprache beibehalten

Kompatibilität

Plugin-Version Shopware-Version PHP-Version
5.0.x 6.5.0 - 6.7.x 8.1+
4.1.x 6.6.x 8.1+
4.0.x 6.6.x - 6.7.x 8.1+