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

pannscheck

Sehr aktives Mitglied
1. Mai 2009
263
74
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
374
82
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
263
74
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
374
82
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
550
253
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
165
7
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.202
659
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.202
659
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
Gelöst Workflow-Trigger für Selbstabholung / FFN-Versand JTL-Workflows - Fehler und Bugs 2
In Diskussion Workflow für bezahlte Aufträge eines bestimmten Lagers → Pickliste zu bestimmter Uhrzeit JTL-Workflows - Ideen, Lob und Kritik 2
In Diskussion Workflow für das Austauschen von bestelltem Artikel in einem Auftrag gegen einen alternativen Artikel JTL-Workflows - Ideen, Lob und Kritik 3
Workflow soll wenn Artikel 0 Bestand für 35 Tage hat diesen auf inaktiv setzen JTL-Wawi 1.10 4
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 4
Neu Workflow 4 Wochen vor vorraus. Lieferdatum Arbeitsabläufe in JTL-Wawi 1
Überverkäufe über Workflow setzen JTL-Wawi 1.10 2
In Diskussion Workflow alle X Tage ausführen JTL-Workflows - Ideen, Lob und Kritik 5
Ausliefern Workflow über API JTL-Wawi 1.9 6
Neu Kann man das Shop-Guthaben von Kunden per Workflow beeinflussen? User helfen Usern - Fragen zu JTL-Wawi 0
JTL-Workflow | Automatisches Speichern von Rechnungen möglich? JTL-Wawi 1.9 2
In Diskussion Workflow Angebote OHNE Auftrag JTL-Workflows - Ideen, Lob und Kritik 8
In Diskussion Workflow verändert Wert JTL-Workflows - Ideen, Lob und Kritik 1
Workflow Standardlieferant JTL-Wawi 1.10 2
XML Auftragsimport per Workflow bediinen JTL-Wawi 1.8 1
Issue angelegt [WAWI-44314] Workflow automatisch 2 Pakete erstellen bei bestimmen Produkten? JTL-Workflows - Ideen, Lob und Kritik 2
Gelöst CustomWorkflow erscheint nicht in den Workflow-Aktionen JTL-Workflows - Fehler und Bugs 7
Neu Workflow um einen Artikel bei einem bestimmten Verkaufskanal zu aktivieren oder deaktivieren User helfen Usern - Fragen zu JTL-Wawi 4
Neu Mit Workflow verfügbaren Bestand aller Artikel in Datei schreiben User helfen Usern - Fragen zu JTL-Wawi 8
In Diskussion Workflow ausführen bei Lagerbestand 0 eines Lagers JTL-Workflows - Fehler und Bugs 3
Neu Workflow: WMS Lager nutzen um Versandart zu bestimmen 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
In Diskussion Workflow Error While Automating Game Update Notifications JTL-Workflows - Fehler und Bugs 2
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
Neu 🚀 Pilotkunden gesucht: HS Dynamic Pricing Plugin für JTL-Shop Plugins für JTL-Shop 0
Wichtig 💡Die Retourenplattform für Webshops – Expertise von unserem neuen Partner Returnless News, Events und Umfragen 0
Neu Kapazitäten frei für Routineaufgaben JTL Wawi Dienstleistung, Jobs und Ähnliches 0
Neu Trainingsmodus für JTL-POS gewünscht JTL-POS - Ideen, Lob und Kritik 0
Artikel teilweise nicht für Verkaufskanäle aktivierbar JTL-Wawi 1.10 0
Neu VCS lite: Arithmetischer Überlauffehler für tinyint-Datentyp, Wert = -1. Amazon-Anbindung - Fehler und Bugs 0
Monatsweise Warenbewegungen für alle Artikel exportieren JTL-Wawi 1.10 1
WF - automatisches Aktivieren / Deaktivieren für Verkaufskanal Shop JTL-Wawi 1.9 6
Artikel nicht automatisch für Verkaufskanal aktivieren JTL-Wawi 1.10 2
Neu Welcher Hoster ist für JTL-Shop 5 empfehlenswert? User helfen Usern 12
Buchhaltung vollautomatisiert für die Schweiz JTL-Wawi 1.10 9
Vote für debugging des Mobile Server Fehlers JTL-Wawi 1.11 1
Massenänderung "Lagerplatz" für Artikel bei WMS Lager JTL-Wawi 1.10 2
Neu Bestellobergrenze (999€) für Schweizer Kunden im Shop hinterlegen Betrieb / Pflege von JTL-Shop 1
Alternativtext für Artikelbilder per Ameise pro Plattform setzen JTL-Wawi 1.10 0
Neu Staffelpreise für Verpackungseinheiten Einrichtung von JTL-Shop4 4
Neu Kunden einen Retouren QR Code beim ausliefern mitschicken für Warenankauf ??? JTL-ShippingLabels - Fehler und Bugs 0
Neu Suche Freelancer für Aufsetzen JTL B2B Shop Dienstleistung, Jobs und Ähnliches 3
Gelöst Kartenleser für RKSV JTL-POS - Fragen zu Hardware 1
Neu Artikel nur für Admin sichtbar Allgemeine Fragen zu JTL-Shop 2

Ähnliche Themen