Magento购物车按category_id排序

时间:2015-11-27 14:56:53

标签: magento

我试图通过categroy_id对购物车中的商品进行整理:

$cartItems = Mage::getModel("checkout/cart")->getItems()
->addFieldToSelect('name')
->addFieldToSelect('category_id')
->addAttributeToSort('category_id', 'ASC');

 echo $cartItems->getSelect(); //debug info


 foreach($cartItems as $item) {
        echo $this->getItemHtml($item); 
 }

Magento抱怨方法addAttributeToSort不存在,看看,当然它没有定义。

执行此查询的正确方法是什么?

否则,

2 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

$collection = Mage::getModel('checkout/cart')->getItems()
    ->addFieldToSelect('name')
    ->addFieldToSelect('category_id')
    ->addOrder('category_id', 'asc');

addAttributeToSort()适用于某些集合,但不适用于结帐/购物车模型。

我希望这有帮助!

答案 1 :(得分:0)

当您运行Mage::getModel("checkout/cart")->getItems()时,您会获得一系列报价项目,而不是产品。因此,您可以访问的sales_flat_quote_item表中没有category_id。

如果您想要访问该产品,您必须循环您的报价项目集合并在每个项目上运行->getProduct()。然后,您可以调用产品上的函数,例如->getCategoryIds(),以获取已分配产品的类别ID列表。