Ordina collisioni nell'e-commerce

4

Supponiamo di avere un'app Web in cui i venditori aggiungono i loro prodotti e li mettono in vendita. Poi mostro un elenco di prodotti nella mia app mobile, dove ottengo i prodotti tramite la mia API REST. Il mio problema: supponiamo che due clienti visualizzino lo stesso prodotto (e c'è solo 1 articolo disponibile dal venditore) e fanno l'ordine simultaneo. Come risolvo tali collisioni?

Il mio stack tecnologico: RoR, PostgreSQL, heroku.

    
posta Igor Filippov 14.05.2013 - 11:03
fonte

1 risposta

5

Non esiste un ordine simultaneo. Il tuo server dovrà elaborare prima una delle azioni di aggiunta del carrello. Nel momento in cui ciò accade, il prodotto deve essere bloccato e ogni successiva azione di aggiunta del paniere deve restituire un messaggio di esaurimento. Se il cliente non effettua il checkout entro un determinato periodo di tempo (spesso un'ora), è normale rimuovere il blocco sul prodotto e restituirlo alla vendita. Questo può essere integrato con la messaggistica nella pagina del carrello che spiega che l'articolo nella sua borsa sarà disponibile solo per un periodo di tempo limitato a causa di scorte basse.

La cosa fondamentale dal punto di vista dell'utente è che chiunque di loro tenti di aggiungere l'articolo al proprio paniere secondo dovrebbe ricevere un messaggio che indica che l'articolo è esaurito immediatamente dopo aver provato ad aggiungerlo al proprio paniere. È terribile UX lasciarli entrare nella cassa pensando di avere un oggetto e poi rifiutare la vendita più tardi.

In generale i siti di e-commerce aggirano questo problema contrassegnando automaticamente gli articoli come esauriti quando scendono a livelli di prodotto bassi ma non zero. Ciò consente ai merchandiser di rifornire gli articoli senza aver mai ricevuto un ordine che non sono in grado di soddisfare; anche se ciò potrebbe non essere possibile nel tuo caso se i venditori vendono articoli unici.

    
risposta data 14.05.2013 - 11:14
fonte

Leggi altre domande sui tag