我想获得与产品视图中显示的当前产品相同类别的随机产品列表 - 到目前为止,我挖出的所有产品都是
Magento产品按类别划分
有谁知道如何做到这一点?
您基本上加载类别,获取产品集合,然后适当地过滤.
$products = Mage::getModel('catalog/category')->load($category_id) ->getProductCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('status', 1) ->addAttributeToFilter('visibility', 4) ->addAttributeToFilter('special_price', array('neq' => "")) ->setOrder('price', 'ASC') ;
以下是从任何特定类别获取产品的代码: -
$productCollection = Mage::getResourceModel('catalog/product_collection') ->addCategoryFilter($category);
我最终做的是在app/design/frontend/default/theme_name/template/catalog/product/list_random.phtml
做类似的事情:
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); ?>
这将为您提供一系列产品ID.您可以使用以下方法循环浏览它们并动态创建产品:
load($_product_id); //do something with the product here }?>
然后,使用以下内容在cms中创建一个静态块
{{block type="catalog/navigation" template="catalog/product/list_random.phtml"}}
最后,在目录 - >管理类别部分中,选择类别,然后选择显示设置选项卡.将显示模式切换为"静态块和产品",然后从下拉列表中选择块.
这应该做到这一点.