Jump to content

[RESOLU] Ne pas prendre en compte les produits hors stock dans le module "Productscatecory"


Recommended Posts

Bonjour,

J'ai beau chercher , je n'y arrive pas et pourtant ça ne doit pas être très compliqué!

Je souhaiterai que le module "dans la même catégorie" ne fasse pas apparaitre les produits hors stock;
Je pense qu'il faut mettre une condition du style if ($product->quantity >= 0) mais je ne sais pas où ni comment faire.
Alors si quelqu'un peut m'aider, je le remercie par avance.

Link to comment
Share on other sites

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

C'est quand même bizarre que ça n'interesse personne!!

C'est pourtant complétement inutile de présenter des produits de la même catégorie s'ils ne sont pas en stock; Ce serait plus judicieux de ne proposer que ceux qui sont disponibles.
En tout cas pour ceux qui sont interessés par ce module et qui souhaite présenter d'autres produits mais avec un choix aléatoire, il suffit de modifier a ligne 50 du fichier productscategory.php par:

$categoryProducts = $category->getProducts(intval($cookie->id_lang), 1, $sizeOfCategoryProducts, NULL, NULL, false, true, true, $sizeOfCategoryProducts);



Je pense que c'est à ce niveau qu'il faut mettre la condition "products quantity >0" mais je n'y arrive pas!!!!
Alors un peu d'aide serait la bienvenue...

Link to comment
Share on other sites

La solution la plus simple est de modifier la méthode getProducts() de la classe Category.

Pour cela, il faut aller dans le dossier /classes puis fichier Category.php.
Et la, ligne 398, dans la requête SQL, il faut modifier la ligne par ceci :

LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.`id_product` = cp.`id_product` AND p.quantity > 0)



Cela va juste faire que l'on joindra uniquement les produits en stock, mais cela aura un impact sur tous les autres fichiers ! A voir selon vos besoins.

Link to comment
Share on other sites

Merci pour la solution, mais elle ne marche pas.

En appliquant cette modif il n'y a plus aucun produit qui apparaît dans "la même catégorie".

Par contre cette modif si elle est appliquée ligne 409 et non 398 alors effectivement il n'y a plus dans la liste de produits de produits ayant un stock =0; Mais aucun produit n’apparaît dans le module "même catégorie".

Link to comment
Share on other sites

Pour que la solution de vincent fonctionne il faut modifier la ligne 399 par:

LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (p.`id_product` = cp.`id_product` AND p.quantity > 0)



et la ligne 409 par:

LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.`id_product` = cp.`id_product` AND p.quantity > 0)



Là effectivement on n'a plus que les produits en stock mais cette solution affecte aussi la liste produit!

Link to comment
Share on other sites

Merci beaucoup Vincent;
Votre piste m'a permis de résoudre mon petit problème...
En effet, avec la solution sitée ci-dessus, j'ai crée une nouvelle fonction "getProducts2" dans le fichier Category.php du dossier classes qui est appelée seulement par le module "dans la même catégorie.
Et le tour est joué: les produits vendus sont encore visibles dans les catégories mais pas dans le module "dans la même catégorie" CQFF!!
La méthode marche; mais est elle propre? J'en doute mais enfin je fais avec...
Encore merci.

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