Php 如何在magento中将自定义列添加到销售订单网格以显示自定义产品属性

Php 如何在magento中将自定义列添加到销售订单网格以显示自定义产品属性,php,magento,magento-1.8,Php,Magento,Magento 1.8,大家好,我想在销售订单网格中添加一列,以显示exp:color产品的自定义属性 非常感谢您的帮助。步骤1:-复制app\code\core\Mage\Adminhtml\Block\Sales\Order\grid.php 到 app\code\local\Mage\Adminhtml\Block\Sales\Order\grid.php 查找受保护的函数\u prepareColumns 要添加列,请使用以下代码:- $this->addColumn('color ', array(

大家好,我想在销售订单网格中添加一列,以显示exp:color产品的自定义属性
非常感谢您的帮助。

步骤1:-复制app\code\core\Mage\Adminhtml\Block\Sales\Order\grid.php 到 app\code\local\Mage\Adminhtml\Block\Sales\Order\grid.php 查找受保护的函数\u prepareColumns 要添加列,请使用以下代码:-

$this->addColumn('color ', array(
    'header' => Mage::helper('sales')->__('color #'),
    'index' => 'color',
     'sortable'  => false,
            'filter'    => false,
    'renderer' => 'Mage_Adminhtml_Block_Sales_Order_Renderer_Productatt',
));
步骤2:-在以下位置创建新文件:-

app\code\local\Mage\Adminhtml\Block\Sales\Order\Renderer\Productatt.php 添加此代码:-

class Mage_Adminhtml_Block_Sales_Order_Renderer_Productatt extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract { public function render(Varien_Object $row) { $order = Mage::getModel('sales/order')->load($row->getData('entity_id')); $attribute =""; foreach($order->getAllVisibleItems() as $_item){ $product = Mage::getModel('catalog/product')->load($_item->getProductId()); if($product->getAttributeText('color')){ $attribute .= $product->getAttributeText('color'); } } unset($order); return $attribute; } }
覆盖Mage_Adminhtml_Block_Sales_Order_网格,您可以设置网格集合和列。添加列并在集合$this->addColumn'color',array'header'=>Mage::helper'sales'->\uuuu'color',width'=>80',name'=>color',index'=>color',中设置值;我收到以下错误:-SQLSTATE[42S22]:未找到列:“order子句”中的1054未知列“color”,查询是:选择主表。*从sales_flat_order_grid作为主表order BY color ASC LIMIT 20是的,您必须获得颜色列结果并设置为集合。Hello@user3040610我如何在集合中设置值请帮助我我是magento新手谢谢。检查此链接我可以知道如何解决此错误,致命错误:未捕获错误:在第1385行的C:\wamp\www\anc\app\code\core\Mage\Catalog\Model\Product.php中调用成员函数getSource on boolean