Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Status einer Bestellung automatisch nach X Tagen ändern

    svenyo

    • Mitglied
    • Beiträge: 211
    Hallo zusammen,

    gibt es eine Möglichkeit den Status einer Bestellung automatisch nach, sagen wir 14 Tagen auf erledigt bzw. einen bestimmten Status ändern zu lassen?

    Gruß,
    svenyo

    Linkback: https://www.modified-shop.org/forum/index.php?topic=42795.0
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #1 am: 07. Februar 2023, 01:29:11
    Out of the box ist das nicht möglich. Allenfalls könnte man ein z. B. ein Script a la "krame alle Bestellungen älter als 14 Tage mit dem Status X hervor und ändere diesen in Status Y" programmieren und dieses täglich über einen Cronjob ansteuern. (Hierzu müssen Cronjobs über dein Hostingpaket möglich sein.)

    svenyo

    • Mitglied
    • Beiträge: 211
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #2 am: 07. Februar 2023, 09:53:02
    Cronjobs wären möglich. Wonach muss ich denn Ausschau halten, um so ein Skript zu schreiben?

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #3 am: 07. Februar 2023, 13:15:59
    Verstehe nicht, was du mit Ausschau halten meinst. Ein fertiges Script, nach welchem du suchen kannst, existiert wahrscheinlich nicht. (Keine Ahnung, ob ein Modul-Hersteller sowas nicht doch in seinem Angebot hat.)

    Beim selber schreiben musst du halt die application_top.php einbinden, dann eine SQL-Query formulieren, welche genau die Bestellungen rauspickt, die du bearbeiten willst und anschließend fertigst du diese in einem Loop ab, indem du dort ganz genau festlegst, was mit den Bestellungen passieren soll. Wenn das Script steht, rufst du es eben einmal täglich (sollte eigentlich reichen) über den Cronjob auf.

    svenyo

    • Mitglied
    • Beiträge: 211
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #4 am: 07. Februar 2023, 15:44:44
    Danke für den Tipp.  Dann werde ich mal schauen, ob ich was zusammenbasteln kann  :thx:

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #5 am: 07. Februar 2023, 15:50:49
    Bevor du das in deinem Live-Shop ausprobierst (weiß ja nicht, ob du einen zusätzlichen Test-Shop betreibst), solltest du dein Script hier vielleicht nochmal posten, damit jemand drauf schaut. Ich denke, wenn du zumindest schonmal ein Grundgerüst zusammen gezimmert hast, wächst die Hilfsbereitschaft bei dem Thema auch, weil du etwas Eigenbemühung gezeigt hast und somit nicht wie manch anderer hier erwartest, dass dir eine fertige Lösung "hinten rein geblasen" wird.

    svenyo

    • Mitglied
    • Beiträge: 211
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #6 am: 07. Februar 2023, 15:56:56
    Auf das Angebot komme ich gerne zurück. Jetzt versuche ich aber erstmal mein Glück.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #7 am: 07. Februar 2023, 22:00:38
    Da mir gerade langweilig war, hab ich mal einen ersten Entwurf erstellt und positiv auf Funktionalität getestet:

    Code: PHP  [Auswählen]
    <?php

      include ('includes/application_top.php');

      $now = date("Y-m-d H:i:s");
      $date = new DateTime($now);
      $date->modify('-14 days'); // Anzahl der Tage, die zurückgerechnet werden sollen
      $previous = $date->format('Y-m-d H:i:s');
     
      // Welche(r) Bestellstatus soll(en) geändert werden? Mehrere Status komma-getrennt.
      $from = '3';
      // Zu welchem Bestellstatus (ID) soll geändert werden?
      $to = '5';
     
      $after_sale_query = xtc_db_query("SELECT orders_id FROM ".TABLE_ORDERS." WHERE orders_status IN (".$from.") AND date_purchased <= '".$previous."'");
     
      if (xtc_db_num_rows($after_sale_query) > 0) {
        while ($after_sale = xtc_db_fetch_array($after_sale_query, true)) {
          xtc_db_query("UPDATE ".TABLE_ORDERS." SET orders_status = '".$to."' WHERE orders_id = '".$after_sale['orders_id']."'");
          $orders_status_array = array('orders_status_history_id' => NULL,
                                                               'orders_id' => $after_sale['orders_id'],
                                                               'orders_status_id' => $to,
                                                               'date_added' => $now,
                                                               'customer_notified' => '0',
                                                               'comments' => '',
                                                               'comments_sent' => '0');
          xtc_db_perform(TABLE_ORDERS_STATUS_HISTORY, $orders_status_array);
        }
      }
     
    ?>

    Innerhalb des Loops (while{...}) können noch viele zusätzliche Operationen ausgeführt werden, z. B. ein Mail-Versand, welcher den Kunden über den neuen Status informiert oder zur Bewertung auffordert. Je nachdem, was man gerade braucht.

    svenyo

    • Mitglied
    • Beiträge: 211
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #8 am: 07. Februar 2023, 22:46:38
    Ui, das ging jetzt aber schnell !!! Damit hätte ich nicht gerechnet. Und so professionell wäre mein erster Versuch mit Sicherheit auch nicht geworden. Das werde ich morgen gleich mal ausprobieren.
    Ganz herzlichen Dank!

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #9 am: 07. Februar 2023, 23:18:47
    Die fünf Zeilen sind für mich doch schnell dahingerotzt. Das Ganze kann als Grundgerüst für alle möglichen Operationen genutzt werden. Einfach entsprechend deiner Bedürfnisse anpassen, auf den Server laden und mittels Cronjob einmal am Tag aufrufen.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Re: Status einer Bestellung automatisch nach X Tagen ändern
    Antwort #10 am: 08. Februar 2023, 17:01:34
    Hab mein zuletzt gepostetes "Grundgerüst" für das titelgebende Unterfangen mal spaßeshalber in ein Systemmodul eingeflochten. Da ich selbst keine Verwendung dafür habe, hänge ich es mal mit an und hoffe, der/die eine oder andere findet Verwendung dafür.

    Die URL für den Cronjob steht in der Modulbeschreibung:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Leider ist mir kein schöner Name für das Modul eingefallen, darum heißt es nun "Automatische Bestellstatus-Änderung (aftersale)".

    Viel Spaß damit.
    11 Antworten
    8908 Aufrufe
    20. Dezember 2011, 22:41:44 von nixwisser
    2 Antworten
    2439 Aufrufe
    19. Juni 2015, 20:58:32 von lernort
    13 Antworten
    8248 Aufrufe
    25. Oktober 2010, 14:58:33 von Tomcraft
    2 Antworten
    2714 Aufrufe
    25. Oktober 2011, 19:43:57 von Charly