Best practice per gestire la concorrenza in un paniere in un sito Web di e-commerce


19

Qual è la migliore pratica per gestire il caso in cui due clienti aggiungano contemporaneamente un prodotto il cui stock era solo 1?

È necessario un controllo nel codice del carrello per evitare che uno di questi 2 clienti aggiunga lo stesso prodotto?

Oppure questo controllo deve essere eseguito nella fase di pagamento facendo, ad esempio, una seconda domanda per confermare che il prodotto in questione è ancora presente in magazzino (significa che non è stato ancora acquistato dal cliente concorrente)?


Alcuni siti, come le prenotazioni dei biglietti per il teatro, ti riservano un periodo di tempo limitato per te mentre l'ordine è in fase di elaborazione
Brad Thomas,

Risposte:


11

Non esiste una risposta perfetta per questa domanda e tutto dipende dai dettagli.

Come prima "linea di difesa", proverei a evitare tali situazioni, semplicemente non vendendo articoli così bassi se possibile. Se ciò è possibile, può dipendere dalla situazione e dal tipo di articoli che desideri vendere. Nella società in cui lavoro, gli articoli vengono per lo più rimossi dal sito Web prima che finiamo le scorte. Ma stiamo vendendo l'intera vendita e i pochi articoli rimanenti sono venduti dai nostri addetti alle vendite come offerte speciali. Questa potrebbe non essere un'opzione per i piccoli negozi, soprattutto quando si vendono articoli costosi.

La soluzione per fare il doppio controllo quando si aggiunge qualcosa al carrello non è molto buona. Le persone mettono molto nei cestini senza mai effettivamente effettuare un ordine. Quindi questo potrebbe bloccare questo articolo per un certo periodo di tempo.

Quindi, a mio modesto parere, per i piccoli lavori il modo migliore è quello di fare un controllo finale subito prima del pagamento, quando l'ordine viene effettivamente effettuato. Nel peggiore dei casi devi dire ai tuoi clienti che dove ti stai esaurendo in questo momento (cosa per i piccoli negozi non succederà così spesso).


bella cattura - scorte limitate e prezzi elevati
rohanagarwal

5

Penso che la migliore pratica sia quella di scegliere quale delle seguenti opzioni sia più appropriata per casi aziendali particolari :

  1. Blocco offline ottimistico

    ... risolve questo problema ( problema di conflitto di sessione ) confermando che le modifiche che stanno per essere eseguite da una sessione non sono in conflitto con le modifiche di un'altra sessione. Una valida convalida pre-commit sta, in un certo senso, ottenendo un blocco che indica che va bene procedere con le modifiche ai dati del record. Finché la convalida e gli aggiornamenti avvengono all'interno di una singola transazione di sistema, la transazione commerciale mostrerà coerenza ...

  2. Pessimistic Offline Lock
    ... previene i conflitti evitandoli del tutto. Costringe una transazione commerciale ad acquisire un blocco su un dato prima che inizi a usarlo, in modo che, il più delle volte, una volta avviata una transazione commerciale, puoi essere abbastanza sicuro che la completerai senza essere rimbalzata dalla concorrenza controllo...
"Mentre il blocco offline pessimistico presuppone che la possibilità di un conflitto di sessione sia elevato e quindi limita la concorrenza del sistema, il blocco offline ottimistico presuppone che la possibilità di conflitto sia bassa. L'aspettativa che il conflitto di sessione non sia probabile consente a più utenti di lavorare con lo stesso dati contemporaneamente ".


5

Questo è un problema di persone , così come un problema di database, il blocco del database è il bit facile!

Dato che un cliente non può mai controllare ...

Hai due opzioni di base:

  • Prenoti un articolo per il cliente per un tempo prestabilito, diciamo (20 minuti) dopo che lo hanno aggiunto al carrello, dopo che devono ricontrollare il livello delle scorte o ricominciare. Questo è spesso usato per i biglietti per eventi o posti aerei.

  • Oppure dici qualcosa come "xxx normale spedito in 24 ore", ma riservi lo stock al momento del checkout, in questo caso devi consentire loro di annullare l'ordine dopo il checkout se alcuni articoli sono disponibili ma non altri. (Anche i livelli di verde, giallo e rosso possono funzionare bene, o alcuni siti Web dicono "scorte limitate" quando sono scese a 1 o 2)


2

Come sempre, dipende dalle tue esigenze. Se sei Amazon e vendi 100.000.000 di articoli al giorno, le spese generali per il controllo preventivo e il blocco sono probabilmente proibitive e il problema di un cliente al giorno che non ottiene il suo articolo dopo tutto è trascurabile. Si tratta di rare icone religiose antiche che sono uniche e costose, vale probabilmente il contrario. Tu stesso devi sapere dove si trova il tuo business case su quello spettro.


2

Nel nostro caso, abbiamo utilizzato la coda dei messaggi per gestire gli ordini e configurarlo in modo tale che elabori un solo lavoro alla volta in sequenza sullo stesso prodotto, in modo FIFO.

L'avvertenza è che stai aggiungendo un nuovo overhead all'intera elaborazione degli ordini che ritarda un po 'le cose.


stai limitando la coda che deve essere consumata da un solo consumatore
rohanagarwal

1

La migliore pratica, per l'utente, è ovviamente quella di assicurarsi che la seconda aggiunta fallisca. Ma questo rallenterà l'intero sito per il caso dello 0,1%.

La soluzione tecnicamente più efficiente, e quella per massimizzare le vendite, è permetterle di avere successo e quindi provare a soddisfare entrambi gli ordini in un secondo momento - solo perché non hai stock in questo momento, non significa che non riesci a trovarlo in un'emergenza. Se non ci riesci, qualcuno deve contattare l'utente che è stato fortunato e scusarsi. Ma questo è esattamente ciò che ha portato al clamore prima di Natale di quest'anno (questo non è l'unico articolo apparso, quindi mi scuso con Best Buy ma è stato il primo che ho trovato).

Il tuo compito è presentare tutte le opzioni al business, con pro e contro, e lasciarli decidere in base ai tuoi consigli. Se possono permettersi un piccolo successo occasionale alla reputazione per massimizzare le vendite, allora abbastanza giusto; se non ci riescono e il traffico è così basso che è possibile verificare rapidamente la presenza di doppi aggiornamenti, questa è anche la loro chiamata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.