Erweiterte Eigenschaften: Gesamtsummen individuell berechnen
In unseren Workflow-Tutorials zeigen wir Ihnen Schritt für Schritt, welche Einstellungen Sie in JTL-Wawi vornehmen müssen, um definierte Arbeitsabläufe zielgerichtet in einem Workflow zu automatisieren. Ausgesuchte, praxisnahe Beispiele helfen Ihnen dabei, die Einrichtung der Workflows nachzuvollziehen und nachzustellen. Möglicherweise können oder wollen Sie den ein oder anderen Workflow in ähnlicher Form auch für Ihr Tagesgeschäft unmittelbar einsetzen. Grundlegende Erläuterungen zu den jeweiligen Eingabefeldern und Funktionsmöglichkeiten erhalten Sie in unserer Dokumentation: Zur Workflow-Verwaltung.
Ihre Aufgabe/Ausgangslage
Schritt 1: Ereignisbereich wählen
Öffnen Sie in JTL-Wawi die Workflow-Verwaltung über das Menü Admin > Automatisierung: JTL-Workflows. Wählen Sie dann in der Ereignisbereichsleiste die Schaltfläche Aufträge.
Schritt 2: Workflow anlegen
- Wählen Sie das Ereignis, für das Sie den Workflow anlegen möchten, z. B. Auftrag > Erstellt und klicken Sie auf die Schaltfläche Workflow anlegen.
- Geben Sie dem Workflow einen Namen Gesamtsummen berechnen.
Schritt 3: Bedingung anlegen
- Klicken Sie im Fensterbereich Bedingungen auf Neue Bedingung.
- Klicken Sie auf das linke Dropdown-Menü und klicken Sie dort auf das Feld Erweiterte Eigenschaften verwalten.
Es öffnet sich das Dialogfenster Erweiterte Eigenschaften. In diesem Fenster können Sie Ihre eigenen DotLiquid Scripte einfügen.
- Wählen Sie in der Baumstruktur Auftrag und klicken Sie auf die Schaltfläche Hinzufügen.
- Geben Sie Ihrer Eigenschaft einen Namen. In unserem Fall Gesamtsummen berechnen.
- Klicken Sie auf die Textbox in der Mitte und kopieren Sie hier Ihren Code rein und sichern Sie Ihren Fortschritt mit einem klick auf die Schaltfläche OK.
- Öffnen Sie erneut die Erweiterten Eigenschaften.
- Wählen Sie Ihre Eigenschaft Gesamtsumme berechnen aus.
- Klicken Sie auf Vorschau (Text) um sich Ihr Ergebnis anzeigen zu lassen.
Beispiele für DotLiquid Scripts
In einigen Listen, welche in DotLiquid zur Verfügung stehen, gibt es bereits Listen Eigenschaften, welche die Gesamtsummer einzelner Eigenschaften der Listeneinträge berechnen. In den Aufträgen hat man da z.B.
{{ Vorgang.AuftragsPositionen.BruttopreisGesamt }}
Möchte man z. B. nur den Gesamtbruttopreis der Artikelpositionen berechnen, ohne Versandpositionen, Gutscheine usw. müsste man sich bei der Liste Vorgang.AuftragsPositionen den Gesamtpreis manuell per DotLiquid Skript berechnen.
For-Schleife mit If-Abfrage
- Öffnen Sie die Erweiterten Eigenschaften wie es vorher beschrieben wurde.
- Definieren Sie sich eine Variable zum aufaddieren des Gesamtpreises.
{% assign BruttopreisGesamt = 0.0 -%}
- Als nächstes geht man mit einer For-Schleife über alle Positionen und addiert den BruttopreisGesamt der Position zu der Variable.
{% assign BruttopreisGesamt = 0.0 -%}
{% for Position in Vorgang.AuftragsPositionen -%}
{% assign BruttopreisGesamt = BruttopreisGesamt | Plus : Position.BruttopreisGesamt -%}
{% endfor -%}
{{ BruttopreisGesamt }}
Nun wollen wir aber nicht alle Positionen addieren, sondern nur die Artikelpositionen. Als Eigenschaft wird Positionstyp genommen. Dies ist eine Interne ID für die Art der Position. Die Artikelpositionen und deren IDs sind in der folgenden Tabelle aufgeführt.
Positionstyp
ID
Freiposition
0
Artikel
1
Versandposition
2
Coupon
3
Gutschein
4
Zahlungsart
5
Versandzuschlag
6
Neukundencoupon
7
Nachnahmegebühr
8
Versandzuschlag Artikel
9
Geschenkverpackung
10
Gratisgeschenk
11
Trusted Shops
12
Zinsaufschlag
13
Bearbeitungsgebühr
14
Kartonage
15
Retoure
16
Mehrzweckgutschein
17
Mehrzweckgutschein Digital
18
Einzweckgutschein
19
Einzweckgutschein Digital
20
Einzweckgutschein Einlösung
21
- Mit Hilfe einer if-Abfrage können Sie diesen Wert nun filtern.
{% assign BruttopreisGesamt = 0.0 -%}
{% for Position in Vorgang.AuftragsPositionen -%}
{% if Position.Positionstyp == 1 -%}
{% assign BruttopreisGesamt = BruttopreisGesamt | Plus : Position.BruttopreisGesamt -%}
{% endif -%}
{% endfor -%}
{{ BruttopreisGesamt }}
For-Schleife mit Where-Filter
- Öffnen Sie die Erweiterten Eigenschaften wie es vorher beschrieben wurde.
- Definieren Sie sich eine Variable zum aufaddieren des Gesamtpreises.
{% assign BruttopreisGesamt = 0.0 -%}
Mit Hilfe des Where-Filter können Sie Ihre Liste filtern. Dazu geben Sie den Namen der Eigenschaft an und den Wert auf den Sie filtern möchten. Dadurch erzeugen Sie eine neue Liste mit den Einträgen, deren Eigenschaften Ihrem gefilterten Wert entsprechen. Diese Liste können Sie mit einer For-Schleife durchlaufen um die Summer zu berechnen.
{% assign BruttopreisGesamt = 0.0 -%}
{% assign Positionen = Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 1 -%}
{% for Position in Positionen -%}
{% assign BruttopreisGesamt = BruttopreisGesamt | Plus : Position.BruttopreisGesamt -%}
{% endfor -%}
{{ BruttopreisGesamt }}
Sum-Filter auf Listen anwenden
- Öffnen Sie die Erweiterten Eigenschaften wie es vorher beschrieben wurde.
- Kopieren Sie das Script in Ihre Erweiterten Eigenschaften und ändern Sie Ihre Variable nach Bedarf.
{{ Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 1 | Sum : 'BruttopreisGesamt'}}
Weitere Anwendungsbeispiele
Gesamtgewicht aller Artikel-Positionen ohne Stücklisten-Väter
{{ Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 1 | Where : 'IstStücklistenVater' : 'False' | Sum : 'GewichtGesamt' }}
Nettopreis Gesamt aller Freipositionen
{{ Vorgang.AuftragsPositionen | Where : 'Positionstyp' : 0 | Sum : 'NettopreisGesamt' }}
DotLiquid bringt einige Filter bereits von Haus aus mit, JTL hat diese um zusätzliche Filter ergänzt. Der erste Parameter des Output-Platzhalters ist stets die Variable für die Ausgabe, im Anschluss folgen durch einen Balken (Pipe) getrennt und immer linksseitig die zu verwendenden Filter. Das Ergebnis des ersten Filters ist gleichzeitig die Ausgabe für einen darauf folgenden Filter. Mehrere Filter können entsprechend verschachtelt werden und von links nach rechts abgearbeitet. Nach dem letzten Filter resultiert das Ergebnis in eine Textausgabe (String).
Video
In diesem Video zeigen wir Ihnen, wie Sie Dotliquid-Code einrücken können und somit eine bessere Übersicht erhalten.