Mysql
 sql >> Database >  >> RDS >> Mysql

Controllo dei pagamenti simultanei

Idealmente dovresti avere un stock campo nel tuo Product modello per mantenere il numero di quantità disponibili per quel prodotto.

Quando qualcuno effettua un ordine, un order separato l'istanza deve essere creata con il numero di quantità del Product specificato. Lo stock dovrebbe essere ridotto solo una volta ricevuta la richiamata per quell'order o viene ricevuto un webhook che conferma il pagamento.

Ciò non impedirebbe ad altri clienti di effettuare ordini per lo stesso prodotto fino a quando l'articolo non è stato effettivamente venduto.

Un altro approccio potrebbe essere quello di ridurre lo stock quando il cliente va alla pagina di richiamata e rilasciare lo stock se il pagamento non viene ricevuto entro un determinato periodo di tempo. Per questo sarebbe necessaria un'attività in background.

Nota: usa F oggetto da django.models mentre si riduce lo stock per ridurre lo stock dal valore del database e non dall'attributo dell'istanza.