ürünün indirimli olup olmadığını nasıl kontrol edebilirim


13

Ürünün şu anda indiriminin olup olmadığını nasıl bilebilirim?

Bu kodu kullandım.

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

Ama işe yaramıyor.


Sanırım özel bir fiyata ihtiyacın var mı?
Keyul Şah

Yanıtlar:


13

Bahsettiğiniz kod her zaman benim için çalıştı. Sanırım bunu nasıl elde ettiğine bağlı $product.
Bunu yaparsanız çalışması gerekir.

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

ürünleri bir koleksiyondan alırsanız, koleksiyonu şu şekilde alın:

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

Şimdi koleksiyonda döngü yapabilir ve çekinizi yapabilirsiniz.

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

Bu yöntem, özel fiyatlar ve katalog fiyat kuralları tarafından sağlanan indirimi dikkate alır.

İlave bilgi. Biraz konu dışı ama kullanışlı: İndirimli ürünlerin listesini nasıl edinebileceğiniz aşağıda açıklanmıştır

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

5

Aradığına inanıyorum $product->getPrice()ve $product->getSpecialPrice().


2
Ancak bu, ürünün katalog fiyat kuralı üzerinden indirimli olup olmadığını tespit etmez.
ProxiBlue
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.