Für Leute die nicht so gut mit SQL umgehen können habe ich mal folgenden WF gebaut. Ich meine das die Anweisungen verständlich sind und jeder seine eigenen Parameter eintragen kann.
Das ganze wird noch erweitert auf die Länder (grad in Arbeit) und mehrere verschiedene Artikel wo die höchsten Versandkosten genommen werden (da brauche ich wohl Hilfe).
Aber das Prinzip sollte so klar sein.
Der WF macht folgendes unter "Erweiterten Eigenschaften":
Wenn ein Auftrag erstellt wurde weist der WF die eigenen Versandkosten, mit den eigenen Preisen beim Dienstleister, zu ohne die von der Plattform gesendeten zu überschreiben.
Es wird abgefragt:
1. Welche Warengruppe hat der Auftrag
2. Kommt der Kunde aus Deutschland, der EU (ohne Deutschland), Europa (ohne EU) und Russland.
3. Wie viele gleiche Artikel kauft der Kunde
4. Wie hoch ist der Preis
Mit Punkt 3 bestimme ich z:B. wenn der Kunde mehr als 4 Artikel kauft dann nimm ein Paket statt eines Postbriefes.
Mit Punkt 4 bestimme ich z:B. wenn der Artikel mehr als z.B. 30,00 Euro kostet dann nimm ein Paket statt eines Postbriefes. Oder nimm versicherten Versand.
Am Ende jeder Bedingung (if, elsif) setze ich einen Begriff mit dem ich im
Workflow über Versandart ändern, unsere Versandart zuweise.
Das heißt wenn z.B. in der Erweiterten Eigenschaft eine Bedingung zutrifft die z.B. POST145 heißt dann ändere die Versandart auf "Postbrief 1,45 Euro".
Ganz am Ende kommt NIXALL (else) das heißt wenn keine Bedingung zutrifft dann halte den Auftrag zurück und ein Mitarbeiter kann den bearbeiten.
VERSION 2 für kürze Abarbeitungszeiten:
Da ich ja sowie so für jede unsere Versandarten einen WF anlegen muss, habe ich jeweils die Abfrage aufgeteilt, so das nicht mehr alle Möglichkeiten abgefragt werden müssen.
Hier der Beispielcode aus den Erweiterten Eigenschaften:
Code:
{% for Item in Vorgang.AuftragsPositionen.ArtikelPositionen %}\
{% if Vorgang.Lieferung.Lieferadresse.LandISO != 'RU' and Vorgang.Lieferung.Lieferadresse.LandISO != 'DE' %}{% assign landINT = true %}{% endif %}\
{% assign preis=Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart %}\
{% assign menge=Vorgang.AuftragsPositionen.Positionen.ErstesObjekt.Menge %}\
{% assign waren=Item.Artikel.Warengruppe.Name %}\
{% if waren == "Retentionmodul" and landINT =="true" and menge == 1 %}GB370
{% elsif waren == "SLI-Brücke" and landINT =="true" and menge == 1 %}GB370
{% elsif waren == "Zubehör Sets" and landINT =="true" and menge == 1 %}GB370
{% elsif waren == "Kabel / Adapter" and landDE =="true" and menge == 1 %}GB370
{% endif %}
{% endfor %}
Hier der Beispielcode aus den Erweiterten Eigenschaften:
Code:
{% if Vorgang.AuftragsPositionen.ArtikelPositionen.Anzahl == 1 %}
{% for Item in Vorgang.AuftragsPositionen.ArtikelPositionen %}
{% if Vorgang.Lieferung.Lieferadresse.LandISO == 'DE' %}{% assign landDE = true %}{% endif %}
{% if Vorgang.Lieferung.Lieferadresse.Land.IstEU == 'true' and Vorgang.Lieferung.Lieferadresse.LandISO != 'DE' %}{% assign landEU = true %}{% endif %}
{% if Vorgang.Lieferung.Lieferadresse.Land.Kontinent == 'Europa' and Vorgang.Lieferung.Lieferadresse.LandISO != 'DE' %}{% assign landEU_NONEU = true %}{% endif %}
{% if Vorgang.Lieferung.Lieferadresse.Land.Kontinent == 'Europa' and Vorgang.Lieferung.Lieferadresse.Land.IstEU != 'true' %}{% assign landNONEU = true %}{% endif %}
{% if Vorgang.Lieferung.Lieferadresse.LandISO == 'RU' %}{% assign landRU = true %}{% endif %}
{% assign preis=Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart %}
{% assign menge=Vorgang.AuftragsPositionen.Positionen.ErstesObjekt.Menge %}
{% assign waren=Item.Artikel.Warengruppe.Name %}
{% assign marke=Vorgang.AuftragsPositionen.Positionen.ErstesObjekt.Marke %}
{% comment %} Post 1,45 Euro {% endcomment %}
{% if waren == "MAC" and landDE =="true" and menge == 1 %}POST145
{% elsif waren == "Arbeitsspeicher (RAM)" and landDE =="true" and menge == 1 and preis <= 30,00 %}POST145
{% elsif waren == "Controller" and landDE =="true" and menge == 1 and preis <= 30,00 %}POST145
{% elsif waren == "Prozessor (CPU)" and marke == "Intel" and landDE =="true" and menge == 1 and preis <= 30,00 %}POST145
{% elsif waren == "Gehäuselüfter" and landDE =="true" and menge == 1 %}POST145
{% elsif waren == "Kabel / Adapter" and landDE =="true" and menge == 1 %}POST145
{% elsif waren == "Lüftersteuerung" and landDE =="true" and menge == 1 preis <= 10,00 %}POST145
{% elsif waren == "Blende" and landEU =="true" and menge == 1 %}POST145
{% elsif waren == "Zubehör Sets" and landEU =="true" and menge == 1 %}POST145
{% elsif waren == "Retentionmodul" and landDE =="true" and menge == 1 %}POST145
{% elsif waren == "SLI-Brücke" and landDE =="true" and menge == 1 %}POST145
{% elsif waren == "Soundkarte" and landDE =="true" and menge == 1 and preis <= 20,00 %}POST145
{% elsif waren == "TV-Karte" and landDE =="true" and menge == 1 and preis <= 20,00 %}POST145
{% comment %} Post 1,90 Euro {% endcomment %}
{% elsif waren == "Prozessor (CPU)" and marke != "Intel" and landDE =="true" and menge == 1 and preis <= 30,00 %}POST190
{% elsif waren == "Blende" and landDE =="true" and menge == 1 %}POST190
{% elsif waren == "Zubehör Sets" and landDE =="true" and menge == 1 %}POST190
{% comment %} Paket 5,00 Euro bis 1kg {% endcomment %}
{% elsif waren == "Arbeitsspeicher (RAM)" and landDE =="true" and menge == 1 and preis > 30,00 %}PAKET501
{% elsif waren == "Bundle" and landDE =="true" menge == 1 %}PAKET501
{% elsif waren == "Betriebssystem" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Controller" and landDE =="true" and menge == 1 and preis > 30,00 %}PAKET501
{% elsif waren == "CPU-Kühler" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Prozessor (CPU)" and landDE =="true" and menge == 1 and preis > 30,00 %}PAKET501
{% elsif waren == "Tastatur / Maus" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Festplatte" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Gehäuselüfter" and landDE =="true" and menge > 1 %}PAKET501
{% elsif waren == "Grafikkarte" and landDE =="true" and menge > 1 %}PAKET501
{% elsif waren == "Sonstige Kühler" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Laufwerk" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Lüftersteuerung" and landDE =="true" and menge == 1 preis > 10,00 %}PAKET501
{% elsif waren == "Mainboard" and landDE =="true"" and menge == 1 %}PAKET501
{% elsif waren == "Netzteil" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Software" and landDE =="true" and menge == 1 %}PAKET501
{% elsif waren == "Soundkarte" and landDE =="true" and menge == 1 and preis > 20,00 %}PAKET501
{% elsif waren == "TV-Karte" and landDE =="true" and menge == 1 and preis > 20,00 %}PAKET501
{% elsif waren == "CPU-Wasserkühlung" and landDE =="true" and menge == 1 %}PAKET501
{% comment %} Paket 10,00 Euro bis 10kg {% endcomment %}
{% elsif waren == "Gehäuse" and landDE =="true" and menge == 1 %}PAKET100
{% elsif waren == "Monitor" and landDE =="true" and menge == 1 %}PAKET100
{% elsif waren == "PC / Server" and landDE =="true" and menge == 1 %}PAKET100
{% elsif waren == "Bundle-PC" and landDE =="true" and menge == 1 %}PAKET100
{% elsif waren == "Komplett-PC´s" and landDE =="true" and menge == 1 %}PAKET100
{% elsif waren == "Komplett-PC" and landDE =="true" and menge == 1" %}PAKET100
{% else %}NIXALL
{% endif %}
{% endfor %}
{% endif %}
Im Workflow selber kann es dann so aussehen:
ACHTUNG: Hier hat JTL einen kleinen Fehler, sobald man Versandart ändern auswählt und man keinen Hacken rechts setzt, meldet JTL einen Fehler.
Das kann man umgehen in dem man einmal einen Hacken setzt und den wieder rausnimmt.