Jump to content

Produit Pack erreur 500


Recommended Posts

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

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

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

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

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

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.

post-77714-0-77316200-1420025285_thumb.png

Link to comment
Share on other sites

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

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 by manouille (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

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

  • 5 months later...
  • 2 weeks later...

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...