Jump to content

problème avec le module produits de la même categorie


Recommended Posts

Bonjour,

 

Je viens vers vous car je bloque sur le module "produits de la même catégorie".

Je ne sais pas si c'est un comportement normal de prestashop mais je vous explique problème:

 

Pour exemple disons que j'ai une catégorie "cat1" avec une sous catégorie "sub1" qui elle même contient une sous catégorie "sub sub 1"

 

En cliquant sur sub sub1 et en cliquant sur un des produits de cette catégorie (ex: prod1) , le module "produits de la même catégorie" m'indique bien le bon nombre de produit de cette catégorie. 

Par contre, si je clique sur cat1 et que je clique sur sur le même produit prod1, j'ai alors tous les produits de la catégorie cat1 et non de la catégorie sub sub1 à laquelle appartient le prod1.

 

Est-ce un comportement normal ? Ne devrais-je pas avoir dans les 2 cas le nombre de produits de la catégorie sub sub1 ??

 

En vous remerciant,

Link to comment
Share on other sites

C'est bien ce qui me semblait ... donc le module ou autre chose pose problème.

Car effectivement la catégorie par défaut est bien celle de sub sub1 et non cat1.

 

En plus des produits de la même catgégorie qui réagit bizarrement, le breadcumb lui aussi à un souci, car quand je clique sur un produit de la catégorie cat1 il m'affiche : 

Home -> Cat1 -> Nom du produit prod1 

 

Alors qu'il devrait m'afficher:

Home -> Cat1 -> Sub1 -> sub sub1 ->Nom du produit prod1 

 

N'est ce pas ?

Link to comment
Share on other sites

J'ai réglé le souci.

 

Il faut aller dans module -> productscategory -> productscategory.php

rechercher la fucntion public function hookProductFooter

et remplacer les lignes suivantes :

		$cache_id = 'productscategory|'.$id_product.'|'.(isset($params['category']->id_category) ? (int)$params['category']->id_category : $product->id_category_default);

		if (!$this->isCached('productscategory.tpl', $this->getCacheId($cache_id)))
		{
			
			//If the visitor has came to this product by a category, use this one 
			if (isset($params['category']->id_category))
				$category = $params['category'];
			//Else, use the default product category 
			else
			{
				if (isset($product->id_category_default) AND $product->id_category_default > 1)
					$category = new Category((int)$product->id_category_default);
			}
			

 par ceci :


	        $cache_id = 'productscategory|'.$id_product.'|'.$product->id_category_default;
	
		if (!$this->isCached('productscategory.tpl', $this->getCacheId($cache_id)))
		{
			$category = new Category((int)$product->id_category_default);

Avec ceci, cela prendra toujours la catégorie par defaut définie dans le produit et ce quelque soit d'ou on vient.

 

En espérant que ça en aidera d'autre ...  :)

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...