Dokumentation
Integration

SDK



Das Software Development Kit (SDK) bietet eine Sammlung an Services zur nahtlosen Integration unserer Konfiguratoren via API in eigene Projekte und Anwendungen. Nachstehend finden Sie die grundlegenden Schritte zur Einrichtung.

Nutzen Sie unser Anwendungsbeispiel für einen schnellen Einstieg. Dieses finden Sie hier zum Download.


Grundlagen

Starten Sie mit der Definition der grundlegenden Variablen. Ihre Client ID finden Sie in den Einstellungen unter API innerhalb der Rubrik Integrationen. Bei User und Password tragen Sie einfach Ihre regulären Anmeldeinformationen ein.

Beispiel: index.php

header('Content-Type: text/html; charset=utf-8');
session_start();$_COOKIE['PHPSESSID']=session_id();$session=$_COOKIE['PHPSESSID'];

$client='00000';
$user='benutzer@email.de';
$password='passwort';
$language='DE';
$language_extension='_german';
$protocol='https';
$host='server.fenzon.de';

Anschließend kann die Funktion zum Aufruf der API erstellt werden.

Beispiel: index.php

function CallAPI($method,$url,$data=false){
global $client,$user,$password,$session,$language;
$authorization=base64_encode(sprintf('%s:%s',$user,$password));
$curl=curl_init();
switch($method){case "POST":curl_setopt($curl,CURLOPT_POST,1);if($data)curl_setopt($curl,CURLOPT_POSTFIELDS,$data);break;case"PUT":curl_setopt($curl,CURLOPT_PUT, 1);break;default:if($data)$url=sprintf("%s&%s",$url,http_build_query($data));}
curl_setopt($curl,CURLOPT_URL,$url);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$headers=array('User-Agent: Fenzon','Authorization: Basic '.$authorization,'Client: '.$client,'Session: '.$session,'Language: '.$language);
curl_setopt($curl,CURLOPT_HTTPHEADER,$headers);
$result=curl_exec($curl);
curl_close($curl);
return $result;
}

Produktkonfigurator

Der Produktkonfigurator kann über den folgenden Befehl aufgerufen werden.

Beispiel: index.php

$data['type']='door';
echo json_decode(CallAPI('GET',$host.'/api.php?v=1&ep=svcConfigurator',$data));

Der nachstehende Code, wird bei jeder Änderung aufgerufen und aktualisiert den Produktkonfigurator.

Beispiel: index.php

if(isset($_POST['configurator']) AND !isset($_POST['action'])){
$settings=json_decode(CallAPI('GET',$host.'/api.php?v=1&ep=svcConfiguratorSettings',$_POST),true);
echo json_encode($settings);exit();
}

Dieser Abschnitt liefert eine Produktabbildung, Preisinformationen, eine Produktbeschreibung und die Konfigurationsdaten zurück, die direkt an einen Warenkorb oder in eine Datenbank übertragen werden können. Ist eine Konfiguration nicht baubar, wird stattdessen eine Restriktionsmeldung zurückgegeben.

Beispiel: index.php

if(isset($_POST['action']) AND $_POST['action']=='configSave'){
$save=json_decode(CallAPI('GET',$host.'/api.php?v=1&ep=svcConfiguratorSave',$_POST),true);
echo json_encode($save);exit();
}

CTree

Mit dem Configuration-Tree (CTree) erhalten Sie alle Eingabe- und Auswahlfelder um diese in ein eigenes UI zu überführen.

$data['type']='window';
echo json_decode(CallAPI('GET',$host.'/api.php?v=1&ep=svcCTree',$data));

Bei einer unvollständigen Auswahl der erforderlichen Konfigurationseigenschaften erhalten Sie alle aktuell zur Auswahl stehenden Felder zurück. Andernfalls liefert der Endpunkt zusätzlich die Positionsbezeichnung, eine Beschreibung, Preise und eine grafische Darstellung.

Die zurückgelieferten Index-Werte können als Konfigurationsauswahl direkt an den Endpunkt übertragen werden, gemäß nachstehendem Schema. Index-Werte von verschachtelten Attributen sind dabei nach folgendem Schema aufgebaut und durch einen Bindestrich bzw. Punkt voneinander getrennt: [Attribut-Subattribut.Feld]. Dieser Aufbau findet sich in der Produktkonfiguration wieder:
$data['product_configuration'][Feld][Attribut][Subattribut]. Sofern kein Subattribut im Index vorhanden ist, entfällt dieses bei der Datenübertragung. Sofern kein Feld im Index vorhanden ist, ist der Wert 0.

$data['type']='window';
$data['product_configuration'][0]['system']='EXAMPLE';
$data['product_configuration'][0]['unit_type']='1S';
$data['product_configuration'][0]['width']='1230';
$data['product_configuration'][0]['height']='1480';
$data['product_configuration'][1]['width']='730';
$data['product_configuration'][1]['height']='1480';
$data['product_configuration'][1]['opening_type']='TTL';
$data['product_configuration'][2]['width']='500';
$data['product_configuration'][2]['height']='1480';
$data['product_configuration'][2]['opening_type']='FG';
echo json_decode(CallAPI('GET',$host.'/api.php?v=1&ep=svcCTree',$data));

Wird für das System eine Quelle mit zurückgeliefert, ist diese ebenfalls für weitere Abfragen des jeweiligen Systems mitzuübertragen, in folgendem Format:

$data['product_configuration'][0]['source']='fenzon_00000';

Mit Hilfe des nachstehenden Endpunktes kann überprüft werden, ob die zusammengestellte Konfiguration technisch baubar ist.

echo json_decode(CallAPI('GET',$host.'/api.php?v=1&ep=svcCTreeRestriction',$data));
Wir verwenden Cookies, um die Nutzung unserer Website für Sie zu optimieren. Cookies sind nicht nur hilfreich, wenn es darum geht, ein persönliches Nutzererlebnis und passende Anzeigen für Sie zu gewährleisten, sondern sie erweisen sich außerdem als sehr hilfreich bei unserer Webanalyse. Weitere Informationen zu den verschiedenen Cookies, die wir verwenden, finden Sie in unserer Datenschutzerklärung.


Ablehnen
Cookies zulassen