0
我想通过一些属性过滤产品集合,包括diy_kit_price属性(已添加的新属性),如下所示。按多个价格范围筛选产品集合
价格范围:
- 0 - 5000
- 10000 - 15000
我尝试了几种方法,但没有运气。
工作守则:当我通过一个价格范围过滤:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', 'configurable')
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToFilter('category_id', array(
array('finset' => '37')
))
->addAttributeToSort('name', 'asc')
->addAttributeToFilter('diy_kit_price', array('gt' => 0))
->addAttributeToFilter('diy_kit_price', array('lt' => 5000));
不工作代码:当我通过一个价格范围过滤:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', 'configurable')
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToFilter('category_id', array(
array('finset' => '37')
))
->addAttributeToSort('name', 'asc')
->addAttributeToFilter('diy_kit_price', array('gt' => 0))
->addAttributeToFilter('diy_kit_price', array('lt' => 5000))
->addAttributeToFilter('diy_kit_price', array('gt' => 10000))
->addAttributeToFilter('diy_kit_price', array('lt' => 15000));
是否有任何其他的方式来过滤。我们可以使用具有多个价格范围的纯SQL进行过滤。
在此先感谢。
在第二种情况下,实际上你的过滤器是从0到15000 5000和10000来说变得一无是处。你应该使用'(> 0 AND < 5k) OR (> 10k AND <15k)'。不确定是否可以在不转换为Zend查询的情况下完成。 – enenen
如何使用您提到的代码。你能举个例子吗? – Sivakumar