Du siehst Dir gerade den Artikel zu einer älteren Shopware Version an!

Flow Builder

Den Flow Builder findest Du unter Einstellungen > Shop. Er ermöglicht es Dir, Deine Geschäftsprozesse ohne Programmierkenntnisse zu automatisieren und einfach anzupassen, und ermöglicht es Dir, ereignisbasierte Aktionen auf eine ganz neue Ebene zu bringen. Mit dem Flow Builder kannst Du Ereignisauslöser mit Hilfe von Regeln noch weiter spezifizieren. So kannst Du je nach Ereignis beispielsweise den E-Mail-Versand automatisieren und sogar URL-Aufrufe oder Änderungen des Bestellstatus vornehmen lassen.

Unter dem Menüpunkt Einstellungen > Shop > Flowbuilder findest Du zunächst die Übersicht aller angelegten Business Flows. Neben der Angabe, ob ein Flow aktiv ist, wird Dir der Name und die Beschreibung jedes Flows angezeigt, sowie der Trigger, welcher den Geschäftsprozess auslöst.
Über das Kontextmenü auf der rechten Seite kannst Du die bestehenden Flows bearbeiten oder löschen.
Du kannst ihn aber auch bearbeiten, indem Du einfach auf den jeweiligen Namen klickst. 
Über den Button Flow hinzufügen in der rechten oberen Ecke kannst Du einen komplett neuen Flow erstellen und gelangst direkt in die Konfiguration dieses Flows. 
Wenn Du einen Flow bearbeitest oder einen neuen Anlegst stehen Dir die beiden Reiter Allgemein und Flow zur Verfügung. 

Allgemein

Im Reiter Allgemein kannst Du die allgemeinen Konfigurationen für den Flow festlegen. 
 


Name (1): Trage hier den Namen ein. Dieser wird zusammen mit der Beschreibung in der Übersicht benötigt um diesen Flow von anderen zu unterscheiden. 
Beschreibung (2): Trage hier eine aussagekräftige Beschreibung ein. Da diese Beschreibung auch in der Übersicht schon zu sehen ist, hilft sie Dir diesen Flow schnell von anderen zu unterscheiden. 
Priorität (3): Wenn Du mehrere Flows hast, die den selben Auslöser (Trigger) verwenden, kannst Du so angeben, welcher Flow zuerst abgearbeitet werden soll. 
Aktiv (4): Über diesen Schalter kannst Du den Flow zeitweise aktivieren oder deaktivieren. 

Flow

Im Reiter Flow findest Du den eigentlichen Flow Builder. Ein intuitiver aber umfangreicher Editor, mit dem Du ausgehend von einem Auslöser (Trigger) angeben kannst, welche Aktionen dadurch ausgelöst werden. Zusätzlich hast Du die Möglichkeit, für diese Aktionen Bedingungen zu definieren, unter denen die Aktionen ausgeführt werden sollen. 

Trigger

Mit dem Trigger beginnt jeder Flow. Dieser gibt an, wann der Flow ausgeführt wird. Gib hier an für welchen Auslöser Du einen Flow erstellen möchtest. 

Folgende Auslöser stehen Dir hier zur Verfügung:
 

EventDescriptionAktionen
checkout.customer.before.loginWird ausgelöst, sobald sich ein Kunde anmeldetkeine Aktion
checkout.customer.loginWird ausgelöst, sobald sich ein Kunde anmeldetTag hinzufügen/ entfernen
checkout.customer.logoutWird ausgelöst, sobald sich ein Kunde abmeldetTag hinzufügen/ entfernen
checkout.customer.deletedWird ausgelöst, sobald ein Kunde gelöscht wirdTag hinzufügen/ entfernen, E-Mail verschicken
user.recovery.requestWird ausgelöst, sobald ein Nutzer im Administrator eine Anfrage zur Passwortwiederherstellung startet.E-Mail verschicken
checkout.customer.changed-payment-methodWird ausgelöst, wenn ein Kunde seine Zahlungsart im Checkout Prozess ändert.Tag hinzufügen/ entfernen
checkout.order.placedWird ausgelöst, sobald eine Bestellung eines Kunden abgegeben wurde.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
checkout.order.payment_method.changedWird ausgelöst, wenn ein Kunde seine Zahlungsart im Checkout Prozess ändert.Keine Aktion
customer.recovery.requestWird ausgelöst, wenn ein Kunde eine Anfrage zur Passwortwiederherstellung sendet.Tag hinzufügen/ entfernen, E-Mail verschicken
checkout.customer.double_opt_in_registrationWird ausgelöst, wenn ein Kunde seine Registrierung per Double-Opt-In bestätigt.Tag hinzufügen/ entfernen, E-Mail verschicken
customer.group.registration.acceptedWird ausgelöst, wenn der Administrator einen Kunden akzeptiert, der sich als Mitglied einer Kundengruppe registriert.Tag hinzufügen/ entfernen, E-Mail verschicken
customer.group.registration.declined<Wird ausgelöst, wenn der Administrator einen Kunden ablehnt, der sich als Mitglied einer Kundengruppe registriert.Tag hinzufügen/ entfernen, E-Mail verschicken
checkout.customer.registerWird ausgelöst, wenn sich ein neuer Kunde registriert.Tag hinzufügen/ entfernen, E-Mail verschicken
checkout.customer.double_opt_in_guest_orderWird ausgelöst, sobald das Double-Opt-In in einer Gastbestellung akzeptiert wurde.Tag hinzufügen/ entfernen, E-Mail verschicken
checkout.customer.guest_registerWird ausgelöst, wenn sich ein neuer Kunde als Gast registriert.Tag hinzufügen/ entfernen, E-Mail verschicken
contact_form.send<Wird ausgelöst, sobald ein Kunde das Kontaktformular ausgefüllt udn abgeschickt hat. E-Mail verschicken
mail.after.create.messageWird ausgelöst wenn eine E-Mail erstellt wird.Keine Aktion
mail.before.sendWird vor dem Versand einer E-Mail ausgelöst. Keine Aktion
mail.sentWird ausgelöst, wenn eine E-Mail von Shopware gesendet wirdKeine Aktion
newsletter.confirmWird ausgelöst, wenn der Newsletter von einem Kunden bestätigt wurdeE-Mail verschicken
newsletter.registerWird ausgelöst, wenn der Kunde sich für den Newsletter eines Verkaufskanals angemeldet hatE-Mail verschicken
newsletter.unsubscribeWird ausgelöst, wenn sich ein Benutzer von einem Verkaufskanal-Newsletter abmeldetE-Mail verschicken
newsletter.updateWird aktuell nicht genutztE-Mail verschicken
product_export.logWird ausgelöst, wenn der Produktexport ausgeführt wirdKeine Aktion
state_enter.order_transaction.state.openWird ausgelöst, wenn der Zahlungsstatus den Status "Offen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.openWird ausgelöst, wenn der Zahlungsstatus den Status "Offen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.paidWird ausgelöst, wenn der Zahlungsstatus den Status "Bezahlt" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.paidWird ausgelöst, wenn der Zahlungsstatus den Status "Bezahlt" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
>state_enter.order_transaction.state.refunded_partiallyWird ausgelöst, wenn der Zahlungsstatus den Status "Teilweise erstattet" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.refunded_partiallyWird ausgelöst, wenn der Zahlungsstatus den Status "Teilweise erstattet" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.chargebackWird ausgelöst, wenn der Zahlungsstatus den Status "Rückbuchung" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.chargebackWird ausgelöst, wenn der Zahlungsstatus den Status "Rückbuchung" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.paid_partiallyWird ausgelöst, wenn der Zahlungsstatus den Status "Teilweise bezahlt" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.paid_partiallyWird ausgelöst, wenn der Zahlungsstatus den Status "Rückbuchung" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.failedWird ausgelöst, wenn der Zahlungsstatus den Status "Fehlgeschlagen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.failedWird ausgelöst, wenn der Zahlungsstatus den Status "Fehlgeschlagen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.reminded<Wird ausgelöst, wenn der Zahlungsstatus den Status "Erinnert" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.reminded<Wird ausgelöst, wenn der Zahlungsstatus den Status "Erinnert" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.authorizedWird ausgelöst, wenn der Zahlungsstatus den Status "Autorisiert" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.authorizedWird ausgelöst, wenn der Zahlungsstatus den Status "Autorisiert" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.cancelledWird ausgelöst, wenn der Zahlungsstatus den Status "Abgebrochen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.cancelledWird ausgelöst, wenn der Zahlungsstatus den Status "Abgebrochen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.refundedWird ausgelöst, wenn der Zahlungsstatus den Status "erstattet" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.refundedWird ausgelöst, wenn der Zahlungsstatus den Status "erstattet" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.in_progressWird ausgelöst, wenn der Zahlungsstatus den Status "in Bearbeitung" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.in_progressWird ausgelöst, wenn der Zahlungsstatus den Status "in Bearbeitung" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_delivery.state.returned_partiallyWird ausgelöst, wenn der Versandstatus den Status "Teilretour" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_delivery.state.returned_partiallyWird ausgelöst, wenn der Versandstatus den Status "Teilretour" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_delivery.state.returnedWird ausgelöst, wenn der Versandstatus den Status "Retour" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_delivery.state.returnedWird ausgelöst, wenn der Versandstatus den Status "Retour" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_delivery.state.cancelledWird ausgelöst, wenn der Versandstatus den Status "Abgebrochen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_delivery.state.cancelledWird ausgelöst, wenn der Versandstatus den Status "Abgebrochen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_delivery.state.openWird ausgelöst, wenn der Versandstatus den Status "Offen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_delivery.state.openWird ausgelöst, wenn der Versandstatus den Status "Offen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_delivery.state.shippedWird ausgelöst, wenn der Versandstatus den Status "Versandt" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_delivery.state.shippedWird ausgelöst, wenn der Versandstatus den Status "Versandt" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_delivery.state.shipped_partiallyWird ausgelöst, wenn der Versandstatus den Status "Teilweise versandt" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_delivery.state.shipped_partiallyWird ausgelöst, wenn der Versandstatus den Status "Teilweise versandt" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order.state.in_progressWird ausgelöst, wenn der Bestellstatus den Status "In Bearbeitung" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order.state.in_progressWird ausgelöst, wenn der Bestellstatus den Status "In Bearbeitung" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order.state.completedWird ausgelöst, wenn der Bestellstatus den Status "Abgeschlossen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order.state.completedWird ausgelöst, wenn der Bestellstatus den Status "Abgeschlossen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order.state.openWird ausgelöst, wenn der Bestellstatus den Status "Offen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order.state.openWird ausgelöst, wenn der Bestellstatus den Status "Offen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order.state.cancelledWird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order.state.cancelledWird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_enter.order_transaction.state.unconfirmedWird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" erhält.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
state_leave.order_transaction.state.unconfirmedWird ausgelöst, wenn der Bestellstatus den Status "Abgebrochen" verlässt.Tag hinzufügen / entfernen, E-Mail verschicken, Dokument erzeugen, Status setzen
**Notice: Stop flow action: Available for all events.  

Bedingung

Bedingungen werden verwendet, um den Ablauf des Flows zu verfeinern. Hierzu werden die Regeln aus dem Rule Builder verwendet oder direkt neue Regeln für diesen angelegt. Anhand dieser Regeln kann dann bestimmt werden, ob und welche Aktion ausgeführt wird. Für umfangreichere Flows können auch mehrere Bedingungen hintereinander abgefragt werden. Für umfangreichere Flows können auch mehrere Bedingungen hintereinander abgefragt werden.

Jede Bedingung hat zwei mögliche Ergebnisse. Wahr oder Falsch. Für jedes Ergebnis kannst Du weitere Bedingungen oder Aktionen festlegen die dann abgearbeitet werden sollen.

Aktion

Die Aktion wird ausgeführt, sobald der Trigger ausgelöst wurde und alle vorgeschalteten Bedingungen entsprechend erfüllt oder eben nicht erfüllt wurden.

Je nach Trigger, kann es sein, dass nicht alle Aktionen zur Verfügung stehen. So kann ein Tag beispielsweise nur dann hinzugefügt werden, wenn der Trigger eine Entität betrifft, an die standardmäßig ein Tag gehängt werden kann. 

Folgende Aktionen können je nach Trigger ausgewählt werden:
Tag hinzufügen / Tag entfernen:
Hier kannst Du eine Entität auswählen, welche vom Trigger betroffen ist und kannst an diese ein Tag hinzufügen lassen oder entfernen lassen. 


Dokument erzeugen:
Diese Aktion erzeugt ein neues Dokument in der aktuellen Bestellung. Im Dropdown Menü kannst Du festlegen, welcher Dokumententyp durch diese Aktion erzeugt werden soll. 


E-Mail verschicken:
Mit dieser Aktion kannst Du automatisiert E-Mails versenden lassen. In der Konfiguration wählst Du hierzu zunächst einen Empfänger aus. Das kann neben dem Administrator und dem Kunden auch eine oder mehrere festgelegte E-Mail Adressen sein. Als nächstes wählst Du ein E-Mail-Template aus, welches verschickt werden soll und gibst an, ob und welche Dokumente Du der Mail hinzufügen möchtest.


Status setzen:
Mit dieser Aktion kannst Du den Zahlungsstatus, den Versandstatus und den Bestellstatus der Bestellung ändern, die von dem Trigger betroffen ist. 

Einige Status besitzen eine Abhängigkeit untereinander und können erst ausgewählt werden, wenn die Bestellung bereits einen bestimmten Status besitzt.
Beispielsweise kann der Zahlungsstatus Erstattet, Teilweise erstattet oder Rückbuchung erst dann vergeben werden, wenn die Bestellung zuvor den Zahlungsstatus Bezahlt oder Teilweise bezahlt gehabt hat. Weitere Abhängigkeiten sind hier aufgeführt.


Flow anhalten:
Diese Aktion kannst Du im Flow Builder an jede Stelle einbinden, an der nichts weiter geschehen soll. Das kann beispielsweise dann der Fall sein, wenn nur bei einer wahren Bedingung eine Aktion ausgeführt werden soll. Wenn die Bedingung Falsch ist, setzt Du dann die Aktion Flow anhalten

Beispiele

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. 
 

Dokumente automatisch verschicken

In diesem Beispiel soll zu der Bestätigungs Mail 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. 

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

Webhook Actions im Flow Builder

Diese Erweiterung steht Dir ab dem Evolve Plan zur Verfügung. Sie erweitert den Flow Builder um weitere nützliche Funktionen.

Aktion: Call URL (Webhook)

Mit dieser Aktion kannst Du automatisiert eine Web URL aufrufen lassen und Parameter übergeben, sobald der Trigger ausgelöst wird. Ein WebHook ermöglicht es beispielsweise, einer Server-Software mitzuteilen, dass ein bestimmtes Ereignis, wie beispielsweise eine neue Bestellung, eingetreten ist. Dies kann eine Benachrichtigung sein oder eine Aufforderung an den Server, etwas mit der Information anzufangen. 

Allgemein


Methode (1): Generell werden 5 verschiedene Methoden eines Webhooks unterstützt. 

  • Get: Bei dieser Methode soll von einer entfernten Ressource eine Information eingeholt werden. 
  • POST: Diese Methode wird verwendet, um eine Information an eine entfernte Ressource zu übermitteln. 
  • PUT: Die PUT Methode ersetzt eine Information in der Zielressource durch eine Information der aktuellen Anfrage. 
  • PATCH: Diese Methode wird verwendet, um partielle Änderungen einer Information an der entfernten Ressource durchzuführen. 
  • DELETE: Mit dieser Methode kann an der Ziel Ressource eine bestimmte Information entfernt werde. 

URL (2): Die URL gibt an, an welches Ziel der Webhook geschickt werden soll.
Beschreibung (3): In der Beschreibung kannst Du den Zweck dieses Webhooks notieren, um ihn später korrekt einordnen zu können. 
Parameter (4): Je nach Ziel und Aufgabe des Webhooks kann es notwendig sein Parameter aus dem Shopsystem mit zu geben. Dies kannst Du über die Parameter tun. Gib dazu auf der linken Seite einen Parameternamen ein und wähle auf der Rechten Seite den Parameter aus, der über diesen Parameternamen an das Ziel übermittelt werden soll.
URL-Vorschau (5): Hier siehst Du eine Vorschau der URL inklusive der angegebenen Parameter, die mit ans Ziel übergeben werden. 

Header-Parameter
 


Einige Server, die Webhooks entgegennehmen, erwarten spezielle Header Parameter. Diese können hier hinterlegt werden.

Body
 

Einige Server, die Webhooks entgegennehmen, erwarten einen speziellen Body. Dieser kann entweder wie der Header in Form von Parametern erfolgen, die übergeben werden oder als Code. Slack greift beispielsweise darauf zurück um Parameter zu übergeben. Wie der Code dann auszusehen hat gibt in der Regel der Zielserver vor, an den der Webhook gesendet werden soll. Im Code kann auf die Shopware Variablen zugegriffen werden. 

Basic Auth
 

Falls das Ziel eine Authentifizierung erfordert, kann diese hier aktiviert werden und die notwendigen Zugangsdaten hinterlegt werden. 

War dieser Artikel hilfreich?