답변:
언급 한 코드는 항상 나를 위해 일했습니다. 나는 그것이 당신이 어떻게 얻는 지에 달려 있다고 생각합니다 $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");