Comment puis-je obtenir le prix minimal d'un produit groupé à partir d'une collection de produits?
-
16-10-2019 - |
Question
Je le chargement de tous les produits en utilisant le modèle de ressources de collecte des produits.
$_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);
Je ne suis toutefois pas en mesure d'afficher le prix minimum des produits groupés en utilisant par exemple.
echo $_productCollection->getFirstItem()->getMinimalPrice();
fonctionne pour les produits simples. Cela semble être lié au fait que ce soit un type de bloc central / modèle et non un bloc catalogue / Product_List. Mais l'utilisation de catalogue / Product_List est pas une option en raison d'autres raisons.
La solution
Si vous mettez à jour votre code afin qu'il ne pas sélectionner simplement * mais plutôt utiliser les attributs de configuration catalogue puis votre code fonctionne pour tous les types de produits.
Mage::getSingleton('catalog/config')->getProductAttributes()
Votre code devrait ressembler.
$_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);
Dans ce cas, les prix minimaux corrects sera chargé pour chaque type de produit.