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: Standard-Schnittstelle

    webald

    • modified Team
    • Beiträge: 2.791
    Standard-Schnittstelle
    am: 30. Oktober 2013, 17:06:16
    Tag zusammen,

    ich habe hier eine kleine Erweiterung um externe Systeme über Änderungen zu informieren. Konkret in diesem Beispiel die automatische Information über eine neue Order.

    Am Ende der checkout_process.php einfügen:
    Code: PHP  [Auswählen]
      // EOF - Tomcraft - 2009-10-03 - PayPal Express Modul (PayPal GiroPay aufrufen zum bestätigen)

            // BOF - webald - 2013-10-30 - Notify ERP via Webservice
           
            function WriteLog($errormessage){
            $fp=fopen('errorlog.txt','a');
            fwrite($fp,$errormessage);
            fwrite($fp,"\r\n");
            fclose($fp);}

            try {
            $WSSECURITYKEY='123456';
            include(DIR_FS_DOCUMENT_ROOT.'webservices/dbnavsend.php');
            $mywsresault=NotifyNAV($insert_id, STORE_NAME, $WSSECURITYKEY);
            } catch (exception $exerr){
                    WriteLog($e->getMessage());
                    }
                   
            // EOF - webald - 2013-10-30 - Notify ERP via Webservice

      xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
    }
    ?>

    Neues Verzeichnis "webservices" anlegen und eine Datei dbnavsend.php mit folgendem Inhalt erstellen:
    Code: PHP  [Auswählen]
    require_once("/nusoap/lib/nusoap.php");

    function NotifyNAV($xtcorderid, $webshopname, $webshopcode){

            $navwsurl="your_webservice_url.tld";
            $success=0;
            if (CheckNAVServerOnline($navwsurl)==1){
                            $soap = new nusoap_client("http://your_webservice_url.tld/xtcConnect/GetOrderFromXTC.asmx?WSDL", true);
                            $params =array('xtcOrderID' => $xtcorderid, 'WebShopName' => $webshopname, 'WebShopSecurityCode' => $webshopcode);
                            $result = $soap->call("NewOrder", array('parameters' => $params));
                            if(is_array($result)){
                                            foreach($result as $answer){
                                                    $success = $answer;
                                            }
                            }
            }
            return $success;
    }

    function CheckNAVServerOnline($navwebserver, $navport=80){
            $online=0;
            $fp = fsockopen($navwebserver, $navport, $errno, $errstr, 3);
            if (!$fp) {
                    $online=0;
            } else {
                    $online=1;
                    fclose($fp);
            }
            return $online;
    }

    Im Verzeichnis "webservices" eine Version von NuSOAP im Unterverzeichnis nusoap installieren/kopieren.

    Nun wird bei jeder Bestellung am Ende der Webservice des ERP aufgerufen und übermittelt die Bestellnummer, nicht mehr. Das ERP-System kann nun selbst die notwendigen Daten vom Shop abrufen und automatisch verarbeiten. Hierfür kann man den Shop so erweitern, dass dieser eigene Webservices zur Verfügung stellt (NuSOAP ist ja nun schon vorhanden). Wie das aussehen kann evtl. später mehr dazu.

    Dadurch, dass die eigentliche Verarbeitung vom ERP gesteuert wird, merkt der Kunde keine Verzögerung.

    Wir haben das so im Einsatz und brauchen die Admin-Oberfläche eigentlich gar nicht.

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

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    Re: Standard-Schnittstelle
    Antwort #1 am: 30. Oktober 2013, 23:28:20
    Und warum machst du das mit NuSOAP und nicht einfach nur mit SOAP :?:

    Gruss Gerhard

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Standard-Schnittstelle
    Antwort #2 am: 31. Oktober 2013, 07:42:59
    Weil ich festgestellt habe, dass es nicht überall installiert ist. Und 2 Versionen wollte ich nicht entwickeln und testen. Gibt so schon genug Fallstricke bei PHP <=> .NET (RPC oder Document, Zeichensatz, Datentypen).

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.307
    • Geschlecht:
    Re: Standard-Schnittstelle
    Antwort #3 am: 31. Oktober 2013, 07:48:29
    OK.

    Wir haben in der kommenden Version NuSOAP schon drin, also nochmals einfacher ;-)

    Danke.

    Gerhard

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Standard-Schnittstelle
    Antwort #4 am: 31. Oktober 2013, 08:17:39
    Dazu folgende Fragen:

    1. Welche Version?
    2. In welches Verzeichnis wird das installiert?
    3. Wofür?
    3 Antworten
    3760 Aufrufe
    05. April 2013, 12:57:35 von zoidborg
    5 Antworten
    5467 Aufrufe
    23. Februar 2014, 16:39:12 von ShopNix
    2 Antworten
    3463 Aufrufe
    13. Februar 2013, 19:06:22 von Gradler
    3 Antworten
    2383 Aufrufe
    05. November 2010, 21:43:38 von REV
               
    anything