Ü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

1

Workflow erstellen

Erstelle einen neuen Workflow mit dem Namen M06-Lab-Order-Import.

2

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_1 und ARTIKEL_SKU_2 durch 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

1

Kunde suchen

  • Füge einen Xentral > customer.list-Knoten hinzu. Nenne ihn Find Customer.

  • Setze einen Filter, um nach der E-Mail zu suchen:

Expression:

email Equals {{$node["shop_order_input"].json["customer"]["email"]}}
2

Existenz prüfen

  • Füge einen If-Knoten hinzu. Prüfe, ob die Suche erfolglos war.

Bedingung:

{{$node["Find Customer"].json.length}} Equal 0
3

Kunde anlegen (falls nicht gefunden)

  • Im true-Pfad des If-Knotens, füge einen Xentral > customer.create-Knoten hinzu. Nenne ihn Create Customer.

  • Mappe die Felder name, vorname und email aus dem shop_order_input-Knoten.

4

Kunden-ID konsolidieren

  • Füge nach dem If-Block einen Set-Knoten hinzu. Nenne ihn Set 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

1

Auftragskopf anlegen

  • Füge einen Xentral > salesorder.create-Knoten hinzu. Nenne ihn Create Salesorder Header.

Wichtige Mappings:

  • kundenid: {{$node["Set Customer ID"].json.xentral_customer_id}}

  • Mappe außerdem die Adressfelder aus dem shipping-Objekt der Testdaten (Straße, PLZ, Stadt).

2

Durch Positionen loopen

  • Füge einen Loop over Items-Knoten hinzu.

Input:

{{$node["shop_order_input"].json.items}}
3

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

1

Workflow testen (Fall 1: Kunde existiert)

  • Stelle sicher, dass die E-Mail in den Testdaten einem existierenden Kunden entspricht.

  • Führe den Workflow aus.

Erwartetes Ergebnis: Der Workflow läuft durch. In Xentral wird ein neuer Auftrag für den bestehenden Kunden mit den zwei Positionen angelegt.

2

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?