Freitag, 1. August 2008 Druck-Ansicht
Die “meistverkauften Produkte” in einem Shop sind sicherlich interessant, aber die Bestsellers-Box von xt:Commerce betreibt da ein bisschen “Archäologie”. Es ist sehr wahrscheinlich, dass der älteste Artikel im Shop auch einer der meistverkauftesten ist.
Das muss muss natürlich nicht heißen, dass dieser Artikel wirklich momentan der “Renner” ist. Wissen wir alle. Vielleicht ist sogar im letzten Monat von diesem Uralt-Artikel nicht ein einziger verkauft worden, trotzdem steht er in der “Bestsellers-Liste” vor einem neuen Trend-Produkt, das womöglich viel besser angelaufen ist.
Und wenn man richtig Pech hat, taucht das neue Trend-Produkt sogar überhaupt nicht in der Bestsellers-Liste auf - und das bloß, weil 10 “olle Kammellen”, die seit Shop-Launch vor zwoeinhalb Jahren dabei waren, insgesamt öfter verkauft worden sind. Was Wunder …
Dieses Verhalten macht die Standard-Bestsellers-Box ein wenig langweilig.
Spannender wäre es, eine Aufstellung der meistverkauften Produkte aus der letzten Woche / aus dem letzten Monat / dem letzten Quartal o.ä. ausgeben zu lassen. Denn da tut sich einfach mehr.
Bei jedem Verkauf addiert xt:Commerce in der “products”-Tabelle die Anzahl der verkauften Artikel zum passenden Wert in der Spalte “products_ordered” - Das Datum wird dabei nicht berücksichtigt - Muss es auch nicht, dazu ist die “products”-Tabelle auch nicht da. Nur wird eben aus diesen Daten gemeinhin die Bestsellers-Box “bestückt”.
Wenn man also in seiner Bestsellers-Box die meistverkauften Artikel der letzten 30 Tage anzeigen möchte, muss man die “bestsellers.php” im Template ein bisschen anders aufziehen - und zunächst in der “orders”-Tabelle die order_id’s der letzten 30 Tage heraussuchen. Denn mit der “products” allein kommt man nicht weit.
Ist ein bisschen Fummelkram - Und ich hätte es ganz gerne in einer einzigen DB-Abfrage geregelt, aber irgendwie hat sich die Kiste dabei dauernd verzählt. Momentan gibt’s hier also nur die nicht ganz so schöne Variante (Sorry): Erst alle order_id’s ermitteln, danach in einer Schleife die verkauften Produkte aus jeder Bestellung zählen und aufaddieren …
Das braucht ein wenig länger, dafür stimmen die Ergebnisse
Der Fehler ist gefunden, in Version 0.2 klappt’s nun auch ohne Schleife.
Die “Installation” ist ganz einfach:
Einstellungs-Möglichkeiten:

(Screenshot: Bestsellers-Box für Admins)
Weitere Hinweise:
Tipp:
In der “bestseller.php” wird eine Konstante “BESTSELLER_DAYS” definiert.
Diesen Wert kann man z.B. in der “box_best_sellers.html” für Angaben à la
Unsere Bestseller der letzten {$smarty.const.BESTSELLER_DAYS} Tage
oder Ähnliches einsetzen.
Bookmarks, Feed und Links
Wenn Ihnen dieser Beitrag geholfen hat ...
Beiträge zu ähnlichen Themen:
68 Antworten zu xt:Commerce - Bestsellers-Box nach Tagen
Kommentar schreiben