Endpoint URI: http://api.oldthing.de/soap/soap08.php
WSDL URI: http://api.oldthing.de/soap/soap08.php?WSDL
PHP SOAP client download URI: http://api.oldthing.de/soap/soap08.php?PHPSOAPCLIENT
Soap Service
Result authenticate ( string apiKey )
Ermittelt das Token für eine Session zum Aufruf aller anderen Funktionen. Einen API-Schlüssel erhalten Sie nach Bewerbung bei oldthing. Ohne Authentifizierung (token) können nur die Funktionen "ping()" und "authenticate(apiKey)" aufgerufen werden.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
var_dump($token);
Result cancelOrder (
string token,
string orderId,
boolean resetArticles
)
Storniert eine Bestellung und versendet die entsprechenden Emails an den Kunden und Verkäufer.
void cancelOrderItem (
string token,
string orderId,
string articleId,
int count,
boolean resetArticle
)
Storniert einen Artikel innerhalb einer Bestellung.
Result deleteItem (
string token,
int id
)
Löscht ein Item (Produkt / Artikel) aus dem Bestand , welches über die interne id identifiziert wird. Diese Id wir z.B. über die Funktionen "getItem" und "getItems" zurückgegeben. Siehe auch "deleteItemBySku".
token kann mit der Funktion authenticate(apiKey) ermittelt werden.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
// insert item
$r = $c->deleteItem($token, 123456789);
if ($r->error) {
echo $r->message;
} else {
echo 'Item gelöscht';
}
Result deleteItemBySku (
string token,
string sku
)
Löscht ein Item (Produkt / Artikel) aus dem Bestand , welches über die Artikelnummer (SKU) des Shopbetreibers identifiziert wird. Siehe auch <i>deleteItem</i>.
token kann mit der Funktion authenticate(apiKey) ermittelt werden.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
// insert item
$r = $c->deleteItemBySku($token, 'mySku123');
if ($r->error) {
echo $r->message;
} else {
echo 'Item gelöscht';
}
Result getCategories (
string token,
int pid
)
Gibt die oldthing-Kategorien mit Namen und Id entsprechend ihrer Hirarchie zurück.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl'); $r = $c->authenticate('myApiKey'); $token = $r->data; $r = $c->getCategories($token, 0); if ($r->error) { echo $r->message; } else { $rootCats = $r->data; $r2 = $c->getCategories($token, $rootCats[0]->id); var_dump($r2->data); }
Result getItem (
string token,
int id
)
Gibt das Item (Produkt / Artikel) zurück, welches über die interne id identifiziert wird. Beim Einfügen von Items mittels setItem wird die Id des items zurückgegeben.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
// use setItem for inserting an item
// getting item with id 123456789
$r = $c->getItem($token, 123456789);
if (!$r->error) var_dump($r->data);
Result getItemBySku (
string token,
string sku
)
Gleiche Funktion wie "getItem", jedoch wird das Item über die Artikelnummer (SKU) des Shopbetreibers ermittelt.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
// use setItem for inserting an item
$r = $c->getItemBySku($token, 'mySku123');
if (!$r->error) var_dump($r->data);
Result getItemIds (
string token,
int offset,
int limit
)
Gibt alle Items (Produkte / Artikel) als array von Item-Objekten zurück, die lediglich die ID und SKU enthalten. Mit den optionalen Parametern "offset" und "limit" kann die Auswahl definiert werden.
Result getItems (
string token,
int offset,
int limit
)
Gibt alle Items (Produkte / Artikel) als array von Item-Objekten zurück. Mit den optionalen Parametern "offset" und "limit" kann die Auswahl definiert werden.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl'); $r = $c->authenticate('myApiKey'); $token = $r->data; // use setItem for inserting some items - otherwise the result may be an empty array $offset = 0; $r = $c->getItems($token, $offset, 10); while (!$r->error && (count($r->data) > 0)) { var_dump($r->data); if ($offset > 100) break; $offset += 10; $r = $c->getItems($token, $offset, 10); }
Result getOrder (
string token,
string orderId
)
Gibt die Bestellung mit Artikel ID zurück.
token kann mit der Funktion authenticate(apiKey) ermittelt werden.Für userType 'commerical' gibt es die Felder 'umstatzsteuerpflichtig', 'ust_id_nr', 'corporation_type' mit folgenden Werten:
"buyer": { "userType": "private", "email": "kaeufer@email.de", "billing": { "salutation": "Herr", "lastname": "Mustermann", "firstname": "Max", "street": "Musterstraße 2", "zip": "10967", "city": "Berlin", "address_additional": "Zweiter Hinterhof", "country": "Deutschland", "company": "Firmenname", "company_additional": "Firmenzusatz" }, "shipping": { "salutation": "Frau", "lastname": "Lisa", "firstname": "Musterfrau", "company": "Firmenname", "company_additional": "Firmenzusatz", "street": "Teststartße 92", "zip": "904098", "city": "Nürnberg", "address_additional": "Im Vorderhaus linker Aufgang", "country": "Deutschland" } }
"buyer": { "userType": commercial, "email": kaeufer@email.de, "corporation_type": "institution", "umstatzsteuerpflichtig": "1", "ust_id_nr": "DE123456789", "billing": { "company": Landesbibliothek Berlin, "company_additional": Niederlassung Berlin Süd, "street": Musterstraße 2, "zip": 10967, "city": Berlin, "address_additional": Zweiter Hinterhof, "country": Deutschland }, "shipping": { "company": Landesbibliothek Berlin, "company_additional": Niederlassung Berlin Nord, "street": Beispielstraße 2, "zip": 10485, "city": Berlin, "address_additional": Adresszusatz 1, "country": Deutschland }, "representative": { "salutation": Herr, "lastname": Mustermann, "firstname": Max } }
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
https://api.oldthing.de/soap/soap08.php?wsdl
$r = $c->authenticate('myApiKey');
$token = $r->data;
$result = $c->getOrder($token, $orderId);
if ($result->error) {
echo $result->message;
} else {
print_r($result);
}
/*
result:
stdClass Object
(
[code] => 0
[error] =>
[message] =>
[data] => Array
(
[id] => 36
[status] => demand_note
[payment] => 31.96
[payment_extra] => 0.00
[shipping] => 0.00
[created_at] => 2016-11-24 17:09:27
[upated_at] => 2016-11-24 17:09:27
[paymentMethod] => Array
(
[label] => Rechnung
[name] => default
)
[items] => Array
(
[0] => Array
(
[id] => 26575726
[sku] => 12345768
[quantity] => 1
)
)
[buyer] => Array
(
[billing] => Array
(
[salutation] => Herr
[lastname] => Mustermann
[firstname] => Dieter
[company] => Firmenname
[company_additional] => Zusatz zum Firmenname z.B. Inhaber
[street] => Teststr 11
[zip] => 10967
[city] => Teststadt
[additional] => Testzusatz
[country] => Deutschland
)
[shipping] => Array
(
[salutation] => Herr
[lastname] => Mustermann
[firstname] => Dieter
[company] => Testfirma
[company_additional] => Zusatz zum Firmenname z.B. Inhaber
[street] => Teststr 99
[zip] => 10968
[city] => Musterstadt
[additional] => Testzusatz
[country] => Deutschland
)
[email] => max@mustermann.de
[userType] => private
)
)
)
*/
Result getOrders (
string token,
string status,
string offset
)
Gibt die Orders des Members zurück
token kann mit der Funktion authenticate(apiKey) ermittelt werden.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
$result = $c->getOrders($token, 'new,payed');
if ($result->error) {
echo $result->message;
} else {
print_r($result);
}
/*
result:
object(stdClass)#2 (4) {
["code"]=>
int(0)
["error"]=>
bool(false)
["message"]=>
string(0) ""
["data"]=>
array(56) {
[0]=>
array(3) {
["id"]=>
string(3) "12534556"
["status"]=>
string(3) "new"
["date"]=>
string(19) "2016-12-07 20:21:07"
}
[1]=>
array(3) {
["id"]=>
string(3) "42746488"
["status"]=>
string(3) "new"
["created_at"]=>
string(19) "2017-01-04 12:02:23"
}
.
.
.
.
.
*/
Result ping ( )
Eine Testfunktion der API, so dass die Verbindung sichergestellt werden kann. Diese Funktion wird im laufenden Betrieb nicht benötigt.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->ping();
var_dump($r);
void sendPaymentRequest (
string token,
string orderId,
string notice
)
Schickt eine Zahlungsaufforderung / Zahlungserinnerung an den Käufer.
Result setItem (
string token,
array item
)
Fügt ein neues Item (Produkt / Artikel) ein oder aktualisiert ein bestehendes Item (update). Ein Update erfolgt, wenn eine id gesetzt ist oder ein Item mit gegebener SKU vorhanden ist. Ansonsten wird das Item neu angelegt und erhält eine neue interne id, die zurückgegeben wird.
token kann mit der Funktion authenticate(apiKey) ermittelt werden.$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl'); $r = $c->authenticate('myApiKey'); $token = $r->data; $item = array( 'title' => 'Kettenanhänger aus Pekannuss', 'category_id' => '2584', // oldthing category id - see also getCategories 'price' => '50.00', 'tax' => '19', 'shipping' => '5.00', 'payment_info' => '', 'shipping_info' => '', 'sku' => 'ANR-0004711', 'quantity' => '1', 'description' => 'Tolles Schmuckstück, tolles Schmuckstück, tolles Schmuckstück, tolles Schmuckstück, tolles Schmuckstück', 'condition' => 'Original in guter Qualität erhalten', 'image_urls' => array('http://meine.domain.com/images/item_00001_large.jpg', 'http://meine.domain.com/images/item_00002_large.jpg'), 'location_ref' => array('zip' => '53110', 'country' => 'DE', 'state' => 'NW', 'city' => 'Bonn', 'zip_old' => '5330', 'zip_old_eastwest' => 'W'), 'user_fields' => array('karat' => 42) ); // insert item $r = $c->setItem($token, $item); if ($r->error) { echo $r->message; } else { echo $r->data; // print the new id // update item $item['id'] = $r->data; // not necesary - sku should be fine to identify the item $item['price'] = '51.00'; $r = $c->setItem($token, $item); var_dump($r); }
Result setOrderStatus (
string token,
string orderId,
string status,
string carrier,
string tracking
)
Ändert den Status einer Bestellung und versendet die entsprechenden Emails an den Käufer und Verkäufer. ACHTUNG: Jeder Aufruf dieser Funktion versendet die entsprechenden Status Emails an den Kunden!
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl'); $r = $c->authenticate('myApiKey'); $token = $r->data; $orderId = 13253876; $result = $client->setOrderStatus($token, $orderId, 'sent', 'Dhl', 'https://tracking-link.de');
Result setSaleNotifierUri (
string token,
string uri
)
Setzt eine HTTP-Adresse, welche beim Kauf eines Produkts (Items) des Shops aufgerufen wird. Die gegebene URL wird nach Bestellungseingang über HTTP mit der POST-Methode aufgerufen (REST-Schnittstelle) wobei Bestelldaten und Details zum Artikel mitgesendet werden. Die URL wird dauerhaft gespeichert, so dass diese Funktion i.d.R. nur einmal aufgerufen werden muss.
Für den Webhook Aufruf gibt es zwei Versionen. Für Kunden mit Registrierung vor dem 01.12.2023 gilt Version 1. Alle Kunden mit späterer Registrierung arbeiten automatisch mit Version 2. Ein Umstieg von Version 1 auf Version 2 kann jederzeit durch unseren Kundendienst vorgenommen werden.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
$version = 2;
$c->setSaleNotifierUri($token, 'http://meine.domain.com/api/deleteItem.php', $version);
$r = $c->testSaleNotifierUri($token, $version);
var_dump($r);
{ "id": "123456789", "sku": "a1234", "title": "Teller mit Frauenportrait \"Sevres\", 19.Jhd.", "price": "11.50", "tax": "19", "shipping_price": "3.5", "order_shipping": "1.0", "order_date": "2023-11-21", "order_time": "16:42:34", "email": "max@mustermann.de", "userType": "private", "billing": { "salutation": "Herr", "lastname": "Mustermann", "firstname": "Max", "company": "InterMax", "company_additional": "2. Hinterhof", "street": "Hauptstra\u00dfe", "additional": "Raum 123", "zip": "12345", "city": "Entenhausen", "country": "DE" }, "shipping": { "salutation": "Herr", "lastname": "Mustermann", "firstname": "Max", "company": "InterMax", "company_additional": "3. Hinterhof", "street": "Nebenstra\u00dfe", "additional": "Raum 456", "zip": "10962", "city": "Beispielstadt", "country": "DE" } }
{ "id": "369011", "status": "demand_note", "payment": "9.99", "payment_extra": "0", "shipping": "3", "created_at": "2023-11-21 14:06:42", "updated_at": "2023-11-21 14:28:59", "carrier": "Zusteller Anbieter", "tracking": "trackme-1234567", "paymentMethod": { "label": "Rechnung", "name": "default" }, "items": [ { "id": "47432866", "sku": "12345", "quantity": "1", "title": "Titel Artikel" }, { "id": "47432866", "sku": "12346", "quantity": "2", "title": "Titel Artikel 2" } ], "buyer": { "userType": "private", "email": "kaeufer@email.de", "billing": { "salutation": "Herr", "lastname": "Mustermann", "firstname": "Max", "street": "Musterstraße 2", "zip": "10967", "city": "Berlin", "address_additional": "Zweiter Hinterhof", "company": "Firmenname", "company_additional": "Firmenzusatz" "country": "DE" }, "shipping": { "salutation": "Frau", "lastname": "Lisa", "firstname": "Musterfrau", "company": "Firmenname", "company_additional": "Firmenzusatz", "street": "Teststartße 92", "zip": "904098", "city": "Nürnberg", "address_additional": "Im Vorderhaus linker Aufgang", "country": "DE" } } }
{ "id": "369011", "status": "demand_note", "payment": "9.99", "payment_extra": "0", "shipping": "3", "created_at": "2023-11-21 14:06:42", "updated_at": "2023-11-21 14:28:59", "carrier": "Zusteller Anbieter", "tracking": "trackme-1234567", "paymentMethod": { "label": "Rechnung", "name": "default" }, "items": [ { "id": "47432866", "sku": "12345", "quantity": "1", "title": "Titel Artikel" }, { "id": "47432866", "sku": "12346", "quantity": "2", "title": "Titel Artikel 2" } ], "buyer": { "userType": "commercial", "email": "mustermann@example.com", "corporation_type": "institution", "umstatzsteuerpflichtig": "1", "ust_id_nr": "DE123456789", "billing": { "company": "Name des Unternehmens", "company_additional": "Name Zusatz", "street": "Musterstra\u00dfe 15", "zip": "10967", "city": "M\u00fcnchen", "address_additional": "Zweiter Hinterhof", "country": "DE" }, "shipping": { "company": "Name des Unternehmens Versand", "company_additional": "Name Zusatz Versand", "street": "Musterstra\u00dfe Versand 15", "zip": "90409", "city": "N\u00fcrnberg", "address_additional": "Adresszusatz Versand", "country": "DE" }, "representative": { "salutation": "Herr", "lastname": "Ansprechpartner Nachname", "firstname": "Max" } } }
Result testSaleNotifierUri (
string token,
int version,
string userType
)
Testfunktion: Ruft die vorher gesetzte Webhook URL (siehe setSaleNotifierUri) einmalig auf, so dass die Verarbeitung eines Verkaufs auf oldthing getestet werden kann. Die URL wird mittels HTTP-POST aufgerufen. Dabei werden Bestelldaten übergeben, die z.B. in einem PHP-Skript über das $_POST array entgegengenommen werden können.
Durch die Parameter $version ('1' oder '2') und $userType ('private' oder 'commerical') können Sie die für Sie zutreffende Version mit den beiden Nutzertypen testen.
$c = new SoapClient('https://api.oldthing.de/soap/soap08.php?wsdl');
$r = $c->authenticate('myApiKey');
$token = $r->data;
$version = 2;
$userType = 'commercial';
$c->setSaleNotifierUri($token, 'http://meine.domain.com/api/deleteItem.php', $version, $userType);
$r = $c->testSaleNotifierUri($token, $version);
var_dump($r);
Powered by PhpWsdl