Bonjour,
J'ai rencontré un problème similaire, sur seulement un produit. Après avoir pas mal creusé, voici les conclusions auxquelles je suis arrivées :
- Cette erreur s'affiche lorsque la méthode "updateQty" de la classe Cart (classes/Cart.php) renvoie "false".
- Ce cas de figure peut être causé par les cas suivants :
1) On passe à cette fonction id_product et id_product_attribute (dans le cas d'une déclinaison), pour indiquer quelle déclinaison de ce produit ajouter au panier. Si le code qui entraine l'ajout de ce produit au panier (bouton add to cart par exemple) indique un id_product qui n'est pas le même que l'id_product auquel dans la base de données est rattaché cette déclinaison, la fonction renvoie false (on peut vérifier ça dans la table ps_product_attribute)
2) La boutique est en mode Catalogue (Back office => Préférences => Produits => Mode Catalogue Oui) (logique)
3) Le produit n'est pas "disponible à la vente" (Back office => Catalogue => Produits => Produit en question => "Disponible à la vente" décoché
4) Le couple id_product / id_product_attribute n'est pas disponible dans la table de gestion des stocks (ps_stock_available). C'est le problème que moi j'avais. Je n'ai pas créé mes déclinaisons et produits "à la régulière" et donc j'avais mal fait la partie ajout à cette table, certaines refs avaient sautées. Pour vérifier ça, vérifier que tous les id_product_attribute de ps_product_attribute sont présents dans ps_product_stock_available, si ils sont manquants, les insérer avec le bon id_product, le bon id_shop, et les paramètres de gestion de stock qui vous conviennent. (dans le doute => tout à zéro pour ces paramètres, et ensuite réglage "manuel" dans le back office section stocks du produit en question. (Attention particulière à que faire quand le produit est out of stock)
5) La commande n'est pas autorisée pour ce produit quand il est out of stock (idem ci-dessus, réglage déconnant dans le back office section stock du produit)
6) le paramètre "operator" de la methode "updateQty" n'est ni "up" ni "down" => dans ce cas là, votre code "customisé" d'ajout au panier n'est pas bon, vérifiez votre code ou les modules "tierces" en rapport avec l'ajout au panier pour un appel à cette fonction.
7) Impossiblilité d'écrire dans la table ps_cart_product l'ajout de ce produit au panier. Les raisons peuvent être diverses. Peut être un champ obligatoire dans la table est manquant dans l'appel de la fonction. Surement le plus épineux à débugguer. Il peut s'agir des droits d'écriture sur la table en elle même (dans ce cas : tous les produits sont impactés), ou bien les variables passées à l'ajout qui sont incorrectes. Pour débugguer ça, aller voir dans "updateQty" de Cart.php, vers la fin de la fonction c'est l'appel "Db::getInstance()->insert('cart_product" qui est en cause.
8) Cas hypothétique (pas creusé) : le produit est customizable et la méthode "_updateCustomizationQuantity" de Cart.php renvoie elle aussi "false". A voir ce qui peux poser ce cas de figure.
Voilà, je me doute que ce n'est pas d'une grande aide car c'est assez générique, mais vu que pas mal de gens dans ce thread ont l'air de galérer et que j'ai creusé le code et la db pour retrouver mes petits, peut être que quelqu'un pourra en profiter.
Bon courage,
Damien
ps: désolé si c'est un peu fouilli, pas mis en forme et que ça manque d'information, j'ai rédigé ça en vitesse pour ne pas l'oublier, mais trop de taff pour en faire plus là tout de suite. Si quelqu'un a besoin d'éclaircissements, contactez moi