REST API: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 31: | Zeile 31: | ||
* Alle Bestellungen eines Monats auslesen | * Alle Bestellungen eines Monats auslesen | ||
* Details einer Bestellung auslesen | * Details einer Bestellung auslesen | ||
+ | * Versandtracking setzen | ||
+ | * Bestellung abschließen | ||
''' Kunden ''' | ''' Kunden ''' | ||
Zeile 54: | Zeile 56: | ||
protected $api_location; | protected $api_location; | ||
protected $cURL; | protected $cURL; | ||
− | protected $available_methods = array("GET"); | + | protected $available_methods = array("GET","POST"); |
public function __construct($url, $user_name, $user_password) { | public function __construct($url, $user_name, $user_password) { | ||
Zeile 78: | Zeile 80: | ||
public function get($url) { | public function get($url) { | ||
return $this->call($url, "GET"); | return $this->call($url, "GET"); | ||
+ | } | ||
+ | |||
+ | public function post($url, $params) { | ||
+ | return $this->call($url, "POST", $params); | ||
} | } | ||
Zeile 429: | Zeile 435: | ||
) | ) | ||
+ | </source> | ||
</tabber> | </tabber> | ||
Zeile 604: | Zeile 611: | ||
</source> | </source> | ||
</tabber> | </tabber> | ||
+ | |||
+ | |||
+ | <br/><br/>Paketverfolgung setzen<br/><br/> | ||
+ | <tabber> | ||
+ | Abfrage=<source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $api->post("ordertracking/11681",array("delivery" => "DHL", "code" => "00340434174844484564")); | ||
+ | |||
+ | |||
+ | ?> | ||
+ | |||
+ | |||
+ | Mögliche Werte für "delivery" sind: | ||
+ | |||
+ | * DHL | ||
+ | * POSTAT | ||
+ | * POSTCH | ||
+ | * DPD | ||
+ | * GLS | ||
+ | * HERMES | ||
+ | * UPS | ||
+ | * FEDEX | ||
+ | * CHARRY | ||
+ | </source> | ||
+ | |-| | ||
+ | Antwort=<source lang="php"> | ||
+ | ( | ||
+ | [result] => ok | ||
+ | |||
+ | ) | ||
+ | </source> | ||
+ | </tabber> | ||
+ | |||
+ | |||
+ | <br/><br/>Bestellung wird bearbeitet<br/><br/> | ||
+ | <tabber> | ||
+ | Abfrage=<source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $api->post("orderprocessed/11681",array()); | ||
+ | |||
+ | |||
+ | ?> | ||
+ | </source> | ||
+ | |-| | ||
+ | Antwort=<source lang="php"> | ||
+ | ( | ||
+ | [result] => ok | ||
+ | |||
+ | ) | ||
+ | </source> | ||
+ | </tabber> | ||
+ | |||
+ | |||
+ | <br/><br/>Bestellung abschließen<br/><br/> | ||
+ | <tabber> | ||
+ | Abfrage=<source lang="php"> | ||
+ | <?php | ||
+ | |||
+ | $api->post("ordersent/11681",array()); | ||
+ | |||
+ | |||
+ | ?> | ||
+ | </source> | ||
+ | |-| | ||
+ | Antwort=<source lang="php"> | ||
+ | ( | ||
+ | [result] => ok | ||
+ | |||
+ | ) | ||
+ | </source> | ||
+ | </tabber> | ||
+ | |||
+ | |||
Zeile 613: | Zeile 695: | ||
<?php | <?php | ||
− | $api->get(" | + | $api->get("customers"); |
?> | ?> |
Aktuelle Version vom 22. Januar 2021, 10:33 Uhr
Inhaltsverzeichnis
Einführung
Die Rest API ist eine plattformunabhängige Schnittstelle um Daten mit dem Shopsystem auszutauschen. Diese Beschreibung richtet sich an Entwickler mit entsprechendem technischen Wissen zur Nutzung einer Rest API.
Die API ist ohne vorherige Freischaltung oder Installation unter folgendem Endpunkt erreichbar:
https://www.ihre-shopdomain.de/api/rest/v1
Bitte ersetzen Sie dabei Ihre persönliche Domain. Selbstverständlich ist der Zugriff auf die API regelementiert. In der Shopadminstration unter Benutzer->API-Benutzer erstellen Sie dazu einen neuen Benutzer, bei dem der API-Key optional ist. Die Authentifizierung erfolgt pro Aufruf mit Benutzername und Kennwort. Der Abruf erfolgt über eine verschlüsselte Verbindung, sofern für den Onlineshop eine solche aktiv ist.
Ressourcen
In der Version 1 der API, die ab der Shopversion 2.2 zur Verfügung steht, stehen lesende Ressourcen zu folgenden Daten zur Verfügung
Kategorien
- Alle Kategorien im Shop auslesen - als Liste
- Alle Kategorien im Shop auslesen - als Verzeichnisbaum
- Details einer bestimmten Kategorie auslesen
Produkte
- Alle Artikel einer Kategorie auslesen
- Details eines Artikels auslesen
- Liste der Varianten eines Produktes
Bestellungen
- Alle Bestellungen eines Jahres auslesen
- Alle Bestellungen eines Monats auslesen
- Details einer Bestellung auslesen
- Versandtracking setzen
- Bestellung abschließen
Kunden
- Alle Kunden auslesen
- Alle Kunden einer Kundengruppe auslesen
- Details eines Kunden auslesen
API Client
Für den einfachen Einstieg steht eine einfache API Klasse in PHP zur Verfügung. Diese basiert auf CURL, das als Modul zur Verfügung stehen muss.
<?
// SERVERSPOT SHOP API
// Version 1.0 - available at Core Version 2.1
class ServerspotAPI {
protected $api_location;
protected $cURL;
protected $available_methods = array("GET","POST");
public function __construct($url, $user_name, $user_password) {
$this->api_location = rtrim($url, '/') . '/';
$this->cURL = curl_init();
curl_setopt($this->cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->cURL, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($this->cURL, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($this->cURL, CURLOPT_USERPWD, $user_name . ':' . $user_password);
curl_setopt($this->cURL, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
));
}
public function call($url, $method = "GET", $data = array()) {
if (!in_array($method, $this->available_methods)) {
throw new Exception('Invalid HTTP-Methode: ' . $method);
}
curl_setopt($this->cURL, CURLOPT_URL, $this->api_location . $url);
return $this->getResult(curl_exec($this->cURL), curl_getinfo($this->cURL));
}
public function get($url) {
return $this->call($url, "GET");
}
public function post($url, $params) {
return $this->call($url, "POST", $params);
}
protected function getResult($json_result, $info) {
if (null === $result = json_decode($json_result, true)) {
echo "Error decoding Result" . json_last_error();
echo "<pre>" . print_r($json_result, true) . "</pre>";
return;
}
if (isset($result['result']) && $result['result']=="ok") {
echo "<h3>Success</h3>";
echo "<pre>" . print_r($result, true) . "</pre>";
return;
}else{
echo "<h3>Error</h3>";
echo "<p>" . $result['message'] . "</p>";
return;
}
return $result;
}
}
?>
Client
Um diese Klasse nutzen zu können wird ein Objekt der Klasse mit folgendem Code erstellt:
<?php
$name = "apiuser"; $password = "supersecretpassword";
$url = "https://www.shopdomain.de/api/rest/v1";
$api = new ServerspotAPI($url,$name,$password);
?>
Die komplette Kommunikation erfolgt in UTF8-Kodierung.
API Anfragen
Die API liefert in jeder Antwort einen Wert für result.
Bei einer korrekten Anfrage, ist result mit ok gesetzt, andernfalls mit error.
Sollte die Anfrage Fehlerhaft sein, so wird unter message ein Grund angegeben.
Beispiel:
(
[result] => error
[message] => No Category with ID 0
)
Kategorien
Alle Kategorien im Shop auslesen - als Liste
Alle Kategorien im Shop auslesen - als Kategoriebaum
Details einer Kategorie auslesen
Produkte
Alle Artikel einer Kategorie auslesen
Details eines Artikels auslesen
Liste der Varianten eines Produktes
Bestellungen
Alle Bestellungen eines Jahres auslesen
Alle Bestellungen eines Monats auslesen
Details einer Bestellung auslesen
Paketverfolgung setzen
<?php
$api->post("ordertracking/11681",array("delivery" => "DHL", "code" => "00340434174844484564"));
?>
Mögliche Werte für "delivery" sind:
* DHL
* POSTAT
* POSTCH
* DPD
* GLS
* HERMES
* UPS
* FEDEX
* CHARRY
Bestellung wird bearbeitet
Bestellung abschließen
Kunden
Alle Kunden auslesen
Alle Kunden einer Kundengruppe auslesen
Details eines Kunden auslesen