Récemment
-
Passage au Webp qui n'a pas fonctionné
Bugs & Améliorations1 -
Nouveautés possibles ?
Nouvelles fonctionnalités2 -
bug installation bdd
Questions relatives à l'installation/upgrade26 -
Configuration de wamp compatible presta.1.6.1.24 et PhenixSuite 1.6.2.25
Discussion générale61 -
Responsive sur liste des produits dans les commandes
Bugs & Améliorations2 -
affichage incorrect de produit personnalisé au panier
Bugs & Améliorations3 -
Erreur PHP à l'installation du module cedconnector
Bugs & Améliorations2 -
Problème calcul HT
Bugs & Améliorations18 -
MAJ .htaccess Apache 2.4 et 2.2
Nouvelles fonctionnalités5 -
Erreur SQL 1.6.2.23 -> 1.6.2.25
Questions relatives à l'installation/upgrade2 -
Calcul règle panier
Bugs & Améliorations1 -
Images sur les BL ne s'affichent pas
Bugs & Améliorations13 -
SQL [WARNING] MAJ 1.6.2.19 vers 1.6.2.25
Questions relatives à l'installation/upgrade3 -
Erreur - Le template d'e-mail suivant n'existe pas : /mails/fr/password_code.html [RÉSOLU]
Bugs & Améliorations3 -
Soucis ps_checkout (admin et front)
Bugs & Améliorations9 -
Erreur module block_cart en php8.2 mais pas en php7.4
Bugs & Améliorations7 -
Erreur SQL sur le Liens Modules et Service après upgrade a 1.6.2.25
Questions relatives à l'installation/upgrade3 -
Erreur SQL sur la requête The used table type doesn't support FULLTEXT indexes
Questions relatives à l'installation/upgrade3 -
Maj de 1.6.1.20 rien ne se passe
Questions relatives à l'installation/upgrade2 -
information mise en cache désactivée sur param 1-click-upgrade
Questions relatives à l'installation/upgrade3
StockAvailable et setQuantity();
-
Salut,
Je deviens fou je ne comprends ce qu'il se passe et ça m'énerve.
Prestashop 1.6.1.18 tout neuf
Je m'explique je n'utilisais pas le module mailalerts pour les articles hors stock, j'ai décidé de l'installer. Il fonctionne très bien sauf que les clients ne reçoivent pas de mail quand je mets à jours les stocks.
Dans mon débug je bloque ici :
https://github.com/PrestaShop/PrestaShop/blob/1.6.1.x/classes/stock/StockAvailable.php#L507
Si je mets juste arpès cette ligne un d($id_product_attribute);
Il est set à 0 donc plus bas le
Hook::exec('actionUpdateQuantity', array( 'id_product' => $id_product, 'id_product_attribute' => $id_product_attribute, 'quantity' => $stock_available->quantity ) );
Ne fait pas travailler le module mailalerts car il a un ipa à 0 ...
Si je mets le d($id_product_attribute); juste avant pas de soucis.
J'ai donc remonté jusqu'à $this->upate(); et même dans ObjectModel je ne trouve pas d'ou ça vient.
-
Un ipa à 0 n'est pas un problème (produit sans décli)
Sauf utilisation d'une fonction avec paramètre par référence (pas le cas ici), si ipa est à 0 c'est qu'il a été passe comme tel à la fonction.
=> public static function getStockAvailableIdByProductId($id_product, $id_product_attribute = null, $id_shop = null)Le problème ne peut venir que de l'appelant:
classes/Product.php:1356: StockAvailable::setQuantity($this->id, $id_product_attribute, $quantity); controllers/admin/AdminImportController.php:1946: StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$shop); controllers/admin/AdminImportController.php:1949: StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$this->context->shop->id); controllers/admin/AdminImportController.php:1958: StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$shop); controllers/admin/AdminImportController.php:1961: StockAvailable::setQuantity((int)$product->id, 0, (int)$product->quantity, (int)$this->context->shop->id); controllers/admin/AdminImportController.php:2414: StockAvailable::setQuantity((int)$product->id, $id_product_attribute, (int)$info['quantity'], (int)$shop); controllers/admin/AdminImportController.php:2417: StockAvailable::setQuantity((int)$product->id, $id_product_attribute, (int)$info['quantity'], $this->context->shop->id); controllers/admin/AdminImportController.php:2426: StockAvailable::setQuantity((int)$product->id, $id_product_attribute, (int)$info['quantity'], (int)$shop); controllers/admin/AdminImportController.php:2429: StockAvailable::setQuantity((int)$product->id, $id_product_attribute, (int)$info['quantity'], $this->context->shop->id); controllers/admin/AdminProductsController.php:4901: StockAvailable::setQuantity($product->id, (int)Tools::getValue('id_product_attribute'), (int)Tools::getValue('value')); controllers/admin/AdminAttributeGeneratorController.php:153: StockAvailable::setQuantity($this->product->id, (int)$attribute['id_product_attribute'], $quantity, (int)$current_shop['id_shop']); controllers/admin/AdminAttributeGeneratorController.php:158: StockAvailable::setQuantity($this->product->id, (int)$attribute['id_product_attribute'], $quantity);
-
StockAvailable::setQuantity($this->id, $id_product_attribute, $quantity);
Est bien appelé avec un $id_product_attribute.
Le problème c'est qu'il est relancé plus loin dedans avec un $id_product_attribute à 0