Pascal Martin Posted April 16, 2021 Share Posted April 16, 2021 (edited) Bonjour, Je rencontre l'erreur suivante lorsque j'essaye d'accéder à la liste des produits sur le backoffice : Invalid $number parameter: "" cannot be interpreted as a number, PrestaShop\PrestaShop\Core\Localization\Exception\ Le site est en multiboutique. Lorsque je sélectionne une boutique : pas d'erreur. Lorsque je suis sur "all shops" ça plante. Version Prestashop 1.7.7.3, PHP 7.3 Initialement le site a été migré à partir d'un PS1.6. Seuls les modules Prestashop par défaut sont installés. L'erreur est identique en désactivant les surcharges et modules non développés par Prestashop. En mode debug j'obtiens la stacktrace suivante : [2/2] LocalizationException PrestaShop\PrestaShop\Core\Localization\Exception\LocalizationException: Invalid $number parameter: "" cannot be interpreted as a number at src/Core/Localization/Number/Formatter.php:108 at PrestaShop\PrestaShop\Core\Localization\Number\Formatter->format(null, object(Price)) (src/Core/Localization/Locale.php:154) at PrestaShop\PrestaShop\Core\Localization\Locale->formatPrice(null, 'EUR') (src/Adapter/Product/AdminProductDataProvider.php:392) at PrestaShop\PrestaShop\Adapter\Product\AdminProductDataProvider->getCatalogProductList(0, 20, 'id_product', 'desc', array()) (src/PrestaShopBundle/Controller/Admin/ProductController.php:160) at PrestaShopBundle\Controller\Admin\ProductController->catalogAction(object(Request), 20, 0, 'id_product', 'desc') (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, false) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200) at Symfony\Component\HttpKernel\Kernel->handle(object(Request), 1, false) (admin1090/index.php:82) [1/2] InvalidArgumentException InvalidArgumentException: "" cannot be interpreted as a number at vendor/prestashop/decimal/src/Builder.php:40 at PrestaShop\Decimal\Builder::parseNumber('') (vendor/prestashop/decimal/src/Number.php:73) at PrestaShop\Decimal\Number->__construct('') (src/Core/Localization/Number/Formatter.php:149) at PrestaShop\PrestaShop\Core\Localization\Number\Formatter->prepareNumber(null) (src/Core/Localization/Number/Formatter.php:106) at PrestaShop\PrestaShop\Core\Localization\Number\Formatter->format(null, object(Price)) (src/Core/Localization/Locale.php:154) at PrestaShop\PrestaShop\Core\Localization\Locale->formatPrice(null, 'EUR') (src/Adapter/Product/AdminProductDataProvider.php:392) at PrestaShop\PrestaShop\Adapter\Product\AdminProductDataProvider->getCatalogProductList(0, 20, 'id_product', 'desc', array()) (src/PrestaShopBundle/Controller/Admin/ProductController.php:160) at PrestaShopBundle\Controller\Admin\ProductController->catalogAction(object(Request), 20, 0, 'id_product', 'desc') (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, false) (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200) at Symfony\Component\HttpKernel\Kernel->handle(object(Request), 1, false) (admin1090/index.php:82) L'erreur semblant venir d'un prix à "" j'ai vérifié mes tables : tous mes champs prix ont des valeurs numériques (articles et déclinaisons). A tout hasard j'ai aussi réimporté le pack de langue français (seule langue installée) puisque le message d'erreur fait état de la localisation. Avez-vous déjà rencontré ça ? Une idée pour trouver la cause de l'erreur ? Edited April 16, 2021 by Pascal Martin (see edit history) Link to comment Share on other sites More sharing options...
joseantgv Posted April 19, 2021 Share Posted April 19, 2021 Multiboutique? Link to comment Share on other sites More sharing options...
Pascal Martin Posted April 19, 2021 Author Share Posted April 19, 2021 1 hour ago, joseantgv said: Multiboutique? Oui le site est en multiboutique. L'erreur ne se produit que lorsque je suis sur "all shops", si je sélectionne une boutique ça fonctionne. Link to comment Share on other sites More sharing options...
joseantgv Posted April 19, 2021 Share Posted April 19, 2021 https://github.com/PrestaShop/PrestaShop/issues/23376 Link to comment Share on other sites More sharing options...
Pascal Martin Posted April 19, 2021 Author Share Posted April 19, 2021 32 minutes ago, joseantgv said: https://github.com/PrestaShop/PrestaShop/issues/23376 Même erreur, mais pas la même cause. J'ai supprimé toutes les règles de panier et l'erreur persiste. J'ai également vérifié : tous les produits sont assignés à la boutique par défaut (qui ne plante pas, seul le contexte "all shops" pose problème). J'ai aussi vu ce ticket qui est exactement le même problème : https://github.com/PrestaShop/PrestaShop/issues/22108 Le problème est marqué comme résolu depuis la 1.7.7.2, mais dans mon cas ça plante même en 1.7.7.3. Link to comment Share on other sites More sharing options...
joseantgv Posted April 20, 2021 Share Posted April 20, 2021 Can you enable DEBUG mode? Link to comment Share on other sites More sharing options...
Pascal Martin Posted April 20, 2021 Author Share Posted April 20, 2021 (edited) 46 minutes ago, joseantgv said: Can you enable DEBUG mode? Yes, here is the result. dev.log.txt Edited April 20, 2021 by Pascal Martin (see edit history) Link to comment Share on other sites More sharing options...
joseantgv Posted April 20, 2021 Share Posted April 20, 2021 Le problème se situe au niveau du prix d'un produit. Ouvrez le fichier /src/Adapter/Product/AdminProductDataProvider.php et avant la ligne 391 ajoutez : if (!$product['price']) { dump($product); die; } if (!$product['price_final']) { dump($product); die; } Link to comment Share on other sites More sharing options...
Pascal Martin Posted April 20, 2021 Author Share Posted April 20, 2021 Merci @joseantgv, ça permet de mieux cerner le problème. J'ai effectivement un null sur le price_final. array:16 [▼ "id_product" => "243" "reference" => "661.50" "price" => "19.083333" "id_shop_default" => "1" "is_virtual" => "0" "name" => "Protège pied karaté WKF adidas" "link_rewrite" => "protège-pied-karaté-wkf-adidas" "active" => "0" "shopname" => "Sholin Fight Spirit" "id_image" => "2532" "name_category" => "Protections Karaté" "price_final" => null "nb_downloadable" => null "sav_quantity" => "0" "badge_danger" => "1" "total" => "834" ] J'ai vérifié les tables ps_product et ps_product_shop, les champs price et wholesale_price sont renseignés (à 0 sur certaines boutiques, mais pas de null). Je n'ai pas vu de champ price_final, je suppose que c'est le price + taxes - remises ? 1 Link to comment Share on other sites More sharing options...
Pascal Martin Posted April 20, 2021 Author Share Posted April 20, 2021 Merci pour votre aide @joseantgv, grâce à vous j'ai compris quels articles posent problème. Les articles qui plantent ont une caractéristique commune : les déclinaisons n'apparaissent pas dans le contexte "all shops", elles ne sont visibles que sur les boutiques. Je viens de faire quelques tests cela se produit si la déclinaison est créée sur une boutique au lieu d'être créée en "all shops". Il faut donc faire attention à créer les déclinaisons sur le bon contexte. 2 Link to comment Share on other sites More sharing options...
joseantgv Posted April 21, 2021 Share Posted April 21, 2021 Pourriez-vous mettre à jour le problème en indiquant comment reproduire l'erreur ? https://github.com/PrestaShop/PrestaShop/issues/23970 Link to comment Share on other sites More sharing options...
Pascal Martin Posted April 21, 2021 Author Share Posted April 21, 2021 5 hours ago, joseantgv said: Pourriez-vous mettre à jour le problème en indiquant comment reproduire l'erreur ? https://github.com/PrestaShop/PrestaShop/issues/23970 C'est fait. Encore merci ! 1 Link to comment Share on other sites More sharing options...
webmaster.success3 Posted March 15, 2022 Share Posted March 15, 2022 On 4/20/2021 at 12:01 PM, Pascal Martin said: Merci pour votre aide @joseantgv, grâce à vous j'ai compris quels articles posent problème. Les articles qui plantent ont une caractéristique commune : les déclinaisons n'apparaissent pas dans le contexte "all shops", elles ne sont visibles que sur les boutiques. Je viens de faire quelques tests cela se produit si la déclinaison est créée sur une boutique au lieu d'être créée en "all shops". Il faut donc faire attention à créer les déclinaisons sur le bon contexte. Bonjour J'ai visiblement le même problème Comment avez-vous détecté le ou les produits qui posent problèmes ? J'ai plus de 500 produits 😕 Cordialement Link to comment Share on other sites More sharing options...
[email protected] Posted June 13, 2023 Share Posted June 13, 2023 fichier : /src/Adapter/Product/AdminProductDataProvider.php ligne 391 remplacer $product['price_final'] = $localeCldr->formatPrice($product['price_final'], $currency->iso_code); par if(!empty($product['price_final'])){ $product['price_final'] = $localeCldr->formatPrice($product['price_final'], $currency->iso_code); } 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now