Über die ASSE-Schnittstelle (Asynchronous-Server-Side-Events) können beliebige Daten aus dem Shop asynchron per HTTPS an externe Systeme übermittelt werden (z. B. Newsletter-, Such- oder Tracking-Dienste). Die Übertragung erfolgt serverseitig (Shop-Server → Empfänger-Server) und unabhängig vom Client. Es gibt keinen klassischen API-Endpunkt, der von extern „aufgerufen“ wird. Stattdessen wird ein konfiguriertes Event im Shop ausgelöst, das einen asynchronen HTTP-Request an eine definierte Ziel-URL ausführt.Documentation Index
Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
Use this file to discover all available pages before exploring further.
Bereitstellung im Shop
Die ASSE-Schnittstelle ist standardmäßig Bestandteil jedes WEBSALE Shops und kann grundsätzlich genutzt werden. ODER ASSE muss im Shop (optional pro Subshop) freigeschaltet/aktiviert sein.Funktionsweise
- Die Übertragung erfolgt serverseitig vom Shop-Server an den Empfänger-Server (nicht vom Client/Brower aus)
- Die Kommunikation erfolgt ausschließlich per HTTPS
- Die Ausführung ist asynchron: das Auslösen blockiert den Shop-Prozess nicht, auch wenn das Zielsystem nicht reagiert
- Es können mehrere Events/Ziele konfiguriert werden
- Je Event kann die Übertragung per HTTP-Request mit unterschiedlicher Methode erfolgen (z. B. GET/POST/PUT)
Event-Konfiguration
Für die ASSE-Schnittstelle können beliebig viele Events konfiguriert werden. Jedes Event wird über eine Event-ID eindeutig adressiert (diese ID wird beim Auslösen verwendet). Die Konfiguration erfolgt über den Konfigurationsknoten general.asseVerwendung in Templates (Kurzüberblick)
In Templates steht das Modul $wsAsse zur Verfügung. Mit$wsAsse.fire(<eventId>, <data>) wird ein Event ausgelöst und ein asynchroner HTTP-Request anhand der hinterlegten Event-Konfiguration ausgeführt.
- Rückgabe:
true, wenn das Event erfolgreich getriggert wurde;falsebei Konfigurationsproblemen.truebedeutet dabei aber nicht, dass der Request bereits erfolgreich beim Empfänger angekommen ist (asynchron). datawird nicht URL-encoded (muss bei Bedarf manuell erfolgen)- Wenn eine Liste oder ein Objekt übergeben wird, wird es als JSON konvertiert
Konfigurierte Events auflisten (Event-IDs ermitteln)
Wenn die Event-ID nicht bekannt ist oder nicht in die Konfiguration geschaut werden soll.Event auslösen (fire)
Ein Event kann nur ausgelöst werden, wenn es zuvor in der Konfiguration general.asse angelegt wurde.Beispiel
- Es wird eine Payload aufgebaut:
userid=<ID des eingeloggten Users> - Es wird das konfigurierte Event
myeventausgelöst - Der Rückgabewert
truebedeutet nur: Event wurde getriggert – nicht, dass der HTTP-Request beim Ziel bereits erfolgreich war. $eventDatawird nicht automatisch URL-encoded (also z. B. Sonderzeichen/Leerzeichen bei Bedarf vorher selbst kodieren)- Je nach konfigurierter HTTP-Methode wird
$eventDataals Teil der URL (z. B. bei GET) oder als Request-Body (z. B. bei POST/PUT/PATCH) übertragen (laut Tickettext)
