Mysql
 sql >> Base de données >  >> RDS >> Mysql

Contrôle des paiements simultanés

Idéalement, vous devriez avoir un stock champ dans votre Product modèle pour conserver le nombre de quantités disponibles pour ce produit.

Lorsqu'une personne passe une commande, une order distincte l'instance doit être créée avec le nombre de quantités du Product spécifié. Le stock ne doit être réduit qu'une fois le rappel reçu pour cette order ou un webhook est reçu confirmant le paiement.

Cela n'empêcherait pas d'autres clients de passer des commandes pour le même produit jusqu'à ce que l'article ait été effectivement vendu.

Une autre approche pourrait consister à réduire le stock lorsque le client se rend sur la page de rappel et à libérer le stock si le paiement n'est pas reçu dans un certain délai. Une tâche en arrière-plan serait nécessaire pour cela.

Remarque : utilisez F objet de django.models tout en réduisant le stock afin de réduire le stock de la valeur DB et non de l'attribut d'instance.