XML Connector-Class 14.0

Für den Einsatz mit der Schnittstelle 14.0

Code

<?
class connector {
// Connection Variables
private $id_user = "";
private $api_user = "";
private $api_code = "";
private $api_shop_id = "";
private $language = "";
private $root = ""; // The API to connect to
protected $debug = false; // Aktiviert Debug Ausgaben für URL-Check
// Request URL to Nephele XML
private $request_url = "";

// Contructor to set up the api #############################################################
function __construct($id_user,$api_user,$api_code,$api_shop_id,$language="DE") {

$this->root = "https://nephele-s4.de/xml/v14.0/wbo-API.php";

if($id_user!="" && $api_user !="" && $api_code!="" && $api_shop_id!="") {
$this->id_user = trim($id_user);
$this->api_user = trim($api_user);
$this->api_code = trim($api_code);
$this->api_shop_id = trim($api_shop_id);
$this->language = trim($language);
$this->request_url = $this->root."?UID=".$this->id_user."&apiUSER=".$this->api_user."&apiCODE=".$this->api_code."&apiShopID=".$this->api_shop_id."&apiACTION=";

return true;
} else {
return false;
}
}

//Getter####################################################################################
function getShopConfig(){
$url = $this->request_url."getEinstellungen";
$result = $this->perform_xml_request($url);
return $result;
}
function getGutscheine(){
$url = $this->request_url."getGutscheine";
$result = $this->perform_xml_request($url);
return $result;
}


// get wine information data
function getWeinDetail($weinnr) {

$url = $this->request_url."getWineDetail&weinnr=".trim($weinnr);
$result = $this->perform_xml_request($url);

return $result->item;

/* RETURN VALUE
$artikel_nr = $element->artikel_nr;
$artikel_name = $element->artikel_name;
$artikel_beschreibung = $element->artikel_beschreibung;
$artikel_shopnotiz = $element->artikel_shopnotiz;
$artikel_jahrgang = $element->artikel_jahrgang;
$artikel_sorte = $element->artikel_sorte;
$artikel_qualitaet = $element->artikel_qualitaet;
$artikel_geschmack = $element->artikel_geschmack;
$artikel_zucker = $element->artikel_zucker;
$artikel_alkohol = $element->artikel_alkohol;
$artikel_saeure = $element->artikel_saeure;
$artikel_liter = $element->artikel_liter;
$artikel_gewicht = $element->artikel_gewicht;
$artikel_bild = $element->artikel_bild;
$artikel_preis = $element->artikel_preis;
$artikel_literpreis = $element->artikel_literpreis;
*/
}
// Get categories for the shop with displayable content
function getShopMenue() {
$url = $this->request_url."getWineGroups";
return $this->perform_xml_request($url);
// RETURN VALUE: Array with Objects
/*
$element->id_grp; // ID der Kategorie -> Für getWineList
$element->grp_name; // Name der Kategorie
*/
}
// Get AGB from WBO
function getAGB() {
$url = $this->request_url."getAGB";
return $this->perform_xml_request($url);

// RETURN VALUE: String
}
// Get List of Wines -> group_id=0 gets all wines // Suchstring für Einschränkungen
function getWineList($group_id,$suchstring=false) {

$url = $this->request_url."getWines&id_grp=".$group_id."&suchstring=".$suchstring;
$url = $this->decode_url($url);

return $this->perform_xml_request($url);
// RETURN VALUE: Array with elements of type getWeinDetail()
}

// Send data ##################################################################################
// Do a new Order
function sendOrder($firma,$name,$nname,$email,$street,$number,$zip,$city,$country,$phone,$l_city,$l_hnumber,$l_adr,$l_anr,$l_company,$l_vorname,$l_name,$l_street,$l_zip,$l_country,$payment,$note,$positions,$array,$versandkosten,$ktname,$ktblz,$ktnr,$gebuehr,$ktiban,$ktbic,$anrede,$paypal_transaction_id,$gutscheincode,$gutscheinwert) {
// $array needs amount and id informations -> Array([&wein_anzahl1=5&wein_id1=12],[&wein_anzahl2=3...)
$url = $this->request_url."newOrder";

// General adress information
$url .= "&anrede=$anrede";
$url .= "&name=$name";
$url .= "&nname=$nname";
$url .= "&email=$email";
$url .= "&strasse=$street";
$url .= "&hnr=$number";
$url .= "&plz=$zip";
$url .= "&ort=$city";
$url .= "&land=$country";
$url .= "&telefon=$phone";
$url .= "&firma=$firma";

$url .= "&zahlung=$payment";

// alternate adress information for seperate shipping
$url .= "&l_adr =$l_adr";
$url .= "&l_anrede=$l_anr";
$url .= "&l_firma=$l_company";
$url .= "&l_vorname=$l_vorname";
$url .= "&l_name=$l_name";
$url .= "&l_strasse=$l_street";
$url .= "&l_plz=$l_zip";
$url .= "&l_ort=$l_city";
$url .= "&l_land=$l_country";
$url .= "&l_hnummer=$l_hnumber";

$url .= "&kto=".$ktnr;
$url .= "&ktoInh=".$ktname;
$url .= "&blz=".$ktblz;
$url .= "&iban=".$ktiban;
$url .= "&bic=".$ktbic;
$url .= "&gutscheincode=".$gutscheincode;
$url .= "&gutscheinwert=".$gutscheinwert;

// Payment
if($payment == "Vorkasse") $url .= "&zahlung=2";
else if($payment == "Rechnung")$url .= "&zahlung=1";
else if($payment== "Bar")$url .= "&zahlung=2";
else if($payment == "Nachnahme")$url .= "&zahlung=4";
else if($payment == "Bankeinzug")$url .= "&zahlung=3";
else if($payment == "PayPal")$url .= "&zahlung=4";

// Nachnahmegebühr
$url .= "&gebuehr=$gebuehr";

// Note
$note = preg_replace('/\\r/', ' ', $note); // Umbrüche entfernen
$note = preg_replace('/\\n/', ' ', $note);

if($paypal_transaction_id!="") {
$note.="
Paypal transaction ID: ".$paypal_transaction_id;
}

$url .= "&referenz=$note";

// versandkosten
$url.="&versandkosten=$versandkosten";

// Number of positions
$url .= "&positionen=$positions";
$url .=implode("",$array);

// perfom request
$url = $this->decode_url($url);
$xml = $this->perform_xml_request($url);

// Analyze Result
if($xml->status == "ok") {
return true;
} else {
return false;
}
}



// General Function ########################################################################
// Prepare a URL for a XML request
function decode_url ($url) {



$lcSearch = Array(
"#",
"+",
"ä",
"Ä",
"ö",
"Ö",
"ü",
"Ü",
"ß",
" "
);
$lcReplace = Array(
"",
"%2b",
"%E4",
"%C4",
"%F6",
"%D6",
"%FC",
"%DC",
"%DF",
"%20"
);
return str_replace($lcSearch,$lcReplace,$url);



}


// Perform a XML Request
function perform_xml_request($url){
$url = $this->decode_url($url);
########################
if($this->debug) {
?>
<div style="position:relative; height:220px; width:400px; background-color:#f00; color:#fff; float:right; left:800px;;">
<? echo $url; ?>
</div>
<?
}
#######################
// Connect to URL
$auftrag = @fopen($url, "r") or die ("Fehler194");
$antwort = "";
while(!feof($auftrag)){ $antwort .= fgets($auftrag) or die("Fehler 196"); }
fclose($auftrag);



// Convert Information Data

$xml = simplexml_load_string($antwort) or die("Fehler #01: Kein wohlgeformtes XML gefunden. $url -> $antwort");

########################
if($this->debug) {
?>
<div style="position:relative; height:220px; width:400px; background-color:#0f0; color:#fff; float:right; left:800px;;">
<? print_r ($antwort); ?>
</div>
<?
}
#######################

// Return Element
return $xml;
}

}
?>