So erstellen Sie einen neuen Sektionstyp in Shopify von Grund auf (2026)

Zuletzt aktualisiert
Von Experten geprüft
5 Min. Lesezeit
Jacques Blom
Jacques Blom
CTO bei Fudge.

Das Wichtigste in Kürze

  • Ein neuer Section-Typ ist eine Liquid-Datei im sections/-Ordner mit einer HTML-Struktur, einem {% schema %}-Block und Presets, damit er im “Abschnitt hinzufügen”-Menü erscheint.
  • Dieser Guide zeigt, wie man eine komplette Testimonial-Section mit bearbeitbarer Überschrift, Spaltenanzahl und wiederholbaren Testimonial-Blöcken (Zitat, Autor, Bewertung) erstellt.
  • "max_blocks" begrenzt, wie viele Blöcke Händler hinzufügen können. "min_blocks" erfordert ein Minimum.
  • Sobald die Section veröffentlicht ist, erscheint sie im Theme-Editor für jede Seite, die Sections erlaubt.

Ein neuer Section-Typ wird Teil der Section-Bibliothek deines Themes – bereit, um zu jedem Seitentemplate hinzugefügt zu werden, das Sections unterstützt. Dieser Guide zeigt dir Schritt für Schritt, wie du eine komplette, direkt einsetzbare Testimonial-Section von Grund auf neu erstellst.

Wie füge ich eine neue Sektion in Shopify hinzu?

Erstelle eine neue .liquid-Datei im Ordner sections/ deines Themes. Gib ihr einen aussagekräftigen Namen im Kebab-Case (z. B. testimonials-grid.liquid). Die Datei muss einen gültigen {% schema %}-Block mit einem "presets"-Key enthalten, damit sie im Menü „Abschnitt hinzufügen“ erscheint.

Verwandt: Eigene Liquid-Logik in Shopify hinzufügen.


Planung der Sektion

Bevor du mit dem Coden beginnst, definiere, was der Abschnitt benötigt:

Verwandt: Fudge Page Builder.

Einstellungen auf Abschnittsebene (global):

Einstellungen auf Blockebene (pro Testimonial):

Verhalten:


Schritt 1 — Erstellen der Sektionsdatei

Öffnen Sie den Code-Editor → Ordner sections/ → neue Datei hinzufügen: testimonials-grid.liquid.


Schritt 2 — HTML-Struktur schreiben

<section class="testimonials-grid section-{{ section.id }}" id="section-{{ section.id }}">
  <div class="page-width">

    {% if section.settings.heading != blank %}
      <h2 class="testimonials-grid__heading">{{ section.settings.heading }}</h2>
    {% endif %}

    {% if section.settings.subheading != blank %}
      <p class="testimonials-grid__subheading">{{ section.settings.subheading }}</p>
    {% endif %}

    <div class="testimonials-grid__grid testimonials-grid__grid--{{ section.settings.columns }}-col">

      {% for block in section.blocks %}
        <div class="testimonials-grid__item" {{ block.shopify_attributes }}>

          {% if block.settings.rating > 0 %}
            <div class="testimonials-grid__stars" aria-label="{{ block.settings.rating }} von 5 Sternen">
              {% for i in (1..5) %}
                <span class="testimonials-grid__star {% if i <= block.settings.rating %}testimonials-grid__star--filled{% endif %}">&#9733;</span>
              {% endfor %}
            </div>
          {% endif %}

          {% if block.settings.quote != blank %}
            <blockquote class="testimonials-grid__quote">
              {{ block.settings.quote }}
            </blockquote>
          {% endif %}

          <div class="testimonials-grid__author">
            {% if block.settings.author_photo != blank %}
              <img
                src="{{ block.settings.author_photo | img_url: '80x80', crop: 'center' }}"
                alt="{{ block.settings.author_name }}"
                class="testimonials-grid__author-photo"
                loading="lazy"
                width="40"
                height="40"
              />
            {% endif %}
            <div>
              {% if block.settings.author_name != blank %}
                <p class="testimonials-grid__author-name">{{ block.settings.author_name }}</p>
              {% endif %}
              {% if block.settings.author_title != blank %}
                <p class="testimonials-grid__author-title">{{ block.settings.author_title }}</p>
              {% endif %}
            </div>
          </div>

        </div>
      {% endfor %}

    </div>
  </div>
</section>

Schritt 3 — Schema schreiben

{% schema %}
{
  "name": "Testimonials Grid",
  "tag": "section",
  "class": "section",
  "settings": [
    {
      "type": "text",
      "id": "heading",
      "label": "Überschrift",
      "default": "Das sagen unsere Kunden"
    },
    {
      "type": "text",
      "id": "subheading",
      "label": "Unterüberschrift",
      "default": "Tausende glückliche Kunden vertrauen uns"
    },
    {
      "type": "select",
      "id": "columns",
      "label": "Spalten auf Desktop",
      "options": [
        { "value": "2", "label": "2 Spalten" },
        { "value": "3", "label": "3 Spalten" }
      ],
      "default": "3"
    }
  ],
  "blocks": [
    {
      "type": "testimonial",
      "name": "Testimonial",
      "settings": [
        {
          "type": "range",
          "id": "rating",
          "label": "Sternebewertung",
          "min": 1,
          "max": 5,
          "step": 1,
          "default": 5
        },
        {
          "type": "textarea",
          "id": "quote",
          "label": "Zitat",
          "default": "Dieses Produkt hat meine Arbeitsweise komplett verändert. Ich könnte nicht zufriedener sein."
        },
        {
          "type": "image_picker",
          "id": "author_photo",
          "label": "Foto des Autors"
        },
        {
          "type": "text",
          "id": "author_name",
          "label": "Name des Autors",
          "default": "Max Mustermann"
        },
        {
          "type": "text",
          "id": "author_title",
          "label": "Titel oder Firma des Autors",
          "default": "Verifizierter Kunde"
        }
      ]
    }
  ],
  "max_blocks": 12,
  "presets": [
    {
      "name": "Testimonials Grid",
      "blocks": [
        { "type": "testimonial" },
        { "type": "testimonial" },
        { "type": "testimonial" }
      ]
    }
  ]
}
{% endschema %}

Schritt 4 — CSS hinzufügen

{% stylesheet %}
  .testimonials-grid {
    padding: 60px 0;
  }

  .testimonials-grid__heading {
    text-align: center;
    margin-bottom: 8px;
  }

  .testimonials-grid__subheading {
    text-align: center;
    color: #666;
    margin-bottom: 40px;
  }

  .testimonials-grid__grid {
    display: grid;
    gap: 24px;
  }

  .testimonials-grid__grid--2-col {
    grid-template-columns: repeat(2, 1fr);
  }

  .testimonials-grid__grid--3-col {
    grid-template-columns: repeat(3, 1fr);
  }

  @media (max-width: 767px) {
    .testimonials-grid__grid--2-col,
    .testimonials-grid__grid--3-col {
      grid-template-columns: 1fr;
    }
  }

  .testimonials-grid__item {
    background: #f9f9f9;
    padding: 24px;
    border-radius: 8px;
  }

  .testimonials-grid__star--filled {
    color: #f5a623;
  }

  .testimonials-grid__quote {
    font-style: italic;
    margin: 12px 0 16px;
  }

  .testimonials-grid__author {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .testimonials-grid__author-photo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
  }

  .testimonials-grid__author-name {
    font-weight: bold;
    margin: 0;
  }

  .testimonials-grid__author-title {
    font-size: 14px;
    color: #666;
    margin: 0;
  }
{% endstylesheet %}

Schritt 5 — Testen

Gehen Sie nach dem Speichern zu Online Store → Themes → Anpassen. Klicken Sie auf einer beliebigen Seite auf „Sektion hinzufügen“. Ihre „Testimonials Grid“-Sektion sollte in der Liste erscheinen. Fügen Sie sie hinzu und bestätigen Sie, dass das Einstellungsmenü korrekt funktioniert.

Erstellen Sie eine benutzerdefinierte Shopify-Sektion, indem Sie sie Fudge beschreiben.
Try Fudge for Free

Wie füge ich einen neuen Typ in Shopify hinzu?

„Type“ im Kontext von Sections bezieht sich auf Block-Types innerhalb einer Section (wie der Block "type": "testimonial" oben) oder den Section-Type selbst. Du fügst neue Section-Types hinzu, indem du neue Liquid-Dateien in sections/ erstellst. Du fügst neue Block-Types hinzu, indem du Einträge zum Array "blocks" im Schema einer Section hinzufügst.


FAQ

Warum taucht meine neue Section nicht im "Abschnitt hinzufügen"-Menü auf?

Der häufigste Grund: Es fehlt das "presets"-Array im Schema. Eine Section ohne Presets ist zwar technisch gesehen valides Liquid, aber Shopify listet sie dann nicht im Dropdown-Menü auf. Füge einfach mindestens einen Preset-Eintrag mit einem "name" hinzu, dann sollte sie auftauchen. (Wenn du das Schema lieber nicht von Hand schreiben möchtest, generiert Fudge die Section-Datei mit validen Presets, Schema und Liquid allein aus einer einfachen Beschreibung.)

Was ist der Unterschied zwischen Section-Settings und Block-Settings?

Section-Settings gelten einmalig für die gesamte Section (die Überschrift, die Spaltenanzahl, die Hintergrundfarbe). Block-Settings gelten für jedes wiederholte Child-Element innerhalb der Section (also Zitat, Autor und Bewertung für jedes einzelne Testimonial). Verwende Section-Settings für globale Konfigurationen und Blocks für wiederkehrenden Content, den der Händler hinzufügt und neu anordnet.

Kann ich eine Section auf bestimmte Seitentemplates beschränken?

Ja – im Schema kannst du "enabled_on": { "templates": ["product"] } hinzufügen, um sie nur auf Produktseiten zuzulassen, oder "disabled_on": { "templates": ["index"] }, um sie auf der Startseite zu verbergen. Standardmäßig ist eine Section mit Presets auf jedem JSON-Template verfügbar.

Wie kann ich dafür sorgen, dass eine Section sowohl als normale Section als auch als App-Block funktioniert?

Gar nicht – das sind unterschiedliche Konzepte. App-Blocks sind Erweiterungen, die von einer App installiert werden. Sie erscheinen zwar in derselben "Abschnitt hinzufügen"-UI, sind aber der App zugeordnet. Eine Theme-Section lebt in deinem Theme-Code. Wenn du sie selber baust, erstell einfach eine Theme-Section.

Warum wird `{% schema %}` als reiner Text auf meiner Seite angezeigt?

Das Liquid wird als Inhalt gerendert, anstatt geparst zu werden. Wahrscheinlich liegt die Datei im falschen Ordner (muss in sections/ sein, nicht in snippets/ oder templates/), oder der Schema-Block hat einen JSON-Syntaxfehler, der das Liquid-Parsing abbricht. Überprüfe den Theme Inspector auf Fehler und validiere das JSON innerhalb von {% schema %} separat.

Jacques's signature
Erstelle eigene Shopify Section-Typen, indem du sie einfach beschreibst.

Verwandt: Benutzerdefiniertes JavaScript in Shopify hinzufügen.

Verwandt: Startseiten-Sections in Shopify hinzufügen.

You might also be interested in

So erstellst du eine benutzerdefinierte Section in Shopify (2026)
Lernen Sie, wie Sie eine eigene Shopify Section von Grund auf bauen – Liquid HTML, Schema, Einstellungen und Theme Editor Integration. Komplette Code-Anleitung.
So fügst du ein Custom Template in Shopify hinzu (2026)
Erfahre, wie du ein eigenes Seiten-Template in Shopify erstellst – erstelle ein JSON-Template, füge Sections hinzu und weise es spezifischen Seiten zu.
So fügst du benutzerdefinierte Liquid-Logik in Shopify hinzu (2026)
Erfahren Sie, wie Sie benutzerdefinierte Liquid-Logik zu Shopify hinzufügen – zeigen Sie Inhalte basierend auf Product Tags, Customer Tags, Metafeldern, Warenkorbinhalt oder Datum an.