按类别排序Magento产品系列

时间:2012-04-08 09:15:39

标签: magento

我有类似的类别结构:

Root Cat
  Sub Cat 1
  Sub Cat 2
  Sub Cat 3

和产品系列:

$productCollection = Mage::getResourceModel('catalog/product_collection');

现在我想按类别对产品进行排序。 Sub Cat 1产品应首先出现,然后是Sub Cat 2产品,最后是Sub Cat 3产品。如果我更改类别的顺序,集合中产品的顺序也应该更改。我怎样才能做到这一点?简单的$productCollection->addAttributeToSort('category');$productCollection->setOrder('category')不起作用。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我认为只需修改集合即可实现所需的所有功能。 category不是属性。 category_ids是,但是当我尝试对其进行排序时,它没有任何效果。

我会获得类别(按照您想要的顺序),然​​后使用addCategoryFilter()函数从这些类别中获取产品。

示例:

$categories = Mage::getModel('catalog/category')->getCollection();
foreach ($categories as $category) {
    echo $category->getId() . ':' . PHP_EOL;
    $products = Mage::getModel('catalog/product')->getCollection()
        ->addCategoryFilter($category);
    foreach ($products as $product) {
        // Do something
        echo '  ' . $product->getSku() . PHP_EOL;
    }
}