Yanıtlar:
Bahsettiğiniz kod her zaman benim için çalıştı. Sanırım bunu nasıl elde ettiğine bağlı $product
.
Bunu yaparsanız çalışması gerekir.
$product = Mage::getModel('catalog/product')->load($id);
ürünleri bir koleksiyondan alırsanız, koleksiyonu şu şekilde alın:
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents() //additional filters go here;
Şimdi koleksiyonda döngü yapabilir ve çekinizi yapabilirsiniz.
foreach ($collection as $product){
if($product->getFinalPrice() < $product->getPrice()){
//had a discount
}
}
Bu yöntem, özel fiyatlar ve katalog fiyat kuralları tarafından sağlanan indirimi dikkate alır.
İlave bilgi. Biraz konu dışı ama kullanışlı: İndirimli ürünlerin listesini nasıl edinebileceğiniz aşağıda açıklanmıştır
$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");
Aradığına inanıyorum $product->getPrice()
ve $product->getSpecialPrice()
.