Родительская категория показывает товары в подкатегориях, даже если товар не был отнесен к родительской категории.

9

Давайте предположим, что у меня есть категория, Одежда, и у этой категории есть подкатегория, Футболки.

Теперь я добавляю товар в категорию футболок (установив флажок на экране добавления товара), но не проверяю категорию одежды. Таким образом, я предположил, что это означает, что продукт будет отображаться только в категории футболок на передней части, а не в родительской категории «Одежда».

Тем не менее, продукт появляется в категориях Одежда и футболка.

Это проблема, потому что категория футболок - это «Включить в меню навигации»> «Нет категории», т.е. она должна быть скрыта. Все товары в категории имеют видимость каталога, поэтому они не отображаются в результатах поиска.

До сих пор я исследовал это довольно глубоко и обнаружил, что проблема заключается в индексации каталога Magento. При запуске индексатора продуктов категории из меню «Система»> «Управление индексами» выполняется перестроение индекса Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product::reindexAll().

Эта функция ВЫБИРАЕТ различные данные из нескольких связанных с категориями таблиц и передает их в таблицу catalog_category_product_index, которая является таблицей, используемой для генерации коллекции продуктов для страниц категорий.

Есть ли у кого-нибудь какие-либо предложения относительно того, как скрыть / предотвратить появление продуктов в подкатегориях в родительских категориях?

Я использую Magento 1.4.1.0. Категория «Одежда» установлена ​​на «Якорь», а категория «Футболки» - нет. Использовать квартиру категории установлено на да.

ProcessEight
источник

Ответы:

13

Это на самом деле особенность. Если вы хотите избежать этого, вы должны установить флаг «Якорь» на «Нет» в родительской категории. В вашем примере «Одежда». Таким образом, в родительской категории вы увидите только продукты, непосредственно назначенные ей.
После внесения изменений вы должны переиндексировать все.

Мариус
источник
2
Ах, но мне нужно оставить «Is Anchor» в родительской категории, потому что она использует многоуровневую навигацию.
ProcessEight
Хм .... тогда я думаю, что у вас есть проблемы. У меня нет идей по этому поводу.
Мариус
Мне не нужна многоуровневая навигация в категории «Футболки», поэтому я думаю, что переместу категорию «Футболки» из категории «Одежда», поэтому на ней будут отображаться только связанные товары, как вы говорите
ProcessEight
@ sfrost2004 Итак, футболки - это не одежда? Я думаю, что я использовал их неправильно ...
Benubird
2
хм, я искал @ stackoverflow.com/questions/22990622/… где я увидел $ this -> _ productLimitationFilters ['category_is_anchor'] = 1; И, возможно, что-то связывает это $ this-> getLoadedProductCollection () -> addAttributeToFilter ('is_parent', array ('eq' => 1)) - Если это родитель
snh_nl