Jump to content
manu_katz

Accès concurrent à un même produit lors de la validation de la commande

Recommended Posts

Salut à tous,

 

N'ayant pas trouvé de réponse à ma problématique, qui ressemble quand même fortement à un bug gênant, je me permets de solliciter la communauté des utilisateurs.

 

Prenons l'exemple suivant :

 

2 personnes consultent le même produit, dont il reste un seul exemplaire en stock. Dans mon exemple, il s'agit d'une veste taille 38.

 

L'acheteur 1 met le produit dans son panier. L'acheteur 2 ne constate aucune modification de stock, il en reste toujours 1 en stock. Admettons, on peut partir du principe que le stock se met à jour au moment ou on valide la commande.

 

Du coup, l'acheteur 2 met également le produit dans son panier sans difficulté ni message informatif particulier. Admettons, là encore, le produit n'est toujours pas commandé/payé par l'acheteur 1.

 

A noter que, si l'acheteur 1 ou l'acheteur 2 essayent de mettre à nouveau le même produit dans son panier, il a bien droit à un message d'erreur, preuve que la prise en compte du "blocage" du produit est effectuée localement sur le poste de chaque utilisateur pour son propre panier.

 

L'acheteur 1 commence à valider sa commande, il renseigne ses coordonnées, choisit son mode de livraison, son mode de paiement et s'apprête à valider son paiement par chèque.

 

Pendant ce temps là, l'acheteur 2 fait de même : coordonnées, livraison, mode de paiement. Il s'apprête à valider son paiement par chèque.

 

Là où cela devient problématique, c'est qu'aucune vérification n'est refaite sur le stock au moment de valider sa commande.

 

Du coup, l'acheteur 1 valide sa commande sans problème. Quelques secondes plus tard, l'acheteur 2 valide également sa commande sans problème. On comprend immédiatement que, s'il existait un produit dispo au moment de la mise en panier, plus aucune vérification n'est effectuée sur le stock réel ensuite.

 

Moralité, on se retrouve avec 2 commande validées pour un produit qui n'existe qu'en un seul exemplaire en base.

 

Pour info, j'ai bien indiqué dans le paramétrage de Prestashop de ne plus prendre de commande lorsque le stock est nul.

 

Là où ça devient "rigolo" (si on peut dire !), c'est que ma taille 38 n'apparait plus ensuite dans les tailles existante mais dont le stock est nul. Lorsqu'on va regarder la quantité dans le BO, elle est à -1 !!!

 

Lorsque les 2 acheteurs vont dans le suivi de leurs commandes, ils ont un affichage différent : l'acheteur 1 voit s'afficher le statut "en attente de réception du paiement pour envoyer" alors que l'acheteur 2 voit le statut "En attente de réapprovisionnement".

 

Est-ce qu'autres utilisateurs ont déjà rencontré ce genre de désagrément et comment l'ont-ils résolu ? Le but serait bien évidemment de modifier a minima le code de l'étape de validation de la commande pour qu'elle aille vérifier que le produit est toujours dispo en stock à cet instant précis mais ce n'est quand même pas génial...

Edited by manu_katz (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

 

aucune validation de stock ne peut être traité seulement du fait de la mise au panier sauf à programmer un vidage automatique du panier régulièrement (15 minutes) ce qui contraignant. Ce choix est fait pas des sites de ventes privée mais cela est accepté puisque se sont des achats dans l'urgence.

Sinon il suffirait de mettre les produits au panier pour que plus rien ne soit dispo sur votre site et donc votre concurrence prendrais un malin plaisir à provoquer cela.

 

Il n'y a pas de contrôle des stock non plus au moment du paiement, mais cela peut se produire à tellement d'enroit comme par exemple les 2 acheteur en même temps sur la page de paiement de la banque et donc pouvant tous les 2 acheter ...

 

Je crois qu'il n'existe pas de solution parfaite.

Share this post


Link to post
Share on other sites

Merci pour ta réponse, Mediacom87.

 

Comme indiqué dans mon message initial, le fait que la mise au panier ne bloque pas le stock ne me choque absolument pas. Après tout, le premier qui valide la commande remporte l'article. Comme tu l'indiques, dans le cas inverse, on se retrouverait avec une gestion des paniers infernale.

 

Non, moi ce qui me choque, c'est qu'au moment du dernier clic avant de valider la commande, on ne vérifie pas une dernière fois que le produit n'a pas été acheté entre temps.

 

Du coup, en l'état actuel, mis à part certains clients habitués des achats internet qui vont vérifier l'état de leur commande, les autres vont penser avoir acheté un article, envoyer leur paiement ou payer par CB/Paypal, alors que le produit n'est plus dispo.

 

Juste deux question à ce sujet :

 

Le gestionnaire de la boutique doit-il systématiquement valider une commande passée/payée pour qu'elle soit considérée comme "validée" ou bien la réception du paiement suffit-il ?

 

Par ailleurs, comment indiquer au client lésé (l'acheteur 2, donc, puisqu'il a validé sa commande après l'acheteur 1) que sa commande ne pourra être honoré ? On annule la commande dans la gestion des commandes ? Cela suffit-il pour lui indiquer que sa commande est abandonnée pour cause de stock insuffisant ou bien faut-il lui envoyer manuellement un mail d'annulation ?

Edited by manu_katz (see edit history)

Share this post


Link to post
Share on other sites

Comme expliqué par Mediacom, un controle au moment du clic de validation (qui envoie vers le système de paiement externe CB ou Paypal par exemple) ne changerait rien.

Le destockage étant effectif au moment du retour positif du paiement, alors le contrôle au moment de ce clic serait ok si un client est à ce moment précis en train de remplir ses informations bancaires pour la commande du même produit.

 

La gestion de la commande hors stock vous appartient.

C'est à dire, à vous de voir si vous contactez le client pour lui proposer un produit similaire par exemple, ou bien si il est ok pour attendre une prochaine réappro du produit commandé, ou encore si vous annulez ou remboursez directement la commande.

Share this post


Link to post
Share on other sites

Merci pour ta réponse, ChDUP.

 

Lorsque j'annule une commande, est-ce que je dois faire quelque chose de plus pour rembourser le client ou est-ce que c'est automatique ?

 

La gestion de la commande hors stock vous appartient.

C'est à dire, à vous de voir si vous contactez le client pour lui proposer un produit similaire par exemple, ou bien si il est ok pour attendre une prochaine réappro du produit commandé, ou encore si vous annulez ou remboursez directement la commande.

 

Edited by manu_katz (see edit history)

Share this post


Link to post
Share on other sites

Prestashop ne va pas rembourser le client.

A vous de voir suivant le type de paiement utilisé.

Par exemple en cartes bancaires, si la remise n'est pas encore effectuée, vous pouvez simplement annuler la transaction dans votre BO bancaire.

Si elle est passée (le lendemain) alors il faut rembourser.

Le statut de la commande est donc différent.

Share this post


Link to post
Share on other sites

Peux tu nous donner le résultat de cette réquête sql en remplaçant  id_produit et id_declinaison par les valeurs qui vont bien?

select *
from ps_order_detail od
inner join ps_orders o on o.id_order = od.id_order
where od.product_id = <id_produit> and od.product_attribute_id = <id_declinaison>
order by o.date_add desc
limit 50

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More