Die einzige Referenz, die ich bei einer Schnellsuche gefunden habe, war in den Magento-Foren, was darauf hindeutet, dass Sie einen benutzerdefinierten Code schreiben müssen, um zu überprüfen, ob ein Produkt neu ist.
Ich hätte gedacht, es gäbe eine einfache isNew()
Methode, die Mage_Catalog_Model_Product
das Dropdown-Menü " Empfohlen " sowie die Felder " Produkt als neu ab Datum festlegen" und " Produkt als neu bis Datum festlegen" berücksichtigt - aber das scheint nicht der Fall zu sein?
Werden die benutzerdefinierten Codez benötigt?
isObjectNew()
aber ich verstehe was du sagst.Antworten:
Sie dürfen Daten NICHT manuell konvertieren und validieren, da dies zu Problemen mit der Zeitzone führen kann. Magento hat eine integrierte Methode
isStoreDateInInterval()
in derMage_Core_Model_Locale
Klasse. Sie sollten also eine Hilfsmethode erstellen, die so aussehen kannWeitere Details finden Sie hier http://quicktips.ru/all/check-product-is-new/
quelle
Es gibt keinen einzelnen Methodenaufruf. Zumindest bin ich mir dessen nicht bewusst.
Trotzdem kann man immer so etwas benutzen:
Entschuldigung, ich bin nicht gut im PHP-Datumsvergleich.
Gute Frage übrigens.
quelle
Als Referenz ist hier die Hilfsmethode, die ich mir ausgedacht habe, um nach Neuheiten zu suchen. Es werden sowohl das Dropdown-Menü "Empfohlen" als auch die Datumsangaben unterstützt. Außerdem wird unterstützt, dass beide Datumsangaben leer sind.
UPDATE: Vielen Dank an @Rooooomine für die Erwähnung, dass diese manuelle Datumskonvertierung, die ich vorgeschlagen habe, aufgrund möglicher Probleme mit dem Gebietsschema eine sehr schlechte Idee ist. Überprüfen Sie
Mage::app()->getLocale()->isStoreDateInInterval($product->getStoreId(), $newsFromDate, $newsToDate)
stattdessen aus.quelle
Eine Präzision, die für jemanden nützlich sein könnte. Alle diese Antworten verwenden das Attribut "news_from_date". Wenn Sie jedoch das tatsächliche Erstellungsdatum des Produkts in der Datenbank abrufen möchten, sollten Sie das Attribut "created_at" mithilfe der folgenden Methode abrufen:
In dem Projekt, an dem ich arbeite, haben einige Produkte möglicherweise den Wert "news_from_date", der sich von "created_at" unterscheidet. In der Tat kann ein Produkt gemäß den Geschäftsregeln für eine lange Zeit nicht vorrätig sein und dann als neue Produkte zurückkehren, wenn es wieder in den Katalog aufgenommen wird.
quelle
Schnelle Lösung
quelle
Sie können den folgenden Code ausprobieren
Wo
$this
ist das ObjektMage_Catalog_Model_Product
und Sie müssen das Produkt laden, wenn es noch nicht geladen ist.quelle