Zusatzfelder Label im Frontend anzeigen?

Hallo zusammen.

Ich habe aktuell bei meiner Installation von Shopware 6.4.10.1 ein Problem mit den Zusatzfeldern und den Labels/Namen dieser.

Ich würde am liebsten durch alle customFields eines Sets durchgehen und jeweils den Namen des Felds und dessen Wert angeben. Leider konnte ich nichts finden um durch ein customFieldSet durchzugehen sondern nur um durch alle customFields zu loopen.

Jedoch habe ich selbst dabei ein Problem. Nämlich dass das Label für die Felder mit dem Technischen Namen wiedergegeben wird und nicht dem Label wie gewünscht.

Versucht habe ich das wie folgt einmal einzufügen:

{% if page.product.translated.customFields.custom_technical_data_shelves-sum is defined %}
            {{ "customFields.default.custom_technical_data_shelves-sum"|trans }}: {{ page.product.translated.customFields.custom_technical_data_shelves-sum }}
        {% endif %}

Heraus kommt das aber wie im folgenden Screenshot:
image

Was genau mache ich hier falsch?
Hätte eventuell auch jemand eine Idee, wie man durch ein customFieldSet beim jeweiligen Produkt loopen kann?

Vielen Dank im Voraus.

Ist customFields.default.custom_technical_data_shelves-sum ein Textbaustein? Falls nicht, dann benötigst du weder „“ noch |trans. Dies ist für Textbausteine gedacht.

Loops gehen mit for in twig for - Documentation - Twig - The flexible, fast, and secure PHP template engine

Vielen Dank für die schnelle Rückmeldung!

Das Feld ist ein Zahlenfeld in diesem Fall.
Die Einstellungen für das Feld sehen wie folgt aus:

Ich würde gerne das „Summe der Rauminhalte der Kaltlagerfächer und der Kühlfächer“ im Frontend ausgeben.
Sodass im Frontend dann
Summe der Rauminhalte der Kaltlagerfächer und der Kühlfächer: 2
stehen würde.

Ich hatte für den Loop auch schon einmal folgenden for Loop:

{% for key,value in page.product.translated.customFields %}
    {{ key }} : {{ value }}
{% endfor %}

Aber damit habe ich das gleiche Ergebnis von

Gibt es an sich aktuell eine Möglichkeit generell nur durch ein Set zu loopen?
Ich habe jetzt zB das folgende Set erstellt für die technischen Daten:


Und würde bevorzugt nur über dieses loopen, um nicht evtl. weitere Zusatzfelder mitzunehmen.

Diese Methode hatte ich schon probiert, meine ich. Nur ohne das sw_sanitize

            {% for key,value in page.product.customFields %}
                <div class="custom-info-row">
                    <p class="custom-info-key">{{ "customFields.custom_technical_data_category"|trans|sw_sanitize }}:</p><p class="custom-info-value">{{ value }}</p>
                </div>
            {% endfor %}

provisorisch habe ich jetzt innerhalb der for-Schleife nur das eine Feld angewählt um das Label darzustellen.
Heraus kommt aber das folgende:
image

Ich sehe aber gerade nicht was genau ich falsch mache.

Wenn ich innerhalb der for-Schleife key anwende kommt ebenfalls nicht das erwünschte Ergebnis:

            {% for key,value in page.product.customFields %}
                <div class="custom-info-row">
                    <p class="custom-info-key">{{ key|trans|sw_sanitize }}:</p><p class="custom-info-value">{{ value }}</p>
                </div>
            {% endfor %}

image

Hat sich bezüglich dieser Sachen etwas in den letzten Shopware Updates getan weswegen das aktuell nicht funktioniert?

Ah, ich hab den Fehler!

Es war nur der Fall, dass ich den technischen Namen wie ein Datenbankfeld verwendet habe.
Also wenn ich dort mein gewünschtes Label eingebe mit Leerzeichen und allem, kommt es auch raus wie gewünscht.

Dummer Fehler meinerseits.
Vielen Herzlichen Dank für die Geduld mir da auszuhelfen @Max_Shop!

1 „Gefällt mir“

Ein Problem gibt es jetzt doch noch.

Gibt es die Möglichkeit nur durch ein bestimmtes CustomFieldSet zu loopen?
Ich würde gerne nur durch custom_technical_data bei dem jeweiligen Produkt loopen.

Aktuell läuft es durch alle, aber ich habe auch weitere Zusatzfelder einer anderen Gruppe, welche nicht im gleichen Bereich dargestellt werden sollen.

twig hat kein continue oder break. Du müsstest per if den key abfragen.

Bzw. du suchst dir aus dem customFields array nur die raus, die du möchtest, indem du per array key darauf zugreifst.

Dann muss man das eben so lösen :confused:

Ich hatte gehofft, dass ich das spezifische Set anwählen und loopen kann.

Vielen Dank für die Hilfe!

@ErVal Hättest du Lust deine finale Lösung zu teilen? Damit würdest du mir sehr helfen :slight_smile: