Neu Dotliquid Schleife über Positionen mit Abfrage von Merkmalwert

TomRogge

Mitglied
14. Dezember 2022
11
1
Moin an Alle,

ich sitze momentan an einer erweiterten Eigenschaft für einen JTL Workflow. Dabei möchte ich folgendes abfragen:

Besitzen alle Artikelpositionen des Auftrags das Merkmal "Versandgruppe" mit dem Wert "Paketgut" und ist das Versandgewicht des Auftrags unter 100 kg dann setze die Variable Paketversand auf 1. Wenn eine Artikelposition kein "Paketgut" ist oder der Auftrag über 100 kg ist, dann setze die Variable Paketversand auf 0.

Leider schaffe ich es in Dotliquid lediglich die Artikelmerkmalwerte vom ersten Objekt auszugeben. Ich sitze nun bereits 3 Stunden dran und werde langsam wahnsinnig :D Vielleicht hat jemand ja spontan eine Idee, bzw. gleich den richtigen Ansatz, wie man diese Schleife realisieren kann.

Danke und viele Grüße,
Tom
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
830
304
Hi,

das hier könnte klappen:

Code:
{%- assign poscount = 0 -%}
{%- assign vacount = 0 -%}
{%- for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{%- for item in Artikelbeschreibungen.Artikel.EigeneFelder -%}
{%- if item.Versandgruppe == 'Paketgut' -%}{%- assign vacount = vacount | Plus: 1 -%}{%- endif -%}
{%- endfor -%}
{%- assign poscount = 1 | Plus: 1 -%}
{%- endfor -%}
{{ poscount | Minus: vacount }}

Das prüft zumindest erstmal alle Positionen auf das eigene Feld "Versandgruppe". Es zählt alle Positionen und alle Positionen mit "Paketgut" und bildet die Differenz. Ist diese 0, dann haben alle Positionen "Paketgut".

Soll das Versandgewicht aus aus den Artikeln kommen? Dann kannst du das auch an der Stelle mit auslesen und aufaddieren je Schleifendurchlauf.
Am Ende dann eine finale Bedingung, welche dann 1 oder 0 ausgibt.

Viele Grüße
Mirko
 

TomRogge

Mitglied
14. Dezember 2022
11
1
Vielen Dank für die Antwort! Leider zählt er den Zähler nicht hoch, wenn sich Artikel mit "Paketgut" im Auftrag befinden. Funktioniert das Auslesen von Merkmalen über "EigeneFelder"? Wir pflegen die Werte über die Merkmale beim Artikel und nicht über eigene Felder.
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
830
304
sorry hatte das irgendwie verwechselt ^^.
Probier es mal damit:

Code:
{%- assign poscount = 0 -%}
{%- assign vacount = 0 -%}
{%- for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{%- for item in Artikelbeschreibungen.Artikelmerkmale -%}
{%- if item.MerkmalName == 'Versandgruppe' -%}
{%- if item.Wert.Wert == 'Paketgut' -%}{%- assign vacount = vacount | Plus: 1 -%}{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- assign poscount = poscount | Plus: 1 -%}
{%- endfor -%}
{{ poscount | Minus: vacount }}
 

JohnFrea

Sehr aktives Mitglied
21. September 2017
962
302
{%- assign poscount = 1 | Plus: 1 -%}

macht keinen Sinn.

Nicht eher

{%- assign poscount = poscount | Plus: 1 -%} ?
 

TomRogge

Mitglied
14. Dezember 2022
11
1
Vielen Dank, das hat hervorragend geklappt! Leider stoße ich jetzt auf ein neues Problem, welches ich nicht so ganz nachvollziehen kann.
Ich möchte das Gesamtgewicht der Artikelpositionen abfragen und in einer If-Abfrage vergleichen, ob es unter 100 liegt.

Code:
{%- assign poscount = 0 -%}
{%- assign vacount = 0 -%}
{%- assign diff = 1 -%}
{%- assign Paketversand = 0 -%}
{%- for Artikelbeschreibungen in Vorgang.AuftragsPositionen.ArtikelPositionen -%}
{%- for item in Artikelbeschreibungen.Artikelmerkmale -%}
{%- if item.MerkmalName == 'Versandgruppe' -%}
{%- if item.Wert.Wert == 'Paketgut' -%}{%- assign vacount = vacount | Plus: 1 -%}{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- assign poscount = poscount | Plus: 1 -%}
{%- endfor -%}

{%- assign diff = poscount | Minus: vacount -%}


{{ Vorgang.AuftragsPositionen.ArtikelPositionen.GewichtGesamt }}

{% if diff == 0 and {{ Vorgang.AuftragsPositionen.ArtikelPositionen.GewichtGesamt }}<100.0000 %}
{% assign Paketversand = 1 %}
{{Paketversand}}
{% else %}
{% assign Paketversand = 0 %}
{{Paketversand}}
{% endif %}

Überhalb der If-Abfrage lasse ich die Variable ausgeben, dort wird problemlos der Wert ausgegeben. In der Abfrage erhalte ich aber den Fehler
Code:
Liquid error: Der Wert darf nicht NULL sein.
Parametername: input

Ich habe bereits probiert, den Wert per Capture oder assign in eine Variable zu schreiben, aber dann erhalte ich ebenfalls die Fehlermeldung. Wenn ich es per capture in eine Variable speichere und dann nur einen == Vergleich mache, anstatt < oder > funktioniert es. Ich schätze, dass es zu irgendwelchen Datentypen-Konvertierungen kommt? Obwohl die Variable {{ Vorgang.AuftragsPositionen.ArtikelPositionen.GewichtGesamt }} ja theoretisch decimal als Datentyp ist?

Vielen Dank im Voraus!

Viele Grüße,
Tom
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
830
304
Freut mich, dass das andere schonmal geklappt hat :) der andere Fehler könnte hieran liegen:

{% if diff == 0 and {{ Vorgang.AuftragsPositionen.ArtikelPositionen.GewichtGesamt }}<100.0000 %}
das sind geschweifte Klammern innerhalb anderer, was nicht geht, also so könnte es dann gehen:
{% if diff == 0 and Vorgang.AuftragsPositionen.ArtikelPositionen.GewichtGesamt < 100.0000 %}
 
Ähnliche Themen
Titel Forum Antworten Datum
Teillieferungen über WMS JTL-Wawi 1.11 0
Neu Amazon VCS Lite: Wie erstellt ihr unter Wawi 1.11 eine vollständige IGL-/ZM-Liste über alle Verkaufskanäle? User helfen Usern - Fragen zu JTL-Wawi 0
Neu IP Adresse einer Kontaktanfrage über den Shop herausfinden Allgemeine Fragen zu JTL-Shop 4
Neu Keine Labels für Warenpost international über Packtisch JTL-ShippingLabels - Fehler und Bugs 8
Neu Apple Pay über PayPal nicht zu verbinden (Die Domain-Verifizierungsdatei wurde nicht gefunden.) Technische Fragen zu Plugins und Templates 26
Neu CCV Pax A920 Terminal über O.P.I klappt nicht Allgemeine Fragen zu JTL-POS 0
Problem beim Import über Ameise/eBay JTL-Wawi 1.11 1
Neu Nach Update auf 1.11.10.0 Abgleich zu Ebay über 3 Stunden bei neuen Angeboten eBay-Anbindung - Fehler und Bugs 2
Beantwortet [WAWI-85758] Nach Update auf 1.11.10 klappt stornieren über ios Wawi App nicht mehr JTL-Workflows - Fehler und Bugs 1
Dropshipping-Labeldruck beim Lieferanten über JTL-Wawi (Versandstandorte / Workflows) JTL-Wawi 1.10 0
Workflow Trigger bei Angebot-Import über Ameise JTL-Wawi 1.9 1
Neu Etikettendruck über Remotedesktop Fehler Arbeitsabläufe in JTL-Wawi 0
Neu JTL Shipping Fehler bei DHL Versand über WMS ? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Kundenkonto über Mein-Konto nicht möglich JTL-Shop - Fehler und Bugs 4

Ähnliche Themen