La catégorie parent affiche les produits dans les sous-catégories, même si le produit n'a pas été affecté à la catégorie parent

9

Supposons que j'ai une catégorie, Vêtements et cette catégorie a une sous-catégorie, T-shirts.

Maintenant, j'ajoute un produit à la catégorie T-shirts (en cochant la case dans l'écran d'ajout de produit), mais je ne coche pas la catégorie Vêtements. J'ai donc supposé que cela signifiait que le produit n'apparaîtrait que dans la catégorie T-shirts à l'avant, et non dans la catégorie parent Vêtements.

Cependant, le produit apparaît dans les catégories Vêtements et T-shirts.

C'est un problème car la catégorie T-shirt est un "Inclure dans le menu de navigation"> Aucune catégorie, c'est-à-dire qu'il est censé être masqué. Tous les produits de la catégorie ont une visibilité du catalogue, ils n'apparaissent donc pas dans les résultats de recherche.

J'ai étudié cela assez profondément jusqu'à présent et j'ai trouvé que le problème venait de l'indexation du catalogue Magento. L'exécution de l'indexeur des produits de catégorie à partir de Système> Gestion des index reconstruit l'index en cours d'exécution Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product::reindexAll().

Cette fonction sélectionne diverses données de plusieurs tables liées aux catégories et les dirige vers la table catalog_category_product_index, qui est la table utilisée pour générer la collection de produits pour les pages de catégorie.

Quelqu'un a-t-il des suggestions sur la façon de masquer / empêcher les produits des sous-catégories apparaissant dans leurs catégories parentes?

J'utilise Magento 1.4.1.0. La catégorie Vêtements est définie sur Ancre et la catégorie T-shirts ne l'est pas. Utiliser la catégorie plate est défini sur oui.

ProcessEight
la source

Réponses:

13

Il s'agit en fait d'une fonctionnalité. Si vous voulez éviter cela, vous devez définir le drapeau «Est l'ancre» sur «Non» dans la catégorie parente. Dans votre exemple «Vêtements». De cette façon, dans la catégorie parent, vous ne verrez que les produits qui lui sont directement affectés.
Après avoir effectué les modifications, vous devez tout réindexer.

Marius
la source
2
Ahh, mais je dois garder "Is Anchor" dans la catégorie parent, car il utilise la navigation en couches.
ProcessEight
Euh ... alors je pense que vous avez un problème. Je suis à court d'idées à ce sujet.
Marius
Je n'ai pas besoin de la navigation en couches dans la catégorie T-shirts, donc je pense que je vais déplacer la catégorie T-shirts hors Vêtements, donc elle ne montrera que les produits directement liés comme vous le dites
ProcessEight
@ sfrost2004 Donc, les T-shirts ne sont pas des vêtements? Je suppose que je les ai mal utilisés ...
Benubird
2
hmmm je cherchais @ stackoverflow.com/questions/22990622/… où j'ai vu $ this -> _ productLimitationFilters ['category_is_anchor'] = 1; ET peut-être quelque chose tlink this $ this-> getLoadedProductCollection () -> addAttributeToFilter ('is_parent', array ('eq' => 1)) - S'il s'agit d'un parent
snh_nl