Jump to content
xt:Commerce Community Forum

Bestellstatus wird im Frontend nicht angezeigt


flavor

Recommended Posts

Hallo!

Wenn wir Bestellungen über unsere WAWI abholen und bearbeiten, aktualisiert unsere WAWI über eine Schnittstelle den Bestellstatus.

Er wird aber nicht im Kundenkonto (Frontend) in der Bestellübersicht des Kunden angezeigt. Da steht dann einfach kein Text mehr.

Im Admin wird in der Übersicht der Bestellung auch kein Text angezeigt. In der Admin-Detailansicht der Bestellungen wird der Bestellstatus wiederum angezeigt.

Der Bestellstatus wird, so weit ich es beurteilen kann, korrekt in die Datenbank geschrieben.

Vielen Dank für die Hilfe!

 

Freundliche Grüße

Gregor

xtcommercekeiqaklstv4px.jpg

 

xtcommercekei59rx6t83nk.jpg

 

xtcommercekeix6qay3iow4.jpg

 

Teil der Schnitstelle:

// - - - Auftragsstatus setzen - - -
function orderUpdate() {
    global $action, $LangID, $version_major, $version_minor, $n, $hk, $mysqli;
    $Order_ID = (integer) ($_POST['Order_id']);
    $Status = (integer) ($_POST['Status']);
    $Sendungsnummer = $_POST['Sendungsnummer'];
    $Sendungsdienstleister = $_POST['Sendungsdienstleister'];
    $StatusText = "";

    if ($Status == 2) {
        $xtStatus = 17;
        $StatusText = "Auftrag in Bearbeitung.";
    } else if ($Status == 3) {
        $xtStatus = 46;
        $StatusText = "Bestellung Abgeschlossen.";
    }
    $btime = aftime();
    $orders_array = array('orders_status' => $Status, 'last_modified' => $btime);
    db_insert(TABLE_ORDERS, $orders_array, 'update', " orders_id = " . $Order_ID);

    $cmd = "SELECT orders_id, customers_email_address, billing_gender, billing_firstname,
        billing_lastname, date_purchased, shop_id
            FROM " . TABLE_ORDERS . " WHERE orders_id = " . $Order_ID;
    $result = $mysqli->query($cmd) or die($mysqli->error);
    $order = $result->fetch_array();
    
    if (!empty($Sendungsnummer) && $Status == 3) {
        $cmd = "SELECT * from xt_shipper WHERE shipper_name LIKE '%{$Sendungsdienstleister}%' ";
        $query = $mysqli->query($cmd) or die($mysqli->error);
        $parcel = $query->fetch_array();
        if ($parcel) {
            $url = str_replace('[TRACKING_CODE]', $Sendungsnummer, $parcel['shipper_tracking_url']);
            $insert_tracking_data = array('tracking_shipper_id' => $parcel['id'],
                                    'tracking_code'=>$Sendungsnummer,
                                    'tracking_order_id' => $Order_ID,
                                    'tracking_status_id' => 1,
                                    'tracking_added' => $btime
                                );
            db_insert('xt_tracking', $insert_tracking_data);
            $tx_text = "Die Sendungsverfolgung für Ihre Bestellung können Sie über den unten stehenden Link aufrufen: \n {$url} \n";
            $p_status = true;
        }
    }

    $cmd = "SELECT config_value FROM " . TABLE_CONFIGURATION_MULTI . $order['shop_id'] .
            " WHERE config_key = '_STORE_CONTACT_EMAIL'";
    $result = $mysqli->query($cmd) or die($mysqli->error);
    $conf_mail = $result->fetch_array();

    $cmd = "SELECT config_value FROM " . TABLE_CONFIGURATION_MULTI . $order['shop_id'] .
            " WHERE config_key = '_STORE_EMAIL_FOOTER_TXT'";

    $result = $mysqli->query($cmd) or die($mysqli->error);
    $conf_txt = $result->fetch_array();

    $notified = 0;

Link to comment
Share on other sites

Vielen Dank für den Ansatz administrator! Hat mich zur Lösung geführt. Die Schnittstelle wurde etwas "nachlässig" geschrieben...

 

Lösung war:

 

Teil der Schnitstelle:

// - - - Auftragsstatus setzen - - -
function orderUpdate() {
    global $action, $LangID, $version_major, $version_minor, $n, $hk, $mysqli;
    $Order_ID = (integer) ($_POST['Order_id']);
    $Status = (integer) ($_POST['Status']);
    $Sendungsnummer = $_POST['Sendungsnummer'];
    $Sendungsdienstleister = $_POST['Sendungsdienstleister'];
    $StatusText = "";

    if ($Status == 2) {
        $xtStatus = 17;
        $StatusText = "Auftrag in Bearbeitung.";
    } else if ($Status == 3) {
        $xtStatus = 46;
        $StatusText = "Bestellung Abgeschlossen.";
    }
    $btime = aftime();
    $orders_array = array('orders_status' => $Status, 'last_modified' => $btime);
    db_insert(TABLE_ORDERS, $orders_array, 'update', " orders_id = " . $Order_ID);

Link to comment
Share on other sites

7 hours ago, Alex@4tfm said:

Scheint mir eher als wenn das Wort "phpScript" es besser beschreibt als "Schnittstelle" :)

Verstehe :-) ... aber nur in diesem Kontext.

Es ist die Schnittstelle... ich meine das phpScript zu der WAWI Amicron Faktura 12. Das Script wurde aber von einem Drittanbieter zu Verfügung gestellt und leider nicht hinreichend getestet. Es sind auch andere Fehler vorhanden wie etwa die falsche Berechnung des Grundpreises und eins zwei andre Dinge die mir, einem php Quereinsteiger, aufgefallen sind.

Wir dürfen aber froh sein das es diese überhaupt gibt, da wir mit der WAWI grundsätzlich zufrieden sind. Eine Verbesserung des Scriptes wäre aber wünschenswert, da diese auch nicht Multishops unterstützt.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...