ich würde gerne auf der Produkt-Detailseite und im Listing ein Custom Field eines Produktes in der Storefront ausgeben.
Die Variable “customFields” des Produktes ist jedoch immer “null”. In den Demodaten der Entwickler-Version aus dem Git sind Custom Fields in Produkten angelegt. Aber auch diese, gefüllt mit einem Wert, kann ich nicht ausgeben…
Wie kann ich diese in der Storefront in Twig ausgeben?
in der derzeitigen entwicklerversion stecken die custom fields in “product.translated.customFields.dein_custom_field”, die ausgabe im template funktioniert ganz gut mit {{ attribute(product.translated.customFields, ‘dein_custom_field’)|sw_sanitize }}
Meine Frage ist jetzt kann man auch alle Custom Fields in einer Schleife ausgeben. Bei mir hat es bis jetzt nur geklappt das ich diese einzeln ansprechen muss. Wird bei einer größeren Menge aber nicht mehr praktikabel
Wieso steht sowas eigentlich nicht in der Doku?
-> {{ page.product.translated.customFields.your_custom_field|sw_sanitize }}
Hab mir eben auch nen Wolf gesucht in der Doku und im dump() bis ich nun hier gelandet bin um es zu finden
Hat das bei dir geklappt? Bei mir funktioniert das leider nicht. Habe auch ein Zusatzfeld angelegt und habe dafür ein Set angelegt „Test“ –> custom_test
Daran gibt es ein Textfeld „custom_test_text“.
Habe jetzt diverse Dinge versucht, aber das klappt alles nicht. Was mache ich falsch?
Versuch mal das „page.“ weg zu lassen. Je nach dem wo du das einsetzt sind die Objeke unterschiedlich zugänglich.
Mit {{ debug() }} kannst Du sehen, was alles verfügbar ist.
In der Listen Ansicht der Produkte nimmst Du {{ product.translated.customFields.custom_test }}. Idealerweise noch mit einem „sw_sanitize“.
Leider bin ich nicht eher dazu gekommen mir das anzusehen.
Das klappt aber leider auch nicht ohne „page.“. Das mit dem {{ debug() }} funktiniert auch nicht. Da wird direkt ein Fehler ausgelöst, und die gesamte Detailseite nicht mehr angezeigt. In der rot hinterlegten Fehlermeldung steht „Leider ist etwas schief gelaufen“.
Die gleiche Fehlermeldung erscheint ebenfalls wenn ich folgendes schreibe:
Falls noch andere diese Fehlermeldung haben: Der shop muss im Entwickler-Modus laufen, sonst funktioniert {{ dump()}} z.B. nicht - steht auch ind er Doku
Die Fehlermeldung bei {{ product.translated.customFields.custom_test_text|sw_sanitize }} bekommst Du vermutlich, da der Wert aus dem Custom Field in die Funktion “sw_sanitize” weitergegeben wird. Die Funktion wirft einen Fehler, wenn der Wert leer ist. Aber wie gesagt, ich würde im DEV Modus mit dump nach dem Wert suchen. Damit bekommst Du dann auch den Pfad zu Deinem Custom Field raus.