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:
// 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:
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