Neu Dotliquid Schleife über Positionen mit Abfrage von Merkmalwert

TomRogge

Mitglied
14. Dezember 2022
10
0
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
614
209
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
10
0
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
614
209
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
720
214
{%- assign poscount = 1 | Plus: 1 -%}

macht keinen Sinn.

Nicht eher

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

TomRogge

Mitglied
14. Dezember 2022
10
0
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
614
209
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
Neu Angebot Exportvorlage mittels DotLiquid User helfen Usern - Fragen zu JTL-Wawi 4
Formatierungsfehler in XML bei Verwendung von dotliquid kaufland.de - Anbindung (SCX) 2
Neu 1.8 - WMS Teillieferung soll nur Rechung über gelieferte Positionen enthalten Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Verwiesen an Support BUG: Mahnlauf über Workflow ignoriert Zahlungsziel JTL-Workflows - Fehler und Bugs 3
Neu Autorisierte Zahlungen über mollie werden bei Rundungsdifferenz storniert. WooCommerce-Connector 0
Neu Kategorienbaum in einer Unterkategorie über der Filterung ausblenden Allgemeine Fragen zu JTL-Shop 1
Neu Auftragszahlung über Kasse, Auftrag wird nicht als "Verpackt und Versendet" markiert JTL-POS - Fehler und Bugs 1
Neu So ändern Sie den Status von amazon ASIN über die Importdatei in „Aktiv“. JTL Ameise - Eigene Exporte 0
Neu Einem bzw. mehreren Artikeln über den Import mehrere Kategorien zuordnen JTL-Wawi 1.7 1
Neu In Tabelle ein Bild über mehrere Zeilen verteilen in Katalog Vorlage Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Datenimport über Ameise in JTL für Shopware Shopware-Connector 1
Gelöst JTL-POS: Rechnung über Kasse Allgemeine Fragen zu JTL-POS 3
Neu Bestellungen importieren über SFTP Server User helfen Usern - Fragen zu JTL-Wawi 6
Neu Exportformate neu über alles Allgemeine Fragen zu JTL-Shop 2
Neu Rechner über Nacht runter fahren? User helfen Usern - Fragen zu JTL-Wawi 12
JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Vouchers 2
Neu JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Shop 2
Neu Freitextfeld über Variation - Zeichenbeschränkung für Gravur Allgemeine Fragen zu JTL-Shop 8
In Bearbeitung Artikel über csv-Datei bearbeiten und importieren Allgemeine Fragen zu JTL-POS 3
Neu Verordnung über die allgemeine Produktsicherheit (GPSR) JTL-Wawi - Ideen, Lob und Kritik 0
Neu Kundenpreise in Artikelübersicht (über Umwege)? Arbeitsabläufe in JTL-Wawi 0
Neu Verbindungsproblem Wawi (1.8.12.0) zum JTL-Shop (5.2.4) über localhost User helfen Usern - Fragen zu JTL-Wawi 0
Auftragsimport über eBay - Bezeichnung der Versandart auf der Rechnung leer JTL-Wawi 1.8 1
Wie kann ich eine Benachrichtigung bei einem Wareneingang auslösen mit einer Mail über die Artikel die eingebucht wurden JTL-Wawi 1.8 2
Artikel wurden über Weclapp über FFN-Connect an JTL FFN übermittelt jedoch leider nicht an Wawi & WMS JTL-Wawi 1.8 0
Gutschrift über einen Set-Artikel JTL-Wawi 1.7 0
Teilrechnung Erstellen über/nach Packtisch+ JTL-Wawi 1.8 1
Neu SCSS-Datei bearbeiten über FTP Allgemeine Fragen zu JTL-Shop 6
Neu Email Versand über OAuth JTL-Wawi - Ideen, Lob und Kritik 6

Ähnliche Themen