Alles, was Sie vor der Installation wissen wollen.
Ein detaillierter Blick darauf, wie Warenkorb-Zähler für Shopware 6: Social Proof „In mehr als 20 Warenkörben“ auf der Produktseite funktioniert, warum wir es so gebaut haben und der Gedanke hinter den Funktionen oben.
Warum es dieses Modul in Shopware nicht nativ gibt
In PrestaShop zählt man die Warenkörbe mit einem Produkt über einen Join auf die Tabelle der Warenkorbpositionen. In Shopware existiert diese Tabelle nicht: Der gesamte Warenkorb wird in eine Payload-Spalte der Tabelle cart serialisiert, häufig komprimiert. Eine SQL-Abfrage kann also nicht wissen, was ein Warenkorb enthält, ohne ihn zu deserialisieren, und mehrere tausend Warenkörbe bei jedem Produktseitenaufruf zu deserialisieren, kommt nicht infrage. Genau deshalb ist diese Art von Social Proof in PrestaShop verbreitet und in Shopware selten.
Die Lösung: ein von Events gespeister Index
Das Plugin legt die Tabelle df_cart_popularity an, die Warenkorb-Token, Produkt-ID, Verkaufskanal, Menge und Bestellkennzeichen verknüpft. Dieser Index wird bei jeder Persistierung des Warenkorbs über CartSavedEvent aktualisiert: hinzugefügte Produkte, geänderte Mengen, entfernte Positionen, alles wird in zwei Abfragen synchronisiert. Die Zählung ist dann ein einfaches COUNT DISTINCT auf einem zusammengesetzten Index, ausgeführt einmal pro Cache-Laufzeit und Produkt. Der Mehraufwand auf Warenkorbseite beträgt etwa zwei indizierte Abfragen pro Änderung und ist im Performance-Profil nicht sichtbar.
Zwei Arten, die Zahl anzuzeigen
Der Stufenmodus rundet den Zähler anhand des von Ihnen definierten Schritts ab und erzeugt so den Effekt „In mehr als 20 Warenkörben“, der glaubwürdig bleibt und sich in Stufen bewegt. Der Exaktmodus zeigt die reale Zahl für Shops, die volle Transparenz bevorzugen, inklusive automatisch behandelter Singularform. Alle drei Formulierungen liegen in Shopware-Snippets und werden pro Sprache in der Administration bearbeitet, ohne Codeänderung und mit dynamischem Platzhalter für die Zahl.
Eine ehrliche, konfigurierbare Zählung
Das Zeitfenster begrenzt die Zählung auf kürzlich aktualisierte Warenkörbe und verhindert so, dass sich monatealte Karteileichen ansammeln. Die Option nur aktive Warenkörbe schließt bereits in Bestellungen umgewandelte Warenkörbe aus, erkannt über CartConvertedEvent. Die Begrenzung auf den Verkaufskanal verhindert, dass ein Peak im deutschen Shop den Zähler des französischen Shops aufbläht. Jede dieser Optionen lässt sich in der Plugin-Konfiguration kanalweise überschreiben.
Kompatibilität 6.5 bis 6.7 ohne Kompromisse
Das Template erweitert ausschließlich den äußeren Block des Buy-Widgets und ruft dessen Parent auf. Damit ist es unempfindlich gegenüber den Umbenennungen innerer Blöcke zwischen 6.5 und 6.7 und verträgt sich mit Themes, die die Kaufbox anpassen. Die Aufbewahrungsbereinigung läuft ohne Scheduled Task und ohne Message Queue, weil sich die Signatur des Task-Handlers zwischen 6.5 und 6.6 geändert hat: Sie läuft höchstens einmal pro Stunde oder auf Zuruf über den CLI-Befehl. Die Anzeige-Struct hängt sowohl an der Produkt-Entity als auch an der Page, was das Rendering über das Buy-Box-Element der Shopping Experiences ebenso abdeckt wie die Schnellansicht.
DataFirefly-Standards
Plugin ohne Composer-Abhängigkeit entwickelt, serverseitiges Rendering, keine externe JavaScript-Bibliothek, kein ausgehender Netzwerkaufruf. Eine einzige angelegte Tabelle, die bei der Deinstallation entfernt wird, wenn Sie die Daten nicht behalten. Keine personenbezogenen Daten gespeichert: Der Index enthält nur das pseudonyme Warenkorb-Token und die Produktreferenz, mit konfigurierbarer Aufbewahrung. Nicht obfuskierter PHP- und Twig-Quellcode, unbefristete Lizenz, 12 Monate Updates inklusive.
Es gibt noch keine Rezensionen.