Produktvergleichsfeed: Eigenschaften Kommasepariert

Hallo,
ich möchte in einem Datenfeed für ein Produktportal Produkteigenschaften ausgeben.
Ich nutze dafür folgenden Code:

{%- for property in product.properties -%}
    {%- if property.group.name == "Farbe" -%}
        {{ property.name|raw }}
         {%- if not loop.last -%},{%- endif -%}
    {%- endif -%}
{%- endfor -%}

Die Eigenschaftengruppe „Farbe“ enthält ggf. mehrere Werte, die ich Kommasepariert ausgeben möchte, aber nach dem letzten Wert soll kein Komma mehr ausgegeben werden.
Das funktionert mit dem Code leider noch nicht. Ich vermute, weil noch andere Eigenschaftengruppen vorhanden sind und deshalb loop.last so nicht korrekt greift.
Wie müsste der Code richtig lauten?

also, ich würde den map-Filter verwenden und das über join(‚,‘) verbinden

schon mal danke, aber ich bräuchte das etwas konkreter, also einen Beispiel-Code (ich bin kein Entwickler und suche mir die Infos mühsam zusammen …)

schau mal hier. Das kannst Du sicher adaptieren. https://twig.symfony.com/doc/3.x/filters/map.html

Die Seite habe ich mir vorhin auch schon mal angeschaut, aber ich weiß so nicht, wie ich das konkret auf mein Problem korrekt anwende. Wenn Du mir das noch etwas konkreter auf mein Beispiel anwenden würdest (muss auch nicht getestet sein) wäre das super.

weil vielleicht leichter les- und anpassbar (nicht getestet) {% for group in page.product.sortedProperties %} {% if group.translated.name == "Farbe" %} <div> {% apply spaceless %} {% for option in group.options %} {% set i = ( i | default(0) ) + 1 %} <span>{% if i > 1 %}, {% endif %}{{ option.translated.name|e }}</span> {% endfor %} {% endapply %} </div> {% endif %} {% endfor %}

1 Like

Vielen Dank. Damit habe ich es hinbekommen.

{%- if product.properties -%}
    {%- for group in product.sortedProperties -%} 
        {%- if group.translated.name == "Farbe" -%}
            {%- apply spaceless -%}
                {%- for option in group.options -%}
                    {%- set i = ( i | default(0) ) + 1 -%}
                    {%- if i > 1 -%}, {%- endif -%}
                    {{ option.translated.name|e }}
                {%- endfor -%}
            {%- endapply -%} 
        {%- endif -%} 
    {%- endfor -%}
{%- endif -%}

hallo, wir haben diesen code damals auch in ähnlicher form verwendet. momentan bekommen wir aber bei der zeile „{% for group in page.product.sortedProperties %}“ einen error unter shopware 6.5 weiß hier zufllg, jemand woran das liegen könnte?