CLP-Gefahrenpiktogramm - Ungültiger Wert

g.mar97

Mitglied
23. Februar 2024
4
1
Moin,
ich habe bei Otto die Gefahrenpiktogramme mit unserem Produktmerkmal mittels DotLiquid verknüpft. Die werden auch richtig übertragen, wenn der Artikel tatsächlich Piktogramme hat. Ich bekomme allerdings die Fehlermeldung 100006 - ALID_VALUE_ALLOWEDVALUES ('[""]' ist kein gültiger Vorgabewert für das Attribut 'CLP-Gefahrenpiktogramm'. Die Liste der Vorgabewerte finden Sie im API-Categories-Endpunkt unter der entsprechenden Kategorie.), wenn der Artikel doch gar keine Piktogramme hat, weil dann als Wert "" eingegeben wird, was ja für JTL kein gültiger Wert ist. Ich habe verschiedenen Lösungsansätze ausprobiert, wie man das coden könnte, einen leeren Wert bzw. gar nichts ausgeben zu lassen, wenn das Artikelmerkmal "Gefahrenpiktogramme" null bzw. leer ist, aber das habe ich leider nicht hinbekommen.

Hat da jemand eine Idee?
 
Zuletzt bearbeitet:

Leventinio

Sehr aktives Mitglied
26. Juli 2020
538
164
Braunschweig
Hey,
das Problem hatten wir bei OTTO auch. Wir haben es so gelöst, das wir einfach immer eine 0 geschickt haben.

{% assign Anzahl = Vorgang.Merkmale.Merkmale.Otto_DE.Höhe_Bettseite_in_cm.Deutsch -%}
{% assign HatAnzahl = Anzahl | IsFilled -%}
{% if HatAnzahl -%}
{{ Vorgang.Merkmale.Merkmale.Otto_DE.Höhe_Bettseite_in_cm.Deutsch }}\
{% else -%}
{{ 0,00 | FormatNumber: 'N2', 'en-US' }}\
{% endif -%}

Vielleicht kannst du damit etwas anfangen und ein wenig rumspielen. Der ist bei uns aktuell so aufgebaut: Hat das Merkmal OTTO Höhe Bettseite einen Wert, dann gib diesen aus, wenn nicht, dann gib eine 0 aus. Vielleicht kannst du das "0,00" einfach weglassen und es wird nichts übertragen auch kein "".
 

g.mar97

Mitglied
23. Februar 2024
4
1
Hey,
das Problem hatten wir bei OTTO auch. Wir haben es so gelöst, das wir einfach immer eine 0 geschickt haben.



Vielleicht kannst du damit etwas anfangen und ein wenig rumspielen. Der ist bei uns aktuell so aufgebaut: Hat das Merkmal OTTO Höhe Bettseite einen Wert, dann gib diesen aus, wenn nicht, dann gib eine 0 aus. Vielleicht kannst du das "0,00" einfach weglassen und es wird nichts übertragen auch kein "".
Hi, erstmal vielen Dank für die Antwort.
Wir haben nämlich auch genauso bei den Maßen u.Ä. gemacht, dass wir einfach eine 0 schicken lassen. Gerade bei den Piktogrammen ist es aber leider ein bisschen "spezieller", da man in dieses Feld nur bestimmte vordefinierten Werten eingeben kann (siehe Anhang). D.h., auch wenn ich hier eine 0 eingebe, würde es trotzdem zu einer Fehlermeldung führen, da für dieses Feld "0" auch kein gültiger Wert ist.
Gibt es sonst kein Dot-Liquid-Befehl, der einfach nichts ausgibst (also das Feld quasi leer lässt), wenn eine Bedingung erfüllt (oder auch nicht) wird?


EDIT: Mein Code sieht im Moment so aus:
Code:
{% if Vorgang.Merkmale.Merkmale.KeineGruppe.Gefahrenstoffe_-_Piktogramme.Deutsch != null and Vorgang.Merkmale.Merkmale.KeineGruppe.Gefahrenstoffe_-_Piktogramme.Deutsch != empty %}
{{ Vorgang.Merkmale.Merkmale.KeineGruppe.Gefahrenstoffe_-_Piktogramme.Deutsch | Split: ','}}
{% else %}
{{ null }}
{% endif %}
Ich hatte am Anfang gar keine else-Bedingung, was ja aber auch zum Fehler geführt hat, dass ein leeres string ausgegeben wurde. Also dachte ich mir, wenn ich null ausgeben lasse, dass sollte das Feld doch leer bleiben. War aber leider nicht der Fall, weil es auch damit ein leeres String ausgibt.
 

Anhänge

  • clp-piktogramme.png
    clp-piktogramme.png
    21,1 KB · Aufrufe: 6
Zuletzt bearbeitet: