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
Sie können optional ein Webhook Passwort festlegen, welches im Header mit gesendet wird. Damit können Sie prüfen ob eingehende Request vom Shop kommen.
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 |
Produkt/Artikel | Bestandsänderung | sendet ein ProductsStock Objekt bei Änderung des Bestandes (kaufbaren Bestandes) |
Newsletterempfänger | Erstellung | sendet ein NewsletterRecipients Objekt bei Erstellung einer Newsletteranmeldung |
Die Daten werden als POST Daten versendet. Folgend finden Sie eine PHP Klasse die die Webhookdaten ausliest und zur Verfügung stellt:
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();