根据自定义属性对magento产品集合进行排序

时间:2015-05-18 04:31:58

标签: magento sorting product

我在magento中创建了一个自定义属性(其代码为sort_order_product),存储了1,2,3,4,5之类的数字...我想获取按sort_order_product排序的产品,我使用查询获取产品

$collection = Mage::getModel('catalog/product')
             ->getCollection()
             ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
             ->addAttributeToSelect('*')
             ->addAttributeToFilter('category_id', array('in' => $categoryIds))
             ->setOrder('sort_order_product', 'ASC');

但这并没有给出理想的结果。请让我知道我的错误。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以从管理员执行以下步骤:

转到目录 - >属性 - >管理属性,然后点击sort_order_product进行编辑,然后从编辑屏幕

set在产品列表中使用=是

用于产品清单中的排序=是

并保存属性并清除缓存。 如果需要,则重新索引数据。

现在过滤集合,如:

$collection = Mage::getModel('catalog/product')
         ->getCollection()
         ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
         ->addAttributeToSelect('*')
         ->addAttributeToFilter('category_id', array('in' => $categoryIds))
         ->addAttributeToSort('sort_order_product', 'ASC');

答案 1 :(得分:0)

将“商店所有者的输入验证”设置为“整数”后,此方法有效。