Flow Builder - Beispielflows

In diesem Artikel erklären wir anhand von einigen Beispielflows verschiedene Einsatzmöglichkeiten des  Flow Builders.

Kunden

Neue Kunden mit einem Tag versehen

In diesem Beispiel sollen neue Kunden ein Tag erhalten, aus welchem Land diese kommen.
Hierzu wird der Trigger Checkout / Customer / Register gewählt, weil dieser auslöst, sobald sich ein Kunde registriert. Anschließend wird nach und nach überprüft, ob der Kunde aus den USA, aus Österreich oder aus der Schweiz kommt und ggf. wird dem Kunden ein entsprechendes Tag hinzugefügt. 
Kommt der Kunde aus keinem dieser Länder, wird kein Tag vergeben. 

Artikel nur einmal pro Kunde bestellbar

In diesem Beispiel soll ein ausgewählter Artikel nur einmal für den Kunden bestellbar sein. 
Hierfür muss zuerst eine Regel im Rule Builder erstellt werden, die erkennt, ob der betroffende Artikel bei der Bestellung im Warenkorb ist. Dies würde wie folgt aussehen:
Position im Warenkorb > ist eine von > gewünschte Artikel
Als nächstes erweiterst Du im Flow Builder den berest bestehenden Flow "Order placed" um eine Bedingung, bei der Du die oben angelegte Regel auswählst. Für den Fall, dass die Bedingung erfüllt wird, hinterlegst Du die Aktion "Tag zuweisen" und weist dem Kunden einen Tag mit beliebigen Namen zu.
Jetzt bekommt jeder Kunde, der diesen Artikel kauft den Tag zugewiesen. Mit der Erweiterung Dynamic Access kannst Du mit weiteren Regeln aus dem Rule Builder den Artikel für Kunden mit diesem ausblenden. Ohne Erweiterung wäre es möglich die Versandart zu deaktiveren, wenn Kunden mit diesem Tag den Artikel wieder zum Warenkorb hinzufügen.


Dokumente

Dokumente automatisch verschicken


In diesem Beispiel soll zu der Bestätigungsmail automatisch die Rechnung mit verschickt werden. Hierzu verwendest Du den Trigger Checkout / Order / Placed. Dieser Trigger wird ausgelöst, sobald eine Bestellung in Deinem Shop abgegeben wird. Als Erstes muss das Dokument, das automatisch verschickt werden soll erstellt werden. In diesem Beispiel erzeugst Du als Aktion wählst Du dann zunächst Dokument erzeugen und wählst als Dokumententyp, in unserem Fall Invoice
Im nächsten Schritt wird dieses Dokument nun der automatischen Benachrichtigung angehangen. Füge also unterhalb der Aktion Dokument erzeugen eine weitere Aktion E-Mail verschicken hinzu und wähle als Empfänger Standard, damit der Kunde die Mail erhält. Als E-Mail Template wählst Du Order confirmation, um eine Bestellbestätigung zu verschicken und wählst das gewünschte Dokument, das der E-Mail angehangen werden soll. 

Benachrichtigungen

Benachrichtige das Lager über eine bezahlte Bestellung

In diesem Beispiel schickst Du eine Mail an das Lager, sobald eine Bestellung bezahlt wurde, damit dieses die Ware verschicken kann. Im ersten Schritt wählst Du als Trigger State Enter / Order Transaction / State / Paid. Dieser Trigger wird ausgelöst, sobald sich der Zahlungsstatus auf Bezahlt ändert. 
Als Nächstes entscheidest Du, ob das Lager auch die Rechnung und/oder den Lieferschein des Kunden erhalten soll. In diesem Fall wählst Du als Aktion zunächst Dokument erzeugen und wählst das entsprechende Dokument aus. In unserem Beispiel schickst Du eine Rechnung mit und wählst daher Invoice. Als anschließende Aktion wählst Du E-Mail verschicken, damit eine E-Mail an das Lager geschickt werden kann.

In der Konfiguration der E-Mail verschicken Aktion wählst Du als Empfänger Eigener Empfänger. So kannst Du individuell eine E-Mail Adresse angeben, an die die E-Mail verschickt werden soll. Trage dann die E-Mail Adresse des Lagers oder des zuständigen Mitarbeiters ein. Als E-Mail-Template kannst Du ein beliebiges Template wählen oder auch selber eins anlegen für diese Standard E-Mail. In unserem Beispiel verschicken wir das Default Template für Enter payment state:Paid. Zuletzt wählst Du noch aus, welches Dokument mitgeschickt werden soll. In unserem Beispiel wird die Rechnung mitgeschickt. Du kannst aber auch mehrere Dokumente (z.B. Rechnung und Lieferschein) auswählen, die mit verschickt werden sollen.

Wichtig ist, dass die Dokumente, die mit verschickt werden sollen, im vorherigen Schritt automatisch erzeugt wurden. 

Benachrichtigung an eine externe Plattform (Slack)

In diesem Beispiel zeigen wir Dir, wie Du mit dem Flowbuilder eine Benachrichtigung an eine externe Plattform wie zum Beispiel Slack schickst. Für dieses Beispiel benötigst Du Erweiterung Flow Builder Professional for Shopware 6 welche Dir die Aktion Webhook mitliefert. 

Slack: 
Hierzu legst Du zunächst einen neuen Workflow in Slack an. Alle Informationen zu den Workflows in Slack und wie Du dort den Workflow Builder findest, findest Du hier.
Im Workflow Builder legst Du zunächst einen neuen Workflow an. Jeder Workflow benötigt einen Auslöser und mindestens eine Aktion, die in Slack Schritt heißt. Als Auslöser wählst Du Webhook aus, da wir diesen im Shopware Flow Builder nutzen werden. 

URL der Webanfrage (1): Hier wird die Zieladresse angezeigt, welche Du für den Webhook im Shopware Flowbuilder benötigst. Diese solltest Du Dir also abspeichern. Beim ersten Aufruf des Auslösers wird diese Adresse noch nicht angezeigt. Sie wird erst eingeblendet, sobald Du den kompletten Workflow fertig gestellt und veröffentlicht hast. 
Variablen (2): Wie Du die Variablen benennst ist eigentlich egal. In diesem Beispiel verwenden wir aber folgende:

  • orderURL: Hier werden wir die URL zu der Bestellung hinterlegen. 
  • orderPositions: Hier werden wir eine Auflistung aller Positionen aus der Bestellung hinterlegen. 
  • orderNumber: Hier werden wir die Bestellnummer der Bestellung hinterlegen
  • orderCustomerAdress: Hier werden wir die Kundenadresse hinterlegen. 

HTTP-Beispieltext (3): Diesen Beispieltext benötigen wir später im Shopware Flowbuilder um die Variablen mit dem Webhook zu übertragen. Diesen Text solltest Du Dir also auch abspeichern. 

Als Nächstes fügst Du zu dem Workflow einen Schritt hinzu, der ausgeführt werden soll, sobald der Auslöser greift. In unserem Beispiel wählen wir den Schritt Nachricht senden, um einem Benutzer oder einer Slack Gruppe eine Nachricht mit der neuen Bestellung zukommen zu lassen. 
 

Diese Nachricht senden an (1): Wähle hier die Benutzer oder die Slack Gruppe aus, an die die Nachricht geschickt werden soll.  
Nachrichtentext (2): Hier kannst Du den Nachrichtentext entwerfen. Um Deine zuvor angelegten Varianten hinzuzufügen klickst Du rechts unten auf Variable einfügen. In unserem Beispiel fügen wir eine Überschrift ein und lassen uns den Inhalt der Variablen ausgeben, welche wir später im Shopware Flowbuilder mit den Bestellinhalten füllen werden. 

Im Shopware Flow Builder
Im Shopware Flow Builder bearbeitest Du entweder den bestehenden Flow für eingehende Bestellungen oder legst Dir einen neuen an und wählst als Trigger Checkout / Order / Placed. Falls Du die Slack Nachricht beispielsweise nur für bereits bezahlte Bestellungen erstellen möchtest, kannst Du als Trigger auch State Enter / Order Transaction / State / Paid wählen.  
Wenn Du keine weiteren Bedingungen für das Erzeugen einer Slacknachricht angeben möchtest, wählst Du nun als Aktion URL aufrufen (Webhook).

Methode (1): Wähle hier die POST Methode, da wir Informationen an Slack übertragen wollen.
URL (2): Hier trägst Du die Ziel URL ein. Diese wurde in der Slack Konfiguration unter dem Punkt URL der Webanfrage erzeugt. 
Parameter (3): Da Slack die Parameter im Body erwartet kannst Du die Parameter hier noch leer lassen. 

Im Reiter Body wählst Du anschließend den BodyTyp: Raw aus und kopierst dort das HTTP-Beispiel aus Slack in den Code hinein. 


{ 
 "orderURL": "Beispieltext", 
 "orderPositions": "Beispieltext", 
 "orderNumber": "Beispieltext", 
 "orderCustomerAdress": "Beispieltext" 
}

Den Inhalt der Variablen ersetzt Du nun noch durch Shopware Variablen, die Du auch aus den E-Mail Vorlagen kennst. Für unser Beispiel würde der Code also so aussehen:


{    
 "orderURL": "http://doku1.test.shopware.in/admin#/sw/order/detail/{{ order.id }}",
 "orderPositions": "    
 {% for lineItem in order.LineItems %}
 {{ lineItem.payload.productNumber }} - {{ lineItem.label }}         

 {% endfor %}", 
 "orderNumber": "{{ order.orderNumber }}", 
 "orderCustomerAdress": "{% set billingAddress = order.addresses.get(order.billingAddressId) %} 
 {{ billingAddress.company }}  
 {{ billingAddress.firstName }} {{ billingAddress.lastName }}  
 {{ billingAddress.street }}  
 {{ billingAddress.zipcode }} {{ billingAddress.city }}  
 {{ billingAddress.country.translated.name }}" 
}

Nachdem Du diese Konfiguration so abgespeichert hast, sollte der Workflow korrekt eingebunden sein. Sobald nun eine Bestellung in Deinem Shop eingeht, wird automatisch in Slack eine Entsprechende Nachricht generiert.

War dieser Artikel hilfreich?