Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gleichzeitige Zahlungskontrolle

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.