Warenreservierungen in einer Web-App: Ab wann ist ein Artikel nicht mehr verfügbar?
Legen Sie vor der Entwicklung einer Bestell- oder Auftragsanwendung fest, welches Ereignis Ware reserviert. Ein Artikel in einem Entwurf, ein angenommenes Angebot und eine bestätigte Bestellung sind unterschiedliche Schritte. Die Anwendung muss zeigen, welcher davon die verfügbare Menge verringert, wie lange eine vorläufige Reservierung gilt und wodurch sie endet. Was im Gebäude liegt, lässt sich nicht automatisch einem weiteren Kunden zusagen.
Dieser Artikel behandelt die Zuordnung von Waren zu Aufträgen, nicht die Umrechnung von Packungen in Stück, das Scannen von Etiketten oder Zahlungen. Die Gestaltungsvorschläge sind Empfehlungen für Ihr Briefing. Shopify dient als dokumentiertes Beispiel für Bestandszustände, nicht als Beleg dafür, dass jedes System genauso arbeitet.
Mengen mit unterschiedlichen Bedeutungen trennen
Verlangen Sie verständliche Definitionen für physisch vorhandene Ware, bereits zugeteilte Mengen, gesperrte Ware und erwartete Lieferungen. Ein einziges Etikett „auf Lager“ sollte diese vier Bedeutungen nicht vermischen.
Die Shopify-Dokumentation zu Bestandszuständen definiert verfügbaren Bestand als verkaufbare Ware, die weder zugeteilt noch gesperrt ist. Eingehende Ware zählt nicht dazu. Der physisch vorhandene Gesamtbestand umfasst dort zugeteilte, gesperrte und verfügbare Mengen. Das sind Shopifys Definitionen. Für Ihre individuelle Anwendung brauchen Sie eine ebenso eindeutige Vereinbarung.
Der Unterschied ist praktisch wichtig: Ein beschädigter Artikel kann im Regal liegen, ohne verwendbar zu sein. Eine zugesagte Ware kann noch im Lager stehen, ohne für einen anderen Auftrag frei zu sein. Eine für morgen erwartete Lieferung ist heute noch nicht eingetroffen. Wenn Sie bewusst Vorbestellungen erlauben, beschreiben Sie dieses Versprechen gesondert, statt erwartete Ware als bereits vorhanden auszugeben.
Den Zeitpunkt der Reservierung auswählen
Zeichnen Sie den tatsächlichen Ablauf auf. Reserviert schon ein Angebot? Geschieht das bei interner Freigabe oder erst mit der Bestellbestätigung? Muss zuvor ein Abholort ausgewählt werden?
Shopify beschreibt zugeteilte Mengen als zurückgelegte, nicht mehr verkaufbare Einheiten. Dazu gehören noch nicht erfüllte Bestellungen, Reservierungen in Bestellentwürfen und als versandbereit markierte Umlagerungen. Das Beispiel zeigt, warum der Status „Entwurf“ allein nichts darüber aussagt, ob Ware reserviert ist.
Empfehlung für Ihre Anwendung: Zeigen Sie die Zusage direkt am Vorgang. „Entwurf, keine Ware reserviert“ bedeutet etwas anderes als „reserviert bis zum angezeigten Ablaufzeitpunkt“. Entscheiden Sie bei befristeten Reservierungen, ob vor dem Fortsetzen erneut die Verfügbarkeit geprüft werden muss. Eine abgelaufene Zusage darf nicht unverändert auf der Bestätigungsseite stehen bleiben.
Freigeben heißt nicht, Ware zurückzuerhalten
Klären Sie die Wirkung von Stornierungen, Mengenreduzierungen und Ersatzartikeln. Eine noch nicht erfüllte Reservierung freizugeben ist etwas anderes, als eine Rücksendung entgegenzunehmen. Hat die Ware das Haus verlassen, darf eine Stornierung sie nicht einfach wieder ins Regal buchen.
Wer bestätigt den Eingang und Zustand einer Rücksendung, bevor sie wieder verfügbar wird? Shopifys Trennung von gesperrtem und verfügbarem Bestand verdeutlicht, warum auch eingetroffene Ware zunächst zurückgehalten werden kann. Die Dokumentation weist zudem darauf hin, dass Apps empfangene Lieferungen in andere Zustände als „verfügbar“ versetzen können, etwa als Sicherheitsbestand. Wareneingang und Verkaufsfreigabe sind zwei Entscheidungen.
Lassen Sie bei teilweise erfüllten Bestellungen vorführen, dass die Stornierung des Rests nur dessen noch offene Zuteilung freigibt. Eine verständliche Änderungsbegründung hilft dem Team nachzuvollziehen, was passiert ist.
Mit dem letzten Stück testen
Ein hypothetischer Abnahmefall: Zwei Mitarbeitende versuchen auf getrennten Bildschirmen, denselben letzten verfügbaren Artikel zu reservieren. Wenn Überverkäufe ausgeschlossen sind, muss eine Reservierung gelingen und die andere eine ehrliche Meldung über die fehlende Verfügbarkeit erhalten. Ein scheinbar aktueller Bildschirm beweist nicht, dass eine gespeicherte Reservierung gültig ist.
Das ist ein gewünschtes Ergebnis, keine technische Garantie aus der Shopify-Dokumentation. Die serverseitige Umsetzung muss der Entwickler auswählen und testen, einschließlich Wiederholungsversuchen und anderer Kanäle, die Bestände ändern. Wenn Website, Verkaufstheke und Lager unterschiedliche Systeme nutzen, benennen Sie die maßgebliche Quelle und das Verhalten bei verzögerter Synchronisierung. Eine vorhandene Schnittstelle ist noch keine Zusage sofortiger Übereinstimmung.
Diese Fälle gehören ins Briefing
Ergänzen Sie Ihre Abnahmekriterien um diese Prüfungen:
- Ein Entwurf ohne Reservierung verändert die verfügbare Menge nicht.
- Eine erfolgreiche Reservierung verringert die für andere reservierbare Menge am richtigen Standort.
- Eine abgelaufene Reservierung wird genau einmal freigegeben; vor dem Fortsetzen erfolgt die vereinbarte Prüfung.
- Eine Stornierung gibt die passende offene Zuteilung frei, nicht bereits versandte Ware.
- Rücksendungen werden erst nach der vereinbarten Eingangs- und Zustandsprüfung wieder verkaufbar.
- Zwei konkurrierende Reservierungen des letzten Artikels halten die Regel gegen Überverkäufe ein.
- Ein verzögertes externes Bestandsupdate führt zur vereinbarten Warnung oder Einschränkung, nicht zu vorgetäuschter Sicherheit.
Das sinnvolle Ergebnis ist ein dokumentierter und mit Testdaten vorgeführter Reservierungsablauf, nicht bloß ein Bestandszähler. Beginnen Sie ein Gespräch über die Web-App mit zwei Fragen: Wann sagt Ihr Team die Ware verbindlich zu, und wann endet diese Zusage? Daraus ergeben sich die übrigen Anforderungen.