ce que je fini par faire est app/design/frontend/default/theme_name/modèle/catalogue/produit/list_random.phtml
faire quelque chose comme:
<?php
$_categories=$this->getCurrentChildCategories();
$_category = $this->getCurrentCategory();
$subs = $_category->getAllChildren(true);
$result = array();
foreach($subs as $cat_id) {
$category = new Mage_Catalog_Model_Category();
$category->load($cat_id);
$collection = $category->getProductCollection();
foreach ($collection as $product) {
$result[] = $product->getId();
}
}
shuffle($result);
?>
cela, vous obtiendrez une tableau d'identification de produit. Vous pouvez faire une boucle à travers eux et créer des produits à la volée en utilisant:
<?php
$i=0;
foreach ($result as $_product_id){
$i++;
$_product = new Mage_Catalog_Model_Product();
$_product->load($_product_id);
//do something with the product here
}?>
puis, créez un bloc statique dans le CMS avec le contenu suivant
{{block type="catalog/navigation" template="catalog/product/list_random.phtml"}}
Enfin, dans la Catalog-> section Gérer les catégories , choisissez la catégorie, puis l'onglet des paramètres d'affichage. Passez le mode d'affichage sur "Bloc statique et produits", puis choisissez votre bloc dans la liste déroulante.
Et cela devrait le faire.
juste une note: le code ci-dessus obtenir tous les produits des catégories actuelles et sous. Il devrait être assez trivial de ne faire que la catégorie actuelle. –
Remarque: vous ne devez PAS inclure de "logique complexe" dans le fichier modèle. Vous devez créer BLOCK avec une méthode spécifique pour récupérer les produits filtrés qui seront utilisés dans le modèle.Aussi, vous devriez utiliser la méthode @chapagain ou 'Mage_Catalog_Model_Category :: getProductCollection()' qui est fondamentalement la même chose, mais qui ajoute aussi le filtre STORE VIEW. – xyz