Ciao a tutti,
Vorrei realizzare un piccolo ecommerce per un sito, ma ho un dubbio su come gestire le quantità e di conseguenza evitare l'overselling.
Ciò che vorrei fare è di non decrementare le quantità sul db fino alla fine del check-out, quindi a questo punto ricontrollare se tutti i prodotti nel carrello sono ancora disponibili, decrementare le quantità, salvare l'ordine nel db.
Quindi, fondamentalmente
Codice PHP:
$cartIds = array(<id prodotti nel carrello>);
$query = "SELECT * FROM prodotti WHERE id IN $cartIds";
$invalidProducts = array();
foreach($query as $prodottoo){
if($prodotto['quantita'] < $cart[$prodotto['id']]['qta'])
$invalidProducts[] = $prodotto['id'];
}
if(empty($invalidProducts)){
foreach($cart as $key => $prodotto){
$query = "UPDATE prodotti SET quantita = quantita - {$prodotto['qta']} WHERE id = $key";
}
$query = "INSERT INTO ordini ....";
}else{
// Qualcuno ha già acquistato il prodotto e non ce ne sono più nella quantità richiesta
}
Tralasciando la sintassi, secondo voi è possibile che un secondo script faccia la prima query (il controllo) mentre il primo ancora non finisce di aggiornare le quantità, portando ad un possibile overselling ?
Qualche sugerimento?
Grazie a tutti