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: Zusätzliche Daten in der Bestellmail anzeigen

    0815

    • Viel Schreiber
    • Beiträge: 905
    Zusätzliche Daten in der Bestellmail anzeigen
    am: 04. November 2015, 12:15:43
    Hallo,

    in meine Bestellmail habe ich u.a. folgende Angaben mit aufgenommen:

    - Versandart
    - Afterbuy Kundennummer

    Die Abfragen in der /admin/orders.php sehen so aus:
    Code: PHP  [Auswählen]
    // Afterbuy Kundennummer ausgeben
    $afterbuy = xtc_db_fetch_array(xtc_db_query("select afterbuy_id from ".TABLE_ORDERS." where orders_id = '".$_GET['oID']."'"));
    $smarty->assign('AFTERBUY', $afterbuy['afterbuy_id']);

    // Versandart ausgeben
    $shipping = xtc_db_fetch_array(xtc_db_query("select shipping_method from ".TABLE_ORDERS." where orders_id = '".$_GET['oID']."'"));
    $smarty->assign('SHIPPING_METHOD', $shipping['shipping_method']);

    Sende ich die Mail manuell über den Adminbereich (mittels zusätzlichem Modul möglich), sind die Daten in der Mail. Beim automatischen Versand, wenn eine Bestellung vom Kunden ausgelöst wird, sind die Daten hingegen leider nicht enthalten.

    Ich nehme mal an, dass es an der Stelle liegt:
    Code: PHP  [Auswählen]
    $_GET['oID']

    Stattdessen habe ich es schon mit folgenden Ansätzen versucht, die ich mir aus ähnlichen Abfragen kopiert habe:
    Code: PHP  [Auswählen]
    xtc_db_input($oID)
    isset($_GET['oID'])
    (int)$_GET['oID']
    Leider sind auch diese Varianten nicht die Lösung.

    Wie kann man das Problem lösen?

    Vorab vielen Dank.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=33876.0

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #1 am: 04. November 2015, 13:13:24
    Du musst die "send_order.php" entsprechend erweitern.

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #2 am: 04. November 2015, 13:15:33
    Oh! Daran hatte ich nicht gedacht.
    ... schaue ich mir sofort mal an.

    Danke

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #3 am: 04. November 2015, 13:30:20
    Die Versandart wird nun ausgegeben, die Afterbuy-Kundennummer jedoch nicht:

    Code: PHP  [Auswählen]
    $order_query_check = xtc_db_query("SELECT
                                            customers_id,
                                            afterbuy_id,
                                            shipping_method
                                            FROM "
    .TABLE_ORDERS."
                                            WHERE orders_id='"
    .$insert_id."'");

    $order_check = xtc_db_fetch_array($order_query_check);

    Code: PHP  [Auswählen]
    $smarty->assign('SHIPPING_METHOD', $order_check['shipping_method']);
    $smarty->assign('AFTERBUY', $order_check['afterbuy_id']);

    Als Afterbuy-Kundennnummer wird so nur eine "0" ausgegeben.

    Muss ich die afterbuy_id irgendwie anders abfragen?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #4 am: 04. November 2015, 14:03:48
    Ich denke das liegt daran, dass in der "send_order.php" die "afterbuy.php" erst nach dem versenden der Mails eingebunden wird. Also der Teil:

    Code: PHP  [Auswählen]
      if (AFTERBUY_ACTIVATED == 'true') {
        require_once (DIR_WS_CLASSES.'afterbuy.php');
        $aBUY = new xtc_afterbuy_functions($insert_id);
        if ($aBUY->order_send())
          $aBUY->process_order();
      }

    Dadurch wird die Spalte "afterbuy_id" erst befüllt nachdem die Mail an den Kunden bereits versendet wurde.

    Bring den Code-Teil mal über die folgenden Zeilen:

    Code: PHP  [Auswählen]
      // send mail to admin
      xtc_php_mail(EMAIL_BILLING_ADDRESS,
                   EMAIL_BILLING_NAME,
                   EMAIL_BILLING_ADDRESS,
                   STORE_NAME,
                   EMAIL_BILLING_FORWARDING_STRING,
                   $order->customer['email_address'],
                   $order->customer['firstname'].' '.$order->customer['lastname'],
                   $email_attachments,
                   '',
                   $order_subject,
                   $html_mail,
                   $txt_mail
                   );

      // send mail to customer
      if (SEND_EMAILS == 'true' || $send_by_admin) {
        xtc_php_mail(EMAIL_BILLING_ADDRESS,
                     EMAIL_BILLING_NAME,
                     $order->customer['email_address'],
                     $order->customer['firstname'].' '.$order->customer['lastname'],
                     '',
                     EMAIL_BILLING_REPLY_ADDRESS,
                     EMAIL_BILLING_REPLY_ADDRESS_NAME,
                     $email_attachments,
                     '',
                     $order_subject,
                     $html_mail,
                     $txt_mail
                     );
                     
        if (isset($sepa_html_mail)) {
          xtc_php_mail(EMAIL_BILLING_ADDRESS,
                       EMAIL_BILLING_NAME,
                       $banktransfer_owner_email,
                       '',
                       '',
                       EMAIL_BILLING_REPLY_ADDRESS,
                       EMAIL_BILLING_REPLY_ADDRESS_NAME,
                       '',
                       '',
                       EMAIL_BILLING_SUBJECT,
                       $sepa_html_mail,
                       $sepa_txt_mail
                     );
        }
      }

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #5 am: 04. November 2015, 14:28:33
    Ja, damit muss es irgendwie zusammenhängen, die Lösung war es jedoch leider noch nicht.

    Auch mit der Änderung wird weiterhin nur eine "0" ausgegeben.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #6 am: 04. November 2015, 15:22:58
    Schau mal bitte, was bei der besagten Bestellung in Tabelle "orders" in Spalte "afterbuy_success" sowie "afterbuy_id" steht.

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #7 am: 04. November 2015, 15:56:46
    "afterbuy_success" = 1
    "afterbuy_id" ist eingetragen.

    Kann es sein, dass folgender Teil der AQL-Abfrage hier nicht greift?

    Code: PHP  [Auswählen]
    WHERE orders_id='".$insert_id."'");

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #8 am: 04. November 2015, 16:56:58
    Juhu!

    Hab's hinbekommen.

    In der send_order.php mus die SQL-Abfrage für die afterbuy_id so aussehen:

    Code: PHP  [Auswählen]
    $shipping_query = xtc_db_query("SELECT afterbuy_id FROM ".TABLE_ORDERS." where customers_id = '".(int)$_SESSION['customer_id']."'");

    $shipping = xtc_db_fetch_array($shipping_query);

    und der Smarty dann so:

    Code: PHP  [Auswählen]
    $smarty->assign('AFTERBUY', $shipping['afterbuy_id']);

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #9 am: 04. November 2015, 16:58:36
    Alles klar, danke für die Rückmeldung. :thx:

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #10 am: 04. November 2015, 21:14:25
    Mist!
    Zu früh gefreut.

    Wenn ich selbst im Frontend als Kunde (nicht als Admin und nicht als Neukunde) eine Bestellung tätige, ist in der Bestellbestätigung, die an den Admin gesendet wird, die Afterbuy-Kundennummer drin.
    Bestellt hingegen ein "echter" Kunde, dann ist die Afterbuy-Kundennummer in der Admin-Mail immer "0".

    ... verstehe ich nicht!  :-?
    Vermutlich funktioniert die Abfrage nur bei Bestandskunden, denen in der Datenbank schon bei einer vorherigen Bestellung eine Afterbuy-Kundennummer zugewiesen wurde.

    Kann es sein, dass die Mail in dem Zusammenhang zwar erst dann abgesendet wird, wenn die Verbindung zu Afterbuy steht, jedoch bevor die afterbuy_id zurückgegeben wird?
    Wenn ja, kann man den Mailversand irgendwie bis zur Rückmeldung verzögern?

    Andere, bessere Lösungen sind natürlich auch willkommen.

    Danke

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #11 am: 05. November 2015, 08:58:24
    Meine These wurde gerade bestätgt. Bei Stammkunden wird die Afterbuy-Kundennummer in der Mail angezeigt, weil sie bereits in der Tabelle orders steht, bei Neukunden funktioniert das hingegen leider nicht.

    Damit zurück zur Frage, ob man den Mailversand irgendwie so lange verzögern kann, bis die Afterbuy-Schnittstelle die afterbuy_id in die Tabelle eingetragen hat, oder ob es eine andere Lösung gibt um die Nummer in die Mail zu bekommen?

    Danke

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #12 am: 05. November 2015, 12:32:18
    Füge mal direkt nach:

    Code: PHP  [Auswählen]
      if (AFTERBUY_ACTIVATED == 'true') {
        require_once (DIR_WS_CLASSES.'afterbuy.php');
        $aBUY = new xtc_afterbuy_functions($insert_id);
        if ($aBUY->order_send())
          $aBUY->process_order();
      }

    folgendes ein:

    Code: PHP  [Auswählen]
    // Warte 2 Sekunden
    usleep(2000000);

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #13 am: 05. November 2015, 12:51:50
    Hallo,

    habe ich geändert, hat aber das Problem nicht gelöst.

    Zeit erhöhen, oder hast Du noch eine andere Idee?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: Zusätzliche Daten in der Bestellmail anzeigen
    Antwort #14 am: 05. November 2015, 12:53:15
    Hänge mal bitte deine "send_order.php" und deine "/includes/classes/order.php" hier an.

    Grüße

    Torsten
    Werbung / Banner buchen
    0 Antworten
    1371 Aufrufe
    29. Januar 2015, 11:33:46 von webald
    2 Antworten
    2665 Aufrufe
    25. Juni 2010, 06:58:07 von crahlfs
    5 Antworten
    2351 Aufrufe
    01. Dezember 2018, 01:38:53 von Duckfish
    8 Antworten
    4440 Aufrufe
    05. April 2011, 21:06:39 von Jürgen
               
    anything