Anzahl der Kollektionen Metafelder auf 20 begrenzt?

Topic summary

Problem: Für Kategorieseiten (Kollektionen) werden mehr als 20 Metafeld-Definitionen benötigt (für Banner und Slides mit Bild/Titel/Text). Shopify begrenzt Kollektion-Metafelder auf 20; die 21. Definition lässt sich nicht mehr „anpinnen“. In dynamischen Quellen erscheinen „Market“ und „Marke“; „Marke“ unpassend, „Market“ erlaubt zusätzliche Metafelder, unklar war das Befüllen.

Vorschläge/Workarounds:

  • Metafelder unter Settings > Metafields > Market anlegen und im Theme Editor den Kollektionsseiten als dynamische Quelle zuweisen; ggf. per Code aufrufen (Beispiel mit shop.metafields.market und collection_handle). Alternativ Apps wie Metafields Guru oder Accentuate Custom Fields.
  • Hintergrund zur Limitierung: Performance/Skalierung, mehr Felder = mehr Abfragen, größere Seiten und langsamere Ladezeiten.
  • Metafelder kombinieren: Inhalte in ein JSON-Metafeld packen (z. B. banner1/banner2 und slides). JSON im Admin pflegen und im Theme via Liquid mit parse_json auslesen und per IF/FOR rendern.

Theme-Hinweise: Nicht jedes Theme hat collection.liquid; die tatsächlich verwendete Datei/Section (z. B. featured-collection.liquid, card-collection.liquid) identifizieren, in Kopie testen, Backup erstellen; ggf. Experten hinzuziehen.

Stand: Fragesteller nutzt „Market“-Metafelder und erhielt eine konkrete JSON-/Liquid-Anleitung. Umsetzung bleibt theme-spezifisch; endgültige Lösung teilweise offen.

Summarized with AI on December 28. AI used: gpt-5.

Hallo zusammen,

ich wollte meine Kategorien Seiten individuell versehen mit

zwei dynamische Bild Banner mit jeweils - dynamischem Titel - dynamischen Text

zwei x fünf Folien mit jeweils dynamischem Bild - dynamischem Titel - dynamischem Text

Scheinbar sind die Anzahl an Metafeld-Definitionen die man für Kollektionen verwenden kann auf 20 begrenzt.

Zumindest heißt es beim erstellen der 21. Definition, dass die Definition nicht mehr angepinnt werden kann.

Nun wenn ich aber in der Kategorie die dynamische Auswahl treffen möchte z. B. gehe ich auf dynamisches Bild bei einer Folie, so steht, dass ich noch Market und Marke auswählen kann als Vorlage. → Siehe Screenshot.

Marke schließt sich als Lösung für das Problem mit den begrenzten 20 Definitionen aus, da ich nicht mein Standard-Logo, Quadratisches Logo oder Titelbild verwenden möchte.

Wenn ich Market auswähle so kann ich neue Metafelder hinzufügen. → Siehe Screenshot.

Jedoch frage ich mich wie ich diese Felder dann “bestücken” kann.

Wenn jemand wüsste wie ich die in Market erzeugten Metafelder für die Kollektionsseite in der Praxis umsetzen kann wäre ich sehr dankbar.

Viele Grüße und danke für’s Lesen

Andreas-U

Hey @Andreas-U

Um dein Problem mit der Begrenzung der Metafelder in Shopify zu lösen und die Metafelder, die du in Market erstellt hast, für die Kollektionsseite zu nutzen, kannst du ggf. Metafelder in Market erstellen:

  1. Erstelle die benötigten Metafelder in Market:
    • Gehe zu Settings > Metafields und wähle Market aus.
    • Erstelle die neuen Metafelder, die du für die Kollektionsseite verwenden möchtest (z.B. dynamische Bild-Banner, dynamische Titel, dynamische Texte usw.)
  2. Anpassen der Kollektionsvorlage im Theme-Editor:
    • Gehe zu Online Store > Themes > Customize.
    • Wähle die Kollektionsseite, die du bearbeiten möchtest.
    • Füge die dynamischen Elemente hinzu und verknüpfe sie mit den Metafeldern aus Market.

Angenommen, du hast ein Metafeld banner_image im Market erstellt und möchtest es auf der Kollektionsseite anzeigen.

Öffne den Code-Editor und bearbeite die entsprechende Vorlage für die Kollektionsseite, z.B. collection.liquid.

Füge den folgenden Code hinzu, um das banner_image Metafeld anzuzeigen:

{% assign collection_handle = 'your-collection-handle' %}
{% assign market = shop.metafields.market[collection_handle] %}

{% if market.banner_image != blank %}
  
    
  

{% endif %}
  • collection_handle: Ersetze 'your-collection-handle' durch den Handle der jeweiligen Kollektion.
  • shop.metafields.market[collection_handle]: Greift auf die Metafelder des Markets zu, die mit der Kollektion verknüpft sind.
  • market.banner_image: Überprüft, ob das banner_image Metafeld vorhanden ist und zeigt es an, wenn es nicht leer ist.
  • Befüllen der Metafelder in Market:
    • Gehe zu Products > Collections und wähle die gewünschte Kollektion aus.
    • Fülle die Metafelder aus, die du im Market erstellt hast (z.B. lade das Banner-Bild hoch, gib den Titel und den Text ein).

Damit solltest du die Metafelder, die du in Market erstellt hast, effektiv auf der Kollektionsseite nutzen! Oder um die Begrenzung der Metafelder in Shopify zu umgehen und weiterhin dynamische Inhalte auf deiner Kollektionsseite hinzuzufügen, gibt es alternative Ansätze:

Überlege, ob du einige der bestehenden Metafelder kombinieren kannst. Wenn mehrere Metafelder eng miteinander verwandt sind, kannst du sie zu einem einzigen Metafeld zusammenfassen, das mehrere Werte enthält. Dies reduziert die Anzahl der benötigten Metafelder.

Es gibt mehrere Apps im Shopify App Store, die die Funktionalität von Metafeldern erweitern und mehr Flexibilität bieten. Hier sind einige empfehlenswerte Apps:

  • Metafields Guru: Diese App ermöglicht es dir, Metafelder einfach zu verwalten und zu erweitern.

  • Accentuate Custom Fields: Diese App bietet erweiterte Funktionen zur Verwaltung von Metafeldern und kann helfen, die Beschränkungen zu umgehen.

Falls die oben genannten Lösungen nicht ausreichen, kannst du einen Shopify-Entwickler beauftragen, eine maßgeschneiderte Lösung zu erstellen. Dies könnte die Nutzung der Shopify API zur dynamischen Verwaltung von Metafeldern oder die Entwicklung einer speziellen App beinhalten, die deinen Anforderungen entspricht.

Überprüfe die Wichtigkeit und Nutzung jedes Metafelds. Es könnte sein, dass einige ältere oder weniger häufig genutzte Metafelder archiviert oder entfernt werden können, um Platz für neue, wichtigere Definitionen zu schaffen.

Schritt 1: Erstellen der neuen Metafelder in einer externen App1. Installiere eine der empfohlenen Apps (z.B. Metafields Guru).

  1. Erstelle die neuen Metafelder in der App und verknüpfe sie mit deinen Kollektionen.

Schritt 2: Anpassen der Kollektionsvorlage im Theme-Editor1. Gehe zu Online Store > Themes > Customize.

  1. Wähle die Kollektionsseite aus und füge die neuen dynamischen Elemente hinzu.

  2. Verwende den oben genannten Liquid-Code, um die neuen Metafelder anzuzeigen.

Hoffe das hilft dir weiter - bei weiteren Fragen kann ich gerne Experten empfehlen die dir dabei helfen können!


Warum nicht etwas Gamification in das Shop einbauen, um deinen Kunden etwas Fun im Shop anzubieten? Gerne kann ich bei Interesse Tipps dazu geben!

Hast du weitere Fragen zum Shop? Gebe einfach ein Suchbegriff oben in der Suchleiste der Community Landingpage ein, denn das Thema haben wir sehr wahrscheinlich schon besprochen. Halte bitte Ausschau in deiner E-Mail auf Notifications zu Antworten auf deine Fragen in der Community.

1 Like

Hallo Gabe,

danke für deine Ausführliche Antwort

Ich habe mich nun entschieden Metafelder in Markets zu erstellen und über den Theme Editor in meinen Shop einzufügen.

Nun habe ich bereits diese Schritte hier ausgeführt:

  1. Anpassen der Kollektionsvorlage im Theme-Editor:
    • Gehe zu Online Store > Themes > Customize.
    • Wähle die Kollektionsseite, die du bearbeiten möchtest.
    • Füge die dynamischen Elemente hinzu und verknüpfe sie mit den Metafeldern aus Market.

Jetzt schreibst du hier:

"Öffne den Code-Editor und bearbeite die entsprechende Vorlage für die Kollektionsseite, z.B. collection.liquid.

Füge den folgenden Code hinzu, um das banner_image Metafeld anzuzeigen:"

Aber wo finde ich die entsprechende Vorlage für die Kollektionsseite?

Bei mir exisiert kein collection.liquid.

Wenn ich collection suche finde ich nur:

  • featured-collection.liquid oder card-collection.liquid.

Welches von diesen beiden soll ich benutzen um den Code Schnippsel einzufügen den du vorschlägst?

LG Andreas

PS.: Ich möchte weitere Einzeilige Texte und Bilder für weitere Slide Show Folien kreiieren.

LG Andreas

Hey @Andreas-U

Ich hoffe du kannst verstehen, dass ich keine Einsicht in dein Shop Admin oder Theme Code habe (oder darf), und jedes Theme anders aufgebaut ist. Ich kann nur generelle Tipps hier geben und du wirst das mit einem Experten machen müssen, die einen Deep Dive in deinen Code machen können.

Ich verstehe auch, dass du mehr als >20 Metafeld-Definitionen für deine Kategorieseiten benötigst und vor einem Problem stehst, da Shopify eine Begrenzung auf 20 Metafeld-Definitionen für Kollektionen hat.

Shopify hat die Begrenzung auf 20 Metafeld-Definitionen für Kollektionen aus mehreren Gründen implementiert. Jedes zusätzliche Metafeld erfordert zusätzliche Abfragen und Datenverarbeitung, was die Serverressourcen belastet und die Ladezeit der Seite verlängern kann. Dies gilt insbesondere für große Online-Shops mit vielen Produkten und Kollektionsseiten. Mehr Metafelder bedeuten mehr Daten, die geladen und gerendert werden müssen. Das kann die Gesamtgröße der Seite erhöhen und somit die Ladezeit verschlechtern was ja auch für dein Google Ranking schlecht sein kann. Eine Begrenzung der Metafelder hilft, die Stabilität des Systems zu gewährleisten, indem verhindert wird, dass die Datenbank zu groß und schwer zu verwalten wird. Dies ist besonders wichtig für die Skalierbarkeit der Plattform.

Jedes Metafeld erfordert eine separate Datenbankabfrage. Mehr Abfragen erhöhen die Last auf den Server und können die Antwortzeiten verlängern.Die Verarbeitung und Zusammenstellung der Metadaten kann die Serverressourcen beanspruchen, was zu längeren Ladezeiten führt.

Clientseitige Verarbeitung:

  • Größere Datenmenge: Wenn mehr Daten (z. B. Bilder und Texte) geladen werden müssen, dauert das Rendern der Seite im Browser des Benutzers länger. Das führt zu einer langsameren Ladezeit und kann die Benutzererfahrung beeinträchtigen.
  • Rendering-Zeit: Komplexere Seiten benötigen mehr Zeit zum Rendern. Dies kann besonders auf mobilen Geräten oder bei langsamen Internetverbindungen problematisch sein.

Kombinieren und Optimieren:

  • Metafelder kombinieren: Fasse ähnliche Metafelder zusammen, um die Gesamtzahl zu reduzieren. Zum Beispiel können mehrere Texte in einem JSON-Format in einem einzigen Metafeld gespeichert werden.
  • Optimierte Bilder: Verwende optimierte Bilder, um die Datenmenge zu reduzieren und die Ladezeiten zu verkürzen.

Um den zusätzlichen Code in der richtigen Vorlage hinzuzufügen, solltest du überprüfen, welche der gefundenen Dateien tatsächlich für die Kategorieseiten verwendet wird. Hier ist ein möglicher Ansatz:

  • Dateien überprüfen: Schau dir den Inhalt von featured-collection.liquid und card-collection.liquid an und überprüfe, ob eine dieser Dateien die Elemente enthält, die auf deinen Kategorieseiten angezeigt werden sollen.
  • Code hinzufügen: Wenn du die richtige Datei identifiziert hast, füge den entsprechenden Code hinzu, um das Metafeld anzuzeigen.

Wenn du es selber programmieren möchtest dann bitte immer in einer Themekopie/Testumgebung zuerst testen und zusammen mit einem Experten/Programmierer. Du kannst ein Backup deines Themes erstellen, bevor man den Code bearbeitet, oder den Code wiederherstellen, falls dies nötig sein sollte. Du könntest auch einen unserer Experten engagieren indem du denen eine E-Mail rüberschießt. Unsere Experten antworten meist sehr schnell.

Änderungen zu deinem Theme Code können auch 1) die Page Loading Speeds negativ beeinflussen und 2) dein Theme aus den Theme Updates ausschließen. Das ganze ist Theme-abhängig, ohne Gewähr und dient lediglich dazu dich in die richtige Richtung zu weisen!

1 Like

Gute Morgen Gabe,

danke für deine Bemühungen, nichts desto trotz hast du mir schonmal nützliche Hinweise und Tipps gegeben vielen Dank dafür.

Könntest du weiter darauf eingehen wie ich verschiedene Texte über ein JSON Format in eine Metafeld-Definition packe um somit mich an mein Ziel anzunähern?

Kombinieren und Optimieren:

  • Metafelder kombinieren: Fasse ähnliche Metafelder zusammen, um die Gesamtzahl zu reduzieren. Zum Beispiel können mehrere Texte in einem JSON-Format in einem einzigen Metafeld gespeichert werden.

LG Andreas

Hey Andreas! @Andreas-U

Freut mich immer helfen zu können und du wirst dein Ziel auf irgendeinem Weg erreichen, da habe ich keinen Zweifel! :wink:

Um verschiedene Texte in einem JSON-Format in ein einziges Metafeld zu packen und so die Gesamtzahl der Metafelder zu reduzieren, habe ich jetzt unsere Foren und Developer Doku durchgekämmt und du kannst wie folgt vorgehen:

  1. Erstellen eines JSON-Metafelds:

    • Erstelle ein neues Metafeld in deinem Shopify-Admin-Dashboard, das als JSON-Typ definiert ist.
    • Gehe zu Einstellungen > Metafelder > Produkte (oder die entsprechende Kategorie, die du bearbeiten möchtest).
    • Klicke auf Neues Metafeld hinzufügen und wähle JSON als Typ.
  2. Struktur des JSON-Formats:

    • Definiere die Struktur des JSON-Dokuments, um mehrere Texte oder andere Daten zu speichern. Ein Beispiel könnte so aussehen:
{
  "banner1": {
    "image": "url1",
    "title": "Title 1",
    "text": "Text 1"
  },
  "banner2": {
    "image": "url2",
    "title": "Title 2",
    "text": "Text 2"
  },
  "slides": [
    {
      "image": "url3",
      "title": "Slide Title 1",
      "text": "Slide Text 1"
    },
    {
      "image": "url4",
      "title": "Slide Title 2",
      "text": "Slide Text 2"
    }
  ]
}
  • Speichern der JSON-Daten:

    • Gehe zu dem Produkt, der Kollektion oder der Seite, auf der du das Metafeld verwenden möchtest.
    • Füge das JSON-Dokument in das erstellte Metafeld ein.
  • Anpassung des Themes:

    • Passe dein Theme an, um die JSON-Daten aus dem Metafeld auszulesen und anzuzeigen. Dies kannst du in den Liquid-Dateien deines Themes tun.
    • Beispiel für die Liquid-Datei mit einer IF- und FOR-Loop:
{% assign json_data = product.metafields.custom.json_field | parse_json %}
{% if json_data.banner1 %}
  
    
    ## {{ json_data.banner1.title }}
    

{{ json_data.banner1.text }}

  

{% endif %}
{% if json_data.banner2 %}
  
    
    ## {{ json_data.banner2.title }}
    

{{ json_data.banner2.text }}

  

{% endif %}
{% for slide in json_data.slides %}
  
    
    ### {{ slide.title }}
    

{{ slide.text }}

  

{% endfor %}

Weitere Details und Anwendungsbeispiele findest du in der Shopify Community​ und hier​ - Shopify Community.

Hoffe das hilft dir weiter - lass wissen falls nicht! :wink:

1 Like