Busca da coleção de produtos Magento com base na data de término do preço especial na ordem descritiva da data de criação
-
13-12-2019 - |
Pergunta
Quero buscar a coleção de produtos classificada em ordem decrescente da data de criação e filtrá-la se a data de término do preço especial for inferior à data atual.Eu sou capaz de classificá-lo usando este código.
if ($this->getCurrentOrder()) {
if(($this->getCurrentOrder())=='position'){
$this->_collection->setOrder('entity_id','desc');
} else {
$this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection());
}
}
Mas não posso filtrar isso ainda mais com a data de término do preço especial <data de hoje.Alguém pode ajudar?Eu realmente apreciarei isso.
Obrigado.
Solução
$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')
O código acima deve permitir apenas produtos que não tenham data de término para o preço especial ou se a data de término for futura.
[EDITAR]
Para adicionar um filtro para special_from_date
você pode adicionar isso após o código acima
$this->_collection->addAttributeToFilter('special_from_date', array('or'=> array(
0 => array('date' => true, 'to' => $now),
1 => array('is' => new Zend_Db_Expr('null')))
), 'left')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange