按自定义属性将多个产品加载到集合[magento]

时间:2013-12-02 13:39:56

标签: magento magento-1.7

这样做:

Mage::getModel('catalog/product')->loadByAttribute('ordernumber', 500);

给我一​​个产品的对象,这意味着具有自定义属性(ordernumber)的所有内容都可以。

尽管如此:

Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('ordernumber')
->addAttributeToFilter('ordernumber', 500);

返回一个集合,但是一个空集合 - 没有项目。它们应该是3.几个小时前它起作用了。现在它停止了工作,我没有改变任何有关集合或属性的内容。我不知道问题可能是什么......

Yes

的属性设置为Usied in Product Listing

3 个答案:

答案 0 :(得分:1)

如果您在前端使用它并且启用了平面目录,则您的代码可能无效 为了使其有效,您有两种可能性:
选项1:
使属性ordernumber在产品列表中使用。在后端编辑属性并将标记Used in product listing设置为Yes。需要重新索引。
选项2:
直接使用eav集合:

Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('ordernumber')
->addAttributeToFilter('ordernumber', 500);

我推荐第一种方法。

答案 1 :(得分:0)

请确保属性Used in Product Listing的{​​{1}}选项设置为yes

之后清除缓存。希望这会奏效。

答案 2 :(得分:0)

请使用

$products =  Mage::getModel('catalog/product')->loadByAttribute('ordernumber', '500'); 

另一种方式

Mage::getModel('catalog/product')
        ->getCollection()
        ->addAttributeToSelect('*')
        ->addFieldToFilter('ordernumber','500')