Come faccio ad avere il prezzo minimo di un prodotto raggruppati da una collezione di prodotti?
-
16-10-2019 - |
Domanda
Sto caricando tutti i prodotti utilizzando il modello di risorse di raccolta del prodotto.
$_categoryId = $this->getCategoryId();
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addCategoryFilter(Mage::getModel('catalog/category')->load($_categoryId))
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4);
Sono, tuttavia, non in grado di visualizzare il prezzo minimo di prodotti raggruppati utilizzando per esempio.
echo $_productCollection->getFirstItem()->getMinimalPrice();
Questo funziona per prodotti semplici. Questo sembra essere correlato al fatto che si tratta di un nucleo / modello tipo di blocco e non un blocco catalogo / Product_List. Ma usando catalogo / Product_List non è un'opzione per altri motivi.
Soluzione
Se si aggiorna il codice in modo che non è sufficiente selezionare * ma invece utilizzare gli attributi di configurazione Catalogo allora le vostre opere di codice per tutti i tipi di prodotto.
Mage::getSingleton('catalog/config')->getProductAttributes()
Il codice dovrebbe essere simile.
$_categoryId = $this->getCategoryId();
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addCategoryFilter(Mage::getModel('catalog/category')->load($_categoryId))
->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4);
In questo caso i prezzi minimi corretti verrà caricato per ciascun tipo di prodotto.