父类别将产品显示在子类别中,即使未将产品分配给父类别


9

假设我有一个类别,服装,此类别有一个子类别,T恤。

现在,我将产品添加到“ T恤衫”类别中(通过选中“添加产品”屏幕中的复选框),但是我没有选中“服装”类别。因此,我认为这意味着该产品只会出现在前端的T恤类别中,而不出现在父类别的服装中。

但是,该产品出现在“服装”和“ T恤”类别中。

这是一个问题,因为T恤类别是“包含在导航菜单中”>“无类别”,即应该被隐藏。类别中的所有产品都具有目录的可见性,因此它们不会出现在搜索结果中。

到目前为止,我已经对此进行了深入研究,发现问题出在Magento目录索引上。从“ 系统”>“索引管理”运行“类别产品”索引器,将重建索引,运行Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product::reindexAll()

此功能从几个与类别相关的表中选择各种数据,并将其通过管道传送到catalog_category_product_index表中,该表用于生成类别页面的产品集合。

是否有人对如何在其父类别中出现的子类别中隐藏/防止产品产生任何建议?

我正在使用Magento 1.4.1.0。“服装”类别设置为“锚点”,而“ T恤衫”类别未设置。使用平面类别设置为是。

Answers:


13

这实际上是一个功能。如果要避免这种情况,应在父类别上将标志“是否锚定”设置为“否”。在您的示例中,“服装”。这样,在父类别中,您只会看到直接分配给它的产品。
进行更改后,您应该重新索引所有内容。


2
嗯,但是我需要在父类别上保留“ Is Anchor”,因为它使用了分层导航。
ProcessEight 2013年

嗯...然后我认为您有问题。我对此没有主意。
Marius

我不需要T恤衫类别中的分层导航,因此我想将T恤衫类别从“服装”中移出,因此它只会显示您所说的直接相关的产品
ProcessEight 2013年

@ sfrost2004那么,T恤不是衣服吗?我想我一直在错误地使用它们……
Benubird 2013年

2
嗯,我在看@ stackoverflow.com/ questions/22990622/…在这里,我看到$ this-> _ productLimitationFilters ['category_is_anchor'] = 1; 可能还有一些链接$ this-> getLoadedProductCollection()-> addAttributeToFilter('is_parent',array('eq'=> 1))–如果它是父项
snh_nl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.