THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

Je relève un problème que je ne suis apparemment pas le seul à avoir constaté : aucune vérification du stock instantané des produits n'est effectuée après ajout au panier, ni dans le panier donc, ni au moment de la commande. Ce qui fait qu'on se retrouve systématiquement (oui, oui, systématiquement dans mon cas) avec des produits commandés en trop alors qu'ils sont en rupture de stock. En l'état actuel, la vérification ne semble pouvoir se faire uniquement qu'au moment de l'ajout au panier.

Les options suivantes n'y changent rien :
> Autoriser un stock négatif sur les produits (1) ou pas (0, défaut) [allow_negative_stock] = 0
> Vérifier la présence de produits en stock (1) ou l'ignorer (0) lors de l'affichage et la modification des quantités commandées [check-available-stock] = 0

C'est en tout cas ce que je constate sur mon install v2.3.4 et ce que je relève également dans des témoignages remontés de la v1.5 :
> https://forum.thelia.net/viewtopic.php?id=10205
> https://forum.thelia.net/viewtopic.php?id=12157

Ma question est : sur cette version 2 de Thelia, n'est-il toujours pas possible d'empêcher ça sans ajouter du code custom ?
Je suis peut être passé à côté de quelque chose, parce que cela m'étonne quand même...

Merci bien smile

Offline


Il te faut mettre check-available-stock à 1

allow_negative_stock c'est pour autoriser (avec 1) ou pas (avec 0) un stock négatif si justement tu ne contrôle pas ton stock. Avec allow_negative_stock=0, le stock ne descend jamais en dessous de 0. Avec allow_negative_stock=1, pour une gestion en flux tendu, tu peux voir combien de produits il te manque pour satisfaire les commandes.

Au moment de passer la commande, après un clic sur le bouton "Payer" le stock est vérifié. S'il n'est pas suffisant, la commande est annulée, le client est redirigé vers son panier où un message indique que article n'est plus en stock.

Ca donne ça avec le template par defaut :

download


OpenStudio Toulouse

Offline


Hello,

Pardon, petite faute de frappe : le paramètre check-available-stock était bien sur 1 (non pas 0 comme indiqué avant).

La vérification de stock ne s'effectue qu'au paiement : lors du passage de l'étape 3 à 4 ? Ou de l'étape 4 au Recap ?

Le problème c'est que l'étape de paiement est squeeze sur mon install : je force le passage par le module chèque car le paiement doit s'effectuer qu'au retrait de la commande (je n'avais pas vraiment d'autre choix). Il semblerait donc que le stock ne soit pas vérifié avec ce module.
Il me faut donc mettre en place tout un système de vérification...

C'est dans quels controllers que ça se passe ?
Quel est le moyen le plus simple ?

Merci wink

Offline


Non, il n'est pas nécessaire de mettre en place tout un système de vérification. Il faut juste que la méthode pay() de OrderController soit appelée, car c'est là que la vérif se fait :

 /* check stock not empty */
        if (true === ConfigQuery::checkAvailableStock()) {
            if (null !== $response = $this->checkStockNotEmpty()) {
                return $response;
            }
        }

Donc je ne sais pas comment tu as "forcé le passage" pour le paiement par chèque, mais a priori, tu ne passes pas par cette méthode de OrderController.


OpenStudio Toulouse

Offline


D'accord, je vais étudier cette piste. Je trouve effectivement curieux que la finalisation de la commande ne fasse pas la vérification de stock.
Je reviendrais par ici si jamais...

Merci bien wink