Skip to content

DmfGuppyTheme

DmfGuppyTheme ist das Fundament des Guppy-Frameworks. Es ersetzt das Standard-Storefront-Theme von Shopware durch eine schlanke, dokumentierte Bootstrap-5-Variante mit umfangreicher Theme-Konfiguration und gezielten Twig- und SCSS-Overrides.

Schnellinfo

Composer-Paketdmf/sw6-guppy-theme
Plugin-KlasseDmf\GuppyTheme\DmfGuppyTheme
NamespaceDmf\GuppyTheme
Shopware~6.7.0
Pflicht-Dependencydmf/sw6-plugin-splide-slider

Installation

bash
composer require dmf/sw6-guppy-theme
bin/console plugin:refresh
bin/console plugin:install --activate DmfGuppyTheme
bin/console theme:change       # Sales-Channel auswählen
bin/console theme:compile

DmfSplideSlider wird automatisch von Composer mitgezogen, muss aber separat aktiviert werden, falls noch nicht vorhanden:

bash
bin/console plugin:install --activate DmfSplideSlider

Splide als Single Source of Truth

DmfSplideSlider bündelt die Splide-Bibliothek einmal und stellt den Konstruktor global unter window.DmfSplide bereit. Theme und abhängige Plugins (etwa DmfCmsCustomElements) konsumieren diese geteilte Instanz, statt jeweils eine eigene Kopie auszuliefern. Deshalb muss DmfSplideSlider aktiv sein, bevor Slider im Storefront rendern. Details unter DmfSplideSlider.

Konfiguration

Im Gegensatz zu vielen Plugins bringt DmfGuppyTheme kein klassisches config.xml für die Plugin-Einstellungen mit. Stattdessen liegen alle Konfigurationen in theme.json und werden über die Theme-Konfiguration in der Administration ausgespielt.

Tabs der Theme-Konfiguration

TabInhalt
LayoutContainer-Breiten, Section-Padding, Sidebar-Verhalten
HeaderHeader-Variante, USP-Banner, Logo-Position
FooterSpaltenanzahl, Newsletter-Block, Payment-/Shipping-Logos
USPUSP-Bar (Toggle, Farben, Texte, Social-Links)
LoginLogin-/Register-Box-Verhalten
CheckoutCheckout-Layout, 3-Step-Progress, Trust-Elemente
Guppy CardsCard-Komponenten der Detailseite
ProductcardListing-/Slider-Produktkarten
DetailpageBuybox-Styling, Produktbilder, Slider
ButtonButton-Farben, Sizes, Outline-Toggles
BadgesNeu-/Top-Seller-/Discount-Badges (optional Outline)
AlertsHintergrund- und Textfarbe pro Alert-Typ

Detailreferenz

Die vollständige Feldreferenz mit Default-Werten liegt unter Konfigurationsschema.

Console-Commands

DmfGuppyTheme registriert eigene Konsolen-Befehle:

BefehlZweck
guppy:theme:createErstellt ein neues Theme-Verzeichnis mit Grundstruktur.
guppy:install:pluginsInstalliert optional empfohlene Begleit-Plugins via Composer.
guppy:upgrade:scanScannt das Projekt nach Änderungen, die nach Theme-Updates Aufmerksamkeit benötigen.

Die ausführliche Dokumentation der Befehle findest du unter Twig-Blöcke und Konsolen-Workflow.

SCSS-Architektur (Kurzüberblick)

Die zentralen Variablen-Dateien:

text
src/Resources/app/storefront/src/scss/
├── overrides.scss                   # Theme-Hook (lädt vor @DmfGuppyTheme)
├── base.scss                        # Theme-Hook (lädt nach @DmfGuppyTheme)
├── abstract/variables/
│   ├── bootstrap.scss               # Bootstrap-Overrides
│   └── custom.scss                  # Guppy-eigene Tokens
└── skin/shopware/abstract/variables/
    ├── bootstrap.scss               # Shopware-Integration (Overrides)
    └── theme.scss                   # Theme-Integration

Mehr Details

Die vollständige Architekturbeschreibung folgt unter Variablen & Tokens und Architektur.

Branching-Strategie

DmfGuppyTheme nutzt einen Staging-Workflow mit drei Hauptbranches:

BranchZweck
mainProduktionsbereit, Single Source of Truth, Tags entstehen hier.
stageQA- und Test-Branch. Features werden hier validiert, bevor sie in main gemergt werden.
nextVorbereitung kommender Shopware-Major-Versionen, Breaking Changes.

Feature-Branches folgen dem Schema TICKET-123_feature-name.

Hinweise

Theme aktivieren

Nach theme:change muss zwingend theme:compile laufen. Andernfalls werden weder SCSS-Overrides noch theme.json-Werte in das kompilierte CSS eingebaut.

Child-Theme-Workflow

Eigene Anpassungen gehören in ein Child-Theme. Statt DmfGuppyTheme direkt zu modifizieren, generiere ein Child-Theme mit dem Theme Builder oder lege es manuell an (siehe Child Theme manuell entwickeln).