जवाबों:
आपके द्वारा बताए गए कोड ने हमेशा मेरे लिए काम किया। मुझे लगता है कि यह निर्भर करता है कि आप कैसे प्राप्त करते हैं $product
।
यदि आप ऐसा करते हैं तो यह काम करना चाहिए।
$product = Mage::getModel('catalog/product')->load($id);
यदि आपको किसी संग्रह से उत्पाद मिलते हैं, तो इस तरह से संग्रह प्राप्त करें:
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents() //additional filters go here;
अब आप संग्रह के माध्यम से लूप कर सकते हैं और अपनी जांच कर सकते हैं।
foreach ($collection as $product){
if($product->getFinalPrice() < $product->getPrice()){
//had a discount
}
}
यह विधि विशेष कीमतों और कैटलॉग मूल्य नियमों द्वारा प्रदान की गई छूट को ध्यान में रखती है।
अतिरिक्त जानकारी। थोड़ा सा विषय लेकिन उपयोगी: यहां बताया गया है कि आप उन उत्पादों की सूची कैसे प्राप्त कर सकते हैं जिनमें छूट है
$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");
मेरा मानना है कि आप देख रहे हैं $product->getPrice()
और $product->getSpecialPrice()
।