manouille Posted December 30, 2014 Share Posted December 30, 2014 Bonjour, je développe actuellement un site sous PS 1.6.0.9 - Theme bootstrap. Je rencontre un probleme pour les produits pack. En effet je ne peux pas aller sur la page produit des produits packs. J'obtiens une erreur 500. En mode debug voila ce que j'obtiens. [PrestaShopException] Invalid product vars at line 104 in file classes/Link.php 98. if (is_array($product) && isset($product['id_product'])) 99. $product = new Product($product['id_product'], false, $id_lang, $id_shop); 100. elseif ((int)$product) 101. $product = new Product((int)$product, false, $id_lang, $id_shop); 102. else 103. throw new PrestaShopException('Invalid product vars'); 104. } 105. 106. // Set available keywords 107. $params = array(); 108. $params['id'] = $product->id; LinkCore->getProductLink - [line 368 - cache/smarty/compile/35/12/b7/3512b79aafaa288d7f2bc0b0cd128087212c2e29.file.product.tpl.php] - [3 Arguments] content_54a2ca1a878d44_84883663 - [line 188 - tools/smarty/sysplugins/smarty_internal_templatebase.php] - [1 Arguments] Smarty_Internal_TemplateBase->fetch - [line 553 - classes/controller/FrontController.php] - [1 Arguments] FrontControllerCore->display - [line 198 - classes/controller/Controller.php] ControllerCore->run - [line 373 - classes/Dispatcher.php] DispatcherCore->dispatch - [line 28 - index.php] J'ai vu que cela pouvait venir du module vente croisé mais je n'ai pas ce module actif ni installé sur mon site. Si quelqu'un pouvait me dépanner ou me donner une piste. Merci. Link to comment Share on other sites More sharing options...
Eolia Posted December 30, 2014 Share Posted December 30, 2014 Hello manouille ! Que donne un var_dump() de $product ? Le problème se pose en FO ou BO (je n'arrive pas à le reproduire) ? Link to comment Share on other sites More sharing options...
manouille Posted December 30, 2014 Author Share Posted December 30, 2014 (edited) Salut Eolia ca faisait longtemps Le problème se produit en FO. A priori quand on cree un pack puis l'enleve et le recré avec les meme produits. var_dump() tu faits ca comment sous prestashop ? Edited December 30, 2014 by manouille (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 30, 2014 Share Posted December 30, 2014 Ben dans classes/Link.php, juste avant la condition ligne 98 tu rajoutes: die(var_dump($product)); et tu rafraichis ta page, ca te donnera le contenu de l'objet product s'il existe. Link to comment Share on other sites More sharing options...
manouille Posted December 30, 2014 Author Share Posted December 30, 2014 (edited) Ah oui effectivement Bon alors cela me renvoie string(3) "127" 127 etant l'ID de mon pack. Jusque la tout semble normal j'ai l'impression que c'est apres dans le traitement que le probleme se pose. Edited December 30, 2014 by manouille (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 30, 2014 Share Posted December 30, 2014 Alors l'erreur ne devrait pas apparaître si un id existe: elseif ((int)$product) $product = new Product((int)$product, false, $id_lang, $id_shop); else throw new PrestaShopException('Invalid product vars'); Ton cas rentre bien dans cette condition, non ? Link to comment Share on other sites More sharing options...
manouille Posted December 31, 2014 Author Share Posted December 31, 2014 Oui c'est bien ca. J'ai testé les autre variables selon la meme methode. Celle qui donne un resultat bizarre c'est le test die(var_dump($id_shop)); qui renvoie le resultat NULL Si tu as besoin je peux te filer un accès Link to comment Share on other sites More sharing options...
Eolia Posted December 31, 2014 Share Posted December 31, 2014 Ca c'est normal, la fonction l'initialise comme tel: public function getProductLink($product, $alias = null, $category = null, $ean13 = null, $id_lang = null, $id_shop = null, $ipa = 0, $force_routes = false) A priori ton objet product devrait être créé à partir de l'id, essaye donc de vérifier si c'est le cas comme ceci: if (!is_object($product)) { if (is_array($product) && isset($product['id_product'])) $product = new Product($product['id_product'], false, $id_lang, $id_shop); elseif ((int)$product) { $product = new Product((int)$product, false, $id_lang, $id_shop); die(var_dump($product)); } else throw new PrestaShopException('Invalid product vars'); } Que fait la fonction au départ: Si $product n'est pas un objet, on tente de le créer. 1er cas: c'est un array, on crée un objet product à partir de $product['id_product'] 2ème cas: c'est un entier, on crée un objet product à partir de (int)$product <= ton cas 3ème cas: ce n'est ni un array, ni un entier, on lève une exception. Je ne comprends pas pourquoi tu as cette exception puisque ton $product est un id. donc, essayes le code ci-dessus pour vérifier si l'objet $product est bien instancié Link to comment Share on other sites More sharing options...
manouille Posted December 31, 2014 Author Share Posted December 31, 2014 (edited) Voila ce que j'obtiens http://pastebin.com/DRMLdqZc Edited December 31, 2014 by manouille (see edit history) Link to comment Share on other sites More sharing options...
manouille Posted December 31, 2014 Author Share Posted December 31, 2014 Note complémentaire, je ne peux pas voir la fiche produit mais je peux ajouter le produit au panier. Link to comment Share on other sites More sharing options...
Eolia Posted December 31, 2014 Share Posted December 31, 2014 Bon ton pack est donc instancié avec un minimum d'infos (nom, prix, etc...) Donc l'erreur ne devrait pas apparaitre. Il faudrait commenter les 2 lignes else et throw new... pour voir, je ne suis pas sûr que l'erreur vienne de cet endroit du fichier^^ Note complémentaire, je ne peux pas voir la fiche produit mais je peux ajouter le produit au panier. Là je pige plus ? Je croyais que tu avais une erreur 500, comment peux-tu l'ajouter au panier ? Ou alors tu veux dire depuis la page catégorie ou Accueil ? Link to comment Share on other sites More sharing options...
manouille Posted December 31, 2014 Author Share Posted December 31, 2014 En commentant la dernière boucle else/throw cela affiche le nom et l'image du produit pack uniquement et sans le template ! Oui l'ajout du produit au panier par le module page accueil ou directement depuis la liste des produit fonctionne. De fait je pense que le probleme vient de la récupération du contenu du pack et nom du produit pack lui - meme comme s'il n'arrivait pas a recuperer les id des produits contenus dans le pack. Link to comment Share on other sites More sharing options...
Eolia Posted December 31, 2014 Share Posted December 31, 2014 il doit y avoir des restes qui trainent en base de données et provoquent de mauvais résultats, cela arrive quand on fait pas mal de tests. Difficile de t'en dire plus comma ça. Link to comment Share on other sites More sharing options...
manouille Posted December 31, 2014 Author Share Posted December 31, 2014 il doit y avoir des restes qui trainent en base de données et provoquent de mauvais résultats, cela arrive quand on fait pas mal de tests. Difficile de t'en dire plus comma ça. Oui probablement. J'ai fait un import client et utilisé le module "nettoyage de prestashop" .. Un truc bizarre quand je compose mon pack et bien que la gestion des stocks soit désactivée j'ai en permanence un avertissement sur les entrepots. (voire capture) Merci du temps passer en tout cas. Je suis en train d'inspecter la bdd mais c'est long. J’hésite carrement a repartir sur une version propre meme si j'ai pas trop le temps. Link to comment Share on other sites More sharing options...
Eolia Posted December 31, 2014 Share Posted December 31, 2014 Oui moi aussi j'ai l'avertissement, mais c'est plus une indication qu'une erreur. Effectivement, il manque une vérification pour ne l'afficher que si la gestion des stocks physiques est activée. Encore un bug (mineur mais bug quand même) Link to comment Share on other sites More sharing options...
manouille Posted December 31, 2014 Author Share Posted December 31, 2014 (edited) Merci Eolia du temps passé. J'ai remonté le bug a la forge qui a été assigné. Je te souhaite une bonne année (avec un poil d'avance). Plus trop le temps de venir ici mais je constate avec plaisir que tes débuts hésitants en php ne sont plus qu'un mauvais souvenir mais que par contre tu continues toujours a donner de ton temps Je ferrais d'autres tests en fin de semaine. Je te tiens au courant. Edited December 31, 2014 by manouille (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted December 31, 2014 Share Posted December 31, 2014 Ce ne sont pas des mauvais souvenirs puisqu'il m'ont permis d'échanger et d'apprendre avec toi et je t'en remercie Une bonne et heureuse année à toi et tes proches Link to comment Share on other sites More sharing options...
manouille Posted January 13, 2015 Author Share Posted January 13, 2015 Hello. Un petit feedback. Garce a Gregory Roussac sur la forge le bug est résolu J'avais un override de product.php qui foutait la panique. A noter que la case du BO désactivant les surcharge n'avait pas désactivé cette surcharge. En renomant le fichier surcharge sur le serveur tout est rentré dans l'ordre. Merci Eolia pour le temps passé. Link to comment Share on other sites More sharing options...
Sébastien XAE Posted June 25, 2015 Share Posted June 25, 2015 Bonjour la communauté ! Moi, c'est un problème d'affichage des images avec les produits contenus dans le packs que j'ai : http://www.wineandbee.com/home/53-coffret-vins-ete-barbecues.html Certains s'affichent très bien, d'autres non ! Avez vous des pistes ? Link to comment Share on other sites More sharing options...
samonostra Posted July 6, 2015 Share Posted July 6, 2015 Hello. Un petit feedback. Garce a Gregory Roussac sur la forge le bug est résolu J'avais un override de product.php qui foutait la panique. A noter que la case du BO désactivant les surcharge n'avait pas désactivé cette surcharge. En renomant le fichier surcharge sur le serveur tout est rentré dans l'ordre. Merci Eolia pour le temps passé. Bonjour, Pourrais-tu mettre un lien vers la forge expliquant concrètement comment régler le problème ? Car je rencontre exactement le même problème, et je ne trouves pas la solution, sachant que je ne voudrait pas assigner la Forge alors que je sais que le probleme a une solution, simplement parce que je ne trouve pas le message. Merci d'avance Link to comment Share on other sites More sharing options...
Gregory Roussac Posted July 7, 2015 Share Posted July 7, 2015 Bonjour, Vous parlez de https://github.com/PrestaShop/PrestaShop/commit/329289efb685ead672c0aa011b298a85d8e2fc1a http://forge.prestashop.com/browse/PSCSX-4473 mais je ne pense pas que vous ayez le même problème . Cordialement 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