Idealerweise haben Sie einen stock
Feld in Ihrem Product
Modell, um die Anzahl der verfügbaren Mengen für dieses Produkt zu halten.
Wenn jemand eine Bestellung aufgibt, eine separate order
Instanz sollte mit der Anzahl der Mengen des Product
erstellt werden spezifizierten. Der Bestand sollte erst reduziert werden, wenn der Rückruf für diese order
eingeht oder es wird ein Webhook empfangen, der die Zahlung bestätigt.
Dies würde andere Kunden nicht daran hindern, Bestellungen für dasselbe Produkt aufzugeben, bis der Artikel tatsächlich verkauft wurde.
Ein anderer Ansatz könnte darin bestehen, den Lagerbestand zu reduzieren, wenn der Kunde auf die Rückrufseite geht, und den Lagerbestand freizugeben, wenn die Zahlung nicht innerhalb eines bestimmten Zeitraums eingeht. Dafür wäre eine Hintergrundaufgabe erforderlich.
Hinweis: Verwenden Sie F
Objekt aus django.models
beim Reduzieren des Bestands, um den Bestand aus dem DB-Wert und nicht aus dem Instanzattribut zu reduzieren.