$wsAsse
In diesem Abschnitt werden die verfügbaren Variablen und Methoden des $wsAsse Moduls beschrieben, mit denen Sie asynchrone HTTP-Requests (Events) im Frontend auslösen können.
Mit dem $wsAsse - Modul können Sie vorkonfigurierte Events auslösen, die im Hintergrund HTTP-Requests an externe URLs senden.
Inhaltsverzeichnis
Voraussetzung
Bevor das $wsAsse im Template verwendet werden kann, muss mindestens ein Event in der Konfiguration angelegt sein. Ohne ein konfiguriertes Event stehen keine Funktionen zur Verfügung.
Die Konfiguration legt fest, welche URL aufgerufen wird, welche HTTP-Methode verwendet wird, wie oft bei Fehlern wiederholt wird und unter welchen Bedingungen ein Request als erfolgreich gilt.
Modulübersicht
Beispiel / Ausschnitt über $wsAsse
{{= $wsAsse | json }}
JSON-Ausgabe
{
"asseConfigs": [...],
"fire": "ƒ()"
}Anmerkung: ƒ() kennzeichnet eine Funktion.
Variablen und Methoden in der Übersicht
Name | Rückgabe-Typ | Beschreibung |
|---|---|---|
| array | Gibt eine Liste aller konfigurierten Events aus. |
| bool | Löst ein asynchrones Event aus, welches vorher konfiguriert werden muss. |
Variablen
$wsAsse.asseConfigs
Gibt eine Liste aller konfigurierten Events mit deren Einstellungen aus. Die Events müssen vorher in der Konfiguration angelegt werden.
{{= $wsAsse.asseConfigs }}Methoden
$wsAsse.fire()
Löst ein vorkonfiguriertes Event aus. Dabei wird im Hintergrund ein HTTP-Request an die in der Konfiguration hinterlegte URL gesendet. Über den zweiten Parameter können zusätzliche Daten für den aktuellen Vorgang übergeben werden. Diese werden je nach HTTP-Methode als Teil der URL oder als Request-Body mitgesendet.
Signatur$wsAsse.fire(eventId, data)
Rückgabebool - Gibt true zurück, wenn das Event erfolgreich ausgelöst wurde. Gibt false zurück, wenn es ein Problem mit der Konfiguration gibt.
Parameter
Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| string | ja | ID des Events, das ausgelöst werden soll. Muss einer gültigen ID aus der Konfiguration entsprechen. |
| string | nein | Zusätzliche Daten, die mit dem Request gesendet werden sollen. |
Beispiel, das ein vorkonfiguriertes Event “myevent” auslöst.
{{ var $myEventData = "userid=" + $wsAccount.id }}
{{ $wsAsse.fire('myevent', $myEventData) }}Hinweise:
Der Wert von
datawird nicht automatisch URL-kodiert. Falls nötig, muss die Kodierung manuell erfolgen.Wird eine Liste oder ein Objekt als
dataübergeben, wird der Wert automatisch in ein JSON-Objekt konvertiert.Ein Rückgabewert von
truebedeutet nicht, dass der HTTP-Request selbst erfolgreich war. Da ASSE Requests asynchron absendet, kann die tatsächliche Ausführung zeitversetzt erfolgen.
Beispiele
Awin-Tracking auf der Bestellbestätigungsseite auslösen
Ein häufiger Anwendungsfall für ASSE ist das Senden von Tracking-Daten an externe Dienstleister nach einer erfolgreichen Bestellung. Das folgende Beispiel zeigt, wie Awin-Tracking-Daten auf der Bestellbestätigungsseite über ein ASSE-Event an Awin übermittelt werden.
Dabei werden die relevanten Bestelldaten (z. B. Bestellnummer, Warenwert, Währung) aus $wsCheckout ausgelesen und als Parameter zusammengebaut.
{{ var $myEventData = "&merchant=12345" }}
{{ var $myEventData = $myEventData + "&amount=" + $wsCheckout.sum.totalNet }}
{{ var $myEventData = $myEventData + "&ch=aw" }}
{{ var $myEventData = $myEventData + "&parts=DEFAULT:" + $wsCheckout.sum.totalNet }}
{{ var $myEventData = $myEventData + "&vc=" + $wsVoucher.vouchers[0].id }}
{{ var $myEventData = $myEventData + "&cr=" + $wsCheckout.sum.currency }}
{{ var $myEventData = $myEventData + "&ref=" + $wsCheckout.orderId }}
{{ var $myEventData = $myEventData + "&testmode=0" }}
{{ $wsAsse.fire('awintracking', $myEventData) }}In der Konfiguration muss dafür ein Event mit der ID awintracking angelegt sein, das auf die Awin-Tracking-URL verweist.