Zusatzfelder (Ausgabe customFields) zeigt nur den Namen des Zusatzfeldes

Hallo zusammen,

ich habe ein Zusatzfeld bei meinen Produkten im Listing hinterlegt und als extend mit twig eingefügt.

Nun zeigt das Frontend den Namen des Zusatzfeldes (custom_subtitle_:slight_smile: im Frontend an, aber danach kommt nicht der Text aus dem Backend, halt nur der Name des Zusatzfeldes. Hat jemand eine Lösung?

 

Hier mein Ergänzungstext:

{% sw_extends ‚@Storefront/storefront/component/product/card/box-standard.html.twig‘ %}

{% block component_product_box_description %}
{{ „customFields.custom_subtitle_“|trans|sw_sanitize }}: {{ page.product.translated.customFields.custom_subtitle_ }}                                                          
 {{ parent() }}
    
{% endblock %}

Hallo,

hast du hierzu schon eine Lösung gefunden?

@drakes schrieb:

Hallo,

hast du hierzu schon eine Lösung gefunden?

Guten Tag,

leider nicht, aber ein PlugIn - Kurzbeschreibung für Produkte. Vielleicht hilft das weiter :-) 

Hallo,

vielleicht hilft mein Code hierbei weiter.
Ich erstelle hier eine Tabelle, welche mithilfe des ‚key‘ sich die Übersetzung holt und ‚item‘ gibt den Wert des Zusatzfeldes aus.

{% sw_extends '@Storefront/storefront/page/product-detail/description.html.twig' %}
{% block page_product_detail_description_content_text %}	
			<table>
				<tbody>
					{% for key, item in page.product.translated.customFields %}						
							{% set transName = "customFields." ~ key %}
							<tr>
								<th> {{ transName|trans|sw_sanitize }}: </th>
								<td>{{ item }}</td>
							</tr>
					{% endfor %}
				</tbody>
			</table>
	{{ parent() }}
{% endblock %}

Im folgenden Beispiel kannst du von einen Bestimmten Zusatzfeld das Label und den wert ausgeben:

{% sw_extends '@Storefront/storefront/page/product-detail/description.html.twig' %}
{% block page_product_detail_description_content_text %}	
	{% for key, item in page.product.translated.customFields %}
		{% if  key == "Name des Zusatzfeldes" %}			
		        {% set transName = "customFields." ~ key %}
		        {{ transName|trans|sw_sanitize }}: {{ item }}
                {% endif %}
	{% endfor %}
	{{ parent() }}
{% endblock %}

Danke für deinen Tipp :-)!
Du schreibst, dass du eine Tabelle anlegst - meinst du damit eine Tabelle auf der Artikelseite oder im Listing?
Auf der Artikelseite kann ich das Zusatzfeld darstellen - im Listing kann er sich die Daten wohl nicht ziehen.

VG johannes

@jheeren
Versuche es mal mit
{{ product.customFields.zusatzfeld_name|trans }}
Bei mir wird dann im Listing das Zusatzfeld angezeigt.

Grüße
Christian

Danke ich versuche es mal :slight_smile:

Hallo,

ich habe deine Ausgabe genauso angewendet, wie du sie schreibst. Leider wird bei mir auch das richtige Label und der technische Name des Items angezeigt, gibt es hierzu eine Lösung?

Lieferzeit: custom_lieferzeit_versandzeit_2_3_weeks

Hallo! Hattest du das mit der Antwort von @siebi versucht oder mit meiner Weise?

Das Feld „Lieferzeit“ wird ja wohl nicht über die Variable für Zusatzfelder abgerufen. Das müsste eine andere Varaible sein.
Wenn du ein (selbst angelegtes) Zusatzfeld mit derLieferzeit hast und dies im Listing (Übersicht) anzeigen möchtest sollte das wie von mir geschrieben funktionieren.

Versuche es mal mit
{{ product.customFields.zusatzfeld_name|trans }}
Bei mir wird dann im Listing das Zusatzfeld angezeigt.

Ich habe folgendes probiert:

{% block page_product_detail_delivery_informations %}

{# {% sw_include '@Storefront/storefront/component/delivery-information.html.twig' %} #} {% for key, item in page.product.translated.customFields %} {% if key == "custom_lieferzeit_versandzeit" %} {% set transName = "customFields." ~ key %} {{ transName|trans|sw_sanitize }}: {{ item }} {% endif %} {% endfor %}
{% endblock %}

und auch schon alle möglichen Variablen-Vorschläge, leider ohne Erfolg, auch der dump geht bei mir nicht.

Wo möchtest du die Ausgabe denn haben. Nach dem Block würde ich vermuten, dass es in den Produkt Details ist. Hier ging es um die Ausgabe im Listing.
Bei der Produktansicht versuche es mal mit
{{ page.product.customFields.zusatzfeld_name|trans }}
„zusatzfeld_name“ ersetzt du mit dem Technischen Namen des Zusatzfeldes.

Richtig, ich habe ein Zusatzfeld als Optionsfeld angelegt und möchte es in den Produkten einblenden. Leider auch mit dieser Zeile kein Erfolg.
Hier mal die Einstellungen vom Zusatzfeld:

Ich glaube Zusatzfelder mit Oprionen musste man anders handeln. Da war was mit Textbausteinen, bin mir aber nicht sicher. Hab ich auf jeden Fall irgendwo hier im Forum gelesen. Musst du mal suchen.

Habs gefunden. So hab ich es gemacht:
Textbaustein mit Namen der Zusatzfelder anlegen. Z.B. option 1 / option 2
Im gewünschten Block z.B. folgendes eingeben:

{% if page.product.customFields.produkthinweis_auswahl %}
    <i>{{ page.product.customFields.produkthinweis_auswahl|trans }}</i>
{% endif %}

Genau so funktioniert es :ok_hand:
Dankeschön!!!

Hallo danke nochmal für deine Antwort. Mein Wissen ist leider nicht so riesig was TWIG angeht.

Ich habe dies eingefügt:

Mein Zusatzfeld heißt so:

Bei mir wird nichts angezeigt bei der Produktseite - was habe ich falsch gemacht?
Wie kann ich es nun im Listing anzeigen lassen? Einfach nur:

Versuche es mal mit
{{ product.customFields.zusatzfeld_name|trans }}
Bei mir wird dann im Listing das Zusatzfeld angezeigt.

??
LG Johannes

Nachtrag:

Mein Fehler das es nicht angezeigt wurde… allerdings wird es nun so angezeigt bekommt man da einen anderen Namen hin und nicht custom…

@siebi Hi Christian, hast du hier vielleicht einen Vorschlag für mich?

  1. wie ich das Problem mit dem Text customFields.custom_subtitlecustom… lösen kann
  2. wie ich den sw_extend für die Anzeige im Listing schreiben kann? bzw. welchen Code ich von mateusz.janiszewski nehmen muss.

Blockquote{% sw_extends ‚@Storefront/storefront/page/product-detail/description.html.twig‘ %}
{% block page_product_detail_description_content_text %}



{% for key, item in page.product.translated.customFields %}
{% set transName = „customFields.“ ~ key %}




{% endfor %}

{{ transName|trans|sw_sanitize }}: {{ item }}

{{ parent() }}
{% endblock %}
Im folgenden Beispiel kannst du von einen Bestimmten Zusatzfeld das Label und den wert ausgeben:

{% sw_extends ‚@Storefront/storefront/page/product-detail/description.html.twig‘ %}
{% block page_product_detail_description_content_text %}
{% for key, item in page.product.translated.customFields %}
{% if key == „Name des Zusatzfeldes“ %}
{% set transName = „customFields.“ ~ key %}
{{ transName|trans|sw_sanitize }}: {{ item }}
{% endif %}
{% endfor %}
{{ parent() }}
{% endblock %}

Wenn ich mich nicht irre müsstest du das (Text-)Zusatzfeld doch einfach mit
{{ product.customFields.zusatzfeld_name|trans }}
ausgeben können. Du musst den Technischen Namen des Zusatzfeldes angeben (statt zusatzfeld_name), nicht den vom Set.
Bei dem anderen Code kann ich dir leider nicht helfen, bin leider auch kein Experte.

Es funktioniert tatsächlich, vielen Dank! Ich habe es so oft früher versucht und es hat nichts gebracht - heute schon.

Hast du das Problem auch, dass hier der HTML Code einfach voll ausgegeben wird?

image