Bestellstatus ändern per Cronjob?

Thema wurde von Anonymous, 16. Juli 2021 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Helau,

    gerne würde ich nachts per Cronjob alle Bestellungen mit einem bestimmten Status auf einen anderen Status setzen.

    Leider weiß ich nicht, wie ich das anstellen soll und bin dankbar für jede Unterstützung :)

    Danke
    Florian
     
  2. dmun

    dmun Erfahrener Benutzer

    Dazu Bedarf es keines externen Cronjobs, denn solche Dinge kann MySQL / MariaDB selbst.
    Nennt sich Ereignis oder Event und dort kannst Du dann die Abfrage eingeben und diese alle 12 Stunden ausführen lassen. Zum Beispiel: Update orders set orders_status = 0815 where orders_status = 666

    Grüße, Dirk
     
  3. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Das lassen nur viele Hoster nicht zu...

    Da würde ich eher was gegen die API schreiben.
     
  4. Christian Mueller

    Christian Mueller Beta-Held

    und dann noch den aktuellen Status in die order_status_history schreiben, sonst klemmt es an anderen Stellen.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Top! Vielen Dank!

    all-inkl kann das. Läuft perfekt.
     
  6. Anonymous

    Anonymous Erfahrener Benutzer

    Ach herrje, wie geht das denn bzw. wie wäre der SQL Befehl dafür? Das, was @dmun da als Vorlage geliefert hat, konnte ich direkt so einbauen und es hat geklappt (Statusnr. habe ich natürlich noch angepasst ;-) )
     
  7. Anonymous

    Anonymous Administrator Mitarbeiter

  8. dmun

    dmun Erfahrener Benutzer

    In dem Event können mehrere Abfragen vorhanden sein, Du kannst also die Änderungen Aufteilen:
    a) Alle Datensätze welche geändert werden sollen in eine Temporäre Tabelle schreiben
    b) Alle Orders ändern welche in der Temp.-Tabelle stehen
    c) Alle Historie-Einträge ändern welche in der Temp.-Tabelle stehen
    d) Temp.-Tabelle löschen

    Es gibt noch zahlreiche andere Wege, lässt sich alles recht kurz und knackig formulieren.

    Wenn Du Dich mit Stored Procedures auskennst, dann könntest Du dies auch in eine SP umsetzen und den Weg mit der Temp.Tabelle einsparen. Dann wird nur die SP auf gerufen vom Event.

    Grüße, Dirk