In Diskussion Workflow für Kleinpaket anhand eigener "Volumenzahl"

pannscheck

Sehr aktives Mitglied
1. Mai 2009
271
76
Hallo,

Wir möchten jedem Artikel eine "Volumenzahl" anhand seiner Größe hinterlegen.

z.B.
  • Ein Artikel passt in Kleinpaket = Volumenzahl "100"
  • Vom Artikel passen 2 Stück in Kleinpaket = Volumenzahl "50"
  • Vom Artikel passen 6 Stück ins Kleinpaket = Volumenzahl "15"
  • Vom Artikel passen 10 Stück ins Kleinpaket = Volumenzahl "10"
  • Artikel ist zu groß = Volumenzahl "111"

Ein Workflow soll nun bei ankommenden Aufträgen alle Volumenzahlen zusammenzählen.
Pakete bis einschließlich Volumenzahl "100" sind ein Kleinpaket. Alle darüber nicht mehr.
Nutzen würden wir für diese Zahl gerne das Feld "ISBN" (da nicht benötigt) oder auch ein "Eigenes Feld" beim Artikel.

Meine Frage:
Wie bekomme ich eine Formel, die alle "Volumenzahlen" eines Auftrages zusammenrechnet?
(Leider kann man unter Aufträge-Workflows scheinbar nicht auf ISBN oder Eigene Felder zugreifen und daher nicht mit diesen rechnen.)

Danke vorab, Pannscheck
 
Zuletzt bearbeitet:

Steffen80

Sehr aktives Mitglied
27. August 2012
427
91
Ich würde ein Eigenes Feld nehmen

Schleife über alle Auftragspositionen und damit im Auftrag wieder ein Eigenes Feld füllen welches dann deine Volumezahl enthält
For Anzahl in Auftragspositionen

Variablen ISBN und Eigene Felder sind da:

Vorgang.AuftragsPositionen.Positionen.[?ForLoopIndex?].Artikel.EigeneFelder.?Feldgruppe?.?Feldname?

Als Anregung
 

pannscheck

Sehr aktives Mitglied
1. Mai 2009
271
76
Hallo,

wer auch die Versandart auf Kleinpaket nachträglich automatisch ändern möchte, hier unsere Lösung mit einer "Volumenzahl".
(Läuft bei uns seit einigen Wochen problemlos mit Wawi 1.9.7)

1. Volumenzahl hinterlegen
Wir haben bei jedem Artikel eine "Volumenzahl" hinterlegt. Bei der Zahl "100" wäre das Kleinpaket zu 100% voll.
(Wir nutzen das Feld ISBN beim Artikel, da wir es ansonsten nicht benötigen. Es wäre aber auch ein eigenes Feld möglich.)
  • Ein Artikel passt in Kleinpaket = Volumenzahl "100"
  • Vom Artikel passen 2 Stück in Kleinpaket = Volumenzahl "50"
  • Vom Artikel passen 6 Stück ins Kleinpaket = Volumenzahl "15"
  • Vom Artikel passen 10 Stück ins Kleinpaket = Volumenzahl "10"
  • Artikel ist zu groß = Volumenzahl "111" (oder auch leer lassen)
Gemischt sollte es auch passen:
1x "50" und 3 x "15" passen (da Volumenzahl "95")
3 x "15" und 6 x "10" sind zu gross (da "105")

2. Workflow "DHL Kleinpaket" erstellen (Regeln siehe Screenshot unten):
unter Aufträge -> Auftrag -> Erstellt ->

Bedingungen:
1. Keine FBA Auftrage ändern. Wir erkennen diese an der Anmerkung. Eventuell kann man auch noch andere Aufträge rausfiltern die nicht als Kleinpakt raus sollen.
2. Gesamtgewicht. Wir nehmen unter 900g Gesamtgewicht als Sicherheit (Erlaubt sind 1kg)
3. Gesamtpreis. Kleinpakete sind schlecht versichert. Bei hohen Werten besser als normales Paket versenden.
4. Nur DE. Kleinpakt nur innerhalb Deutschland erlauben.
5. Versandart DHL. Wenn ein Kunde im Shop etwas anderes als DHL (z.B. DPD, GLS, Selbstabholer, ...) gewählt hat, soll nicht als DHL Kleinpaket gewandelt werden.
6. "Script Kleinpaket" prüft das Gesamtvolumen (Script siehe unten)
Aktionen:
A: Versandart wird auf "Kleinpaket" geändert
B: Wir schreiben bei den Anmerkungen die im Script errechnete Volumenzahl noch hinzu, z.B: "VZ = 90". (Ist nur zur Eigenkontrolle und wird eigentlich nicht benötigt)


kleinpaket.png


3. Script erstellen
Das Script erstellt ihr im Workflow bei den Bedingungen unter "Erweitere Eigenschaften".
Es rechnet die Volumenzahl (VZ) aus und bringt das Ergebnis "Kleinpaket" wenn die VZ kleiner als 101 ist.

Code:
{% comment %}
Berechnet die Volumenzahl aus der ISBN. Wenn VZ größer als "100", ist es kein Kleinpaket mehr.
Wenn eine ISBN nicht eingetragen ist, wird VZ auf + 1000 gesetzt. Zu Sicherheit ist es dann kein Kleinpaket.
{% endcomment %}
{% assign VZ = 0.0 -%}
{% assign AZ = 0.0 -%}
{% assign VZPOSITION = 0.0 -%}
{% for Volumen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% if Volumen.Artikel.ISBN < "0" .or. Volumen.Artikel.ISBN > "1000" -%}
{% assign VZ = VZ | Plus:  1000 -%}
{% else -%}
{% assign VZPOSITION = Volumen.Artikel.ISBN | Times: Volumen.Menge -%}
{% assign VZ = VZ | Plus:  VZPOSITION -%}
{% endif -%}
{% endfor -%}
Vol.zahl: {{ VZ }},
{% if VZ > 0 and VZ < 101 %}Kleinpaket{% else %}zu gross{% endif %}




Es ist ein wenig Arbeit bei allen Artikeln (zumindest bei denen, die für ein Kleinpakt geeignet wären) eine Volumenzahl unter ISBN zu hinterlegen.
Die kann per Hand, Workflow oder "Artikel/Stammdaten" kopieren/einfügen geschehen.

Für uns war diese eigene Idee aber bisher die beste Lösung, da das Ausrechnen mit den Maßen (B, H, T), wie es im Forum auch vorgeschlagen wurde sehr oft nicht passt.
Gerne ausprobieren. Ich freue mich auf eure Diskussion.

Gruss, Pannscheck
 

Wumse

Mitglied
7. Juli 2023
45
20
Würde bei uns niemals funktionieren. Nur, weil von einem Artikel 2 Stück in ein Kleinpaket passen, heißt das ja noch lange nicht, dass dieser Artikel auch zusammen mit anderen Artikeln in Kombination in ein Kleinpaket passen würde. Nur bei Artikelreinen Bestellungen würde dein Skript bei uns funktionieren.
 

Steffen80

Sehr aktives Mitglied
27. August 2012
427
91
Ansatz ist gut. Ich würde die Daten aber direkt beim Artikel pflegen, Felder sind ja vorhanden.
Sprich Maße und Gewicht jedes Artikels hinterlegen und dann einen entsprechenden algorithmus finden.

Stichwort:

bin packing algorithm 3D
 
  • Gefällt mir
Reaktionen: Erni-Karotte

sjk

Sehr aktives Mitglied
16. Januar 2019
603
269
Ich denke bei pannscheck war das Ziel eher, annähernd die richtige Versandart vorzubelegen. Falls es mal doch nicht passt ist das im Versand ja schnell geändert. Da ist dieser simple Ansatz völlig ausreichend.
Das ist trotzdem total spannend! Wir hatten mal etwas umgesetzt, zum Stapeln nicht sortenreiner Paletten. Wir hatten da ein Python-Skript mit py3dbp. Da würde vom Workflow die interne Auftragsnummer übergeben, das Skript hat sich alle Daten aus der Datenbank geholt und das Ergebnis in einer Visualisierung mit Packanleitung pro Ebene ausgegeben.
 
  • Gefällt mir
Reaktionen: pannscheck

Kissenoutlet24.de

Gut bekanntes Mitglied
2. April 2012
170
9
Sonneberg
Hallo,

leider motzt ebay rum wenn ich die ISBN Nummer belege, da der Wert dann falsch ist.
Habe jetzt, ein Eigenes Feld (Volumen-Kleinpaket) im Artikel, im Reiter Eigene Felder angelegt.
Den Code von ISBN zu Volumen-Kleinpaket leider wohl falsch o_O
Hat jemand einen TIP?


Code:
{% comment %}
Berechnet die Volumenzahl aus der ISBN. Wenn VZ größer als "100", ist es kein Kleinpaket mehr.
Wenn eine ISBN nicht eingetragen ist, wird VZ auf + 1000 gesetzt. Zu Sicherheit ist es dann kein Kleinpaket.
{% endcomment %}
{% assign VZ = 0.0 -%}
{% assign AZ = 0.0 -%}
{% assign VZPOSITION = 0.0 -%}
{% for Volumen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{% if Volumen.Artikel.Volumen-Kleinpaket < "0" .or. Volumen.Artikel.Volumen-Kleinpaket > "1000" -%}
{% assign VZ = VZ | Plus:  1000 -%}
{% else -%}
{% assign VZPOSITION = Volumen.Artikel.Volumen-Kleinpaket | Times: Volumen.Menge -%}
{% assign VZ = VZ | Plus:  VZPOSITION -%}
{% endif -%}
{% endfor -%}
Vol.zahl: {{ VZ }},
{% if VZ > 0 and VZ < 101 %}Kleinpaket{% else %}zu gross{% endif %}
 

frankell

Sehr aktives Mitglied
9. September 2019
2.647
825
Flensburg
Hallo @Kissenoutlet24.de,

ohne den Code durchdacht zu haben, adressierst Du auf jeden Fall das Eigene Feld falsch. Du musst schon noch "EigeneFelder" mit angeben, wenn Du direkt den Inhalt eines speziellen Eigenen Feldes ausgegeben haben möchtest, und zusätzlich noch die Gruppe, unter der sich das Eigene Feld befindet. Also so:

Code:
Volumen.Artikel.EigeneFelder.Eigene-Felder-Gruppe.Volumen-Kleinpaket

Eigene-Felder-Gruppe müsstest Du also mit dem tatsächlichen Wert ersetzen. Ich hoffe, der Bindestrich in der Bezeichnung des Eigenen Feldes macht hier keine Probleme. Ansonsten gibt es noch eine andere generelle Methode, den Wert eines Eigenen Feldes zu extrahieren:

Code:
{% assign EigeneFelder = Volumen.Artikel.EigeneFelderAlsText | Split: '|' %}{% for Feld in EigeneFelder %}{% if Feld contains 'Bezeichnung Eigenes Feld'%}{{ Feld | Remove: 'Bezeichnung Eigenes Feld=' }}{% endif %}{% endfor %}

Am besten schreibt man das Ergebnis dann in eine Variable.

Wenn Du das Eigene Feld als Fließkommazahl (oder Ganzzahl) angelegt hast, kannst die Anführungszeichen um 0 und 1000 weglassen.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.647
825
Flensburg
{% if Volumen.Artikel.ISBN < "0" .or. Volumen.Artikel.ISBN > "1000" -%}

Das < "0" und > "1000" wird in aller Regel funktionieren, aber bspw. wenn das Feld ISBN leer ist, ist < "0" True. Und wenn da aus Versehen ein Buchstabe drinsteht (Tippfehler), dann wird der in eine Zahl umgewandelt. Numerische Vergleiche mit Strings sind selbst in DotLiquid so ne Sache... :)
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Workflow automatisch bei Warenausgang für Bestand und Puffer JTL-Wawi - Ideen, Lob und Kritik 12
Neu Suche Workflow: Erstbestellung Shop auf Rechnung -> Auftrag Zurückhalten JTL-Wawi - Ideen, Lob und Kritik 1
1.11.7 Workflow versendet soll Rechnung 1x drucken, druckt aber 2x JTL-Wawi 1.11 1
Neu Auftrag - Lieferstatus mit Workflow exportieren Arbeitsabläufe in JTL-Wawi 3
In Diskussion Workflow mit UND / ODER - Bedingung erstellen JTL-Workflows - Ideen, Lob und Kritik 7
Using short screen recordings for JTL-Wawi workflow documentation – anyone doing this? JTL-Wawi 2.0 3
Neu Werte erhöhen per Workflow User helfen Usern - Fragen zu JTL-Wawi 4
In Diskussion Workflow OpenAI JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 0
Neu 2.0.0: Workflow Queue wird nicht abgearbeitet via API JTL-Wawi 2.0 1
Neu Verständnisfrage zum Mahnlauf Workflow User helfen Usern - Fragen zu JTL-Wawi 0
In Diskussion Ort mit OT per Workflow bereinigen JTL-Workflows - Ideen, Lob und Kritik 3
Neu Ausdruck Rechnung beim Workflow nicht korrekt formatiert User helfen Usern - Fragen zu JTL-Wawi 6
Worker versendet keine E-Mails mehr aus der Workflow Queue JTL-Wawi 2.0 6
Gelöst Workflow - Seriennummer per Mail versenden JTL-Workflows - Fehler und Bugs 1
workflow führt zu "keiner Rückmeldung" / Absturz JTL-Wawi 1.11 3
Artikelpuffer Email Workflow JTL-Wawi 1.11 4
Neu Workflow Ereignis "Position hinzufügen" bei Angebote User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow - Bedingung Lieferstatus User helfen Usern - Fragen zu JTL-Wawi 4
Neu Freelancer für JTL-Wawi, Shop & Prozessautomatisierung Dienstleistung, Jobs und Ähnliches 0
Neu Exportgenehmigung / Ausfuhrgenehmigung automatisch für Auslandskunden als Aufpreis Allgemeine Fragen zu JTL-Shop 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 12
Neu Ab welcher JTL Wawi Version ist der OnPremise REST API Endpoint POST /v2/returns oder POST /v1/returns für Create Return verfügbar? Schnittstellen Import / Export 0
Neu Seller2Go – Mobile App & JTL-Plugin für Bestellungen, Support und Produktmanagement Plugins für JTL-Shop 0
Neu Neues Plugin: Erweiterter Widerrufsbutton für JTL-Shop Plugins für JTL-Shop 9
JTL-Worker 2.0 - Einrichtung als Dienst - Auffälligkeiten und Problemlösungen für manche JTL-Wawi 2.0 3
Neu Muss man für DHL Versenden 4.0 einen neuen Benutzer bei DHL anlegen? JTL-ShippingLabels - Ideen, Lob und Kritik 2
Neu Retourenetikett für Briefe kann unter Internetmarke 2.0 nicht erstellt werden JTL-ShippingLabels - Fehler und Bugs 0
Neu Neue Tracking-URL für DPD JTL-ShippingLabels - Fehler und Bugs 4
AboutYou keine Felder für GPSR Daten SCX-(Ninepoint)-Anbindungen 0
globale Angebotsvorlage anpassen für eBay Angebote "Artikelspezifisch" JTL-Wawi 1.11 0
Neu Connectorupdates für Shopware 6.7.7 bzw 6.7.8? Shopware-Connector 34
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu DRIGEND HILFE!!! Ebay Abgleich endet mit Arithmetischer Überlauffehler für tinyint-Datentyp, Wert = -1. Die Anweisung wurde beendet. eBay-Anbindung - Fehler und Bugs 4
Neu Stornobeleg für Verkauf ohne Rechnung User helfen Usern - Fragen zu JTL-Wawi 9
Neu Neuentwicklung - Helpdesk für JTL Wawi - Eure Ideen und Wünsche? User helfen Usern - Fragen zu JTL-Wawi 4
Kein changelog für 1.11.8 JTL-Wawi 1.11 29
Text Vorbereitung für WAWI import JTL-Wawi 1.11 3
gelöst: Für diesen User wurde zum angegebenen Mandanten keine Firma gefunden!! JTL-Wawi 1.10 13
Neu Best Practices für den Export und die Automatisierung von täglichen Berichten in JTL‑WaWi User helfen Usern - Fragen zu JTL-Wawi 2
Mobile Web-App für JTL-WaWi — Aufträge, Artikel & Lager direkt vom Smartphone JTL-Wawi App 0
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu Für fiktive paginierte Kategorieseiten 404 statt 301 Allgemeine Fragen zu JTL-Shop 0
Neu Paypal Checkout Modul für Gambio bis GX 26.x Gambio-Connector 0
Neu Verlinkungen richtig setzen für mehrere Sprachen Allgemeine Fragen zu JTL-Shop 10
Neu JTW Wawi hängt beim Bearbeiten der Druckvorlage für Mahnungen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wero für den JTL Shop? Plugins für JTL-Shop 21
Neu Bilder von Plattform A auch für Plattform B aktivieren Arbeitsabläufe in JTL-Wawi 6
Neu Exchange Konto kann nicht eingerichtet werden für E-Mail Versand User helfen Usern - Fragen zu JTL-Wawi 2
weitere Angaben für eBay JTL-Wawi 1.11 1

Ähnliche Themen