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

# ASSE-Schnittstelle (Server-Side-Events)

> Asynchrone Server-Side-Events (ASSE) im WEBSALE Shop konfigurieren und auslösen, um Daten per HTTPS an externe Systeme zu übermitteln.

Ü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](https://websaleag-44ee7ea6.mintlify.app/konfiguration/general-allgemeine-shopeinstellungen#4-general-asse-schnittstelle-für-asynchronous-server-side-events-asse)

***

## Verwendung in Templates (Kurzüberblick)

In Templates steht das Modul [\$wsAsse](/frontend/referenz/module/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.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{
  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](https://websaleag-44ee7ea6.mintlify.app/konfiguration/general-allgemeine-shopeinstellungen#4-general-asse-schnittstelle-für-asynchronous-server-side-events-asse) angelegt wurde.

#### Beispiel

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{
  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](/frontend/referenz/module/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.


## Related topics

- [Schnittstellen](/schnittstellen.md)
- [general - Allgemeine Shopeinstellungen](/konfiguration/general-allgemeine-shopeinstellungen.md)
- [$wsAsse - Asynchrone HTTP-Events (ASSE)](/frontend/referenz/module/wsasse.md)
- [Glossar: Fachbegriffe der WEBSALE-Dokumentation](/glossar.md)
- [API-Referenz Log Manager](/schnittstellen/admin-interface-api/api-referenz-log-manager.md)
