Antworten:
Der Code, den Sie erwähnt haben, hat immer für mich funktioniert. Ich denke es kommt darauf an wie man das bekommt $product
.
Wenn Sie dies tun, sollte es funktionieren.
$product = Mage::getModel('catalog/product')->load($id);
Wenn Sie die Produkte aus einer Sammlung erhalten, erhalten Sie die Sammlung folgendermaßen:
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents() //additional filters go here;
Jetzt können Sie die Sammlung durchlaufen und Ihre Prüfung durchführen.
foreach ($collection as $product){
if($product->getFinalPrice() < $product->getPrice()){
//had a discount
}
}
Diese Methode berücksichtigt den Rabatt, der durch Sonderpreise und Katalogpreisregeln gewährt wird.
Zusätzliche Information. Ein bisschen abseits des Themas, aber nützlich: So erhalten Sie die Liste der Produkte, für die ein Rabatt gilt
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addUrlRewrite();
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
$collection->getSelect()->where("`price_index`.price !=price_index.min_price");
Ich glaube du suchst $product->getPrice()
und $product->getSpecialPrice()
.