Lagerlogik & Bestandsführung
Bestände, Reservierungen, Seriennummern und Warenbewegungen einfach erklärt
→ Lagerbestand in SimpliServ öffnen
Dieses Dokument erklärt, wie Bestände in SimpliServ geführt werden, wann Produkte reserviert werden und wie Seriennummern verarbeitet werden. Es hilft dabei, Lagerbewegungen im Alltag besser zu verstehen – vom Wareneingang bis zum Verkauf.
Grundprinzip der Bestandsführung
Für jedes Produkt und Lager arbeitet das System mit drei Bestandswerten:
quantity_total– gesamter physischer Bestand im Lagerquantity_reserved– reservierter Bestand (z. B. für Aufträge)quantity_available– aktuell frei verfügbarer Bestand
Die zentrale Regel lautet:
quantity_available = quantity_total - quantity_reserved
Damit ist immer klar ersichtlich, was physisch vorhanden ist und was davon bereits für offene Aufträge gebunden ist.
Lagerbewegungen in der App buchen
Unter Bestand siehst du alle Produkte mit ihrem Bestand je Lager. Die Filter Alle, Auf Lager, Niedrig, Nachbestellen und Nicht verfügbar grenzen die Liste ein. Gebucht wird über die Buttons oben oder das Aktionsmenü einer Zeile:
| Aktion | Wirkung | Berechtigung |
|---|---|---|
| Wareneingang | Lager, Produkt, Menge und optional Einstandspreis (netto) erfassen, Bestand steigt | Lagerbestand → Anlegen |
| Warenausgang | Ware ohne Beleg aus einem Lager ausbuchen (z. B. Eigenverbrauch, Schwund) | Lagerbestand → Bearbeiten |
| Inventur / Korrektur | Neuer Gesamtbestand mit optionalem Grund setzen | Lagerbestand → Bearbeiten |
| Umlagerung | Menge von einem Lager (Von Lager) in ein anderes (Nach Lager) verschieben | Lagerbestand → Bearbeiten |
Dieselben Aktionen findest du auch im Aktionsmenü eines Produkts.
Wareneingang
Wareneingang erhöht den Bestand im Lager.
Nicht-serialisierte Produkte
Typische Beispiele sind Schrauben, Kabel oder Verbrauchsmaterialien.
Wenn beim Wareneingang eine Menge gebucht wird (z. B. +10), erhöht sich der Bestand direkt:
quantity_totalsteigtquantity_availablesteigtquantity_reservedbleibt unverändert
Beispiel:
- Vorher:
total = 5,reserved = 1,available = 4 - Nach Wareneingang (+10):
total = 15,reserved = 1,available = 14
Serialisierte Produkte
Typische Beispiele sind iPhones, Laptops, Router oder andere Geräte mit Seriennummer.
Bei serialisierten Produkten kann beim Wareneingang zusätzlich zur Menge auch bereits eine Liste von Seriennummern erfasst werden.
Beispiel:
- Wareneingang:
10 Stück - Seriennummern erfasst:
7 Stück
Dann passiert Folgendes:
- Für jede erfasste Seriennummer wird ein Seriennummern-Eintrag angelegt
- Die restliche Menge wird trotzdem als Bestand gebucht (auch ohne Seriennummer)
Das bedeutet:
- Der Bestand steigt auf die gesamte gebuchte Menge
- Ein Teil ist bereits sauber über Seriennummern erfasst
- Ein Teil ist vorübergehend noch ohne Seriennummer im Bestand
Das ist bewusst erlaubt, damit der Wareneingang nicht blockiert wird.
Reservierungen
Reservierungen entstehen über Aufträge.
Wichtig:
- Eine Rechnung allein reserviert keinen Bestand
- Erst ein Auftrag baut eine Reservierung auf
Wenn ein Auftrag erstellt wird:
quantity_reservedsteigtquantity_availablesinktquantity_totalbleibt gleich
Die Ware ist also weiterhin physisch im Lager, aber bereits für einen Auftrag vorgemerkt.
Beispiel:
- Vorher:
total = 10,reserved = 0,available = 10 - Auftrag über 3 Stück
- Nachher:
total = 10,reserved = 3,available = 7
Wann wird Ware wirklich aus dem Bestand genommen?
Das ist der wichtigste Unterschied im Alltag:
- Auftrag erstellen = Ware wird reserviert (Lager-Bestand unverändert)
- Verkauf / Versand / Verbauen = Ware wird tatsächlich ausgebucht
Es gibt fünf verschiedene Trigger-Punkte für die Ausbuchung:
| Trigger | Wann | Lieferschein? |
|---|---|---|
| Auftrag → Ausliefern (Lieferschein-Modus) | Versand an Kunde | Wird erzeugt + sofort versendet |
| Auftrag → Ausliefern (Abholung-Modus) | Kunde holt im Geschäft ab | Nein |
| Auftrag → Teile verbaut | Service-Reparatur, Teile im Gerät verbraucht | Nein |
| ShopOrder → Lieferschein Als versendet markieren | Versand einer Shop-Bestellung | Lieferschein war Pflicht-Voraussetzung |
| POS Quick Sale | Theken-Verkauf ohne vorherigen Auftrag | Nein |
POS Quick Sale / Quick Invoice
Beim POS Quick Sale (Schnellverkauf an der Kasse) wird die Ware sofort aus dem Bestand genommen.
Das gilt auch dann, wenn intern im Hintergrund eine Quick Invoice angelegt wird.
Dabei passiert ein direkter Bestandsabgang:
quantity_totalsinktquantity_availablesinktquantity_reservedbleibt gleich
Es gibt hier keine vorgelagerte Reservierung wie beim Auftrag.
Auftrag — Ausliefern oder Teile verbauen
Beim CRM-Auftrag ist der Ablauf zweistufig:
-
Auftrag erstellen Die Ware wird reserviert (noch kein physischer Abgang)
-
Auftrag versenden, ausliefern oder Teile verbauen Erst jetzt wird die Ware tatsächlich aus dem Lager ausgebucht
In jedem Ausbuchungs-Fall (Ausliefern mit oder ohne Lieferschein, Teile verbauen):
quantity_reservedsinktquantity_totalsinktquantity_availablebleibt im Normalfall gleich (weil die Ware schon vorher reserviert war)
Unterschied Ausliefern vs. Teile verbaut:
- Ausliefern: Ware verlässt das Geschäft (Versand, Abholung) — wahlweise mit Lieferschein-Beleg
- Teile verbaut: Ware geht ins Kunden-Gerät bei einer Reparatur — kein Lieferschein, da das Gerät selbst kein Versand-Objekt ist
Beide Pfade lösen denselben Lager-Vorgang (SHIP_RESERVED) aus.
ShopOrder — Lieferschein als Trigger
Bei Shop-Bestellungen (Shopify, Wix) ist die Abwicklung ebenfalls zweistufig, aber immer über einen Lieferschein:
-
Bestellung vom Shop empfangen Lager wird sofort reserviert (Webhook-getriggert)
-
Lieferschein anlegen Status
draft, Lager noch unverändert. Dient als Pickliste. -
Lieferschein versenden (Als versendet markieren) Erst jetzt:
quantity_reservedsinkt,quantity_totalsinkt. Versand-Status wird automatisch aktualisiert. Bestand wird an Shop gepusht.
Mehr dazu in Shop-Bestellungen und Lieferscheine.
Auslieferung bei serialisierten Produkten
Bei serialisierten Produkten muss beim Versand klar sein, welche konkreten Geräte das Lager verlassen.
Deshalb müssen beim Ausliefern die Seriennummern ausgewählt oder gescannt werden.
Das System ordnet diese Seriennummern dem Versand bzw. Verkauf zu und reduziert den Bestand entsprechend.
Direktverkauf und Seriennummern
Bei einem direkten Verkauf (z. B. POS Schnellverkauf) wird der Bestand sofort reduziert.
Nicht-serialisierte Produkte
Der Bestand wird direkt reduziert:
quantity_totalsinktquantity_availablesinktquantity_reservedbleibt gleich
Serialisierte Produkte
Hier gibt es zwei mögliche Fälle.
Bereits erfasste Seriennummern
Wenn Seriennummern bereits im System vorhanden sind:
- Das System zeigt verfügbare Seriennummern an
- Der Benutzer wählt oder scannt eine vorhandene Seriennummer
- Genau diese Seriennummer wird verkauft
Seriennummer noch nicht erfasst
Wenn beim Wareneingang nicht alle Seriennummern erfasst wurden, kann es sein, dass ein serialisiertes Produkt Bestand hat, aber noch nicht jede Einheit eine Seriennummer im System hat.
In diesem Fall kann beim Verkauf oder Versand eine neue Seriennummer eingegeben werden – sofern noch freier Bestand ohne Seriennummer vorhanden ist.
Das System legt diese Seriennummer dann automatisch an und verarbeitet den Verkauf direkt weiter.
Wichtige Regel bei serialisierten Produkten
Bei serialisierten Produkten sollte spätestens beim Verkauf, Versand oder bei der Inventur jede Einheit eindeutig über eine Seriennummer nachvollziehbar sein.
Inventur
Die Inventur ist die Bestandskorrektur auf Basis der realen Lagerbestände. Dabei gilt: Die Inventur ist die „Wahrheit aus dem Lager“. Es gibt zwei Wege.
Einzelkorrektur
Über Inventur / Korrektur gibst du für ein Produkt die tatsächlich vorhandene Menge als Neuer Gesamtbestand ein. Das System setzt den Bestand direkt auf diesen Wert.
Beispiel:
- Ist-Menge:
23
Dann gilt:
quantity_total = 23quantity_available = quantity_total - quantity_reserved
Reservierungen bleiben dabei bestehen. Dadurch kann quantity_available auch negativ werden, wenn mehr reserviert ist als physisch vorhanden – der Dialog warnt dann vor einer Unterdeckung.
Beispiel:
quantity_total = 5quantity_reserved = 8quantity_available = -3
Inventur für ein ganzes Lager
Für eine vollständige Zählung startest du unter Inventur mit Inventur starten eine Inventur für ein Lager (optional nur einen Lagerplatz). Der Soll-Bestand wird beim Start eingefroren, der Verkauf läuft währenddessen normal weiter. Du zählst Mengenartikel von Hand und scannst Seriennummern, prüfst unter Differenzen die Abweichungen und schließt die Inventur ab. Erst dann wird der gezählte Bestand gebucht.
Bei serialisierten Produkten wird nicht nur eine Menge gezählt, sondern jede Seriennummer einzeln geprüft:
- Seriennummern, die im Soll-Bestand sind, aber nicht gefunden wurden → werden als fehlend markiert und beim Buchen ausgebucht
- Gescannte Nummern, die nicht im Soll-Bestand sind, aber zu einem bekannten Artikel gehören → können als zusätzliche Einheit erfasst werden
- Nie eingebuchte Ware gehört über den Wareneingang ins System
Danach entspricht der Bestand der Anzahl der erfassten Seriennummern. Details: Inventur durchführen.
Umlagerung zwischen Lagern
Bei einer Umlagerung wird Bestand von einem Lager in ein anderes verschoben.
Nicht-serialisierte Produkte
Über Umlagerung wählst du Quell- und Ziellager, Produkt und Menge. Bei Mengenartikeln prüft das System, ob im Quelllager genug freier Bestand vorhanden ist.
Dann wird die Menge verschoben:
- Im Quelllager sinken
quantity_totalundquantity_available - Im Ziellager steigen
quantity_totalundquantity_available
Serialisierte Produkte
Bei serialisierten Produkten werden konkrete Seriennummern umgelagert.
Das System prüft dabei:
- Existiert die Seriennummer im Quelllager?
- Ist sie verfügbar (
available)? - Gibt es keinen Konflikt im Ziellager?
Nur verfügbare Seriennummern dürfen umgelagert werden. Bereits reservierte, versendete oder verkaufte Geräte sind nicht umlagerbar.
Verhalten von Reservierungen im Alltag
Reservierungen bleiben bestehen, bis sie aktiv aufgelöst werden.
Typische Fälle:
- Wareneingang → Reservierung bleibt, verfügbarer Bestand steigt
- Auftrag erstellen → Reservierung wird aufgebaut
- Auftrag ausliefern oder Teile verbauen → Reservierung wird abgebaut, Bestand sinkt
- ShopOrder eingegangen → Reservierung wird aufgebaut (Channel-Reserve, kein Echo-Push an Shop)
- ShopOrder-Lieferschein als versendet markieren → Reservierung wird abgebaut, Bestand sinkt, neuer Bestand wird an Shop gepusht
- ShopOrder im Shop storniert → Reservierung wird zurückgegeben (Shopify/Wix entscheidet selbst über Restock)
- Auftrag storniert → Restliche, noch nicht gelieferte Reservierung wird automatisch freigegeben
- POS Quick Sale → direkter Bestandsabgang ohne Reservierung
- Inventur → Reservierungen bleiben bestehen (Verfügbarkeit kann negativ werden)
- Umlagerung → nur verfügbarer Bestand darf bewegt werden
Seriennummern beim Wareneingang oder später erfassen
In SimpliServ können Seriennummern bei serialisierten Produkten bereits beim Wareneingang erfasst werden – das ist der sauberste Weg.
Falls das im Wareneingang nicht vollständig möglich ist, können fehlende Seriennummern auch später ergänzt werden, zum Beispiel:
- beim Verkauf
- beim Versand / der Auslieferung
- bei der Inventur
Das gibt Flexibilität im Alltag, ohne die Lagerlogik zu blockieren.
Empfehlung für den Alltag
Für eine saubere Nachverfolgung empfehlen wir:
- Seriennummern möglichst bereits beim Wareneingang zu erfassen
- Bei Inventuren serialisierte Geräte vollständig zu scannen
- POS-Kassen einem festen Lager zuzuordnen, damit Verkäufe eindeutig aus dem richtigen Bestand gebucht werden
POS und Lagerzuordnung
Für den Schnellverkauf (POS Quick Sale) sollte jede Kassa einem Lager (Warehouse) zugeordnet sein.
Nur so ist eindeutig definiert:
- aus welchem Lager verkauft wird
- welche Seriennummern angezeigt werden
- welcher Bestand reduziert wird
Das ist besonders wichtig bei serialisierten Produkten, da die Seriennummern pro Lager geführt werden.
Zusammenfassung
Die Lagerlogik in SimpliServ folgt einem klaren Prinzip:
- Wareneingang erhöht den Bestand
- Auftrag und ShopOrder reservieren Bestand
- Ausliefern, Teile verbauen und Lieferschein versenden reduzieren reservierten Bestand physisch
- POS Quick Sale und Warenausgang reduzieren Bestand direkt
- Inventur gleicht den Systembestand mit der Realität ab
- Umlagerung verschiebt verfügbaren Bestand zwischen Lagern
So bleibt jederzeit nachvollziehbar, was im Lager vorhanden, reserviert und tatsächlich verfügbar ist.
Audit-Trail aller Lagerbewegungen
Jede Bewegung wird in einem unveränderlichen Bewegungsprotokoll festgehalten (Append-Only). Auf der Produktseite siehst du sie in der Karte Lagerbewegungen, für alle Lager unter Lagerbewegungen:
- Wer hat die Bewegung ausgelöst (Benutzer)
- Welcher Typ (Wareneingang, Reserve, Release, Versand, Storno, Umlagerung, Inventur-Korrektur, …)
- Welche Mengen-Änderung je Bestand (
available,reserved,total) - Welche Seriennummern betroffen
- Welcher Beleg-Bezug (Auftrag, Shop-Bestellung, Lieferschein)
Damit ist auch nach Monaten nachvollziehbar, warum ein Bestand wie er ist — wichtig für Buchhaltung, Inventur-Klärung und Fehler-Analyse.
Verwandte Themen
- Inventur durchführen — Lager zählen, Differenzen prüfen und buchen
- Lager verwalten — Lagerorte anlegen, Bestände führen und Bewegungen nachvollziehen
- Scannen & Seriennummern — Geräte per Barcode finden und Seriennummern einzelner Einheiten verwalten
- Auftrag erstellen & abwickeln — wie Aufträge Bestand reservieren, ausliefern und Teile verbauen
- Kassensystem (POS) — Theken-Verkäufe, die Bestand direkt ausbuchen
- Channel-Sync einrichten — Bestände nach Shopify, Wix und weiteren Kanälen synchronisieren
How is this guide?