Jawaban:
Kode yang Anda sebutkan selalu bekerja untuk saya. Saya pikir itu tergantung bagaimana Anda mendapatkan $product
.
Jika Anda melakukan ini, itu harus bekerja.
$product = Mage::getModel('catalog/product')->load($id);
jika Anda mendapatkan produk dari koleksi, dapatkan koleksi seperti ini:
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents() //additional filters go here;
Sekarang Anda dapat mengulang koleksi dan melakukan pemeriksaan.
foreach ($collection as $product){
if($product->getFinalPrice() < $product->getPrice()){
//had a discount
}
}
Metode ini mempertimbangkan diskon yang diberikan oleh harga khusus dan aturan harga katalog.
Informasi tambahan. Topik yang sedikit keluar tetapi berguna: Inilah cara Anda mendapatkan daftar produk yang memiliki diskon
$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");
Saya yakin Anda sedang mencari $product->getPrice()
dan $product->getSpecialPrice()
.