, was ich tun gelandet ist in app/design/frontend/default/theme_name/template/catalog/product/list_random.phtml
so etwas wie tun:
<?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);
?>
das Sie eine bekommen Array von Produkt-IDs. Sie können durch sie Schleife und schaffen Produkte on the fly mit:
<?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
}?>
dann erstellen Sie einen statischen Block in den cms mit folgendem Inhalt
{{block type="catalog/navigation" template="catalog/product/list_random.phtml"}}
im Catalog- Schließlich> Manage Abschnitt Kategorien Wählen Sie die Kategorie und dann die Registerkarte für die Anzeigeeinstellungen. Schalten Sie den Anzeigemodus auf "Statischer Block und Produkte" und wählen Sie dann Ihren Block aus der Dropdown-Liste.
Und das sollte es tun.
nur eine Anmerkung: der oben genannte Code wird alle Produkte aus den aktuellen und den Unter Kategorien. Es sollte ziemlich trivial sein, es nur zur aktuellen Kategorie zu machen. –
Hinweis: Sie sollten nicht „komplexe Logik“ in Template-Datei enthalten. Sie sollten BLOCK mit einer bestimmten Methode zum Abrufen von gefilterten Produkten erstellen, die in der Vorlage verwendet werden.Außerdem sollten Sie die Methode @chapagain oder 'Mage_Catalog_Model_Category :: getProductCollection()' verwenden, die im Prinzip die gleiche ist, aber auch den Filter STORE VIEW enthält. – xyz