Bestellstatus ändern per Cronjob?

Thema wurde von Anonymous, 16. Juli 2021 erstellt.

  1. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    20. November 2015
    Beiträge:
    1.517
    Danke erhalten:
    314
    Danke vergeben:
    1.217
    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
    Registriert seit:
    2. Juni 2019
    Beiträge:
    325
    Danke erhalten:
    36
    Danke vergeben:
    6
    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
    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.311
    Danke vergeben:
    2.208
    Das lassen nur viele Hoster nicht zu...

    Da würde ich eher was gegen die API schreiben.
     
  4. Christian Mueller
    Christian Mueller Beta-Held
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    und dann noch den aktuellen Status in die order_status_history schreiben, sonst klemmt es an anderen Stellen.
     
  5. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    20. November 2015
    Beiträge:
    1.517
    Danke erhalten:
    314
    Danke vergeben:
    1.217
    Top! Vielen Dank!

    all-inkl kann das. Läuft perfekt.
     
  6. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    20. November 2015
    Beiträge:
    1.517
    Danke erhalten:
    314
    Danke vergeben:
    1.217
    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
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    @FlorianR Bitte nutze dazu die API, die macht für dich die entsprechenden Einträge in den verknüpften Tabellen, gerade auch was Datenkonsistenz und Integrität angeht, sollte darauf verzichtet werden das direkt in der Datenbank zu machen.
    (Link nur für registrierte Nutzer sichtbar.)
     
  8. dmun
    dmun Erfahrener Benutzer
    Registriert seit:
    2. Juni 2019
    Beiträge:
    325
    Danke erhalten:
    36
    Danke vergeben:
    6
    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