Zum Hauptinhalt springen

Easy Variant Picker

Die Easy Variant Picker App ersetzt die Standard-Varianten-Dropdowns auf Produktseiten Ihres Shopify Shops durch anpassbare Auswahlbuttons. Kunden wählen Optionen wie Farbe, Material oder Größe direkt per Klick aus. Die dargestellten Optionen basieren auf App-eigenen Metafeldern, die Sie im Admin-Interface verwalten. Erscheinungsbild und Abstände werden über den Theme Editor gesteuert und lassen sich zusätzlich mit eigenem CSS erweitern.

Funktionsweise

Der Block ist als Theme App Extension implementiert und wird als Section-Block auf Produktvorlagen geladen. Beim Seitenaufruf liest das Liquid-Template die konfigurierten Varianten-Optionen aus den Shop-Metafeldern aus und stellt die verfügbaren Werte je Produktvariante als Buttons dar. Ein Best-Match-Algorithmus wählt bei Änderungen automatisch die nächstpassende Variante aus, falls die bisherige Kombination nicht mehr verfügbar ist. Das Custom CSS aus dem Admin-Interface wird über ein Shop-Metafeld bereitgestellt und direkt in die Seite eingebettet.

Installation

Die App wird über den Shopify App Store installiert. Nach der Installation erscheint der Block Easy Variant Picker automatisch im Theme Editor unter Abschnitte → Blöcke. Fügen Sie den Block zu Ihrer Produktvorlage hinzu und konfigurieren Sie ihn direkt im Editor.

Variantenoptionen verwalten

Bevor der Block auf der Storefront Optionen anzeigen kann, müssen die gewünschten Variantenoptionen im Admin-Interface angelegt werden.

Option hinzufügen

  1. Öffnen Sie die App im Shopify Admin
  2. Geben Sie unter Option hinzufügen einen Key (internen Bezeichner, z. B. material) und einen Anzeigenamen (z. B. Material) ein
  3. Klicken Sie auf Hinzufügen

Die App legt daraufhin eine Metafeld-Definition vom Typ Einzelzeilentext im $app-Namespace für Produktvarianten an. Tragen Sie den gewünschten Optionswert anschließend am jeweiligen Produktvariant in Shopify ein.

Voraussetzungen:

  • Der Key darf nur Kleinbuchstaben, Ziffern und Unterstriche enthalten (z. B. color, shoe_size)
  • Jeder Key kann nur einmal angelegt werden

Option löschen

Nicht mehr benötigte Optionen lassen sich unter Aktuelle Definitionen mit der Schaltfläche Löschen entfernen. Dabei wird die Metafeld-Definition samt allen damit verbundenen Variantenwerten aus Shopify gelöscht.

Einstellungen

Alle Einstellungen werden direkt im Shopify Theme Editor am Block vorgenommen.

Farben

EinstellungTypStandardBeschreibung
PrimärfarbeFarbe#008060Farbe für Hover-Zustand und ausgewählte Option
RahmenfarbeFarbe#c4c4c4Rahmenfarbe der Buttons im Normalzustand
TextfarbeFarbe#202123Textfarbe der Button-Beschriftungen

Typografie

EinstellungTypStandardBeschreibung
SchriftgrößeSchieberegler14 pxSchriftgröße der Button-Beschriftungen (12–20 px, Schritte: 1 px)

Abstände

EinstellungTypStandardBeschreibung
Horizontaler InnenabstandSchieberegler16 pxLinker und rechter Innenabstand der Buttons (8–32 px, Schritte: 2 px)
Vertikaler InnenabstandSchieberegler8 pxOberer und unterer Innenabstand der Buttons (4–16 px, Schritte: 2 px)
EckenradiusSchieberegler4 pxEckenradius der Buttons (0–20 px, Schritte: 2 px)

Custom CSS

Im Shopify Admin auf der App-Einstellungsseite kann eigenes CSS für den Block hinterlegt werden. Das CSS wird im Shop-Metafeld $app:custom_css gespeichert und beim Seitenaufruf direkt in den <head> eingebettet.

Das Admin-Interface validiert das CSS in Echtzeit mit der css-tree-Bibliothek und zeigt Syntaxfehler mit Zeilennummer an, bevor gespeichert wird.

CSS-Custom-Properties

Der Block stellt folgende CSS-Custom-Properties zur Verfügung, die über die Theme-Editor-Einstellungen gesetzt werden:

VariableBeschreibungStandardwert
--evp-primaryPrimärfarbe (Selektion, Hover)#008060
--evp-primary-hoverHover-Farbe der Primärfarbeabgeleitet von --evp-primary
--evp-borderRahmenfarbe#c4c4c4
--evp-bgHintergrundfarbe nicht ausgewählter Buttons#ffffff
--evp-bg-selectedHintergrundfarbe ausgewählter Buttonsabgeleitet von --evp-primary
--evp-textTextfarbe#202123
--evp-text-selectedTextfarbe ausgewählter Buttonsabgeleitet von --evp-primary
--evp-radiusEckenradius4px
--evp-gapAbstand zwischen den Buttons8px
--evp-font-sizeSchriftgröße14px

CSS-Klassen

KlasseElementHinweis
#easy-variant-pickerHaupt-Container des BlocksEnthält alle Optionsgruppen
.evp-optionEinzelner AuswahlbuttonBasisklasse für alle Zustände
.evp-option--selectedAusgewählter ButtonWird beim aktiven Variantenwert gesetzt
.evp-option--disabledNicht verfügbarer ButtonVariante existiert nicht, ist ausverkauft oder deaktiviert

Beispiel

#easy-variant-picker {
gap: 12px;
}

.evp-option {
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
}

.evp-option--disabled {
opacity: 0.4;
text-decoration: line-through;
}

Barrierefreiheit und Tastaturnavigation

Der Block ist vollständig barrierefrei umgesetzt:

  • Jede Optionsgruppe besitzt ein aria-label-Attribut mit dem Optionsnamen
  • Ausgewählte Buttons werden mit aria-pressed="true" markiert
  • Nicht verfügbare Buttons erhalten aria-disabled="true"
  • Die Pfeiltasten ← → ermöglichen die Navigation zwischen den Buttons einer Optionsgruppe

Metafeld-Struktur

Die App verwendet ausschließlich den App-eigenen $app-Namespace für Metafelder und greift nicht auf Theme- oder Custom-Metafelder zu.

MetafeldTypBeschreibung
Shop: $app:variant_option_keysTextKommagetrennte Liste der angelegten Option-Keys
Shop: $app:variant_option_labelsJSONZuordnung Key → Anzeigename
Shop: $app:custom_cssTextBenutzerdefiniertes CSS
Variante: $app:<key>TextOptionswert der jeweiligen Variante