En una búsqueda rápida, la única referencia que encontré fue en los foros de Magento, lo que sugiere que debe escribir un código personalizado para verificar si un producto es nuevo.
Pensé que habría un isNew()
método simple en el Mage_Catalog_Model_Product
que se tiene en cuenta el menú desplegable Destacado , así como los campos Establecer producto como nuevo desde la fecha y Establecer como nuevo hasta la fecha , pero ese no parece ser el caso.
¿Se necesitan los codez personalizados?
isObjectNew()
pero entiendo lo que estás diciendo.Respuestas:
No debe convertir y validar fechas manualmente, ya que esto puede causar problemas de zona horaria. Magento tiene un método incorporado
isStoreDateInInterval()
enMage_Core_Model_Locale
clase. Por lo tanto, debe crear un método auxiliar que pueda verse asíPuede encontrar más detalles aquí http://quicktips.ru/all/check-product-is-new/
fuente
No hay una sola llamada al método. Al menos no soy consciente de ello.
Sin embargo, siempre puedes usar algo como esto:
Lo siento, no soy bueno en la comparación de fechas PHP.
Buena pregunta por cierto.
fuente
Como referencia, aquí está el método de ayuda que se me ocurrió para comprobar si hay novedades. Es compatible tanto con el menú desplegable Destacado como con las fechas, y también admite que cualquier fecha esté vacía.
ACTUALIZACIÓN: Gracias a @Rooooomine por mencionar que esta conversión manual de fecha que sugerí es una muy mala idea debido a posibles problemas de configuración regional. Echa un vistazo en su
Mage::app()->getLocale()->isStoreDateInInterval($product->getStoreId(), $newsFromDate, $newsToDate)
lugar.fuente
Una precisión que podría ser útil para alguien. Todas estas respuestas están utilizando el atributo "news_from_date" pero si desea obtener la fecha real de creación del producto en la base de datos, debe obtener el atributo "created_at" utilizando el método:
En el proyecto en el que estoy trabajando, algunos productos pueden tener un valor de "news_from_date" diferente de "created_at". De hecho, de acuerdo con las reglas comerciales, un producto puede estar agotado durante mucho tiempo y luego volver como productos nuevos cuando vuelva a estar en el catálogo.
fuente
Solución rápida
fuente
Puedes probar el siguiente código
Donde
$this
es objetoMage_Catalog_Model_Product
y necesita cargar el producto si aún no está cargado.fuente