come verificare se il prodotto è scontato


13

Come posso sapere se il prodotto ha attualmente uno sconto?

Ho usato questo codice.

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

Ma non funziona


Penso che tu abbia bisogno di un prezzo speciale?
Keyul Shah,

Risposte:


13

Il codice che hai citato ha sempre funzionato per me. Penso che dipende da come ottieni $product.
Se lo fai, dovrebbe funzionare.

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

se ottieni i prodotti da una collezione, ottieni la collezione in questo modo:

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

Ora puoi scorrere la raccolta e fare il controllo.

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

Questo metodo prende in considerazione lo sconto offerto dai prezzi speciali e dalle regole dei prezzi di catalogo.

Informazioni addizionali. Un po 'fuori tema ma utile: ecco come ottenere l'elenco dei prodotti che hanno uno sconto

$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

Credo che tu stia cercando $product->getPrice()e $product->getSpecialPrice().


2
Questo, tuttavia, non rileverà se il prodotto è in sconto tramite una regola del prezzo di catalogo.
ProxiBlue,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.