Shopware Frontends: Headless Storefront mit Nuxt – Möglichkeiten, Vorteile und Grenzen

Shopware 6 wurde von Grund auf API-first entwickelt. Jede Funktion, die der klassische Twig-Storefront nutzt, ist auch über die Store API zugänglich. Shopware Frontends (ehemals Shopware PWA, später Composable Frontends) setzt genau hier an: Eine Sammlung von NPM-Paketen, mit der du das komplette Storefront-Frontend in Nuxt und Vue.js bauen kannst – vollständig entkoppelt vom PHP-Backend.

Das klingt nach maximaler Freiheit. Ist es auch. Aber Freiheit hat einen Preis: Komplexität, Verantwortung und die Frage, ob der Aufwand in deinem konkreten Projekt gerechtfertigt ist.


Was Shopware Frontends ist – und was nicht

Shopware Frontends ist kein fertiger Shop. Es ist kein Theme-System und kein Plugin-Ökosystem. Es ist ein Framework-Baukasten, bestehend aus mehreren unabhängig einsetzbaren Paketen:

PaketFunktion
@shopware/api-clientTypeScript-basierter API-Client, framework-agnostisch
@shopware/composablesVue 3 Composition Functions für Business-Logik (Cart, User, Listing, …)
@shopware/cms-base-layerCMS-Komponenten (Shopping Experiences) als Nuxt Layer in Tailwind/UnoCSS
@shopware/nuxt-moduleNuxt-Modul, das API-Client und Composables konfiguriert und bereitstellt
@shopware/api-genGeneriert TypeScript-Typen aus der OpenAPI-Spezifikation deiner Instanz
@shopware/helpersHilfsfunktionen für Preisformatierung, Übersetzungen, URL-Handling

Der API-Client ist nicht an Vue gebunden. Du kannst ihn in React, Svelte oder reinem Node.js verwenden. Die Composables und CMS-Komponenten sind Vue-spezifisch und primär für den Einsatz mit Nuxt konzipiert.

Seit Ende 2025 ist das Vue Starter Template der empfohlene Einstiegspunkt. Es basiert auf Nuxt 4, nutzt die app/ -Verzeichnisstruktur und ist als produktionsreife Grundlage gedacht – im Gegensatz zum älteren Demo Store Template, das Shopware selbst als nicht produktionsreif einordnet.


Architektur: Wie die Entkopplung funktioniert

Die Architektur folgt einem klaren Prinzip: Shopware 6 liefert ausschließlich Daten über die Store API. Das Nuxt-Frontend übernimmt Rendering, Routing, State Management und Caching.

┌─────────────────┐         ┌─────────────────┐
│  Nuxt Frontend  │◄──API──►│  Shopware 6     │
│  (Vue 3 / SSR)  │         │  (Store API)    │
│  Composables    │         │  Business Logic │
│  CMS Components │         │  ERP / PIM      │
└─────────────────┘         └─────────────────┘

Die Kommunikation läuft über den sw-context-token, der als Cookie persistiert wird und sowohl im SSR- als auch im Client-Kontext verfügbar ist. Alle Composables sind global registriert und vollständig typisiert.

Nuxt bietet dir dabei Flexibilität beim Rendering: SSR für SEO-relevante Seiten, Client-side Rendering für interaktive Bereiche, und perspektivisch ISR oder Edge Rendering über Plattformen wie Vercel oder Cloudflare Pages.


Was Shopware Frontends ermöglicht

Die Entkopplung vom Twig-Storefront eröffnet Möglichkeiten, die im klassischen Setup entweder gar nicht oder nur mit erheblichem Aufwand umsetzbar sind.

Volle Kontrolle über den Tech-Stack. Kein Bootstrap-Zwang, keine Twig-Vererbung, keine Plugin-Kompatibilitätsmatrix. Tailwind/UnoCSS, eigene Design-Systeme, beliebige UI-Bibliotheken – alles möglich. Dein Frontend wird zum eigenen Produkt statt zur Theme-Konfiguration.

Modernes Rendering und Performance. SSR, Code-Splitting, Lazy Loading und Below-the-fold-Rendering sind in Nuxt nativ integriert. Core Web Vitals lassen sich gezielt optimieren, ohne gegen das Shopware-Templating-System arbeiten zu müssen. Edge Rendering über Cloudflare oder Vercel ist mit dem Nuxt-Stack direkt umsetzbar.

Reaktive UI ohne Workarounds. Vue 3 bietet Reaktivität out of the box. Interaktive Produktkonfiguratoren, Live-Suche, dynamische Filter – alles, was im Shopware-JS-Plugin-System aufwändig ist, wird mit der Composition API handhabbar.

Unabhängige Skalierung. Frontend und Backend skalieren getrennt. Dein Shopware-Backend verarbeitet nur noch API-Requests, während das Frontend auf eigener Infrastruktur läuft. Bei Traffic-Peaks lässt sich das Frontend horizontal skalieren, ohne das ERP zu belasten.

Multi-Brand und Multi-Storefront. Nuxt Layers ermöglichen es, eine gemeinsame Basis zu pflegen und darauf mehrere markenspezifische Storefronts aufzubauen. Code-Sharing über Projekte hinweg wird zur normalen Nuxt-Architekturentscheidung statt zum Theme-Vererbungsproblem.

Unabhängigkeit von Shopware-Updates. Da Shopware Frontends ausschließlich die Store API nutzt und nicht auf interne APIs wie Twig-Blöcke, DAL oder Events zugreift, sind Backend-Updates deutlich risikoärmer. Die Upgrade-Komplexität sinkt erheblich.


Die Kehrseite: Wo die Grenzen liegen

So überzeugend die Architektur auf dem Papier wirkt – in der Praxis gibt es konkrete Einschränkungen, die du vor Projektstart kennen musst.

Kein Plugin-Ökosystem. Shopware Frontends ist nicht kompatibel mit Apps, Themes oder Plugins des klassischen Storefront. Jede Drittanbieter-Erweiterung muss daraufhin geprüft werden, ob sie Store-API-Endpunkte bereitstellt. Wenn nicht, musst du sowohl Backend- als auch Frontend-Logik selbst implementieren. Das relativiert den Kostenvorteil vieler Marketplace-Plugins erheblich.

Alles muss gebaut werden. Der klassische Storefront liefert Login, Warenkorb, Checkout, Wunschliste, Produktfilter und CMS-Integration out of the box. Bei Shopware Frontends startest du entweder vom Vue Starter Template oder von null. Selbst mit dem CMS Base Layer ist der Weg zu einem vollständig funktionalen Shop erheblich länger als mit einem Twig-Theme.

Over-Fetching und versteckte Komplexität. Hinter den Composables verbirgt sich Datenabruf, der nicht immer transparent ist. Welche Daten werden geladen? Wie oft? Gibt es Client-seitiges Caching? Ein useCart-Aufruf, der bei jeder Komponente alle Produktdetails neu lädt, ist ein reales Performance-Problem. Ohne bewusstes State Management und API-Optimierung entstehen schnell N+1-Situationen.

Höhere Infrastrukturanforderungen. SSR benötigt einen Node.js-Server. Das bedeutet zusätzliche Infrastruktur, zusätzliches Monitoring und ein Deployment, das über ein einfaches PHP-Hosting hinausgeht. Bei Vercel oder Cloudflare ist das elegant lösbar, bei klassischem Hosting ein Mehraufwand.

Doppelte Teamkompetenz erforderlich. Das Backend bleibt PHP/Symfony. Das Frontend wird Node.js/Vue/Nuxt. Du brauchst entweder Entwickler, die beide Welten beherrschen, oder zwei spezialisierte Teams. Die Koordination zwischen API-Änderungen im Backend und Frontend-Anpassungen ist ein laufender Aufwand.

CMS-Einschränkungen. Shopping Experiences werden als JSON über die API ausgeliefert. Jeder Block-Typ muss im Frontend als Vue-Komponente implementiert sein. Der CMS Base Layer deckt die Standardblöcke ab, aber Custom-Blöcke oder Plugin-basierte CMS-Erweiterungen erfordern Eigenentwicklung. Dein Marketing-Team kann zwar weiterhin im Admin Inhalte pflegen, aber neue Block-Typen erfordern immer einen Frontend-Deploy.

Codequalität und Typenabweichungen. In der Praxis berichten Entwickler von Inkonsistenzen in der Typisierung der Composables und gelegentlichen Abweichungen zwischen dokumentiertem und tatsächlichem Verhalten. Das Projekt wird aktiv weiterentwickelt – aktuell sind die Typen auf Shopware 6.7 aktualisiert – aber du musst bereit sein, mit einem Framework zu arbeiten, das noch nicht die Reife eines etablierten Open-Source-Projekts wie Nuxt selbst hat.


Klassischer Storefront vs. Shopware Frontends: Entscheidungskriterien

KriteriumTwig StorefrontShopware Frontends
Time-to-MarketSchnell (Themes, Plugins)Langsam (Eigenentwicklung)
Plugin-KompatibilitätVollständigNur API-basierte Extensions
Frontend-FreiheitEingeschränkt (Twig/Bootstrap)Vollständig (Vue/Nuxt/Tailwind)
Performance-OptimierungBegrenztVolle Kontrolle (SSR, Edge, CDN)
Shopware-Update-RisikoHoch (Theme/Plugin-Matrix)Gering (nur Store API)
InfrastrukturPHP-Hosting genügtNode.js-Server erforderlich
Team-AnforderungPHP/TwigPHP + Vue/Nuxt/TypeScript
SkalierbarkeitVertikalHorizontal (Frontend unabhängig)
CMS-FlexibilitätPlug & PlayJeder Block = Vue-Komponente
Langfristige WartbarkeitAbhängig von Plugin-KompatibilitätAbhängig von eigenem Code

Wann lohnt sich der Headless-Ansatz?

Der klassische Twig-Storefront ist die richtige Wahl, wenn:

  • schneller Go-Live wichtiger ist als maximale Gestaltungsfreiheit
  • das Plugin-Ökosystem intensiv genutzt werden soll
  • dein Team primär PHP/Twig-Kompetenz mitbringt
  • Standard-Anforderungen an Design und UX ausreichen
  • Budget und Ressourcen begrenzt sind

Shopware Frontends wird interessant, wenn:

  • ein individuelles Frontend-Erlebnis strategisch wichtig ist
  • Performance und Core Web Vitals geschäftskritisch sind
  • mehrere Storefronts oder Marken aus einer Codebasis bedient werden sollen
  • das Frontend unabhängig vom Backend skalieren muss
  • deine Organisation Vue/Nuxt-Kompetenz mitbringt oder aufbauen will
  • langfristige Unabhängigkeit von der Shopware-Theme/Plugin-Matrix gewünscht ist

Die Entscheidung ist nicht binär. Shopware Frontends lässt sich auch in ein bestehendes Projekt integrieren – etwa für einzelne Teilbereiche wie einen Konfigurator oder eine Landingpage – während der Hauptshop weiterhin auf dem klassischen Storefront läuft.


Fazit

Shopware Frontends ist kein Drop-in-Replacement für den Twig-Storefront. Es ist eine Architekturentscheidung mit weitreichenden Konsequenzen für Teamstruktur, Infrastruktur, Entwicklungsgeschwindigkeit und laufende Wartung.

Der Gewinn liegt in Kontrolle, Performance und Skalierbarkeit. Der Preis ist Komplexität, Entwicklungsaufwand und der Verlust des Plugin-Ökosystems.

Für Projekte, in denen das Frontend strategisches Differenzierungsmerkmal ist, kann Shopware Frontends die richtige Basis sein. Für Projekte, die schnell live gehen und das Shopware-Ökosystem voll nutzen wollen, bleibt der klassische Storefront die pragmatischere Wahl.

Die eigentliche Frage ist nicht „Headless oder nicht?", sondern: Welchen Grad an Frontend-Kontrolle braucht dein Geschäftsmodell – und bist du bereit, die damit verbundene Verantwortung zu tragen?


Du stehst vor der Entscheidung?

Klassische Storefront oder Headless mit Shopware Frontends – wir beraten ehrlich, auch wenn die Antwort „bleib beim Twig-Storefront" lautet. In einem kurzen Gespräch klären wir, ob ein Headless-Ansatz für dein Projekt wirtschaftlich und technisch sinnvoll ist.