Technische Daten (CustomFields) ausgeben

Hey,

ich hab in meinem Shop viele technische Geräte und möchte die technischen Daten der Produkte nicht einfach in den Beschreibungstext einfügen. Mein Gedanke war ein Zusatzfeld-Set zu erstellen und dort alle Eigenschaften als eigenes Zusatzfeld anzulegen. Das hat so weit auch geklappt. Nun geht es um die korrekte Ausgabe auf der Produktdetailseite.

Ich hab das Theme jetzt erweitert und die @Storefront/storefront/page/product-detail/description.html.twig angepasst. Mir ist es auch gelungen die Zusatzfelder über einen key|value loop auszugeben. Allerdings ist im Array nicht das Label hinterlegt ({{ „customFields.custom_dies_das“|trans}}.

Wie kann ich das Label des Zusatzfeldes ausgeben und in der anderen Spalte den Wert?
Ich könnte es natürlich auch einzeln ausgeben, dachte aber das es eleganter wäre es, über eine Schleife zu lösen. Dadurch kann ich später die Felder beliebig anpassen und neue hinzufügen.

<table class="table table-striped product-detail-properties-table">
  <thead>
    <tr>
      <th>Eigenschaft</th>
      <th>Wert</th>
    </tr>
  </thead>
<tbody>
   {% for key, value in page.product.customFields %}
	<tr class="properties-row">
		<th class="properties-label"><span>Hier soll das Label stehen</span></th>
		<td class="properties-value">
		       <span>{{ value }}</span>
		</td>
	</tr>
   {% endfor %}
</tbody>
</table>

Vielen Dank im Voraus

Warum nutzt du nicht die ProductPropertyOption - also die Eigenschaften für das, was du vor hast? Diese werden ja schon automatisch auf der Detailseite ausgegeben und lassen sich sogar im Listing filtern.

Hallo hallenstein,

sofern ich es richtig verstanden habe benötigen die Produkt-Eigenschaften vordefinierte Werte, da diese dann als Varianten verwendet werden können bzw. zum Filtern auf der Kategorieseite. Die technischen Eigenschaften eines Gerätes können beliebige Werte annehmen, z. B. die »Laserentfernung« kann ein Wert zwischen 39 und 1987 m sein.

Mein Problem konnte ich folgendermaßen lösen, hatte hierzu im Forum dann noch einen Code-Schnipsel gefunden der mir gefehlt hat:

            <table class="table table-striped product-detail-properties-table">
                <thead>
                    <tr>
                        <th>Eigenschaft</th>
                        <th>Wert</th>
                    </tr>
                </thead>
                <tbody>
		          {% for key, item in page.product.translated.customFields %}
                    {% set transName = "customFields." ~ key %}
			     <tr class="properties-row">
				    <th class="properties-label"><span>{{ transName|trans|sw_sanitize }}:</span></th>
				    <td class="properties-value"><span>{{ item }}</span></td>
			     </tr>
			{% endfor %}
                </tbody>
            </table>

An der Stelle aber noch eine andere Frage: Wie kann ich ein erstelltes CustomField sauber löschen? Ich hab es über das Backend gemacht, allerdings wird mir der Eintrag weiterhin angezeigt (im dump) und somit auch mit dem loop auf der Seite augegeben. Im Backend wird das Feld nicht mehr dargestellt