Wichtige Erkenntnisse
- Shopify-Sections sind Liquid-Dateien im Ordner
sections/mit einem{% schema %}-Block, der ihre Einstellungen definiert.- Im Schema definierte Einstellungen erscheinen automatisch in der rechten Seitenleiste des Theme Editors.
- Füge dem Schema einen
presets-Key hinzu, um die Section in “Abschnitt hinzufügen” verfügbar zu machen, ohne das Template manuell bearbeiten zu müssen.- Fudge erstellt komplette benutzerdefinierte Sections aus einer einfachen Beschreibung auf Englisch — inklusive HTML, CSS, JavaScript und Schema.
Jede Section im Theme Editor ist eine Liquid-Datei mit einem Schema. Das Schema macht sie ohne Code bearbeitbar — es definiert, welche Einstellungen in der rechten Seitenleiste erscheinen, welcher Input-Typ jede Einstellung ist und was die Standardwerte sind.
Wenn du diese Struktur verstehst, kannst du alles bauen.
So erstellst du eine benutzerdefinierte Section in Shopify
Schritt 1 - Dupliziere dein aktives Theme. Onlineshop → Themes → Drei-Punkte-Menü → Duplizieren.
Schritt 2 - Öffne den Code-Editor des duplizierten Themes.
Schritt 3 - Navigiere zum Ordner sections/.
Schritt 4 - Klicke auf das ”+” oder den Button “Einen neuen Abschnitt hinzufügen”. Benenne deine Section (z. B. custom-promo-banner). Shopify erstellt sections/custom-promo-banner.liquid.
Schritt 5 - Schreibe den Inhalt deiner Section und das Schema.
Die Anatomie einer Shopify-Section
Eine Section-Datei besteht aus zwei Hauptteilen: HTML/Liquid-Inhalt und einem {% schema %}-Block.
<!-- Der sichtbare Inhalt -->
<div class="promo-banner" style="background-color: {{ section.settings.background_color }};">
<div class="page-width">
<p class="promo-banner__text">{{ section.settings.text }}</p>
<a href="{{ section.settings.button_link }}" class="button">
{{ section.settings.button_label }}
</a>
</div>
</div>
{% schema %}
{
"name": "Promo Banner",
"settings": [
{
"type": "text",
"id": "text",
"label": "Banner text",
"default": "Free shipping on orders over $50"
},
{
"type": "color",
"id": "background_color",
"label": "Background color",
"default": "#000000"
},
{
"type": "text",
"id": "button_label",
"label": "Button label",
"default": "Shop Now"
},
{
"type": "url",
"id": "button_link",
"label": "Button link"
}
],
"presets": [
{
"name": "Promo Banner"
}
]
}
{% endschema %}
Wie Schema-Einstellungen funktionieren:
"type"— der Input-Typ (text, color, url, image_picker, select, range, etc.)"id"— der Variablenname, der in Liquid verwendet wird:{{ section.settings.text }}"label"— was im Theme Editor angezeigt wird"default"— der Initialwert beim ersten Hinzufügen
Gängige Typen für Schema-Einstellungen
| Typ | Verwendung für |
|---|---|
text | Kurze Texteingaben |
textarea | Längerer Text |
richtext | Formatierter Text mit fett/kursiv |
image_picker | Händler ein Bild auswählen lassen |
url | Links und Button-Ziele |
color | Farbauswahl |
range | Schieberegler für Zahlen (z. B. Padding, Schriftgröße) |
select | Dropdown mit vordefinierten Optionen |
checkbox | Boolean-Umschalter |
html | Benutzerdefinierte HTML-Eingabe |
header | Gruppenüberschrift (keine echte Einstellung, nur visuell) |
Blöcke hinzufügen — sich wiederholende Elemente
Blöcke ermöglichen es Händlern, sich wiederholende Inhalte hinzuzufügen — Testimonials, FAQs, Feature-Listen. Jeder Block hat sein eigenes Schema.
{% for block in section.blocks %}
<div class="testimonial {{ block.shopify_attributes }}">
<p>{{ block.settings.quote }}</p>
<cite>{{ block.settings.author }}</cite>
</div>
{% endfor %}
Füge im Schema einen "blocks"-Key hinzu:
"blocks": [
{
"type": "testimonial",
"name": "Testimonial",
"settings": [
{
"type": "textarea",
"id": "quote",
"label": "Quote"
},
{
"type": "text",
"id": "author",
"label": "Author name"
}
]
}
],
"max_blocks": 6
{{ block.shopify_attributes }} ist erforderlich, damit der Theme Editor jeden Block erkennt und die Bearbeitung ermöglicht.
Deine Section unter “Abschnitt hinzufügen” anzeigen
Der "presets"-Key im Schema sorgt dafür, dass deine Section im Menü “Abschnitt hinzufügen” des Theme Editors erscheint. Ohne Presets funktioniert die Section nur, wenn sie manuell einer Template-JSON-Datei hinzugefügt wird.
"presets": [
{
"name": "Promo Banner",
"blocks": [
{
"type": "testimonial"
}
]
}
]
Der "name" in den Presets ist die Bezeichnung, die im Menü “Abschnitt hinzufügen” erscheint.
CSS und JavaScript zu einer Section hinzufügen
Verwende {% stylesheet %} und {% javascript %} Blöcke am Ende der Section-Datei (nach dem Schema):
{% stylesheet %}
.promo-banner {
padding: 12px 0;
text-align: center;
}
.promo-banner__text {
font-size: 14px;
margin: 0 0 8px;
}
{% endstylesheet %}
{% javascript %}
// Sektionsspezifisches JavaScript hier
// Von Shopify automatisch gebündelt und verzögert (deferred) geladen
{% endjavascript %}
Shopify bündelt alle Section-Stylesheets und -Skripte automatisch — du musst für einfache Sections keine separaten CSS- oder JS-Dateien erstellen.
Fudge verwenden, um benutzerdefinierte Sections zu generieren
Das manuelle Erstellen von Sections erfordert Verständnis von Liquid, JSON-Schema-Syntax und der Section-Architektur von Shopify. Fudge räumt diese Hürde aus dem Weg:
“Erstelle eine Testimonial-Section mit einer Überschrift, einem Untertitel und bis zu 6 Testimonial-Blöcken. Jeder Block soll ein Zitat (Textbereich), den Namen des Autors, den Titel des Autors und eine Sternebewertung (Range 1-5) haben. Zeige sie in einem 3-Spalten-Raster auf dem Desktop und 1 Spalte auf dem Handy an.”
Fudge generiert die komplette Section-Datei — HTML, Schema, CSS und JavaScript — als Entwurf zur Überprüfung. Kein Suchen nach Schema-Definitionen, keine Liquid-Syntaxfehler.