Der Bestand stimmt nicht — verkauft, was nicht da ist.
Im Shop steht „2 auf Lager“, im Regal liegt nichts mehr. Oder umgekehrt: Ein Artikel gilt als ausverkauft, obwohl ein voller Karton dasteht. Beides kostet — einmal Vertrauen, einmal Umsatz. Die Ursachen sind meist an einer von vier Stellen zu finden.
WooCommerce führt Bestände an zwei möglichen Orten: am Produkt oder an der einzelnen Variante. Wird das vermischt, entstehen Geisterbestände. Weitere Ursachen: der Bestand wird erst bei bestimmten Bestellstatus abgebucht, gleichzeitige Bestellungen führen zu Überverkäufen, und eine Schnittstelle zur Warenwirtschaft überschreibt Werte in die falsche Richtung. Der erste Schritt ist immer, die Bestandsführung eindeutig auf eine Ebene zu legen.
Wie WooCommerce Bestände führt.
Die Bestandsverwaltung muss zweimal aktiv sein: einmal global in den Shop-Einstellungen und einmal am jeweiligen Produkt. Ist sie am Produkt aus, wird der Artikel unabhängig von jeder Zahl immer als verfügbar angezeigt — und es wird nichts abgebucht. Das ist der Grund, warum manche Artikel sich unbegrenzt verkaufen lassen, obwohl irgendwo eine Bestandszahl steht.
Außerdem gibt es je Produkt die Einstellung für Nachbestellungen: nicht erlauben, erlauben, oder erlauben mit Hinweis an den Kunden. Steht sie auf erlauben, verkauft der Shop auch bei null weiter — was gewollt sein kann, aber oft unbemerkt gesetzt ist.
Produkt oder Variante.
Bei variablen Produkten — dieselbe Ware in mehreren Größen oder Farben — kann der Bestand entweder am Hauptprodukt für alle Varianten zusammen oder an jeder Variante einzeln geführt werden. Beides gleichzeitig führt zu widersprüchlichen Anzeigen: Die Variante meldet verfügbar, das Hauptprodukt steht auf null, oder umgekehrt.
| Fall | Richtige Einstellung |
|---|---|
| Jede Größe hat eigenen Bestand | Bestandsverwaltung je Variante |
| Gemeinsames Kontingent für alle Varianten | Bestandsverwaltung nur am Hauptprodukt |
| Gemischt gepflegt | Ursache der meisten Geisterbestände |
Entscheide dich je Produkt für eine Ebene und räume die andere auf. Bei vielen Artikeln lohnt ein Export der Produktdaten, um zu sehen, wo beides gefüllt ist (Produktdaten importieren).
Wann abgebucht wird.
Der Bestand sinkt nicht beim Klick auf Kaufen, sondern beim Wechsel des Bestellstatus. Standardmäßig passiert das, wenn die Bestellung auf „In Bearbeitung“ oder „Abgeschlossen“ springt — also nach erfolgreicher Zahlung. Daraus folgen zwei typische Abweichungen:
- Bestellungen auf „Zahlung ausstehend“: Die Ware ist reserviert im Kopf des Kunden, aber im Shop noch buchbar. Hängen viele Bestellungen in diesem Status, stimmt oft die Zahlungsanbindung nicht (Zahlung funktioniert nicht).
- Stornierte Bestellungen: Beim Stornieren wird der Bestand zurückgebucht — bei manuellen Statusänderungen aber nicht immer sauber, besonders wenn zwischendurch Positionen geändert wurden.
WooCommerce hält außerdem Artikel im Warenkorb für eine einstellbare Zeit zurück, damit sie während des Bezahlvorgangs nicht weggekauft werden. Ist diese Zeit zu lang eingestellt, wirken Artikel ausverkauft, obwohl nur jemand sie im Warenkorb liegen hat.
Überverkäufe bei gleichzeitigen Bestellungen.
Bei einem beliebten Artikel mit Restbestand kann es passieren, dass zwei Kunden gleichzeitig kaufen und beide durchkommen. Das liegt daran, dass zwischen Prüfung und Abbuchung ein kurzer Moment liegt. Bei normalem Betrieb ist das selten, bei Aktionen und Restposten wird es zum echten Problem.
Was hilft: Der Warenkorb-Rückhalt sollte aktiv sein, die Datenbank sollte Tabellen mit Transaktionsunterstützung nutzen, und bei knappen Beständen lohnt es, nicht bis auf null zu verkaufen, sondern einen Sicherheitspuffer einzuplanen. Bei Shops mit hoher Last ist zusätzlich ein Blick auf das Hosting sinnvoll, weil lange Antwortzeiten das Zeitfenster vergrößern (WooCommerce langsam).
Schnittstelle zur Warenwirtschaft.
Sobald ein zweites System Bestände führt, muss eindeutig festgelegt sein, wer die Wahrheit sagt. Üblich und sinnvoll ist: Die Warenwirtschaft führt den Bestand, der Shop bekommt ihn zugespielt. Läuft die Verbindung dagegen in beide Richtungen ohne klare Regel, überschreiben sich die Systeme gegenseitig — und je nachdem, welcher Abgleich zuletzt lief, steht mal der eine, mal der andere Wert im Shop.
Zweiter Punkt ist der Takt: Ein Abgleich alle vier Stunden reicht bei ruhigem Geschäft, bei schnellem Umschlag oder parallelem Ladenverkauf nicht. Dritter Punkt sind fehlgeschlagene Abgleiche, die niemand bemerkt — deshalb gehört zu jeder Anbindung ein Protokoll und eine Benachrichtigung bei Fehlern (Shop-Schnittstellen).
Importe überschreiben.
Ein häufiger, ärgerlicher Fall: Eine Preisliste vom Lieferanten wird importiert, und weil die Datei eine Bestandsspalte enthält, werden alle Bestände mit den Werten des Lieferanten überschrieben. Beim Import deshalb immer prüfen, welche Spalten zugeordnet sind, und Bestandsfelder bewusst ausschließen, wenn nur Preise aktualisiert werden sollen. Vor jedem Import ein Backup und ein Testlauf mit wenigen Artikeln (Backup erstellen).
Anzeige und Schwellen.
Manchmal stimmt der Bestand, nur die Anzeige täuscht. In den Einstellungen gibt es eine Schwelle, ab der ein Artikel als „nur noch wenige verfügbar“ gilt, und die Wahl, ob die genaue Zahl angezeigt wird. Themes und Plugins verändern diese Darstellung zusätzlich. Wenn Kunden sich über Widersprüche zwischen Produktseite und Warenkorb wundern, lohnt ein Blick darauf, bevor man die Datenbank verdächtigt.
Caching.
Produktseiten werden gern zwischengespeichert — das ist gut fürs Tempo und schlecht für Bestandsangaben. Ein Kunde sieht dann eine Stunde alte Verfügbarkeit. Entweder werden Bestandsangaben dynamisch nachgeladen, oder Produktseiten werden nach jeder Bestellung neu erzeugt. Warenkorb und Kasse bleiben in jedem Fall ausgenommen (Cache leeren).
Bestand prüfen und korrigieren.
- Produktliste nach Bestand sortieren und Ausreißer ansehen — negative Werte sind ein sicheres Zeichen für Überverkäufe.
- Export ziehen und mit der Warenwirtschaft oder dem echten Lager abgleichen.
- Varianten prüfen: Wo ist Bestand doppelt gepflegt?
- Offene Bestellungen ansehen: Wie viele hängen auf „Zahlung ausstehend“?
- Korrigieren, am besten über einen Import mit nur den Bestandsspalten.
- Danach beobachten, ob die Abweichung zurückkommt — dann liegt es an einem laufenden Prozess, nicht an Altlasten.
Vorbeugen.
- Eine Ebene für die Bestandsführung festlegen und dabei bleiben.
- Eine Quelle der Wahrheit bei angebundener Warenwirtschaft.
- Benachrichtigung bei niedrigem Bestand aktivieren.
- Protokoll und Fehlermeldung für jeden Abgleich.
- Vor Aktionen mit knappen Restposten einen Puffer einplanen.
- Regelmäßige Stichprobe zwischen Shop und Lager (WooCommerce-Wartung).
Wenn du nicht weiterkommst.
Wenn Bestände immer wieder auseinanderlaufen, finde ich heraus, welcher Prozess sie verstellt — statt nur zu korrigieren. Ich finde die Ursache, behebe sie und erkläre dir, was passiert ist: WordPress-Hilfe, bei einem Totalausfall der Notfall-Support. Damit es gar nicht erst so weit kommt: WordPress-Wartung.
Ursache finden, Website wieder zum Laufen bringen, kurzer Bericht — meist am selben Tag.
Für Anpassungen, Fehlerbehebung und Beratung nach Aufwand, abgerechnet in 15-Minuten-Schritten.
Updates, Backups, Sicherheitscheck, Monitoring — Kleinigkeiten inklusive.
Orientierungswerte, keine Fixpreise — nach einem kurzen Gespräch bekommst du ein Festpreisangebot.
Wer hilft.
Ich bin Manuel Killert, WordPress-Entwickler aus Quakenbrück. Seit 2020 baue und betreue ich WordPress-Websites — für Handwerksbetriebe, Industrie, Gastronomie, Start-ups und Vereine —, entwickle eigene Plugins und unterrichte WordPress als Dozent an der KW Design Akademie. Das heißt: Ich kenne die typischen Fehler nicht nur aus Foren, sondern aus eigenen Projekten, und ich kann sie so erklären, dass du sie beim nächsten Mal selbst erkennst. Du erreichst mich direkt, ohne Ticketsystem.
Echte Projekte — live ansehen.
WordPress-Websites, die ich gebaut habe oder laufend betreue.

Markenfest
Stärkerer Online-Shop — Webdesign, Content und individuelle Shop-Funktionen.
Website ansehen ↗
KT Bodenteam
Professioneller Auftritt für einen Bodenleger — Vorher-Nachher-Slider und regionale SEO.
Website ansehen ↗
Potassco Solutions
Klare Website für ein KI-Unternehmen, die komplexe Technologie verständlich macht.
Website ansehen ↗FAQ — Lagerbestand stimmt nicht.
Warum verkauft mein Shop Artikel, die nicht mehr da sind?
Meist weil die Bestandsverwaltung am Produkt deaktiviert ist, Nachbestellungen erlaubt sind oder zwei Kunden gleichzeitig den Restbestand kaufen. Auch hängende Bestellungen mit ausstehender Zahlung verzerren das Bild.
Warum zeigt eine Variante einen anderen Bestand als das Produkt?
Weil der Bestand auf beiden Ebenen gepflegt ist. Er gehört entweder ans Hauptprodukt für alle Varianten zusammen oder an jede Variante einzeln — nie an beide.
Wann bucht WooCommerce den Bestand ab?
Nicht beim Kaufklick, sondern beim Wechsel des Bestellstatus auf In Bearbeitung oder Abgeschlossen, also nach erfolgreicher Zahlung. Bestellungen mit ausstehender Zahlung mindern den Bestand nicht.
Warum gelten Artikel als ausverkauft, obwohl welche da sind?
Oft liegen sie in fremden Warenkörben und werden durch den Warenkorb-Rückhalt zurückgehalten. Ist diese Zeit zu lang eingestellt, wirken Artikel unnötig lange nicht verfügbar.
Wie vermeide ich, dass ein Import die Bestände überschreibt?
Beim Import die Spaltenzuordnung prüfen und Bestandsfelder ausschließen, wenn nur Preise aktualisiert werden sollen. Vorher ein Backup und ein Testlauf mit wenigen Artikeln.
Was ist bei einer Warenwirtschaft zu beachten?
Es muss eindeutig festgelegt sein, welches System den Bestand führt — üblicherweise die Warenwirtschaft. Ohne klare Richtung überschreiben sich die Systeme gegenseitig.
Das bin ich – rechts im BildErzähl mir, was nicht funktioniert.
Domain und eine kurze Beschreibung reichen — du bekommst eine ehrliche Einschätzung, was los ist und was die Behebung kostet.
Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de