cara memeriksa apakah produk didiskon

13

Bagaimana saya bisa tahu jika produk saat ini mendapat diskon?

Saya menggunakan kode ini.

if($product->getFinalPrice() < $product->getPrice()){
   //had a discount
}

Tapi itu tidak berhasil.

Netorica
sumber
Saya pikir Anda perlu harga khusus?
Keyul Shah

Jawaban:

13

Kode yang Anda sebutkan selalu bekerja untuk saya. Saya pikir itu tergantung bagaimana Anda mendapatkan $product.
Jika Anda melakukan ini, itu harus bekerja.

$product = Mage::getModel('catalog/product')->load($id);

jika Anda mendapatkan produk dari koleksi, dapatkan koleksi seperti ini:

$collection = Mage::getModel('catalog/product')->getCollection()
            ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
            ->addMinimalPrice()
            ->addFinalPrice()
            ->addTaxPercents() //additional filters go here;

Sekarang Anda dapat mengulang koleksi dan melakukan pemeriksaan.

foreach ($collection as $product){
    if($product->getFinalPrice() < $product->getPrice()){
       //had a discount
    }
}

Metode ini mempertimbangkan diskon yang diberikan oleh harga khusus dan aturan harga katalog.

Informasi tambahan. Topik yang sedikit keluar tetapi berguna: Inilah cara Anda mendapatkan daftar produk yang memiliki diskon

$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");
Marius
sumber
5

Saya yakin Anda sedang mencari $product->getPrice()dan $product->getSpecialPrice().

musicliftsme
sumber
2
Namun, ini tidak akan mendeteksi jika produk tersebut didiskon melalui aturan harga katalog.
ProxiBlue