我有一个销售汽车零件的网站。我已经将我的类别设置为 Make -> Model -> Year,从这里过滤是通过属性完成的。刹车、车轮、发动机等……</p>
这会按我的预期过滤集合,但是一旦到了 Year,我还想包含通用类别中的项目。IE 该集合应包括特定汽车的项目,以及所有汽车的“通用”项目。
我发现了这个Magento:如何将两个产品集合合并为一个?这似乎是我想要的,但我似乎无法弄清楚应该在哪里实施。
List.php、Layer.php 和 Category.php 中有 getCollection() 方法,我尝试实现上面链接中的代码,但没有成功。如果我将它包含在 List.php 中,则集合似乎已合并,但属性过滤不适用于通用产品。
我尝试在 Category.php 中编辑 getProductCollection 函数,如下所示:
public function getProductCollection()
{
$collection = Mage::getResourceModel('catalog/product_collection')
->setStoreId($this->getStoreId())
->addCategoryFilter($this);
//return $collection;
$universalCollection = Mage::getModel('catalog/category')->load(18)->getProductCollection();
$merged_ids = array_merge($collection->getAllIds(), $universalCollection->getAllIds());
// can sometimes use "getLoadedIds()" as well
$merged_collection = Mage::getResourceModel('catalog/product_collection')
->addFieldToFilter('entity_id', $merged_ids)
->addAttributeToSelect('*');
return $merged_collection;
}
但这给了我:“致命错误:达到'200'的最大函数嵌套级别,正在中止!”
如果有人可以提供任何建议,将不胜感激。