按照magento中的属性过滤产品

时间:2012-02-15 11:02:05

标签: magento

如何列出具有特定属性的产品?例如,如果Size是我的默认属性集中的属性。那我如何列出所有尺寸= 22的产品?

我正在搜索谷歌的答案,如果我发现任何答案,我会发布答案。

谢谢,

巴兰

3 个答案:

答案 0 :(得分:1)

我刚才这样做了

获取商店ID:

$storeId  = Mage::app()->getStore()->getId();

让所有产品过滤掉除尺寸

以外的所有产品
$_productCollection = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToSelect('*')
    ->addAttributeToFilter("Size", "1");

然后只需在foreach循环中添加以下内容(这将遍历数组$ _productCollection)

foreach($_productCollection as $_product)
{
    $attr = Mage::getResourceModel('catalog/product')->getAttributeRawValue($_product->getId(), 'Size', $storeId);
    if($attr == '22')
    {
        //Echo names of the products
        echo $_product->getName();
    }
}

这样,您可以在没有严格的产品列表的情况下对产品列表做很多事情。因此,如果您愿意,您仍然可以添加名称,价格和更多属性。希望这有帮助!

答案 1 :(得分:0)

例如:

    $storeId  = Mage::app()->getStore()->getId();
    $products = Mage::getResourceModel('catalog/product_collection');    

    $products->addAttributeToFilter(array(
                   array('attribute' => 'attribute_code', 'eq' => 22)))
                   ->addAttributeToSelect('*')
                              ->setStoreId($storeId)
                              ->addStoreFilter($storeId)
                  ->setOrder('name', 'desc'); 

      Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);  
  Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
 $this->setProductCollection($products);

对我来说这很好。

答案 2 :(得分:0)

我不认为目录产品是为此而制作的。最好的方法是在静态表(catalog_product_entity)中移动属性Size。然后,您将能够通过保持目录快速搜索大小。如果你想在不同的属性上做这个,我想你可以把它作为参数在集合中。但我不确定。