รหัสที่คุณพูดถึงใช้งานได้สำหรับฉันเสมอ $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");