Wie ein Theme funktioniert
Ein wavux-Theme bestimmt das Aussehen — nicht den Inhalt und nicht die Funktion. Diese Aufteilung ist der Grund, warum ein Händler das Theme wechseln kann, ohne seine Startseite neu zu bauen, und warum ein Theme nach einem Update weiterläuft.
| Teil | Zuständig für |
|---|---|
| Core | Mechanik: Builder, Warenkorb, Kasse, Preise, Seiten-Aufruf |
| Plugins | Funktionen: Zahlungsarten, Versand, Rechtsangaben, Newsletter … |
| Theme | Optik: Farben, Schriften, Formen, wie jeder Block gezeichnet wird |
Die fünf Regeln
Abschnitt betitelt „Die fünf Regeln“- Alles Inhaltliche ist ein Builder-Block — Startseite, Produktseite, Kategorie, Kopf- und Fußzeile, Kasse. Der Händler muss es sehen, verschieben und einstellen können.
- Theme-Einstellungen sind nur für Marke, Farben, Schrift, Logo und Rahmen (Kopf-/Fußzeilen- Mechanik, globale Schalter) — nie für Inhalte wie USP-Zeilen oder Lieferbox-Texte. Und jede Einstellung muss wirken.
- Ein Block-Override liest die Optionen seines Blocks — alle, und keine, die es nicht gibt.
- Themes stylen Blöcke, sie bauen sie nicht nach. Eigene Blade-Seiten sind Rückfall, nicht Standardweg.
- Fertig ist ein Feature erst, wenn es im Builder bearbeitbar ist. „Sieht richtig aus” reicht nicht.
Aufbau eines Themes
Abschnitt betitelt „Aufbau eines Themes“platform/themes/mein-theme/├── theme.json Name, Vertrag, Design-Tokens, Einstellungen├── views/│ ├── layout.blade.php Rahmen: <head>, Kopf- und Fußzeilen-Fläche, Hooks│ ├── builder-template.blade.php Hülle für Produkt- und Kategorievorlage│ ├── home.blade.php Rückfall Startseite│ ├── product.blade.php Rückfall Produktseite│ ├── category.blade.php Rückfall Kategorieseite│ ├── search.blade.php Suchergebnisse│ ├── cms-page.blade.php Inhaltsseiten│ ├── components/product-card.blade.php│ ├── partials/footer-legal.blade.php│ ├── partials/quickview.blade.php Schnellansicht│ └── blocks/ Block-Overrides: hero.blade.php, product_grid.blade.php …├── demo/ Beispielinhalte (Seeds) je Fläche│ ├── home.json header.json mobile_header.json footer.json│ ├── product_template.default.json│ └── category_template.default.json└── public/ └── css/app.css das Stylesheet — darf komplett neu geschrieben werdenFehlt eine View im Theme, nimmt der Shop die eingebaute. Ein Theme kann deshalb mit sehr wenigen
Dateien auskommen; Child-Themes ("parent" in theme.json) erben alles vom Eltern-Theme und
überschreiben nur einzelne Dateien.
Wie eine Seite entsteht
Abschnitt betitelt „Wie eine Seite entsteht“- Der Aufruf landet im Core; der ermittelt die Daten (Artikel, Kategorie, Preise mit allen Pflichtangaben).
- Gibt es für die Seite eine Builder-Vorlage (der Normalfall), rendert der Core deren Blöcke.
- Für jeden Block schaut er, ob das Theme ein Override unter
views/blocks/{typ}.blade.phphat — sonst nimmt er die eingebaute Darstellung. - Das Ergebnis kommt in
layout.blade.phpdes Themes; dort hängen sich über Hooks die Plugins ein (Rechtslinks, Preisangaben, Tracking).