我正在使用我在某处找到的代码获取所有活跃的特殊产品:
$collection = $this->_addProductAttributesAndPrices($collection)
->addStoreFilter()
->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
->addAttributeToFilter('special_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $todayDate),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
->setPageSize($this->get_prod_count())
->setCurPage($this->get_cur_page());
现在我想只得到价格特别优惠的产品,但我仍然无法理解如何做到这一点。
我一直在阅读此页:http://www.magentocommerce.com/wiki/5_-_modules_and_development/catalog/using_collections_in_magento
我尝试了这个没有成功:
->addAttributeToFilter('special_price', array('lt' => 'price'))
感谢您的帮助!
答案 0 :(得分:7)
你可以尝试this,感谢Zyava!
关于我的案子:
- > addAttributeToFilter('price',array('gt'=> new Zend_Db_Expr('final_price')))
答案 1 :(得分:0)
效率较低的解决方案是遍历集合,
$products = array();
$collection = Mage::getResourceModel('catalog/product_collection');
foreach($collection as $col) {
$product = Mage::getModel('catalog/product')->load($col->getId());
if( $product->getPrice() > $product->getSpecialPrice() ) {
$products[] = $product;
}
}
最终你将拥有一系列产品......