在锚类别页面上,我试图仅显示该类别中直接包含的产品。我不想展示儿童类别的产品,在这种情况下不合适。我确实需要过滤当前类别中的产品,因此我需要分层导航,这需要一个锚类别。
最初我想过滤view.phtml模板中的产品,但这只是过滤视图中的产品而不是一个明智的答案。当我这样做时,我的页面上存在很大的差距,其中存在儿童产品,但根本没有显示。产品数量(例如,#117;产品中的1-12个和#34;)是"不正确"。
根据我的阅读,这将需要核心重写。可能是一个索引过程。我真的不知道从哪里开始这个重写,我确信它会更加参与。
我的假设是否有误?你已经解决了这个问题吗?
答案 0 :(得分:5)
转到app/code/core/Mage/Catalog/Model/Resource/Product/Collection.php
复制到app/code/local/Mage/Catalog/Model/Resource/Product/Collection.php
找到函数addCategoryFilter(
,在这里找到代码
public function addCategoryFilter(Mage_Catalog_Model_Category $category)
{
$this->_productLimitationFilters['category_id'] = $category->getId();
/* start to comment here
if ($category->getIsAnchor()) {
unset($this->_productLimitationFilters['category_is_anchor']);
} else {
$this->_productLimitationFilters['category_is_anchor'] = 1;
}*/
/* new line */
$this->_productLimitationFilters['category_is_anchor'] = 1;
if ($this->getStoreId() == Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID) {
$this->_applyZeroStoreProductLimitations();
} else {
$this->_applyProductLimitations();
}
return $this;
}
答案 1 :(得分:-1)
如果我理解你的情况正确,你不需要一行代码。无论其层次结构如何,Magento都可以自由地输入任何类别的产品。
请考虑以下情况:
A类 - >类别a
然后,产品只能分配到a类而不是A类。这将与整个magento系统协调工作,包括分层导航和页面上没有显示的产品。