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

pannscheck

Sehr aktives Mitglied
1. Mai 2009
264
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
394
86
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
264
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
394
86
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
554
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
166
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.281
690
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.281
690
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 für voraussichtlichen Liefertag erstellen JTL-Workflows - Ideen, Lob und Kritik 6
Neu Workflow für voraussichtlichen Liefertag erstellen User helfen Usern - Fragen zu JTL-Wawi 1
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
Neu Workflow bei Zahlungseingang User helfen Usern - Fragen zu JTL-Wawi 1
Neu Workflow LandISO User helfen Usern - Fragen zu JTL-Wawi 3
Workflow zum abrufen der Upload-Datei aus dem Shop-Auftrag JTL-Wawi 1.11 0
Beantwortet Workflow Datei schreiben Dateiname per Dotliquid Fehler Illegales Zeichen im Pfad. callerMemberName : WriteFile JTL-Workflows - Fehler und Bugs 1
Neu Workflow zum automatischen Stornieren einer Rechnung nach Versand User helfen Usern - Fragen zu JTL-Wawi 4
Neu Artikel KinderArtikel anlegen: Workflow "Artikel erstellt und Artikel geändert" werden NUR beim Vaterartikel gestartet User helfen Usern - Fragen zu JTL-Wawi 0
Stornobeleg als Workflow-Trigger JTL-Wawi 1.10 6
Neu Kartonagen nicht mehr über Workflow auswählbar nach Update auf 1.11.3 JTL-Workflows - Ideen, Lob und Kritik 0
Lieferantenbestellung per Workflow bestätigen JTL-Wawi 1.11 0
Neu Workflow: Straße enthält Postfiliale oder Paketshop JTL-Workflows - Fehler und Bugs 3
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
25 Gutscheine für Kunden auf Rechnung erstellen Allgemeine Fragen zu JTL-Vouchers 0
Neu SEO URL für den Blog Allgemeine Fragen zu JTL-Shop 2
Neu 🚨 Hinweis für JTL-Händler, die Taxdoo nutzen News, Events und Umfragen 1
Monatsabschluss Amazon FBA UK / CH mit JTL2Datev WaWi 1.10 bei IDU Nutzung und Zwangs VCS für GB / Schweiz JTL-Wawi 1.10 0
Neu Biete Connector-Tools für vollautomatische Lieferantenbestellungen an uvm. Dienstleistung, Jobs und Ähnliches 0
Externe Auftragsnummer für Rechnungs-Druckvorlage nicht vorhanden JTL-Wawi 1.11 6
Neu Sind Support-Tickets für WaWi und Ameise ohne kostenpflichtigen Tarif nicht mehr möglich? JTL-Wawi - Fehler und Bugs 3
Neu Coupon-Steuer Plugin: Korrekte Steuerberechnung für JTL-Shop Coupons Plugins für JTL-Shop 1
Neu Neuer Server für kleines Unternehmen User helfen Usern - Fragen zu JTL-Wawi 28
Neu Welche SQL Server Version für WaWi 1.0.0.0.0 unter Windows 11 Installation von JTL-Wawi 6
Neu Was ist die korrekte Variable für die letzte Seite eines Artikellistings? Betrieb / Pflege von JTL-Shop 11
Neu Open-Source-Lösung für produzierende Betriebe User helfen Usern 0
Neu Varianten Artikel erstellen mit Lister 2.0 nur für Amazon Amazon-Lister - Ideen, Lob und Kritik 0
Neu SUCHE Freelancer für JTL WAWI Anbindung an WooCommerce und Einrichtung Dienstleistung, Jobs und Ähnliches 2
Amazon-ASIN mit mehreren SKU für Chargenverfolgung JTL-Wawi 1.10 0
Neu ID Hook für Warenkrob User helfen Usern 0
Neu Platzhalter für GPSR werden mit angezeigt PrestaShop-Connector 1
Neu CustomWorkflow für Pattenkonto JTL-Workflows - Ideen, Lob und Kritik 1
Neu Adressetiketten für Briefe mit Etikettendrucker erstellen / Formatierungsproblem Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 4

Ähnliche Themen