回答:
あなたが言及したコードは常に私のために働いた。どのように取得するかによると思います$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");