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

how to add a custom column to sales order grid in magento to show custom product attribute

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

第 1 步:- 复制 app\code\core\Mage\Adminhtml\Block\Sales\Order\grid。php 到 app\code\local\Mage\Adminhtml\Block\Sales\Order\grid.php 查找受保护的函数 _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;      
    }       
}