2012-04-08 108 views
0
类别

我有一个类别结构这样的:排序Magento的产品系列由

Root Cat 
    Sub Cat 1 
    Sub Cat 2 
    Sub Cat 3 

和产品集合:

​​

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

在此先感谢!

+0

http://stackoverflow.com/questions/4273898/how-to-sort-a-category-list-array-alphabetically-in-magento – 2012-04-09 18:24:42

回答

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; 
    } 
} 
+0

感谢@nachito!我希望有一个本地的方式来做到这一点(主要是出于性能的原因),但可能没有... – Simon 2012-04-09 19:14:03