Übung 06
Ziel: In diesem Lab baust du den Kern eines vollautomatischen Bestell-Import-Workflows. Du implementierst die Logik für den Customer-Lookup, das Anlegen des Auftragskopfes und das Hinzufügen der Auftragspositionen in einer Schleife. Dies ist das bisher umfassendste Lab und testet dein Verständnis aller vorherigen Module.
Voraussetzungen:
Eine funktionierende Xentral Connect Instanz, die mit einer Xentral Demoinstanz verbunden ist.
Mindestens ein Kunde und zwei Artikel in deiner Xentral Demoinstanz.
Szenario
Ein Webshop sendet bei jeder neuen Bestellung ein JSON-Objekt an einen Webhook. Du sollst dieses JSON verarbeiten und die Bestellung korrekt in Xentral anlegen. Dabei musst du Kunden-Duplikate vermeiden und alle Bestellpositionen korrekt zuordnen.
Teil 1: Der Workflow-Rumpf und die Testdaten
Testdaten definieren
Da wir keinen echten Webshop haben, simulieren wir den Input mit einem Set-Knoten. Nenne ihn shop_order_input.
Kopiere das folgende JSON. WICHTIG:
Ersetze
[email protected]durch die E-Mail eines Kunden, der in deiner Xentral-Instanz existiert.Ersetze
ARTIKEL_SKU_1undARTIKEL_SKU_2durch die echten Artikelnummern von zwei verschiedenen Artikeln aus deiner Xentral-Instanz.
{
"order_id": "SHOP-1001",
"customer": {
"email": "[email protected]",
"firstname": "Erika",
"lastname": "Mustermann"
},
"shipping": {
"street": "Testweg 10",
"zip": "54321",
"city": "Testingen"
},
"items": [
{
"sku": "ARTIKEL_SKU_1",
"quantity": 1,
"price_per_unit": 99.90
},
{
"sku": "ARTIKEL_SKU_2",
"quantity": 3,
"price_per_unit": 12.50
}
]
}Teil 2: Der Customer-Lookup
Kunden-ID konsolidieren
Füge nach dem
If-Block einenSet-Knoten hinzu. Nenne ihnSet Customer ID.Ziel ist es, die ID des Kunden in einer Variable zu haben, egal ob er gefunden oder neu erstellt wurde.
Name der Variable: xentral_customer_id
Wert (Expression):
{{ $node["If"].json["true"] ? $node["Create Customer"].json.id : $node["Find Customer"].json[0].id }}(Hinweis: Diese Expression nutzt den ternären Operator: Bedingung ? Wert_wenn_wahr : Wert_wenn_falsch)
Teil 3: Auftrag und Positionen erstellen
Positionen zum Auftrag hinzufügen
Innerhalb der Schleife, füge einen
Xentral > salesorder.add_item-Knoten hinzu.
Mappings:
id(Auftrags-ID):{{$node["Create Salesorder Header"].json.id}}artikel(Artikelnummer):{{$node["Loop"].context.value.sku}}menge:{{$node["Loop"].context.value.quantity}}preis:{{$node["Loop"].context.value.price_per_unit}}
Teil 4: Testen und Validieren
Workflow testen (Fall 2: Kunde ist neu)
Ändere die E-Mail in den Testdaten zu einer, die nicht in Xentral existiert (z. B.
[email protected]).Führe den Workflow erneut aus.
Erwartetes Ergebnis: Der Workflow läuft durch. In Xentral wird zuerst ein neuer Kunde und dann ein neuer Auftrag für diesen Kunden mit den zwei Positionen angelegt.
Musterlösung (Mermaid-Diagramm)
Glückwunsch! Du hast einen der komplexesten und wichtigsten E-Commerce-Workflows erfolgreich implementiert und getestet.
Was this helpful?
