Meilleure pratique pour gérer la simultanéité dans un panier dans un site Web de commerce électronique

19

Quelle est la meilleure pratique pour gérer le cas où deux clients ajoutent en même temps un produit dont le stock n'était que de 1?

Doit-il y avoir un chèque dans le code du panier pour éviter qu'un de ces 2 clients ajoute le même produit?

Ou bien ce contrôle doit-il être effectué en phase de paiement en faisant par exemple une seconde requête pour confirmer que le produit concerné est toujours présent en stock (moyen non encore acheté par le client concurrent)?

Mik378
la source
Certains sites, comme les réservations de billets de théâtre, placent un article à durée limitée sur l'article pendant que la commande est en cours de traitement
Brad Thomas

Réponses:

11

Il n'y a pas de réponse parfaite à cette question et tout dépend des détails.

En tant que première «ligne de défense», j'essaierais d'éviter de telles situations du tout, simplement en ne vendant pas d'articles aussi bas que possible. Si cela est possible, cela peut dépendre de la situation et du type d'articles que vous souhaitez vendre. Dans l'entreprise dans laquelle je travaille, les articles sont pour la plupart retirés du site Web avant d'être épuisés. Mais nous vendons la vente entière et les quelques articles restants sont vendus par nos vendeurs comme offres spéciales. Cela peut ne pas être une option pour les petits magasins, en particulier lors de la vente d'articles à prix élevé.

La solution pour faire la double vérification lors de l'ajout de quelque chose au panier n'est pas très bonne. Les gens mettent beaucoup dans des paniers sans jamais passer de commande. Cela peut donc bloquer cet article pendant un certain temps.

Donc, à mon humble avis pour les petits travaux, la meilleure façon est de faire un dernier contrôle juste avant le paiement, lorsque la commande est réellement passée. Dans le pire des cas, vous devez dire à votre client que vous êtes en rupture de stock en ce moment (ce qui n'arrivera pas souvent pour les petits magasins).

thorsten müller
la source
belle prise - bas en stock et prix élevés
rohanagarwal
5

Je pense que la meilleure pratique consiste à choisir laquelle des options ci-dessous est la plus appropriée pour une analyse de rentabilisation particulière :

  1. Verrouillage hors ligne optimiste

    ... résout ce problème ( problème de conflit de session ) en validant que les modifications sur le point d'être validées par une session n'entrent pas en conflit avec les modifications d'une autre session. Une validation de pré-validation réussie consiste, dans un sens, à obtenir un verrou indiquant qu'il est correct d'aller de l'avant avec les modifications apportées aux données d'enregistrement. Tant que la validation et les mises à jour se produisent au sein d'une seule transaction système, la transaction commerciale affiche une cohérence ...

  2. Verrouillage hors ligne pessimiste
    ... prévient les conflits en les évitant complètement. Il force une transaction commerciale à acquérir un verrou sur un élément de données avant de commencer à l'utiliser, de sorte que, la plupart du temps, une fois que vous commencez une transaction commerciale, vous pouvez être sûr de la terminer sans être rebondi par la concurrence contrôle...
"Alors que Pessimistic Offline Lock suppose que le risque de conflit de session est élevé et par conséquent limite la simultanéité du système, Optimistic Offline Lock suppose que le risque de conflit est faible. L'espérance que le conflit de session ne permet probablement pas à plusieurs utilisateurs de travailler avec le même données en même temps. "

moucheron
la source
5

C'est un problème de personnes , ainsi qu'un problème de base de données, le verrouillage de la base de données est le plus simple!

Étant donné qu'un client peut ne jamais vérifier…

Vous avez deux options de base:

  • Vous réservez un article au client pour une durée fixe, disons (20 minutes) après l'avoir ajouté au panier - après avoir chronométré, il doit revérifier le niveau de stock ou recommencer. Ceci est souvent utilisé pour acheter des billets pour des événements ou des sièges d'avion.

  • Ou vous dites quelque chose comme "xxx normal expédié en 24 heures", mais réservez le stock lors de votre commande, dans ce cas, vous devez leur permettre d'annuler la commande après la commande si certains articles sont en stock mais pas d'autres. (Les niveaux de stock vert, jaune et rouge peuvent également bien fonctionner, ou certains sites Web disent «faible stock» lorsqu'ils sont réduits à 1 ou 2)

Ian
la source
2

Comme toujours, cela dépend de vos besoins. Si vous êtes Amazon et vendez 100 000 000 d'articles par jour, les frais généraux pour la vérification et le verrouillage préventifs sont probablement prohibitifs, et le problème d'un client par jour qui ne reçoit pas son article après tout est négligeable. S'il s'agit d'icônes religieuses antiques rares qui sont uniques et chères, l'inverse s'applique probablement. Vous devez vous-même savoir où se situe votre analyse de rentabilisation sur ce spectre.

Kilian Foth
la source
2

Dans notre cas, nous avons utilisé la file d'attente de messages pour gérer les commandes et l'avons configurée de sorte qu'elle ne traite qu'un seul travail à la fois en séquence sur le même produit, de manière FIFO.

La mise en garde est que vous ajoutez une nouvelle surcharge à l'ensemble du processus de commande, ce qui retarde un peu les choses.

Korayem
la source
vous limitez la file d'attente à être consommée par un seul consommateur
rohanagarwal
1

La meilleure pratique, pour l'utilisateur, est évidemment de s'assurer que le deuxième ajout échoue. Mais cela va ralentir l'ensemble de votre site pour le bien du cas de 0,1%.

La solution la plus efficace sur le plan technique, et celle qui maximise les ventes, est de lui permettre de réussir et d'essayer ensuite de répondre aux deux commandes plus tard - ce n'est pas parce que vous n'avez pas de stock en ce moment que vous ne pouvez pas le trouver dans une urgence. Si vous ne pouvez pas, quelqu'un doit contacter l'utilisateur qui a eu de la chance et s'excuser. Mais c'est exactement ce qui a provoqué un tollé avant Noël cette année (ce n'est pas le seul article qui est apparu, donc excuses à Best Buy mais c'était le premier que j'ai trouvé).

Votre travail consiste à présenter toutes les options à l'entreprise, avec des avantages et des inconvénients, et à les laisser décider en fonction de vos conseils. S'ils peuvent se permettre un petit coup occasionnel à la réputation pour maximiser les ventes, alors assez juste; s'ils ne le peuvent pas et que le trafic est si faible que vous pouvez vérifier rapidement les doubles mises à jour, c'est aussi leur appel.

pdr
la source