Es ist Montagmorgen, 9:17 Uhr. Deine Performance-Marketing-Kampagne läuft seit einer Stunde, die ersten Klicks kommen rein – und dann die ersten Support-Tickets: „Produkt zeigt ‚Ausverkauft', obwohl ihr gestern noch 230 Stück auf Lager hattet?" Du öffnest das Admin-Panel. Bestand: 230. Produkt aktiv. Alles grün. Trotzdem: Auf der Produktdetailseite steht in großen Lettern „Derzeit nicht verfügbar". Dein Ads-Budget verbrennt, potenzielle Kunden springen ab – und du weißt nicht, wo der Fehler steckt. Genau bei solchen Fällen hilft dir eine erfahrene Shopware Agentur, weil sie die typischen Stellschrauben sofort erkennt.
Willkommen in der Welt von Shopware 6 Available Stock – dem unsichtbaren Mechanismus, der darüber entscheidet, ob dein Shop wirklich verkaufen darf oder nicht. Denn „Bestand im Admin" ist nicht dasselbe wie „verfügbar im Frontend". Zwischen diesen beiden Zuständen liegen Regeln, Reservierungen, Variantenlogik, Sales-Channel-Zuordnungen, Import-Prozesse und manchmal auch ERP-Systeme, die zyklisch überschreiben. In diesem Artikel zeige ich dir, wie Shopware 6 Available Stock funktioniert, welche fünf Hauptursachen am häufigsten zu Problemen führen – und wie du sie in zehn Minuten diagnostizieren kannst, ohne Entwickler zu sein.
Bevor wir in die Diagnose einsteigen, müssen wir drei Begriffe sauber trennen, die im Alltag oft synonym verwendet werden – technisch aber völlig unterschiedlich sind:
Ein Produkt kann technisch „kaufbar" sein, aber trotzdem „Lieferzeit unbekannt" anzeigen – oder umgekehrt: Es hat Bestand, ist aber durch Regeln blockiert. Shopware 6 Available Stock ist das Ergebnis aus Daten, Reservierungen, Regeln und Timing. Wenn auch nur eine dieser Komponenten nicht passt, stimmt die Anzeige im Frontend nicht mit deiner Erwartung überein.
Ein typisches Missverständnis: „Ich sehe im Admin 50 Stück, also muss der Shop verkaufen." Nein – denn vielleicht ist Closeout aktiv und eine Bestellung hat gerade 50 Stück reserviert. Oder die Min-Purchase-Menge liegt bei 100. Oder die Variante, die der Kunde sehen will, hat eigenen Bestand – und der liegt bei 0. Oder dein ERP überschreibt alle 15 Minuten den Wert, weil es eine andere „Wahrheit" kennt.
Aus hunderten Support-Tickets, Agentur-Projekten und Community-Threads kristallisieren sich fünf Hauptursachen heraus, die für über 90 % aller „Bestand stimmt nicht"-Fälle verantwortlich sind:
1. Closeout/Backorder falsch konfiguriert
Die Closeout-Funktion (im Deutschen oft „Abverkauf" genannt) entscheidet, was passiert, wenn der Bestand auf 0 fällt. Ist Closeout aktiv, wird das Produkt bei Bestand 0 automatisch nicht mehr kaufbar. Ist Closeout inaktiv, sind Backorders möglich – der Shop verkauft also auch bei 0 weiter (und du musst nachliefern oder stornieren).
Typische Probleme:
Prüfe im Admin unter Kataloge → Produkte → Produkt öffnen → Spezifikationen die Felder „Abverkauf" und „Min-/Max-Abnahmemenge".
2. Variante betroffen – Bestand liegt woanders
Shopware unterscheidet strikt zwischen Parent-Produkt und Varianten. Wenn dein Produkt Varianten hat (z. B. Größe, Farbe), liegt der Bestand in der Regel auf der Variante, nicht auf dem Parent. Im Frontend wird aber oft zuerst das Parent angezeigt – und wenn keine Variante ausgewählt oder aktiv ist, erscheint „nicht verfügbar", obwohl einzelne Varianten durchaus Bestand haben.
Typische Szenarien:
Prüfe jede Variante einzeln: Ist sie aktiv? Hat sie eigenen Bestand? Ist sie im Sales Channel sichtbar?
3. Kaufregeln blockieren (Min/Max Purchase, Purchase Steps)
Shopware erlaubt dir, Mindest- und Höchstabnahmemengen sowie Staffelungen festzulegen. Wenn dein Bestand 2 ist, die Min-Purchase-Menge aber 3, kann niemand kaufen – obwohl technisch Ware da ist. Das System zeigt dann „nicht verfügbar" oder lässt den „In den Warenkorb"-Button inaktiv.
Weitere Stolperfallen:
4. Sichtbarkeit/Sales Channel – Produkt aktiv, aber nicht zugewiesen
Ein Produkt kann im Admin „aktiv" sein, aber trotzdem im Frontend nicht erscheinen oder nicht kaufbar sein, weil:
Prüfe unter Kataloge → Produkte → Produkt → Sichtbarkeiten, ob der richtige Sales Channel aktiviert ist.
5. ERP/Import überschreibt zyklisch oder fehlerhaft
Wenn dein Shop an ein ERP oder eine Warenwirtschaft angebunden ist, hast du oft einen zyklischen Import (z. B. alle 15 Minuten). Typische Probleme:
Definiere klar: Wer ist die „Single Source of Truth" für Bestände? Shopware oder das ERP? Und wer bucht bei Retouren/Stornos zurück?
Du musst kein Entwickler sein, um die häufigsten Ursachen zu identifizieren. Hier ist eine Checkliste, die du in zehn Minuten durchgehen kannst:
| Schritt | Was prüfen? | Wo finden? |
|---|---|---|
| 1 | Produkt/Variante im Frontend öffnen – betrifft es alle Varianten oder nur eine? | Storefront, URL direkt aufrufen |
| 2 | Closeout/Backorder prüfen – Soll bei „0" verkauft werden oder nicht? | Admin → Kataloge → Produkte → Spezifikationen |
| 3 | Min/Max Purchase & Purchase Steps – passt das zum Bestand? | Admin → Kataloge → Produkte → Spezifikationen |
| 4 | Produkt aktiv & Sales Channel Sichtbarkeit – ist es im richtigen Channel zugewiesen? | Admin → Kataloge → Produkte → Sichtbarkeiten |
| 5 | Letzte Änderungen – gab es gerade Import/ERP-Sync/Plugin-Update? | Admin → Einstellungen → Automatisierung → Import/Export → Importaktivität |
Wenn du diese fünf Punkte durchgehst und dokumentierst, hast du in den allermeisten Fällen bereits die Ursache identifiziert – oder zumindest so viele Informationen gesammelt, dass ein Entwickler oder deine Agentur in fünf Minuten weiterhelfen kann. Als zusätzliche Grundlage kannst du auch einen strukturierten Shopware-Check nutzen, um wiederkehrende Fehlerquellen systematisch auszuschließen.
Um die Logik hinter Shopware 6 Available Stock wirklich zu durchdringen, hilft es, den Datenfluss Schritt für Schritt nachzuvollziehen. Hier ist, was im Hintergrund passiert:
Ausgangswert: Produktbestand (stock)
Der gebuchte Lagerbestand, den du im Admin pflegst oder per Import/ERP setzt. Das ist die „rohe" Zahl – noch ohne jede Logik.
Abzüge durch offene/gebuchte Mengen
Je nach Konfiguration und Workflow reduziert Shopware den verfügbaren Bestand, sobald:
Welche Bestellstatus „stock-relevant" sind, hängt von deiner State-Machine-Konfiguration ab. Standardmäßig wird Bestand bei Bestellabschluss reduziert – aber manche Shops reduzieren erst bei Zahlung oder Versand.
Regeln, die Kaufbarkeit beeinflussen
Selbst wenn rechnerisch noch Bestand da ist, können Regeln die Kaufbarkeit blockieren:
Ergebnis: Available Stock im Frontend
Das Ergebnis dieser Berechnungen ist der Wert, den die Storefront und die Store API ausgeben. Aber Achtung: Dieser Wert ist nicht immer sofort aktuell, denn:
Die Closeout-Funktion ist der Hebel, der am häufigsten missverstanden wird – und die größte Auswirkung auf Shopware 6 Available Stock hat. Schauen wir uns die Szenarien im Detail an:
Szenario 1: Bestand = 0, Closeout aktiv
Das Produkt wird automatisch nicht mehr kaufbar. Der „In den Warenkorb"-Button verschwindet oder wird inaktiv, es erscheint ein Text wie „Derzeit nicht verfügbar" oder „Ausverkauft". Das ist das Standardverhalten für die meisten Shops.
Szenario 2: Bestand = 0, Closeout inaktiv
Backorders sind möglich. Der Kunde kann bestellen, obwohl keine Ware da ist. Du musst dann nachliefern, kommunizieren oder im schlimmsten Fall stornieren. Das macht Sinn für:
Aber Achtung: Wenn du Backorders erlaubst, ohne es dem Kunden zu kommunizieren, riskierst du schlechte Bewertungen und hohe Supportkosten.
Typische Missverständnisse
Zusammenspiel mit Min/Max Purchase
Ein häufiger Fehler: Bestand liegt bei 2, Min Purchase ist auf 3 gesetzt. Ergebnis: Das Produkt wirkt wie „nicht verfügbar", obwohl technisch Ware da ist. Shopware zeigt in diesem Fall oft keinen Fehler – der Button bleibt einfach inaktiv oder der Kunde kann nicht in den Warenkorb legen.
Prüfe daher immer: Passt die Min-/Max-Konfiguration zum tatsächlichen Bestand?
Wenn dein Produkt Varianten hat (z. B. T-Shirt in Größe S/M/L und Farbe Rot/Blau/Grün), verwaltet Shopware den Bestand in der Regel pro Variante, nicht auf dem Parent-Produkt. Das bedeutet:
Wenn der Kunde auf der Produktdetailseite landet und keine Variante ausgewählt ist (oder die Standardvariante Bestand 0 hat), zeigt der Shop „nicht verfügbar" – obwohl andere Varianten durchaus lieferbar wären.
Quick Checks für Varianten
Ein typisches Problem bei CSV-Importen: Der Import setzt Bestand nur auf dem Parent-Produkt, die Varianten bleiben bei 0 – und niemand merkt es, bis die ersten Support-Tickets eintreffen.
Ein Produkt kann im Admin „aktiv" sein, korrekten Bestand haben und trotzdem im Frontend nicht erscheinen oder nicht kaufbar sein. Warum? Weil Shopware die Sichtbarkeit pro Sales Channel steuert.
Prüfe:
Ein weiterer Stolperstein: Wenn du mehrere Sales Channels hast (z. B. B2C-Shop und B2B-Portal), musst du für jeden Channel separat die Sichtbarkeit und ggf. auch die Bestände verwalten – je nach Setup.
Unterschied: „nicht gelistet" vs. „nicht kaufbar" vs. „nicht lieferbar"
Diese Unterschiede zu kennen hilft dir, gezielt nach der richtigen Stellschraube zu suchen.
Viele Shops pflegen Bestände nicht manuell im Admin, sondern per CSV-Import oder über Schnittstellen. Das ist effizient – aber auch fehleranfällig. Hier die häufigsten Stolpersteine:
1. Falscher Identifier (Mapping)
Shopware braucht einen eindeutigen Schlüssel, um zu wissen, welches Produkt/welche Variante aktualisiert werden soll. Üblich sind:
Wenn der Identifier falsch gemappt ist, landet der Bestand auf dem falschen Produkt – oder wird als neues Produkt angelegt.
2. Encoding/Trennzeichen/Quotes
Shopware erwartet standardmäßig:
Wenn Excel oder ein anderes Tool das CSV in einem anderen Format exportiert (z. B. ANSI-Encoding, Komma-Trennzeichen), können Umlaute falsch dargestellt werden oder Spalten verrutschen – mit der Folge, dass Bestände überschrieben oder gelöscht werden.
3. „Update existing data" überschreibt unbeabsichtigt
Wenn diese Option aktiv ist, überschreibt der Import vorhandene Werte. Das ist oft gewollt – kann aber auch bedeuten, dass du versehentlich andere Felder (z. B. Preise, Beschreibungen) zurücksetzt, wenn sie in deinem CSV leer oder nicht vorhanden sind.
Empfehlung: Testlauf mit 5 Produkten/Varianten, bevor du 5.000 Datensätze importierst. Prüfe nach dem Testlauf Stichproben im Frontend, in der Store API und im Admin.
Sicherer Ablauf „Bestand per CSV aktualisieren"
Wenn du dabei zusätzlich auf Plugins setzt, lohnt sich ein Blick auf ein Shopware-Import-Plugin, um wiederkehrende Mapping- und Formatfehler zu reduzieren.
Nach dem Import: Was prüfen?
Wenn dein Shop an ein ERP-System (z. B. SAP, Microsoft Dynamics, JTL, Pickware) oder eine Warenwirtschaft angebunden ist, wird es komplex – aber auch mächtig. Die zentrale Frage lautet: Wer ist die „Single Source of Truth" für Bestände?
Shopware führend vs. ERP führend
In den meisten Fällen ist ERP führend die sauberere Variante – aber nur, wenn das ERP alle relevanten Vorgänge kennt (Bestellungen, Retouren, Stornos, manuelle Korrekturen).
Typische Konflikte
Praxisempfehlungen
Selbst wenn alle Konfigurationen korrekt sind, kann es bei hoher Last zu Race Conditions kommen: Zwei Kunden legen parallel das letzte verfügbare Produkt in den Warenkorb, beide schließen die Bestellung ab – und plötzlich hast du -1 im Bestand.
Typische Effekte
Maßnahmen
Hier sind die typischen Support-Tickets und Probleme, die immer wieder auftauchen – mit jeweils der wahrscheinlichsten Ursache:
| Symptom | Wahrscheinliche Ursache | Quick Check |
|---|---|---|
| Admin zeigt Bestand, Storefront zeigt „ausverkauft" | Closeout aktiv + Bestand = 0 (oder Variante betroffen) | Closeout-Status prüfen, Varianten einzeln prüfen |
| Shop verkauft weiter trotz Bestand 0 | Closeout inaktiv (Backorder erlaubt) | Closeout aktivieren, falls gewünscht |
| Bestand ändert sich nach Import nicht im Frontend | Indexing/Cache veraltet oder Mapping falsch | Import-Protokoll prüfen, Stichprobe im Admin, ggf. Cache/Indexer |
| Nur manche Varianten kaufbar | Varianten haben eigene Bestände/Regeln/Sichtbarkeit | Jede Variante einzeln prüfen (Status, Bestand, Sales Channel) |
| Nach Storno/Retoure kommt Bestand nicht zurück | State-Machine-Konfiguration oder ERP überschreibt | Bestellstatus prüfen, ERP-Sync prüfen, wer bucht zurück? |
| Multi-Channel verkauft doppelt / negative Bestände | Sync-Intervalle zu lang, Race Conditions | Sync-Frequenz erhöhen, Reservierungsstrategie definieren |
| ERP überschreibt Shopware-Werte zyklisch (Ping-Pong) | Single Source of Truth nicht geklärt | Ownership pro Feld definieren, Sync-Logik anpassen |
Wenn du technischen Zugriff hast oder mit einer Agentur zusammenarbeitest, hilft dir dieser strukturierte Reproduktionsplan:
1. Reproduktionsplan erstellen
2. Vergleich: Storefront vs. Store API vs. Admin
Unterschiede zwischen diesen drei Quellen zeigen dir, ob es ein Darstellungs-, ein Cache- oder ein Datenproblem ist.
3. DB/CLI/Logs (je nach Zugriff)
Ziel: „Welche Komponente ändert den Wert?"
Ist es ein Admin-User? Ein Import? Ein ERP-Job? Eine Bestellung? Ein Plugin? Sobald du die Quelle identifiziert hast, kannst du gezielt korrigieren.
Imports sind die häufigste Ursache für plötzliche Bestandsprobleme. Diese Checkliste hilft dir, Fehler zu vermeiden:
Vor Import
Nach Import
Wenn es brennt, brauchst du einen Quick Fix. Langfristig brauchst du aber einen sauberen Prozess. Hier ist der Unterschied:
Quick Fix (wenn es brennt)
Sauberer Prozess (damit es nicht wieder passiert)
Warum ist mein Produkt trotz Bestand nicht kaufbar?
Häufigste Ursachen: Closeout aktiv + Bestand 0, Min-Purchase-Menge höher als Bestand, Variante betroffen (Parent hat Bestand, aber ausgewählte Variante nicht), Sales-Channel-Sichtbarkeit fehlt, oder Kaufregeln (Purchase Steps) blockieren.
Warum zeigt das Frontend falsche Verfügbarkeit nach Import/ERP-Update?
Entweder wurde der Bestand nicht korrekt importiert (Mapping-Fehler, falsche Spalten), oder Indexing/Caching hinkt hinterher. Prüfe das Import-Protokoll, kontrolliere Stichproben im Admin und aktualisiere ggf. gezielt Cache/Indexer.
Was ist der Unterschied zwischen Lieferzeit, Bestand und Available Stock?
Bestand (stock) ist die gebuchte Lagermenge. Available Stock ist die tatsächlich noch verkaufbare Menge (nach Abzug von Reservierungen/Regeln). Lieferzeit ist Kommunikation/Erwartungsmanagement und kann unabhängig vom Bestand gesetzt werden.
Wie wirken Closeout/Backorder und Min/Max Purchase konkret?
Closeout entscheidet, ob bei Bestand 0 verkauft werden darf (inaktiv = Backorder möglich, aktiv = nicht kaufbar). Min/Max Purchase legt fest, welche Mengen überhaupt in den Warenkorb gelegt werden können. Wenn Min Purchase 3 ist, Bestand aber 2, ist das Produkt nicht kaufbar.
Wie prüfe ich Varianten richtig?
Jede Variante einzeln öffnen (Admin → Kataloge → Produkte → Varianten), Status prüfen (aktiv?), Bestand prüfen (hat die Variante eigenen Bestand?), Sales-Channel-Sichtbarkeit prüfen. Nicht davon ausgehen, dass Parent-Einstellungen automatisch für alle Varianten gelten.
Was sollte ich zuerst prüfen: Produkt, Sales Channel, Import oder ERP?
Start mit dem 10-Minuten-Schnellcheck: Produkt im Frontend öffnen, Closeout/Min-Max prüfen, Varianten prüfen, Sales-Channel-Sichtbarkeit prüfen, letzte Importe/ERP-Jobs identifizieren. In 80 % der Fälle findest du die Ursache in den ersten drei Schritten.
Shopware 6 Available Stock ist kein magisches Feld, das manchmal funktioniert und manchmal nicht. Es ist das präzise Ergebnis aus Daten, Regeln, Reservierungen und Timing. Wenn die Ampel im Checkout grün zeigt, heißt das: Der Kunde darf kaufen – weil Bestand da ist, keine blockierenden Regeln greifen, die richtige Variante ausgewählt ist, das Produkt im Sales Channel sichtbar ist und ERP/Import nicht gerade überschreiben.
Die gute Nachricht: In den allermeisten Fällen kannst du die Ursache in zehn Minuten identifizieren, wenn du systematisch vorgehst. Closeout/Backorder, Min-/Max-Purchase, Varianten, Sales-Channel-Sichtbarkeit und Import-Protokolle – das sind die fünf Hebel, an denen du zuerst drehen solltest. Und wenn du einmal die Logik hinter Shopware 6 Available Stock verstanden hast, wirst du nie wieder rätseln, warum dein Shop „nicht verfügbar" zeigt, obwohl Ware da ist.
Deine nächsten Schritte:
Verfügbarkeit ist kein Zufall. Sie ist das Ergebnis sauberer Prozesse, klarer Verantwortlichkeiten und einer Shopware-Konfiguration, die zu deinem Geschäftsmodell passt. Und genau dabei hilft dir dieses Wissen über Shopware 6 Available Stock. Wenn du zusätzlich die Storefront-Seite als Fehlerquelle ausschließen willst, ist ein tieferer Blick in die Shopware Storefront-Konfiguration oft der schnellste nächste Schritt.