Obtenez prodoisi par catégorie IDS passés comme paramètre de requête
-
12-12-2019 - |
Question
Je veux utiliser l'URL http://mydomain.test/Catégorie-nom.html? Cat= 9,10,40 J'ai besoin d'obtenir tous les produits de la catégorie "Nom de la catégorie" et de catégories avec IDS 9, 10 et 40.
Comment puis-je faire cela.Peut-être qu'il y a une telle extension?
La solution
Si vous voulez tous les produits de la catégorie 9, vous pouvez le faire:
$category_id = 9;
$category = Mage::getModel('catalog/category')->load($category_id);
$products = Mage::getResourceModel('catalog/product_collection')
->setStoreId(Mage::app()->getStore()->getId())
->addCategoryFilter($category);
Vous pouvez le faire pour les autres catégories.
Pour imprimer les produits que vous pouvez faire quelque chose comme ceci:
foreach ($products as $_product) { ?>
<a href="<?php echo $_product->getProductUrl() ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(200); ?>" width="200" height="200" alt="" />
</a>
<a href="<?php echo $_product->getProductUrl(); ?>">
<?php echo $_product->getName(); ?>
</a>
<?php } ?>
Si vous voulez une liste, essayez quelque chose comme ceci:
$collection = Mage::getModel('catalog/product')
->getCollection()
->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left')
->addAttributeToSelect('*')
->addAttributeToFilter('category_id', array(
array('finset' => '9'),
array('finset' => '10'),
array('finset' => '40')
)
->addAttributeToSort('created_at', 'desc');
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange