按多个价格范围过滤产品系列

时间:2013-12-18 09:29:28

标签: magento

我希望通过一些属性过滤产品集合,包括diy_kit_price属性(已添加新属性),如下所示。

价格范围:

  1. 0 - 5000
  2. 10000 - 15000
  3. 我尝试了几种但没有运气。

    工作代码:当我按一个价格范围过滤时:

    $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进行过滤。

    提前致谢。

1 个答案:

答案 0 :(得分:5)

得到解决方案...... Hurreee ......: - )

->addFieldToFilter('diy_kit_price', 
     array(array('from'=>'0','to'=>'5000'), 
     array('from'=>'15000','to'=>'20000'))
 )