我的产品中有一个自定义属性,我希望它出现在订单网格中,该属性被添加到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',
));
如果我取消注释制造商部件,我会收到错误
答案 0 :(得分:0)
项目不等同于产品。如果要获取项目中产品的属性,则需要调用$ item-> getProduct()函数以获取未在项目中定义的产品的所有属性。
然后,您需要将它应用于您的收藏。为此,您可以使用集合对象的函数walk在每个元素上应用函数。在我看来,问题在于,您需要循环遍历订单集合,然后在项目集合上循环以获取所需的属性。
另一种解决方案是遵循custom prdoduct's attribute to quote/order item的建议。这意味着该属性将一直添加到所有项目中,但可以像sku一样...
希望它有所帮助,