Gelöst Bestseller Zeitraum

3jojojo

Sehr aktives Mitglied
20. Januar 2016
766
34
Hallo Leute
Ich suche einen Weg die Bestseller im Shop zu begrenzen. Ziel ist das nur die Bestseller der letzten 3 Monate angezeigt werden. Hat dafür jemand eine Idee??

PS: wie kann man die Bestseller komplett im Shop zurücksetzen kann habe ich gefunden ;)
 

Mirko.Schmidt User deaktiviert

Guest
Hallo,
per Plugin entweder ältere Einträge rauslöschen oder bei der Frontend Ausgabe rausfiltern(müsste meine ich auch funktionieren, bin mir aber gerade nicht 100% sicher).
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.687
1.610
Berlin
Das Problem ist, das in der Tabelle tbestseller einfach nur ein counter für kArtikel hochgezählt wird, daher müsste man diese Tabell einmal täglich leeren und angand von X Tagen neu berechnen. Das könnte schon recht rechenintensiv sein, je nachdem wie viel Artikel der Shop hat.
 

3jojojo

Sehr aktives Mitglied
20. Januar 2016
766
34
Das Problem ist, das in der Tabelle tbestseller einfach nur ein counter für kArtikel hochgezählt wird, daher müsste man diese Tabell einmal täglich leeren und angand von X Tagen neu berechnen. Das könnte schon recht rechenintensiv sein, je nachdem wie viel Artikel der Shop hat.
Jo die Tabelle habe ich mir auch gerade angeschaut. Da kann man echt mal so gar nichts mit machen. Mir würde jetzt nur spontan einfallen für die Zukunft das Datum der letzten Bestellung mitzuspeichern. Man könnte dann immer sagen zeige nur besteller mit datum nach XX Tagen oder so. Das müßte dann aber wohl JTL generell mit in den Shop aufnehmen.
 

Mirko.Schmidt User deaktiviert

Guest
Oh stimmt, hatte irgendwie im Kopf gehabt, dass ein Datum auch mit gespeichert wird. Dann würde es nur so gehen wie css-umsetzung es schreibt. Oder über ein Plugin an den Hook "HOOK_BESTELLABSCHLUSS_PAGE" anhängen und in einer neuen, per Plugin erstellten Tabelle, die Artikel mit Datum und Counter abspeichern. Damit man dann nicht mehr die Ausgabe anpassen muss, kann man einfach beim Hook "HOOK_LASTJOBS_HOLEJOBS" ( Wawi Abgleich) die Tabelle tbestseller truncaten und neu befüllen mit den Werten aus einem bestimmten Zeitraum. Man sollte aber eine Überprüfung einbauen, dass das Truncaten und befüllen nicht bei jedem Wawi Abgleich passiert.
 

Mirko.Schmidt User deaktiviert

Guest
Ja, dass ginge dann nur für jetzt und die Zukunft. Alte Stände würden dann nicht berücksichtigt werden. Aber die kann mit egal welcher Lösung nicht berücksichtigen, weil man ja nur eine Gesamtanzahl hat ohne Datum. Wobei ich gerade bemerke, dass die Neuberechnung der Tabelle tbestseller ja bei jeder Bestellung passieren muss sprich beim HOOK_BESTELLABSCHLUSS_PAGE. Hier muss sowohl die neue Tabelle gefüllt werden, als auch der daraus resultierende neue Wert in der Tabelle tbestseller abgespeichert werden.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.687
1.610
Berlin
Genau, also ich würde einen Cron einrichten der einmal am Tag diesen Query ausführt, die 30 steht für die Anzahl der Tage, das würde praktisch tbesteller jeder Tag neu aufbauen:

Code:
CREATE TEMPORARY TABLE tmpbasket SELECT
    t.kArtikel,
    COUNT(*) AS fAnzahl
FROM
    (
    SELECT
        wkp.*
    FROM
        twarenkorbpos AS wkp
    LEFT JOIN tbestellung AS b
    ON
        b.kWarenkorb = wkp.kWarenkorb
    WHERE
        DATEDIFF(NOW(), b.dErstellt) <= 30 AND kArtikel != 0) AS t
    GROUP BY
        t.kArtikel
    HAVING
        fAnzahl > 0;
    TRUNCATE TABLE
        tbestseller;
    INSERT INTO tbestseller
SELECT
    *
FROM
    tmpbasket;



Die Frage ist eben nur, wie viel Bestellungen hat man so an einem Tag und ich habe jetzt nicht geschaut ob Kinderartikel den Vaterartikel pushen oder ob die Kinder einzeln zählen müssen.
Der Query ist also nur als Brainstorming Ansatz zu sehen.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.687
1.610
Berlin
Lustig..... es gibt sogar ein JTL Plugin das dies kann und fast den Weg geht den ich vorgeschlagen habe :)

Das Plugin wurde für den 3er Shop geschrieben und räumt auch nach einer Einstellbaren Zeit, die Tabelle auf und füllt diese neu.
Es müsste von jemanden angepasst werden damit es nicht mehr die alten Shop3 Sachen nutzt aber würde auch so im 4er gehen.

Das Plugin heißt: JTL Bestseller Pro laut @david war das ab dem 3.12er im Shop als Plugin vorhanden.
https://forum.jtl-software.de/threads/top-10-bestseller-plugin.40656/#post-281744

Vielen Dank an WiTec-Design für die Info.
 

3jojojo

Sehr aktives Mitglied
20. Januar 2016
766
34
Lustig..... es gibt sogar ein JTL Plugin das dies kann und fast den Weg geht den ich vorgeschlagen habe :)

Das Plugin wurde für den 3er Shop geschrieben und räumt auch nach einer Einstellbaren Zeit, die Tabelle auf und füllt diese neu.
Es müsste von jemanden angepasst werden damit es nicht mehr die alten Shop3 Sachen nutzt aber würde auch so im 4er gehen.

Das Plugin heißt: JTL Bestseller Pro laut @david war das ab dem 3.12er im Shop als Plugin vorhanden.
https://forum.jtl-software.de/threads/top-10-bestseller-plugin.40656/#post-281744

Vielen Dank an WiTec-Design für die Info.
geile Sache nur eben leider JTL Shop 3 :(
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
6.687
1.610
Berlin
Das geht auch im 4er, ich weiß nicht ob es den Programmierer bei JTL noch gibt.
Das ist @Daniel B. der ist hier auch im Forum aktiv aber ist schon eine Weile her.
Die Anpassungen die gemacht werden müssen sind minimal, damit es ohne Warnung im Backend vom 4er betrieben werden kann, aber es würde wohl auch so gehen.

Schreib Ihn am besten mal an.