【问题标题】:Sort Magento Product Collection by Category按类别对 Magento 产品集合进行排序
【发布时间】:2012-04-08 09:15:38
【问题描述】:

我有一个这样的类别结构:

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') 不起作用。

提前致谢!

【问题讨论】:

标签: magento


【解决方案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;
    }
}

【讨论】:

  • 谢谢@nachito!我希望有一种本地方式来做到这一点(主要是出于性能原因),但可能没有......
猜你喜欢
  • 1970-01-01
  • 2013-01-15
  • 2015-12-31
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
相关资源
最近更新 更多