Shopify Projekte mit eigenen (Meta-)Feldern erweitern

In Shopify lassen sich zusätzliche sogenannte Meta-Felder bei Produkten (und anderen Content-Typen) erstellen, um strukturiert zusätzliche Daten einzugeben.

Ein Beispiel: Bei Event-Tickets die man verkaufen möchte, wären Datum und der Veranstaltungsort interessant, bei Galerie-Verkäufen möchte man eventuellen Materialtypen definieren, bei Lebensmittel-Verkäufen hat man eventuell behördliche Angaben zu beschreiben usw. usf.

Unter Einstellungen -> Benutzerdefinierte Daten -> Metafelddefinitionen lassen sich diese Meta-Felder in den jeweiligen Bereichen definieren, wir konzentrieren uns auf „Produkte“ und definieren dort ein Feld „time“ und lesen dies per liquid-code aus.

Hierbei gibt es verschiedene Optionen und einige Details zu beachten:

  1. Im Front-End-Modus unter „anpassen“ des Templates lassen sich „dynamischen Quellen“ im WYSIWYG-Modus direkt auslesen und anzeigen, allerdings sind dabei bisher – Stand April 2024 – nicht alle Meta-Feld-Typen auswählbar
  2. Möchte man sämtliche Meta-Felder auslesen können, muss man Liquid-Code schreiben und implementieren, dabei ist zu beachten das der Aufruf je angezeigtem Modul-Type unterschiedlich ist.
    Soll z.B. das Metafeld product.metafields.custom.time aufgerufen werden, so startet dieser Aufruf bei den „card collections“ mit card_product nicht nur mit product, muss komplett also wie folgt aussehen:
    card_product.metafields.custom.time
  3. Möchte man das Feld nur optional anzeigen, sofern es auch mit Werten befüllt ist, könnte der mögliche Code dabei wie folgt aussehen:
{%- if product.metafields.custom.time != blank -%}

<span class="time">{{ product.metafields.custom.time}}</span>

{%- endif -%}

Weitere Details hierzu findet man auch in der Shopify-Dokumentation unter help.shopify.com/de/manual/custom-data/metafields/
Die Low-Level Dokumentation um Felder per API / Liquid-Code anzusteuern findet man hier: shopify.dev/docs/api/liquid/objects/metafield