Php 如何在magento中将自定义列添加到销售订单网格以显示自定义产品属性
大家好,我想在销售订单网格中添加一列,以显示exp:color产品的自定义属性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(
非常感谢您的帮助。步骤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