Webhooks

Webhooks dienen dazu außerhalb vom Shop bestimmte Aktionen zu versenden. Die Formate der gesendeten Daten entsprechenden den Objekten der REST API.


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