Wir nutzen die aktuellste 5er Version von Shopware und die Plugins Paypal und Amazon Pay sind auch auf dem aktuellsten Stand. Alle Artikel haben die Einstellung “Artikel bei Bestand <= 0 nicht bestellbar” aktiviert. Wenn ein Kunde im Bezahlprozess ist und in dem Moment der Artikel nicht mehr verfügbar ist, wird einfach ins Minus gebucht und der Kunde erhält eine Besellbestätigung und die Info mit der erfolgreichen Bestelltung. Der Lagerbestand ist dann negativ.
Da wir häufig durch bestimmte Aktionen Peaks haben, ist das für uns und für die Kunden keine schöne Situation.
Was können wir dagegen tun? Gibt es eine Lösung?
Andere Shops leiten nach der Paypal authorisierung zurück zum Shop und dann muss da noch mal bestellen geklickt werden und somit in dem Moment der Lagerbestand geprüft.
Zumindest bei Paypal Express ist das gegenwärtig technisch wohl nicht lösbar. Besonders bei Bestellungen in kurzen Abständen, wenn der Kunde zu Paypal geleitet wird und dann wieder zurück zum Shop. In der Zwischenzeit hat aber schon ein anderer Kunde bestellt. Und zack kommt man in den Minusbereich.
Für mich ist das ein Shopware Fehler. Es kann nicht sein, wenn ich definiere das kein Artikel einen negativen Lagerbestand haben darf, das es trotzdem passiert und der Kunde auch noch eine Bestätigung bekommt.
Zu hundert Prozent lässt sich sowas nie verhindern, besonders bei größerer last kann es dazu kommen. In shopware 6 gibt es im Warenkorb jedoch einen anderen workflow. Hier wird mit einem availableStock gearbeitet, der vor Abschluss der Bestellung noch mal geprüft wird. Diese variable errechnet sich aus physischen Warenbestand - SUM(reservierte Bestände). Ist er dann zwischenzeitlich auf Null gefallen, erhält der kunde eine Meldung.
Das Problemen haben wir seit einigen Wochen auch mit zunehmender Häufigkeit. Bei stark frequentierten Artikel stelle ich oft den Bestand geringer ein, als er tatsächlich ist, damit wir am Ende nicht unnötig stornieren müssen.
Das Problem ist tatsächlich sogar bereits einmal aufgetreten, nachdem der Artikel zwischenzeitlich im Backend inaktiv gesetzt wurde. Kurz danach kam die Bestellbestätigung mit PayPal-Zahlung und der Bestand war im Minus.