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

pannscheck

Sehr aktives Mitglied
1. Mai 2009
262
73
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
314
69
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
262
73
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
19
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
314
69
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
 

sjk

Sehr aktives Mitglied
16. Januar 2019
533
239
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
163
6
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.021
580
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.021
580
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
Workflow soll wenn Artikel 0 Bestand für 35 Tage hat diesen auf inaktiv setzen JTL-Wawi 1.10 2
Automatischer Workflow für Versand von Gutscheinen versendet den Gutschein nicht JTL-Wawi 1.10 2
Workflow für Benachrichtigung bei Stammkunden JTL-Wawi 1.10 9
Neu Workflow Versandart prüfen und im Auftrag setzen - speziell für Stücklistenartikel User helfen Usern - Fragen zu JTL-Wawi 0
Neu Auslesen Bestand per Lager für Workflow zur Anzeige im Onlineshop User helfen Usern - Fragen zu JTL-Wawi 2
In Diskussion JTL WAWI + FFN + OrangeConnex Workflow für Versand und Lagerbestand JTL-Workflows - Ideen, Lob und Kritik 0
Neu Zustellzeit EXPRESS Sendungen - als Bedingung für Workflow User helfen Usern - Fragen zu JTL-Wawi 1
Workflow: Neue Kunden direkt einer Kundengruppe zuordnen JTL-Wawi 1.10 6
Neu Workflow: Musterbestellungen (0 € Gesamtbruttowert) automatisch ausliefern lassen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Ausliefern Workflow mit variablen Ausführungszeiten je nach vorauss. Lieferdatum User helfen Usern - Fragen zu JTL-Wawi 3
Neu Workflow Error While Automating Game Update Notifications JTL-Workflows - Fehler und Bugs 0
Neu Workflow automatisch alle 2 Stunden ausführen – Prüfung auf voraussichtliches Lieferdatum User helfen Usern - Fragen zu JTL-Wawi 11
In Diskussion Workflow zur Zählen von Retouren und Bestellungen von einem Kunden JTL-Workflows - Ideen, Lob und Kritik 1
In Diskussion Externe E-Mail mit Auftragsdaten per Workflow erzeugen JTL-Workflows - Fehler und Bugs 10
Neu Workflow Amazon Fristen + Bestellung filtern und Ausliefern User helfen Usern - Fragen zu JTL-Wawi 3
In Diskussion Workflow „Rechnung drucken“ wird nicht automatisch ausgeführt JTL-Workflows - Fehler und Bugs 7
Neu Kommentar / Notiz einblenden lassen bei Retoure am WMS? Oder Workflow bei Retoure mit kommentiertem Auftrag? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Beantwortet Workflow löst nicht aus, obwohl alle Bedingungen erfüllt JTL-Workflows - Fehler und Bugs 1
In Diskussion Workflow wird ausgeführt obwohl Bedingung nicht zutrifft. JTL-Workflows - Fehler und Bugs 9
Beantwortet Workflow Auftrag über FFN ausliefern wenn Ware eingelagert JTL-Workflows - Ideen, Lob und Kritik 6
Workflow mit Bedingung Lieferant wird nicht mehr ausgeführt JTL-Wawi 1.9 1
Seit Update 1.10.12.0 – Keine Rechnungserstellung per Workflow bei FBA-Aufträgen JTL-Wawi 1.10 3
Neu Workflow Amazon Versandgruppe ändern User helfen Usern - Fragen zu JTL-Wawi 0
In Diskussion Per Workflow aktuelle Kategorie als Attribut hinterlegen JTL-Workflows - Ideen, Lob und Kritik 5
Neu Workflow lößt bei Track & Trace nicht aus User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Workflow kurze Pause per Batch - Fehler "Die Eingabeumleitung wird nicht unterstützt" JTL-Workflows - Ideen, Lob und Kritik 6
In Diskussion Workflow auf Zahlungseingang und Zahlungsweise JTL-Workflows - Ideen, Lob und Kritik 1
In Diskussion Per Workflow Versandart ändern - EK wird nicht korrigiert JTL-Workflows - Ideen, Lob und Kritik 1
In Bearbeitung Workflow funktioniert nicht - Bedingung: Seriennummer JTL-Workflows - Fehler und Bugs 32
Neu Menge von Auftragspositionen per Workflow ändern User helfen Usern - Fragen zu JTL-Wawi 4
In Diskussion Workflow Stücklistenbestandteile ausgeben JTL-Workflows - Ideen, Lob und Kritik 1
Neu Externe Belege per Workflow speichern Amazon-Anbindung - Fehler und Bugs 3
Verwiesen an Support Probleme mit dem Workflow JTL-Workflows - Fehler und Bugs 2
Workflow-Hilfe Zahlungserinnerung nach 3 Werktagen & Storno nach 7 Werktagen ohne Zahlung JTL-Wawi 1.10 7
Neu Workflow - Ausliefern - Jeden Tag um 04:00 Uhr, außer Sa. User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie kann es sein, dass ein "Rechnung erstellt" - Workflow 3 Tage später nochmal ausgelöst wird? User helfen Usern - Fragen zu JTL-Wawi 5
In Diskussion Rechnung per mail / Workflow gibt Fehler aus JTL-Workflows - Fehler und Bugs 6
Neu JTL mit Shopify für Etsy anstatt JTL mit Unicorn2 - hat das jemand gemacht? Anbindung, bestehende Artikel mappen? Multishop? Shopify-Connector 1
Neu Suche Linux-Spezialisten für die Betreuung von unseren Servern Dienstleistung, Jobs und Ähnliches 1
Neu Werte für Merkmale oder Eigenschaften Amazon-Lister - Fehler und Bugs 0
Neu B2B Preis für JTL Wawi -> Amazon aktivieren, nur wie? User helfen Usern - Fragen zu JTL-Wawi 4
Ameise Preisimporte für Marktplätze funktionieren nicht JTL-Wawi 1.10 1
Neu Druckvorlagensets für Kundengruppen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 7
Neu Seagull Treiber für den Zebra LP2844 JTL-ShippingLabels - Fehler und Bugs 0
Neu In welcher Tabelle werden die Daten für den Amazon Lister 2.0 gespeichert? Amazon-Lister - Fehler und Bugs 5
Neu zweiten Mandanten für Ankauf von Ware? gleiche Firma, gleiche Person. Lizenzen? User helfen Usern - Fragen zu JTL-Wawi 2
Preis im Warenkorb für 10 min sichern, wenn Preis geändert wurde. Ist das möglich? Einrichtung JTL-Shop5 3
Neu Staffelpreise für Metro.de JTL-Ameise - Ideen, Lob und Kritik 0
Einstellungen für den DHL Ausdruck für Retourenetiketten für limango JTL-Wawi 1.10 0
Neu Verschiedene Startseiten für angemeldete und nicht angemeldete Benutzer möglich? Allgemeine Fragen zu JTL-Shop 6

Ähnliche Themen