XML/CSV Shopping Feed: Reihenfolge der Produktbilder

Wir sind dabei unsere Produkte in eBay-KA zu importieren, jedoch werden die Produktfotos in der falschen Reihenfolge ausgegeben.
Mit den Standart-Vorgaben (aus der Dokumentation sowie dem billiger.de Template) ist dies leider nicht möglich, die Reihenfolge scheint sehr willkürlich.
Auch mit einem anderen Ansatz, den ich hier im Forum gefunden habe, ist die Reihenfolge weiterhin durcheinander. Nur das Cover-Image wird korrekt ausgegeben:

<title>{{ product.translated.name|escape }}</title>
<description>{{ product.translated.description|escape }}</description>


<g:image_link>{{ product.cover.media.url }}</g:image_link>

<g:image_link>
    {%- if product.media|length > 1 -%}
        "{%- for mediaAssociation in product.media|slice(0, 5) -%}
            {{ mediaAssociation.media.url }}
            {%- if not loop.last -%},{%- endif -%}
        {%- endfor -%}"
    {%- endif -%}
</g:image_link>

<additional_image_link>
    {% for img in product.media.elements %}
        {{ img.media.url }},
    {% endfor %}
</additional_image_link>


<g:condition>new</g:condition>
<g:availability>in_stock</g:availability>

Zur Info: Wir importieren die Produkte per Connector aus Plentymarkets in SW6 und haben hier keine Probleme mit der Reihenfolge. Im Shop selbst wird alles korrekt geordnet dargestellt sowie die richtigen Cover-Bilder zugewiesen. Lediglich der Export aus Shopware heraus, entspricht nicht der Bilderreihenfolge.

Woran kann das liegen?

1 „Gefällt mir“

@Moritz_Naczenski @MarkusFischer

Vielleicht jemand eine Idee? Oder wird es einfach nicht von Shopware unterstützt?

Edit: Das Problem scheint wohl seit 1,5 Jahren zu bestehen … Shopware Issuetracker

Hallo devdrop,
eine direkte Lösung habe ich dafür nicht. Jedoch kannst Du mit ja in vielen Dingen mit TWIG Deine eigene Lösung erstellen.

Die For-Schleife durchläuft ja lediglich die zusätzlichen Bilder von Anfang bis Ende in der Standardreihenfolge. Ehrlich gesagt, kam die Frage nach einer speziellen Sortierung bei mir bislang nicht auf, aber eventuell kannst Du es in ähnlicher Form wie in diesem Stackoverflow Link lösen: https://stackoverflow.com/questions/25194470/twig-sort-array-of-objects-by-field. In der Tabelle product_media böte sich das Feld Position dafür an.

Viele Grüße
Markus

Mit dem Hinweis von Markus, vielen Dank an dieser Stelle, konnte ich das wie folgt lösen:

{% for img in product.media.elements|sort ((a, b) => a.position <=> b.position) | slice(1,20)%}
{{ img.media.url }},
{% endfor %}

Der slice ab 1 ist nur nötig, wenn man mit product.cover.media.url arbeitet und diese nicht mehr in der for Schleife benötigt.

Grüße
Sven

3 „Gefällt mir“