Neu Dotliquid Beschreibung prüfen

Stefan - Eufory

Neues Mitglied
25. April 2025
13
0
Hallo zusammen,

ich würde gerne per Dotliquid prüfen, ob die Beschreibung für Shop1 gefüllt ist. Falls ja, dann soll er diese ausgeben. Andernfalls soll er die alternative Beschreibung ausgeben. Folgender Code funktioniert leider nicht. Für "Amazon_Lister_DE" ist noch keine Beschreibung angelegt. Jetzt zieht sich JTL eine beliebige, aber nicht die alternative Beschreibung, welche ich per else angegeben habe.

{% if Vorgang.Beschreibung.Amazon_Lister_DE.Beschreibung.Deutsch != null %}
{{ Vorgang.Beschreibung.Amazon_Lister_DE.Beschreibung.Deutsch }}
{% else %}
{{ Vorgang.Beschreibung.EUFORY.Beschreibung.Deutsch }}
{% endif %}
Vielleicht hat einer eine Idee, wie hier geprüft werden muss.

Vielen Dank
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
673
Flensburg
Hallo @Stefan - Eufory,

Jetzt zieht sich JTL eine beliebige, aber nicht die alternative Beschreibung, welche ich per else angegeben habe.

das ist eher seltsam. Wird die Variable denn standalone korrekt ausgegeben?

Ergänzend empfehle ich noch, nicht nur auf NULL zu prüfen, sondern auch auf EMPTY.

Eine recht elegante Art in DotLiquid ist, der Variable einen leeren Default zu verpassen, wenn sie NULL ist. Ginge so:

Code:
{% assign text = Vorgang.Beschreibung.Amazon_Lister_DE.Beschreibung.Deutsch | default: '' -%}
{% if text != '' -%}{{ Vorgang.Beschreibung.Amazon_Lister_DE.Beschreibung.Deutsch }}
{% else -%}{{ Vorgang.Beschreibung.EUFORY.Beschreibung.Deutsch }}
{% endif -%}
 

Stefan - Eufory

Neues Mitglied
25. April 2025
13
0
Hallo @Stefan - Eufory,



das ist eher seltsam. Wird die Variable denn standalone korrekt ausgegeben?

Ergänzend empfehle ich noch, nicht nur auf NULL zu prüfen, sondern auch auf EMPTY.

Eine recht elegante Art in DotLiquid ist, der Variable einen leeren Default zu verpassen, wenn sie NULL ist. Ginge so:

Code:
{% assign text = Vorgang.Beschreibung.Amazon_Lister_DE.Beschreibung.Deutsch | default: '' -%}
{% if text != '' -%}{{ Vorgang.Beschreibung.Amazon_Lister_DE.Beschreibung.Deutsch }}
{% else -%}{{ Vorgang.Beschreibung.EUFORY.Beschreibung.Deutsch }}
{% endif -%}
Das Problem scheint mir in der Prüfung auf Amazon_Lister_DE zu sein. Die Beschreibung ist bisher nicht angelegt und so scheint der Interpreter auf irgendeine Beschreibung zu verweisen.

Leider funktioniert deine Idee auch nicht, aber danke für den Hinweis, kannte ich so auch noch nicht.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
673
Flensburg
Nicht auszuschließen, dass hier ein Bug vorliegt. Würde ich sogar für wahrscheinlich halten angesichts dessen, was schon probiert wurde. Wenn Du supportberechtigt bist, Ticket bei JTL aufmachen.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
673
Flensburg
Ich kann mir nur vorstellen, dass der Fehler in einem fehlenden Eintrag in tArtikelBeschreibung liegt, und nicht daran, dass ein vorhandener NULL ist. Das müsste man entsprechend berücksichtigen.

Mit SQL könnte man aber vergleichsweise einfach, bestehende Texte eines bestimmte Ausgabekanals in fehlende kopieren. Setzt natürlich voraus, dass ein Text in zumindest einem Ausgabekanal möglichst immer gepflegt ist.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.234
673
Flensburg
Woher kommt eigentlich die Annahme, diese Prüfung auf != null sei OK?
Sicher, dass dotLiquid das überhaupt kann?

Ist blau formatiert, sollte also daran nicht liegen

Selbst wenn das geht ist nicht garantiert, dass != null identisch ausgewertet wird zu einem leeren String.

Das wollte ich mit EMPTY und der Prüfung auf '' ausdrücken.

Dafür gib es doch extra diesen "IsFilled" Filter.

Wie so oft gibt es mehrere Wege, um nach Rom zu kommen. Wobei IsFilled eben auch bei einem leeren String False ausgibt, was ja eigentlich nicht korrekt ist. Macht in diesem Fall hier aber keinen Unterschied.