Em uma pesquisa rápida, a única referência que encontrei foi nos fóruns do Magento, o que sugere que você precise escrever um código personalizado para verificar se um produto é novo.
Eu teria pensado que haveria um isNew()
método simples Mage_Catalog_Model_Product
que leva em consideração o menu suspenso Em destaque , bem como os campos Definir produto como novo a partir da data e Definir produto como novo até a data - mas esse não parece ser o caso?
O codez personalizado é necessário?
isObjectNew()
sim , mas entendo o que você está dizendo.Respostas:
Você absolutamente NÃO deve converter e validar datas manualmente, pois isso pode causar problemas de fuso horário. Magento tem método embutido
isStoreDateInInterval()
naMage_Core_Model_Locale
classe. Portanto, você deve criar um método auxiliar que pode se parecer com issoMais detalhes você pode encontrar aqui http://quicktips.ru/all/check-product-is-new/
fonte
Não há uma chamada de método única. Pelo menos não estou ciente disso.
No entanto, você sempre pode usar algo como isto:
Desculpe, eu não sou bom na comparação de datas do PHP.
Boa pergunta, a propósito.
fonte
Para referência, aqui está o método auxiliar que eu criei para verificar a novidade. Ele suporta o menu suspenso Em destaque, bem como as datas, e também suporta a data em branco.
ATUALIZAÇÃO: Agradecemos a @Rooooomine por mencionar que essa conversão manual de datas que sugeri é uma péssima idéia devido a possíveis problemas de localidade. Confira em
Mage::app()->getLocale()->isStoreDateInInterval($product->getStoreId(), $newsFromDate, $newsToDate)
vez disso.fonte
Uma precisão que pode ser útil para alguém. Todas essas respostas estão usando o atributo "news_from_date", mas se você deseja obter a data real de criação do produto no banco de dados, deve obter o atributo "created_at" usando o método:
No projeto em que estou trabalhando, alguns produtos podem ter um valor "news_from_date" diferente de "created_at". De fato, de acordo com as regras de negócios, um produto pode ficar fora de estoque por um longo período de tempo e depois voltar como novos produtos quando voltar ao catálogo.
fonte
Solução Rápida
fonte
Você pode tentar o código abaixo
Onde
$this
é o objetoMage_Catalog_Model_Product
e você precisa carregar o produto se ele ainda não estiver carregado.fonte