À partir d'une recherche rapide, la seule référence que j'ai trouvée était sur les forums Magento, ce qui suggère que vous devez écrire du code personnalisé pour vérifier si un produit est nouveau.
J'aurais pensé qu'il y aurait une isNew()
méthode simple sur le Mage_Catalog_Model_Product
qui prend en compte la liste déroulante En vedette ainsi que les champs Définir le produit comme nouveau à partir de la date et Définir le produit comme nouveau à la date - mais cela ne semble pas être le cas?
Le code personnalisé est-il nécessaire?
isObjectNew()
mais je comprends ce que vous dites.Réponses:
Vous ne devez absolument PAS convertir et valider les dates manuellement, car cela peut entraîner des problèmes de fuseau horaire. Magento a une méthode intégrée
isStoreDateInInterval()
enMage_Core_Model_Locale
classe. Vous devez donc créer une méthode d'assistance qui peut ressembler à ceciPlus de détails vous pouvez trouver ici http://quicktips.ru/all/check-product-is-new/
la source
Il n'y a pas d'appel de méthode unique. Au moins, je n'en suis pas conscient.
Néanmoins, vous pouvez toujours utiliser quelque chose comme ceci:
Désolé, je ne suis pas bon dans la comparaison des dates PHP.
Bonne question d'ailleurs.
la source
Pour référence, voici la méthode d'aide que j'ai trouvée pour vérifier la nouveauté. Il prend en charge à la fois la liste déroulante En vedette ainsi que les dates et prend également en charge les deux dates.
MISE À JOUR: Merci à @Rooooomine d'avoir mentionné que cette conversion de date manuelle que j'ai suggérée est une très mauvaise idée en raison de problèmes locaux potentiels. Vérifiez à la
Mage::app()->getLocale()->isStoreDateInInterval($product->getStoreId(), $newsFromDate, $newsToDate)
place.la source
Une précision qui pourrait être utile à quelqu'un. Toutes ces réponses utilisent l'attribut "news_from_date" mais si vous voulez obtenir la date réelle de création du produit dans la base de données, vous devez obtenir l'attribut "created_at" en utilisant la méthode:
Dans le projet sur lequel je travaille, certains produits peuvent avoir une valeur de "news_from_date" différente de "created_at". En effet selon les règles métier, un produit peut être en rupture de stock pendant une longue période puis revenir en tant que nouveau produit lors de son retour dans le catalogue.
la source
Solution rapide
la source
Vous pouvez essayer ci-dessous le code
Où
$this
est l'objetMage_Catalog_Model_Product
et vous devez charger le produit s'il n'est pas déjà chargé.la source