Aktueller und theoretischer Lagerbestand und Inventur in Dolibarr

Was den aktuellen und den theoretischen (virtuellen) Lagerbestand in Dolibarr 24 bewegt, sechs getestete Gründe, warum der virtuelle Bestand falsch aussieht, und die eingebaute Inventur Schritt für Schritt, mit dem Fehler der Abschluss-Schaltfläche in 24.0.2.

Betroffene Versionen
Dolibarr 24.0.2 (getestet: offizielles Docker-Image 24.0.1, dessen Code durch 24.0.2 ersetzt wurde, da 24.0.2 am 14.10.2026 nicht auf Docker Hub war; MariaDB 11.4)
Was geprüft wurde
Tests am 14.10.2026 auf einer neuen Dolibarr-24.0.2-Instanz, Aktionen in der Oberfläche: Lagerregeln (keine, Freigabe von Kundenaufträgen, Freigabe von Lieferungen, Schließen von Lieferungen, Freigabe von Wareneingängen), Kundenaufträge freigegeben, teilweise geliefert, als geliefert markiert oder storniert, Regelwechsel bei laufendem Auftrag, Lieferantenbestellung und Teil-Wareneingänge, Kit, vollständige Inventur mit Anfangsbestand und Verkauf während der Inventur, Modul Chargen/Serien. Code von Dolibarr 24.0.2 gelesen (Product::load_virtual_stock, load_stats_*, Inventory, product/inventory/inventory.php).

Dolibarr zeigt auf dem Reiter Lagerbestand eines Produkts zwei Zahlen, und die zweite wirft die meisten Fragen auf:

  • Aktueller Lagerbestand (physischer Bestand): was in Ihren Warenlagern liegt. Er wird in der Datenbank gespeichert und ändert sich nur durch Lagerbewegungen (automatisch oder manuell);
  • Theoretischer Lagerbestand (so heißt der virtuelle Bestand in der deutschen Oberfläche): was übrig bleibt, wenn die laufenden Aufträge geliefert und empfangen sind. Er wird nirgends gespeichert: Dolibarr berechnet ihn bei jeder Anzeige neu aus den laufenden Aufträgen, Lieferungen und Wareneingängen.

Ein virtueller Bestand, der sich „nicht aktualisiert“, ist also nie eine verspätete Berechnung: Es gibt nichts neu zu berechnen. Sieht er falsch aus, wird ein laufender Vorgang mitgezählt oder eben nicht. Diese Anleitung zeigt, welche, mit Zahlen, die am 14. Oktober 2026 auf Dolibarr 24.0.2 erhoben wurden.

Zuerst: Wann bewegt sich der Bestand?

Alles wird unter Start › Einstellungen › Module/Anwendungen, Karte Lagerverwaltung, Zahnradsymbol eingestellt. Die Seite bietet zwei Listen: eine Regel für die Bestandsabnahme (Ausgänge) und eine für die Bestandszunahme (Eingänge). Pro Liste wählt man nur eine: Wer eine ankreuzt, entfernt das Häkchen bei den anderen.

Ausgänge Eingänge
Tatsächlichen Lagerbestand beim Freigeben von Kundenrechnungen/Stornorechnungen anpassen Tatsächlichen Lagerbestand bei der Freigabe der Lieferantenrechnung/-stornorechnung anpassen
Tatsächlichen Lagerbestand beim Freigeben von Kundenaufträgen reduzieren Tatsächlichen Lagerbestand bei Freigabe der Lieferantenbestellung erhöhen
Tatsächlichen Lagerbestand beim Freigeben von Lieferungen reduzieren Tatsächlichen Lagerbestand bei der Freigabe des Wareneingangs erhöhen
Tatsächlichen Lagerbestand beim Schließen von Lieferungen reduzieren Tatsächlichen Lagerbestand beim Schließen des Wareneingangs erhöhen

Die zweite Eingangsregel heißt auf Deutsch „bei Freigabe“, gemeint ist aber die Genehmigung der Lieferantenbestellung (im Französischen und Englischen: „approbation“, „approval“).

Bei einer Neuinstallation ist keine Regel angekreuzt. Nichts bewegt sich von selbst: Der Bestand ändert sich nur über Lagerbestandskorrektur oder Bestand umbuchen am Produkt oder über eine Inventur. Und der virtuelle Bestand bleibt gleich dem aktuellen Bestand: In unserem Test ließ ein freigegebener Auftrag über 3 Kugelschreiber den virtuellen Bestand bei 10 von 10. Das ist das Erste, was Sie prüfen sollten, wenn „der virtuelle Bestand sich nicht bewegt“.

Wenn Sie Lieferungen nutzen, ist die Regel beim Freigeben von Lieferungen am leichtesten zu lesen: Der aktuelle Bestand sinkt, wenn das Paket geht, und der virtuelle Bestand nimmt die offenen Aufträge vorweg. Mit dem Modul Produktchargen und -Serien graut Dolibarr die Regeln für Rechnungen und Aufträge ohnehin aus: Es bleiben nur die für Lieferungen und Wareneingänge.

Die Seite warnt außerdem, dass ein Kassenmodul (POS) diese Regeln ignorieren und den Bestand auf eigene Weise verringern kann: Prüfen Sie dann auch dessen Einstellungen.

Was der virtuelle Bestand zusammenrechnet

Die Berechnung hängt von der gewählten Regel ab. Was wir geprüft haben:

Regel „beim Freigeben von Lieferungen“ (oder „beim Schließen von Lieferungen“): virtueller Bestand = aktueller Bestand − (Mengen der freigegebenen oder in Bearbeitung befindlichen Kundenaufträge − was davon bereits geliefert wurde).

Schritt (Anfangsbestand: 10) Aktuell Virtuell
Auftrag über 3 freigegeben 10 7
Lieferung über 2 erstellt, Entwurf 10 7
Lieferung über 2 freigegeben 8 7
Auftrag als geliefert markiert (der letzte Kugelschreiber geht nicht mehr raus) 8 8

Aufträge im Entwurf zählen nicht, stornierte auch nicht: Ein freigegebener Auftrag über 4 senkte den virtuellen Bestand auf 4, die Stornierung brachte ihn auf 8 zurück.

Mit der Regel „beim Schließen von Lieferungen“ ändert eine freigegebene, aber nicht geschlossene Lieferung den aktuellen Bestand nicht; das macht erst die Schaltfläche Schließen der Lieferung. In unserem Test hat das Schließen einer Lieferung, die den ganzen Auftrag abdeckte, auch den Auftrag als geliefert markiert.

Regel „beim Freigeben von Kundenaufträgen“: Der aktuelle Bestand sinkt schon bei der Freigabe (der Bestätigungsdialog fragt nach dem Warenlager), und der virtuelle Bestand ist gleich dem aktuellen. Lieferungen berühren den Bestand dann nicht mehr.

Einkaufsseite (Regel „bei der Freigabe des Wareneingangs“): Der virtuelle Bestand addiert die Mengen der Lieferantenbestellungen, die bestellt (Schaltfläche Erzeuge Bestellung) oder teilweise erhalten sind, abzüglich dessen, was schon eingegangen ist.

Schritt (Anfangsbestand: 20) Aktuell Virtuell
Lieferantenbestellung über 10 freigegeben und genehmigt 20 20
Erzeuge Bestellung 20 30
Wareneingang über 4 freigegeben 24 30
Wareneingänge für den Rest freigegeben 30 30

Diagnose in zehn Sekunden: der Tooltip

Fahren Sie auf dem Reiter Lagerbestand mit der Maus über das kleine „i“ rechts neben der Zahl des theoretischen Lagerbestands. Dolibarr zeigt eine Aufschlüsselung (überschrieben mit „Begründung für Differenz zwischen Inventurbestand und Lagerbestand“): Mengen aus offenen Kundenaufträgen (und in Entwürfen), bereits verschickt, aus offenen Bestellungen (und in Entwürfen oder genehmigt, aber noch nicht bestellt), bereits erhalten. Fast jeder der folgenden Fälle lässt sich dort ablesen.

Sechs Gründe, warum der virtuelle Bestand falsch aussieht

Jeder wurde auf unserer Testinstanz nachgestellt.

1. Keine Regel ist aktiv

Siehe oben: Ohne Regel ignoriert der virtuelle Bestand die Aufträge. Kreuzen Sie eine Ausgangs- und eine Eingangsregel an.

2. Ein freigegebener Auftrag wurde nie abgeschlossen

Ein teilweise gelieferter Auftrag, dessen Rest nie mehr geliefert wird, „reserviert“ diesen Rest weiter: Der virtuelle Bestand bleibt dauerhaft unter dem aktuellen. Ebenso bei einem freigegebenen und vergessenen Auftrag. Öffnen Sie den Auftrag und klicken Sie Als geliefert markieren (oder Bestellung stornieren, wenn nichts geliefert wurde): Der virtuelle Bestand stimmt sofort wieder.

3. Die Lieferantenbestellung ist genehmigt, aber nicht „bestellt“

Eine freigegebene und genehmigte Lieferantenbestellung zählt nicht im virtuellen Bestand. Sie zählt erst nach Erzeuge Bestellung. Im Tooltip erscheint sie in Klammern („… noch nicht bestellt“).

4. Ein Wareneingang im Entwurf senkt den virtuellen Bestand

Bei einer Lieferantenbestellung über 10, von der schon 4 eingegangen waren, haben wir einen zweiten Wareneingang über 3 angelegt, ohne ihn freizugeben:

Aktuell Virtuell
Nach dem 1. Wareneingang (4), freigegeben 24 30
2. Wareneingang (3) angelegt, Entwurf 24 27
2. Wareneingang freigegeben 27 30

Der Tooltip meldete „bereits erhalten: 7“, obwohl erst 4 eingebucht waren. Der Grund im Code: Bei einer schon teilweise erhaltenen Bestellung zählt Dolibarr alle Wareneingangszeilen, Entwürfe eingeschlossen. Beim allerersten Wareneingang (Bestellung noch nicht teilweise erhalten) hat der Entwurf nichts geändert. Abhilfe: den Wareneingang freigeben oder den Entwurf löschen.

5. Die Regel wurde bei laufenden Aufträgen geändert

Mit der Regel „beim Freigeben von Kundenaufträgen“ senkte ein freigegebener Auftrag über 2 den Bestand von 5 auf 3. Danach haben wir auf „beim Freigeben von Lieferungen“ umgestellt: Der virtuelle Bestand fiel auf 1, und die Lieferung desselben Auftrags zog noch einmal 2 ab. Ergebnis: 2 Kugelschreiber doppelt ausgebucht, einmal bei der Auftragsfreigabe, einmal bei der Lieferung (beide Bewegungen stehen in der Liste der Lagerbewegungen des Produkts).

Ändern Sie die Regel, wenn kein Auftrag mehr läuft, oder korrigieren Sie den Bestand danach. Eine Inventur erledigt das sauber (siehe unten: genau das haben wir getan).

6. Kits

Mit aktivierten Kits (Einstellungen des Moduls Produkte: „Aktiviere Kits (Sets aus mehreren Produkten)“) haben wir ein Kit mit 2 Schachteln Heftklammern angelegt und einen Auftrag über ein Kit freigegeben. Der virtuelle Bestand der Heftklammern bewegte sich nicht (10 von 10): Standardmäßig zählen Aufträge eines Kits nicht für seine Bestandteile.

Eine Option ohne Kontrollkästchen ändert das: Fügen Sie unter Einstellungen › Erweiterte Einstellungen die Konstante PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC mit dem Wert 1 hinzu. Der virtuelle Bestand der Heftklammern ging dann auf 8. Laut Code nimmt diese Option die Vorgänge des Kits auch in die Statistik des Bestandteils auf (Reiter Verknüpfte Einträge).

Bei der Lieferung des Kits gehen die Bestandteile aus dem Lager (Heftklammern: 108); das Kit selbst hat keinen eigenen Bestand, sein virtueller Bestand kann negativ angezeigt werden.

Die eingebaute Inventur, Schritt für Schritt

Menü Produkte › Lagerbestände › Inventuren. Das Modul Lagerverwaltung genügt, es muss nichts installiert werden.

  1. Neue Inventur: eine Ref.Nr., eine Bezeichnung, das Warenlager (oder ein einzelnes Produkt oder Produkte nach Kategorie), dann Erstellen.
  2. Freigeben (Start): Dolibarr füllt die Liste mit den Produkten, die in diesem Warenlager bereits einen erfassten Bestand haben. Die Spalte Erwartete Menge ist der aktuelle Bestand.
  3. Tragen Sie die gezählte Echte Menge ein, dann Speichern. Diese Schaltfläche speichert nur die Mengen: Es entsteht noch keine Lagerbewegung.
    • leeres Feld: Das Produkt bleibt unverändert (in unserem Test behielt das leer gelassene Heft seinen Bestand);
    • 0: Der Bestand wird auf null gesetzt;
    • Füllen Sie die reale Menge mit der erwarteten Menge kopiert überall die erwartete Menge: praktisch, aber ein vergessenes Produkt wird dann unverändert bestätigt.
  4. Lagerbewegungen erzeugen und schließen, dann Ja. Dolibarr legt je Abweichung eine Bewegung an, bezeichnet „Inventur INV-2026-10“ (Code INV- gefolgt von der Referenz), und die Inventur wird Geschlossen.

Anfangsbestand erfassen

Ein Produkt, das in diesem Warenlager nie Bestand hatte, erscheint in Schritt 2 nicht. Fügen Sie es über die oberste Zeile der Tabelle hinzu: Warenlager, Produkt, Menge, Hinzufügen. So haben wir 15 Ordner erfasst: beim Abschluss eine Bewegung von +15. Für ein einzelnes Produkt macht Lagerbestandskorrektur auf dem Reiter Lagerbestand dasselbe.

Dieselbe Inventur hat den Fehler aus Grund 5 behoben: Dolibarr glaubte, 1 Kugelschreiber zu haben, wir zählten 3, die Bewegung von +2 hat den Bestand richtiggestellt.

Die Falle: Verkäufe während der Inventur

Beim Abschluss spielt Dolibarr nicht die beim Zählen festgestellte Abweichung nach: Es setzt den Bestand auf die gezählte Menge. Die Bewegung lautet „Echte Menge − Bestand zum Zeitpunkt des Abschlusses“.

In unserem Test wurden 8 Schachteln Heftklammern gezählt und gespeichert, dann wurde vor dem Abschluss eine Schachtel verkauft und geliefert (Bestand: 7). Beim Abschluss legte Dolibarr eine Bewegung von +1 an, und der Bestand stand wieder bei 8: Die verkaufte Schachtel war wieder da. Die Hilfe zur Spalte Erwartete Menge sagt es auch: Lagerbewegungen während der Inventur sind nicht empfohlen.

Zählen, erfassen und schließen Sie, ohne zwischendurch zu liefern oder Ware anzunehmen, oder machen Sie die Inventur pro Warenlager oder Kategorie, damit jede kurz bleibt.

In 24.0.2 zeigt die Abschluss-Schaltfläche einen Fehler

In Dolibarr 24.0.2 speichert ein Klick auf Lagerbewegungen erzeugen und schließen zwar die eingetragenen Mengen, zeigt dann aber eine leere Seite mit dieser Meldung:

Access to this page this way (POST method or GET with a sensible value for 'action' parameter) is refused by CSRF protection in main.inc.php. Token not provided.

Die Inventur wird nicht geschlossen, es entsteht keine Bewegung. Die Ursache: Die Weiterleitung dieser Schaltfläche sendet das Sicherheits-Token nicht mit, das Dolibarr seit Version 24.0 standardmäßig verlangt. Die Korrektur steht seit dem 10.10.2026 im Zweig 24.0 von Dolibarr, aber nicht in 24.0.2, der am 14.10.2026 neuesten veröffentlichten Version.

Der Umweg, den wir getestet haben:

  1. die Mengen Speichern;
  2. die Schaltfläche Lagerbewegungen erzeugen und schließen in einem neuen Tab öffnen (mittlere Maustaste oder Rechtsklick › in neuem Tab öffnen): Der Link selbst enthält das Token;
  3. in diesem neuen Tab mit Ja bestätigen.

Die Inventur wird dann geschlossen und die Bewegungen werden normal angelegt. Ändern Sie nicht $dolibarr_nocsrfcheck oder die Schutzstufe, um den Fehler zu umgehen.

Mit Chargen und Haltbarkeitsdaten

Wenn Sie Chargen- oder Seriennummern verfolgen (Modul Produktchargen und -Serien, mit Verfallsdatum und Haltbarkeitsdatum), erfolgt die Inventur pro Charge: Die Tabelle erhält eine Spalte Charge/Seriennr.

Kurz gesagt

  • „Eingefrorener“ virtueller Bestand: Prüfen Sie, ob eine Lagerregel angekreuzt ist.
  • Virtueller Bestand zu niedrig: ein freigegebener, nie abgeschlossener Auftrag oder ein Wareneingang im Entwurf.
  • Virtueller Bestand zu hoch: eine bestellte, aber nie vollständig erhaltene Lieferantenbestellung.
  • Bestandteile eines Kits: Konstante PRODUCT_STATS_WITH_PARENT_PROD_IF_INCDEC.
  • Falscher aktueller Bestand: ein Regelwechsel unterwegs oder Verkäufe während einer Inventur. Eine sauber abgeschlossene Inventur stellt ihn richtig.

Bevor Sie die Lagerregel ändern oder eine große Inventur beginnen, machen Sie eine Sicherung: Dolibarr sichern und wiederherstellen.

Bleibt Ihr Bestand trotz allem unverständlich, ist genau das die Diagnose für 90 €: eine Stunde gemeinsam an Ihrer Instanz, danach schriftlich, was die Berechnung verfälscht und was die Behebung kosten würde.

DolibarrLagerbestandvirtueller Lagerbestandtheoretischer LagerbestandInventurWarenlagerLieferungWareneingangLieferantenbestellungKit