Выборка коллекции продуктов Magento на основе даты окончания специальной цены в порядке убывания даты создания
Я хочу получить коллекцию товаров, отсортированную в порядке убывания даты создания, и отфильтровать ее, если дата окончания специальной цены ниже текущей даты. Я могу отсортировать его, используя этот код.
if ($this->getCurrentOrder()) {
if(($this->getCurrentOrder())=='position'){
$this->_collection->setOrder('entity_id','desc');
} else {
$this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection());
}
}
Но я не могу отфильтровать это дальше с помощью даты окончания специальной цены <сегодняшняя дата. Кто-нибудь может помочь? Я буду очень признателен за это.
Спасибо.
2
1 answers
$now = Mage::getSingleton('core/date')->gmtDate();
$this->_collection->addAttributeToFilter('special_to_date', array('or'=> array(
0 => array('date' => true, 'from' => $now),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
Приведенный выше код должен разрешать только продукты, у которых нет даты окончания по специальной цене, или если дата окончания в будущем.
[ РЕДАКТИРОВАТЬ]
Чтобы добавить фильтр для special_from_date
, вы можете добавить его после кода выше
$this->_collection->addAttributeToFilter('special_from_date', array('or'=> array(
0 => array('date' => true, 'to' => $now),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
4
Author: Marius, 2015-06-17 07:48:09