Webhooks
Webhooks dienen dazu außerhalb vom Shop bestimmte Aktionen zu versenden. Die Formate der gesendeten Daten entsprechenden den Objekten der
REST API.
Webhook-Passwort
Du kannst optional ein Webhook Passwort festlegen. Ist ein Passwort gesetzt wird im Header eine Basic Authorization base64(username:password) gesendet. Der Username ist bei Webhooks apt-shop.
Damit kannst Du prüfen ob eingehende Request vom Shop kommen.
Hinweis: Bei Webhooks zu Bestellungen: Hier kannst Du über die REST APi eine eigene WebhookUrl und ein eigenes Webhookpasswort übergeben. Handelt sich um eine Dropshipper Bestellung wird als Username die DropshipperId gesendet.
Verfügbare Webhooks
| Bezeichnung | Aktion | Beschreibung |
| Kunde | Erstellung | sendet ein Customer Objekt bei Erstellung eines Kunden |
| Kunde | Aktualisierung | sendet ein Customer Objekt bei Änderung eines Kunden |
| Bestellung | Erstellung | sendet ein Orders Objekt bei Erstellung einer Bestellung |
| Bestellung | Statuswechsel | sendet ein Orders Objekt bei Änderung der Bestellstatusstufe |
| Bestellung | Löschung | sendet ein Orders Objekt bei Löschung der Bestellung |
| Newsletterempfänger | Erstellung | sendet ein NewsletterRecipients Objekt bei Erstellung einer Newsletteranmeldung |
Die Daten werden als POST Daten versendet. Folgend findest Du eine PHP Klasse die die Webhookdaten ausliest und zur Verfügung stellt:
Beispiel:
{ type:"customer", reason:"create", type:[Datenobject]}
Beispiel Webhookhandler Klasse (PHP)
//API Webhook-Handler class WebhookHandler{ private $post_data=array(); // Singleton Instance of the Class private static $instance; private function __construct() { $this->post_data = $this->cleanInputs(json_decode(file_get_contents("php://input"),true)); } /** * * @return WebhookManager */ public static function &getInstance() { if (! isset(self::$instance)) { $c = __CLASS__; self::$instance = new $c(); } return self::$instance; } // Permitt cloning of the Object public function __clone() { trigger_error('Clone for a Singleton is permitted.', E_USER_ERROR); } /** * * @return array */ public function getPostData() { return $this->post_data; } private function cleanInputs($data) { $clean_input = Array(); if (is_array($data)) { foreach ($data as $k => $v) { $clean_input[$k] = $this->cleanInputs($v); } } else { $clean_input = trim(strip_tags($data)); } return $clean_input; } }$data=WebhookHandler::getInstance()->getPostData();