Magento:为订单网格添加自定义属性

时间:2014-06-25 12:25:10

标签: magento

我的产品中有一个自定义属性,我希望它出现在订单网格中,该属性被添加到mg_catalog_product_flat_1表中但是当我尝试进行上述连接时出现错误,所有其他内置属性如名称,sku工作正常,我怎么能完成这件事

请检查下面的代码

$collection->join(
                'sales/order_item',
                '`sales/order_item`.order_id=`main_table`.entity_id',

                array(

                    'Productid'  => new Zend_Db_Expr('group_concat(`sales/order_item`.product_id SEPARATOR ",")'),
                    //'manufacturer'  => new Zend_Db_Expr('group_concat(`sales/order_item`.manufacturer_value SEPARATOR ",")'),
                    'name'  => new Zend_Db_Expr('group_concat(`sales/order_item`.name SEPARATOR ",")'),
                    )

                );

        $collection->getSelect()->group('main_table.entity_id');

        parent::setCollection($collection);

$this->addColumn('manufacturer', array(
            'header'    => Mage::helper('sales')->__('manufacturer'),
            'width'     => '100px',
            'index'     => 'manufacturer',
            'type'        => 'text',

        ));

如果我取消注释制造商部件,我会收到错误

1 个答案:

答案 0 :(得分:0)

项目不等同于产品。如果要获取项目中产品的属性,则需要调用$ item-> getProduct()函数以获取未在项目中定义的产品的所有属性。

然后,您需要将它应用于您的收藏。为此,您可以使用集合对象的函数walk在每个元素上应用函数。在我看来,问题在于,您需要循环遍历订单集合,然后在项目集合上循环以获取所需的属性。

另一种解决方案是遵循custom prdoduct's attribute to quote/order item的建议。这意味着该属性将一直添加到所有项目中,但可以像sku一样...

希望它有所帮助,