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

magento.stackexchange https://magento.stackexchange.com//questions/70832

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.

Foi útil?

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
scroll top