Skip to main content

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.

Ü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.

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.asse

Verwendung 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; false bei Konfigurationsproblemen. true bedeutet dabei aber nicht, dass der Request bereits erfolgreich beim Empfänger angekommen ist (asynchron).
  • data wird 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.
{{
  foreach $event in $wsAsse.asseConfigs:
    print $event.id;
  /foreach
}}

Event auslösen (fire)

Ein Event kann nur ausgelöst werden, wenn es zuvor in der Konfiguration general.asse angelegt wurde.

Beispiel

{{
  var $eventData = "userid=" + $userAccount.id;
  var $triggered = $wsAsse.fire("myevent", $eventData);
}}
  • Es wird eine Payload aufgebaut: userid=<ID des eingeloggten Users>
  • Es wird das konfigurierte Event myevent ausgelöst
  • Der Rückgabewert true bedeutet nur: Event wurde getriggert – nicht, dass der HTTP-Request beim Ziel bereits erfolgreich war.
  • $eventData wird nicht automatisch URL-encoded (also z. B. Sonderzeichen/Leerzeichen bei Bedarf vorher selbst kodieren)
  • Je nach konfigurierter HTTP-Methode wird $eventData als Teil der URL (z. B. bei GET) oder als Request-Body (z. B. bei POST/PUT/PATCH) übertragen (laut Tickettext)
Mehr Informationen finden Sie in der Modul-Referenz $wsAsse.

Erfolgskriterien, Wiederholungen und Timeouts

Da die Übertragung asynchron erfolgt, sind Übertragungsfehler nicht zwingend unmittelbar im Shop sichtbar. Damit die Zustellung als „erfolgreich“ gilt, können Prüfmechanismen / Bedingungen definiert werden (z. B. HTTP-Statuscode, Content-Type oder Response-Inhalte). Wenn Bedingungen nicht erfüllt sind, werden – abhängig von der Konfiguration – Wiederholungsversuche mit Delay und Timeout ausgeführt.

Logmanager

Inhalt folgt.