Produktverkäufe und Produktaufrufe: Live-Statistiken, die Kaufentscheidungen fördern
Gehen Sie an zwei Restaurants mit identischer Speisekarte vorbei, entscheiden Sie sich fast automatisch für das volle. Online sieht der Kunde keine Warteschlange — also muss die Produktseite diese Rolle übernehmen. „847 verkauft“ oder „32 Personen sehen sich das gerade an“, direkt neben dem In-den-Warenkorb-Button, leistet für ein Produkt dasselbe wie ein gut besetzter Gastraum für ein Restaurant: Es zeigt einem zögernden Käufer, dass andere diese Entscheidung bereits getroffen haben und damit gut gefahren sind. In diesem Beitrag geht es ausdrücklich um die live aktualisierte, produktspezifische Variante dieses Signals auf einer PrestaShop-Produktseite — also Verkaufszahlen und Aufrufzahlen, die sich auf genau das Produkt beziehen, das der Kunde gerade betrachtet, nicht um ein shopweites Badge und nicht um ein Popup in der Ecke.
Zuletzt aktualisiert: Juni 2026.
Zwei nahe Verwandte sollten wir vorab sauber trennen, denn genau diese Verwechslung führt bei vielen Händlern zu einer falschen Umsetzung. Eine shopweite Vertrauenszahl wie „12.400 Produkte verkauft“ ist ein anderes Werkzeug mit einer anderen Aufgabe — darum geht es im Beitrag zum Zähler für insgesamt verkaufte Produkte. Ein schwebender Hinweis wie „Jemand in Krakau hat das gerade gekauft“ ist wiederum ein anderes Format — siehe Verkaufs-Popup und die Frage, ob solche Hinweise tatsächlich etwas bewegen, in Live-Verkaufsbenachrichtigungen. Dieser Beitrag bleibt bei dem einen Punkt, den diese Formate nicht abdecken: eingebettete, produktspezifische Zahlen, die aus Ihren echten Bestell- und Besuchsdaten stammen und direkt auf der Produktseite angezeigt werden.
Die zwei Zahlen — und was jede davon wirklich aussagt

Verkaufszahlen und Aufrufzahlen sehen ähnlich aus, erfüllen psychologisch aber gegensätzliche Aufgaben. Genau dieser Unterschied entscheidet, wo Sie welche Zahl einsetzen sollten.
| Signal | Beispiel | Was es dem Käufer sagt | Am stärksten bei |
|---|---|---|---|
| Verkäufe insgesamt | „1.247 verkauft“ | Bewährte Wahl — mehr als tausend Menschen haben dafür Geld ausgegeben | Hochpreisigen Artikeln oder Produkten unbekannter Marken, bei denen der Kunde Angst vor einer Fehlentscheidung hat |
| Aktuelle Verkäufe | „23 in den letzten 7 Tagen verkauft“ | Aktuelle Nachfrage — das ist kein veraltetes Angebot, es verkauft sich jetzt | Schnelldrehenden Verbrauchsartikeln, Trendprodukten und allem, bei dem „Ist das noch relevant?“ ein echter Zweifel ist |
| Live-Besucher | „32 Personen sehen sich das gerade an“ | Konkurrenz — Sie sind nicht der Einzige, der ein Auge darauf geworfen hat; entscheiden Sie sich | Artikeln mit begrenztem Bestand, Blitzverkäufen, Einzelstücken und Vintage-Produkten |
| Heutige Aufrufe | „156 heute angesehen“ | Interesse ohne den Druck eines Live-Zählers | Shops mit mittlerem Traffic, bei denen eine Echtzeitzahl zu dünn wirken würde |
Und was heißt das praktisch? Verkäufe insgesamt geben Sicherheit; aktuelle Aktivität und Live-Besucher erzeugen sanfte Dringlichkeit. Ein unsicherer Käufer bei einem Artikel für 600 € sucht Bestätigung — zeigen Sie die Gesamtverkäufe. Ein Schnäppchenjäger bei reduziertem Zubehör reagiert eher auf „7 heute verkauft“. Die falsche Zahl im falschen Kontext ist der Grund, warum manche Händler Zähler testen, keinen Effekt sehen und daraus schließen, Social Proof „funktioniere nicht“. Er funktioniert; die Zahl muss zum Zweifel passen.
Eines lässt dieser Beitrag bewusst aus: Sternebewertungen und Bewertungszahlen sind ebenfalls Social Proof, gehören aber zu einem eigenen System mit eigenen Fragen zu Moderation, Spam und SEO — das ist das Thema integrierte vs. Drittanbieter-Bewertungen, nicht dieses.
Wo PrestaShop diese Zahlen bereits speichert
Die gute Nachricht: PrestaShop zeichnet den größten Teil der benötigten Daten bereits auf — es zeigt sie nur nicht im Front Office an. Wenn Sie wissen, wo die Daten liegen, wissen Sie auch, was eine einfache Abfrage ist und wofür neues Tracking nötig wird.
Verkäufe stehen bereits in der Datenbank. Jede Bestellposition liegt in ps_order_detail (die Spalten product_id und product_quantity), verknüpft mit ps_orders für Datum und Bestellstatus. Die Gesamtverkaufszahl eines Produkts ist ein SUM(product_quantity) über ps_order_detail für diese product_id; eine Zahl für „letzte 7 Tage“ ergänzt ein WHERE auf date_add der Bestellung. Entscheidend ist hier, welche Bestellstatus zählen. Wenn jeder Warenkorb gezählt wird, der irgendwann einen Platzhalterstatus erreicht hat, bläht das die Zahl auf und macht sie im Grunde unehrlich; die meisten Händler zählen nur gültige bzw. bezahlte Status. PrestaShop pflegt außerdem eine separate Tabelle ps_product_sale (die Spalte quantity, in Bestseller-Abfragen als sales ausgegeben) — ein denormalisiertes Verkaufsaggregat, das PrestaShop bei der Validierung von Bestellungen aktualisiert. Wenn Sie jedoch eigene Logik für Bestellstatus oder Zeiträume brauchen, ist eine direkte Abfrage von ps_order_detail mit expliziten gültigen Status oft die bessere Wahl als die zwischengespeicherte Gesamtsumme.
Die Abfrage der Gesamtverkäufe ist eine einzelne Query. PrestaShop setzt ps_orders.valid = 1, sobald eine Bestellung einen bezahlten/akzeptierten Status erreicht. Deshalb ist die Verknüpfung über dieses Flag der saubere Weg, nur Bestellungen zu zählen, die wirklich stattgefunden haben (passen Sie das Präfix ps_ an Ihre Installation an). Das ist rein lesend — es ändert nichts:
-- Lifetime units sold for one product, counting only valid orders
SELECT SUM(od.product_quantity) AS units_sold
FROM ps_order_detail od
JOIN ps_orders o ON o.id_order = od.id_order
WHERE od.product_id = 123 -- the product you're displaying
AND o.valid = 1;
-- "Sold in the last 7 days" — same query, with a date window
SELECT SUM(od.product_quantity) AS units_7d
FROM ps_order_detail od
JOIN ps_orders o ON o.id_order = od.id_order
WHERE od.product_id = 123
AND o.valid = 1
AND o.date_add >= DATE_SUB(NOW(), INTERVAL 7 DAY);
Führen Sie diese Abfragen unter Erweiterte Einstellungen → Datenbank → SQL-Manager aus, um die echten Zahlen eines Produkts zu prüfen, bevor Sie überhaupt einen Zähler auf der Seite anzeigen — wenn die ehrliche Zahl klein ist, ist genau das ein Produkt, bei dem der Zähler besser aus bleibt.
Aufrufe sind teilweise vorhanden, teilweise nicht. PrestaShop zählt Seitenaufrufe pro Tag bereits in ps_page_viewed (über ps_page / ps_page_type verknüpft, um zu ermitteln, zu welchem Produkt ein Treffer auf einer „product“-Seite gehört) — diese Daten nutzen die Statistikmodule von PrestaShop, etwa „Meistgesehene Produkte“, wenn das Statistikmodul installiert und aktiviert ist. „Heute angesehen / diese Woche angesehen“ lässt sich also direkt aus bestehenden Tabellen auslesen. Was PrestaShop nativ nicht erfasst, ist die live gleichzeitige Zahl „X Personen sehen sich das gerade an“ — es gibt keinen eingebauten Zähler für aktive Sitzungen. Diese Zahl braucht eigenes, leichtgewichtiges Tracking: einen kleinen AJAX-Heartbeat, der eine Sitzung einem Produkt zuordnet und sie nach ein paar Minuten Funkstille auslaufen lässt. Das sollte man wissen, bevor man sich selbst einen Echtzeitzähler verspricht — die eine Hälfte ist eine SQL-Abfrage, die andere Hälfte müssen Sie bauen oder kaufen.
Auf die Produktseite bringen — der PrestaShop-spezifische Teil
Wie auch immer Sie die Zahlen erzeugen: Sie müssen an der richtigen Stelle im Theme ausgegeben werden. PrestaShop stellt dafür saubere Hooks bereit, sodass Sie niemals Kerndateien bearbeiten müssen (die beim nächsten Upgrade ohnehin überschrieben würden).
- displayProductPriceBlock — wird im Preisbereich ausgelöst, mit einem $type, den Sie prüfen können ('after_price', 'weight' usw.). Hier gehört eine Verkaufszahl hin: direkt neben den Preis, in die primäre Blickachse des Kunden.
- displayProductButtons / displayProductActions — neben „In den Warenkorb“, der natürliche Platz für eine Dringlichkeitszeile wie „32 sehen sich das gerade an“, weil sie unmittelbar vor dem Klick gelesen wird.
- displayProductAdditionalInfo — unterhalb der Kaufbox, ein ruhigerer Platz für „156 heute angesehen“, wo die Information wirkt, ohne zu schreien.
Das sauberere Muster ist ein Modul, das diese Hooks registriert und eigene .tpl-Templates mitbringt. So macht ein Theme-Update Ihre Änderungen nicht zunichte, und beim Deaktivieren des Moduls verschwindet die Funktion sauber wieder. Die Alternative — product.tpl (oder in Themes ab 1.7 die Partials unter templates/catalog/_partials/) direkt zu bearbeiten — funktioniert, koppelt die Funktion aber an ein Theme und eine Version, und beim nächsten Upgrade machen Sie die Arbeit erneut. Wenn Sie dafür das Produkt-Template anfassen, lohnt sich vorher ein Blick auf die umfassendere Layout-Logik: Best Practices für das Design von Produktseiten und darauf, was den Klick wirklich auslöst, in Anatomie einer Produktseite.
Ein Performance-Hinweis, der bei größerem Volumen wichtig wird: Eine naive Umsetzung führt bei jedem einzelnen Produktseitenaufruf ein frisches COUNT/SUM gegen die Bestelltabellen aus. In einem gut besuchten Katalog ist das echter Datenbankdruck für eine Zahl, die nicht sekundengenau sein muss. Cachen Sie sie — berechnen Sie die Werte nach Zeitplan (stündlich reicht für Gesamtzahlen völlig) oder nutzen Sie PrestaShops Cache-Schicht — und lesen Sie beim Rendern den zwischengespeicherten Wert aus. „Leichtgewichtig und gecacht“ ist der Unterschied zwischen einer Funktion, die die Conversion unterstützt, und einer, die die Seitengeschwindigkeit genau auf der Seite bremst, auf der Geschwindigkeit am meisten zählt.
Die Ehrlichkeitsregeln — und warum die produktspezifische Anzeige sie verschärft
Genau hier ist die Anzeige von Zahlen auf einem konkreten Produkt deutlich gnadenloser als ein shopweites Badge. Eine Shop-Gesamtzahl von „12.400 verkauft“ kann ein paar schwächere Produkte unauffällig mittragen. Ein eingebetteter Zähler sitzt dagegen auf jedem Produkt einzeln, sodass jede unbequeme Zahl sichtbar wird.
- Legen Sie eine Anzeigeschwelle fest. Zeigen Sie „X verkauft“ erst ab einem Mindestwert — 50, 100 oder was zu Ihrem Volumen passt. „3 verkauft“ unter einem Preis liest sich nicht wie Beweis, sondern wie „Das kauft niemand“, und das ist schlechter als gar keine Anzeige. Ein gutes Modul stellt diese Schwelle als Einstellung bereit, damit Sie sie einmal festlegen.
- Erfinden Sie nichts. Keine erfundenen Aufrufzahlen aus „Fake-Basis + echt“, kein „nur noch 2 verfügbar!“ bei einem Produkt mit 400 Stück Bestand, keine zufälligen „Personen sehen sich das an“-Zahlen, die beim Aktualisieren neu starten. Kunden machen Screenshots und vergleichen; wer beim künstlichen Erzeugen von Knappheit erwischt wird, schadet seiner Reputation dauerhaft, und es wird immer leichter, solche Muster zu erkennen. Wenn der echte Traffic nicht da ist, zeigen Sie die Besucherzahl bei diesem Produkt nicht — zeigen Sie sie nur bei den Produkten, die wirklich gut besucht sind.
- Die Zahl muss echte Aktivität widerspiegeln. „Heute angesehen“ sollte auf tatsächlichen Daten aus ps_page_viewed beruhen, nicht auf einem Multiplikator. Der ganze Wert eingebetteter Statistiken liegt darin, dass sie wahr sind; sobald ein aufmerksamer Kunde vermutet, dass eine Zahl erfunden ist, überträgt sich der Zweifel auf jede andere Zahl Ihrer Seite — Preis, Bestand, Bewertungen.
Wenn Ihre ehrlichen Zahlen noch nicht beeindruckend sind, ist das kein Scheitern der Taktik — es ist ein Signal, sie selektiv einzusetzen. Nutzen Sie sie bei Produkten, die bereits Traffic und Verkäufe haben, lassen Sie sie im Long Tail weg, und die Seite bleibt überall ehrlich.
Statistiken kombinieren, ohne die Seite zu überladen
Live-Zähler sind ein Überzeugungselement unter mehreren. Wenn Sie alle übereinander stapeln, entsteht eine laute Produktseite mit Gebrauchtwagenplatz-Atmosphäre, die schlechter konvertiert als eine ruhige. Die Aufgabe ist kombinieren, nicht anhäufen.
Eine Verkaufszahl neben dem Preis, kombiniert mit einem ehrlichen Produktfoto und einer klaren Lieferprognose, ergibt ein schlüssiges Argument: beliebt, real, bald da. Eine Live-Besucherzeile zusätzlich zur Verkaufszahl, zusätzlich zu einem „Hot“-Badge, zusätzlich zu einem Countdown-Timer bewirkt das Gegenteil — es wirkt verzweifelt. Wählen Sie die ein oder zwei Signale, die zum konkreten Zweifel passen, den dieses Produkt auslöst. Wo Badges in dieses Zusammenspiel passen (und ob sie ihren Platz überhaupt verdienen), behandelt Produkt-Badges und Labels ausführlich; und wenn Sie Kunden von einem beliebten Artikel zu einem größeren Warenkorb führen möchten, sobald sie Vertrauen gefasst haben, lesen Sie Cross-Selling und Upselling.
Wie Sie erkennen, ob es tatsächlich funktioniert hat
Beurteilen Sie das nicht nach Bauchgefühl oder drei Tagen Daten. Bevor Sie Zähler aktivieren, erfassen Sie die Ausgangswerte für die Produkte, die Sie anvisieren: Conversion-Rate der Produktseite (Aufrufe zu In-den-Warenkorb, und In-den-Warenkorb zu Bestellung) sowie Absprungrate auf diesen Seiten. Schalten Sie die Zähler ein und vergleichen Sie dann dieselben Kennzahlen über mindestens 30 Tage und ein aussagekräftiges Bestellvolumen — genug, um einen Trend zu lesen und nicht nur Wochenrauschen. Am saubersten ist der Test, wenn Sie Statistiken für eine Gruppe vergleichbarer Produkte aktivieren und eine ähnliche Gruppe als Kontrollgruppe unverändert lassen, sodass saisonale Schwankungen beide Gruppen gleichermaßen treffen.
Die meisten Shops, die das ehrlich umsetzen, sehen bei den Produkten einen sinnvollen Anstieg, bei denen die zugrunde liegenden Zahlen bereits stark waren — und flache bis negative Ergebnisse dort, wo Zähler auf schwache Produkte gezwungen wurden. Dieses Muster ist die ganze Lektion dieses Beitrags in einem Satz: Live-Verkaufs- und Aufrufstatistiken erzeugen keine Nachfrage, sie zeigen Nachfrage, die bereits existiert. Zeigen Sie echte Zahlen bei den Produkten, die sie haben, an der Stelle, die zum Zweifel passt — und lassen Sie den Instinkt für das volle Restaurant den Rest erledigen.
Wenn Sie Heartbeat-Tracking, Caching, Anzeigeschwelle und Theme-Hooks lieber nicht selbst bauen möchten, verbindet unser Modul Product Sales & Views Live Stats diese Teile direkt aus dem Back Office heraus — mit Zahlen aus Ihren echten Bestell- und Besuchsdaten, einer Mindestschwelle, damit schwache Produkte ruhig bleiben, und gecachten Lesezugriffen, damit der Zähler nicht bei jedem Produktseitenaufruf eine frische Query ausführt. Die Ehrlichkeitsregeln oben sind der Kern; das Modul setzt sie für Sie durch, statt sie Ihrer Disziplin zu überlassen.
Häufig gestellte Fragen
Wo speichert PrestaShop bereits die Verkaufszahl, die ich anzeigen möchte? In ps_order_detail (den Spalten product_id und product_quantity), verknüpft mit ps_orders für Datum und Gültigkeitsflag. Eine Gesamtzahl ist ein SUM(product_quantity) über gültige Bestellungen für dieses Produkt. PrestaShop führt außerdem ein denormalisiertes Aggregat in ps_product_sale, aber eine direkte Abfrage von ps_order_detail gibt Ihnen die volle Kontrolle darüber, welche Bestellstatus zählen.
Kann PrestaShop von Haus aus einen echten Zähler „X Personen sehen sich das gerade an“ anzeigen? Nein. PrestaShop zählt Seitenaufrufe pro Tag in ps_page_viewed („heute angesehen / diese Woche angesehen“ ist also eine Abfrage), hat aber keinen eingebauten Live-Zähler für aktive Sitzungen. Eine Echtzeitzahl für „gerade angesehen“ braucht eigenes, leichtgewichtiges Tracking — einen AJAX-Heartbeat, der eine Sitzung einem Produkt zuordnet und sie nach ein paar Minuten auslaufen lässt.
Was ist die niedrigste Zahl, die ich anzeigen sollte? Legen Sie eine Untergrenze fest — 50 oder 100, je nachdem, was zu Ihrem Volumen passt — und blenden Sie den Zähler darunter aus. „3 verkauft“ unter einem Preis liest sich wie „Das kauft niemand“, und das ist schlechter als gar keine Anzeige. Ein gutes Modul stellt diese Schwelle als Einstellung bereit.
Bremst ein Zähler auf jedem Produkt meinen Shop nicht aus? Doch, wenn er bei jedem Seitenaufruf ein frisches COUNT/SUM ausführt. Cachen Sie die Zahlen — berechnen Sie sie nach Zeitplan (stündlich reicht für Gesamtzahlen völlig) und lesen Sie beim Rendern den zwischengespeicherten Wert. „Leichtgewichtig und gecacht“ ist der Unterschied zwischen einer Funktion, die die Conversion unterstützt, und einer, die die Seitengeschwindigkeit genau auf der Seite bremst, auf der Geschwindigkeit am meisten zählt.
Ist es in Ordnung, die Zahlen aufzupolstern, damit der Shop belebter wirkt? Nein. Keine Fake-Basis für Aufrufzahlen, kein „nur noch 2 verfügbar“ bei einem Produkt mit 400 Stück Bestand, keine zufälligen Besucherzahlen, die beim Aktualisieren neu starten. Kunden machen Screenshots und vergleichen; sobald eine Zahl erfunden wirkt, überträgt sich der Zweifel auf jede andere Zahl auf der Seite — Preis, Bestand, Bewertungen. Zeigen Sie echte Zahlen nur bei den Produkten, die sie tatsächlich haben.
Kommentare
Noch keine Kommentare. Seien Sie der Erste!
Stellen Sie als Erster eine Frage oder teilen Sie hilfreiches Feedback.
Kommentar schreiben
Teilen Sie eine Frage, ein Installationsdetail oder Feedback, das anderen Lesern helfen kann.