sql >> Base de Datos >  >> RDS >> Mysql

Control de pagos concurrentes

Idealmente deberías tener un stock campo en su Product modelo para mantener el número de cantidades disponibles para ese producto.

Cuando alguien hace un pedido, un order separado la instancia debe crearse con el número de cantidades del Product especificado. El stock solo debe reducirse una vez que se recibe la devolución de llamada para ese order o se recibe un webhook confirmando el pago.

Esto no evitaría que otros clientes realicen pedidos del mismo producto hasta que el artículo se haya vendido realmente.

Otro enfoque podría ser reducir el stock cuando el cliente va a la página de devolución de llamada y liberar el stock si el pago no se recibe dentro de un período de tiempo determinado. Se requeriría una tarea en segundo plano para esto.

Nota: usa F objeto de django.models mientras se reduce el stock para reducir el stock del valor DB y no del atributo de instancia.