2012-04-08 71 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