如何使magento过滤器像类别一样工作



我想让magento中的类别使用属性/过滤器。

比方说,我有一个属性"CupAttr",它不用于分层导航。然后我创建了一个名为CupCat的类别,它使用"CupAttr"来提取产品,以在CupCat类别中显示它们。

这可能吗?我想这样做的原因是我想尽量减少对产品分类的维护。

感谢

编辑:

阿米特的解决方案非常有效,但这带来了另一个问题。列表中显示的产品与分层导航中可以过滤的产品不同。

实际上,我需要为任何类别选择所有产品(因为我不会向任何类别添加任何产品,它们都是空白的),然后我开始按属性过滤该特定类别的产品。

再次感谢。

在这种情况下,您可以使用magento事件/观察者。

将观察者挂接到事件catalog_block_product_list_collection

然后使用CCD_ 2;通过CupAttr过滤集合。

config.xml代码:

<?xml version="1.0"?>
    <config>
      <global>
        <models>
            <xyzcatalog>
                 <class>Xyz_Catalog_Model</class>
            </xyzcatalog>
        </models>
        <events>
          <catalog_block_product_list_collection> <!-- event -->
            <observers>
              <xyz_catalog_block_product_list_collection>
                <type>singleton</type>
                <class>Xyz_Catalog_Model_Observer</class>
                <method>apply_CupAttr_filter</method>
              </xyz_catalog_block_product_list_collection>
            </observers>
          </catalog_block_product_list_collection>     
        </events>
      </global>
    </config>

观察员代码位置:

创建目录结构-app/code/local/Xyz/Catalog/Model/Observer.php

第一个"CupAttr",用于产品列表,用于使用此属性过滤

<?php
class Xyz_Catalog_Model__Observer
{
    public function __construct()
    {
    }
    public function apply_CupAttr_filter($observer){
        //apply filter when category is CupCat
        if(Mage::registry('current_category') &&(Mage::registry('current_category')->getId()=='CupCatCatrgoryId') ):
        $collection=$observer->getEvent()->getCollection();
        $collection->addAttributeToFilter('CupAttrAttibiteCode','FilterExpression');
        endif;
        return $this;
    }
}

最新更新