Récemment
-
SendinBlue pour PhenixSuite (API V3)
Modules1 -
Override du module Sthoverimage
Modules1 -
Informations générales
PhenixSuite2 -
Des modules et des hacks - liste non exhaustive des modules présentant un risque
Discussion générale16 -
Comment offrir frais de port à partir d'un certain montant MAIS avec transport facturé au poids ?
Discussion générale5 -
Patch de sécurité thèmes warehouse / iqit (Versions 1.5 & 1.6)
Discussion générale1 -
Copieurs-Colleurs
Discussion générale2 -
Créer un contrôleur front (indépendant)
Tutoriels1 -
Fourre-tout de trucs et astuces
Tutoriels4 -
[1.3] Implanter des classes overrides
Tutoriels1 -
[1.6.0.5 - 1.6.1.18] Fatal error lors de la suppression d'image du themeconfigurator
BUG connus1 -
[1.7.x] Impossible de gérer le menu du BO, même en SuperAdmin
BUG connus1 -
[1.5.x],[1.6.x],[1.7.x] Pas de redirection canonical pour page manufacturer & supplier
BUG connus4 -
[1.6.0.5]+ Reference error: $ is undefined dans le BackOffice
BUG connus2 -
[1.5.5.0]+ Ajax error lors de ma mise à jour des ranges transporteur (AdminCarrierWizard)
BUG connus2 -
[ganalytics-2.0.0] Le module peut provoquer une erreur ajax lors de l'ajout au panier
BUG connus1 -
[1.6.x.x]+ BO - Sélection de langue pour contrôle orthographique impossible dans tinyMCE
BUG connus1 -
[1.7.x] Erreur 500 lors de la collecte des statistiques - pas de statistiques de visites
BUG connus1 -
Supprimer le ID de l'url, et afficher la catégorie dans l'url, est-ce réellement utile ?
Tutoriels2 -
[1.6.1.0]+ Duplicate entry XXXXXX for key id_product_2 - INSERT INTO ps_specific_price - BackOffice, créer/éditer un produit (SpecificPriceRule.php)
BUG connus1
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