Shopware Marketing & Aktionen

Warenkorb-Zähler für Shopware 6: Social Proof „In mehr als 20 Warenkörben“ auf der Produktseite

Der Social Proof, der verkauft: zeigen Sie, wie viele Kunden dieses Produkt bereits im Warenkorb haben.

In Shopware existiert ein Warenkorb nicht als Zeilen in einer Tabelle, sondern als serialisiertes Payload in einer einzigen Spalte der Tabelle cart. Die Anzeige „dieses Produkt liegt in 23 Warenkörben“ würde also erfordern, bei jedem Aufruf einer Produktseite sämtliche Warenkörbe des Shops zu deserialisieren, was ausgeschlossen ist. Dieses Plugin löst das Problem anders: Es pflegt einen eigenen Index (Warenkorb-Token, Produkt, Verkaufskanal, Bestellkennzeichen), der in Echtzeit von den Warenkorb-Events gespeist wird, und zählt diesen Index mit einer einzigen indizierten und gecachten Abfrage. Das Ergebnis ist ein Social-Proof-Badge auf Basis Ihrer echten Warenkorbdaten, ohne messbaren Einfluss auf die Renderzeit der Produktseite.

Auf einen Blick
  • Badge „In mehr als 20 Warenkörben“ unter der Kaufbox der Produktseite
  • Echte Zählung laufender Warenkörbe, dedupliziert nach Warenkorb-Token und auf den Verkaufskanal begrenzt
  • Eigener Index über Warenkorb-Events, umgeht die Serialisierung des Shopware-Warenkorbs
  • Schwellenwert, Zeitfenster, gerundete Stufe oder exakte Zahl, konfigurierbarer Cache
  • Kompatibel mit Shopware 6.5, 6.6 und 6.7, Texte in 6 Sprachen übersetzt
Shopware 6.5 / 6.6 / 6.7 PHP 8.1+ Multi Sales Channel 6 Sprachen Quellcode enthalten
  • 30 Tage Rückgaberecht
  • 12 Monate Updates
  • 24-h-Support
www.datafirefly.com/de/
Badge „In mehr als 20 Warenkörben“ unter der Kaufbox einer Shopware 6 Produktseite
v1.0.0 · aktualisiert 2026-08-11
Was es leistet

Die Kurzfassung.

01

Sofortiger Social Proof

Ein Badge „In mehr als 20 Warenkörben“ unter der Kaufbox, ausgelöst nur oberhalb des von Ihnen definierten Schwellenwerts. Darunter wird nichts ausgegeben, die Aussage bleibt also immer vorteilhaft.

02

Auf Basis Ihrer echten Daten

Gezählt werden die Warenkörbe, die das Produkt tatsächlich enthalten, dedupliziert nach Warenkorb-Token und begrenzt auf den aktuellen Verkaufskanal. Keine erfundene Zahl, keine Zufallssimulation.

03

Ein Index statt einer Deserialisierung

Shopware serialisiert den Warenkorb in ein einziges Payload. Das Plugin pflegt eine Indextabelle, die von CartSavedEvent gespeist wird, und macht daraus eine indizierte Abfrage von wenigen Millisekunden.

04

Performance im Griff

Integrierter Cache mit einstellbarer Laufzeit, der bei jeder Konfigurationsänderung automatisch geleert wird. Keine SQL-Neuberechnung bei jedem Seitenaufruf, auch bei Lastspitzen nicht.

05

Varianten zusammengefasst

Bei einem Produkt mit Varianten fließen die Warenkörbe aller Varianten in den Zähler des Hauptprodukts. Größe 42 in drei und Größe 43 in zwei Warenkörben ergeben fünf Warenkörbe, nicht zwei isolierte Zähler.

06

Bis ins Detail konfigurierbar

Schwellenwert, Zeitfenster, nur aktive Warenkörbe, Stufen- oder Exaktmodus, Rundungsschritt, Position über oder unter der Kaufbox, drei Badge-Stile, Aufbewahrungsdauer.

Die ausführliche Fassung

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.

§ 01

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.

§ 02

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.

§ 03

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.

§ 04

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.

§ 05

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.

§ 06

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.