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));