Jump to content
xt:Commerce Community Forum
flavor

Bestellstatus wird im Frontend nicht angezeigt

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;

Share this post


Link to post
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);

Share this post


Link to post
Share on other sites
7 hours ago, [email protected] 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...