如何将自定义列添加到 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;
}
}
大家好,我想在销售订单网格中添加一列来显示 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; } }