gpt4 book ai didi

magento - 在 magento 1.7.0.2 中将客户名称添加到订单网格中

转载 作者:行者123 更新时间:2023-12-02 11:19:30 26 4
gpt4 key购买 nike

我正在尝试在位于此处的销售订单网格中为客户名称添加一个新:

App/code/local/Mage/Adminhtml/Block/Sales/Order/Grid.php

我想添加客户名称,例如“管理客户”中的“名称”。

我添加了以下代码:

protected function _getCollectionClass()
{
return 'sales/order_grid_collection';
}

protected function _prepareCollection()
{
$collection = Mage::getResourceModel($this->_getCollectionClass());
/*junpeng add start*/

$collection->getSelect()
->join(
'customer_entity',
'main_table.customer_id = customer_entity.entity_id', array('email' => 'email'));

$collection->getSelect()->join(
'customer_entity_varchar',
'main_table.entity_id = customer_entity_varchar.entity_id', array('name' => 'value')
);

/*junpeng add end*/
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns()
{
$this->addColumn('name', array(
'header' => Mage::helper('sales')->__('Customer Name'),
'index' => 'name',
));

$this->addColumn('email', array(
'header' => Mage::helper('Sales')->__('Customer Email'),
'index' => 'email',
'type' => 'text',
));
}

客户电子邮件可以,但添加客户名称不起作用!

有人可以帮我解决这个问题吗?

最佳答案

您无法仅通过一行代码连接获取客户名称。名字和姓氏是不同的属性,您需要将它们与原始集合连接起来,然后连接它们以显示为全名。

所以基本上,替换

$collection->getSelect()->join(
'customer_entity_varchar',
'main_table.entity_id = customer_entity_varchar.entity_id', array('name' => 'value')
);

使用此代码

$fn = Mage::getModel('eav/entity_attribute')->loadByCode('1', 'firstname');
$ln = Mage::getModel('eav/entity_attribute')->loadByCode('1', 'lastname');
$collection->getSelect()
->join(array('ce1' => 'customer_entity_varchar'), 'ce1.entity_id=main_table.customer_id', array('firstname' => 'value'))
->where('ce1.attribute_id='.$fn->getAttributeId())
->join(array('ce2' => 'customer_entity_varchar'), 'ce2.entity_id=main_table.customer_id', array('lastname' => 'value'))
->where('ce2.attribute_id='.$ln->getAttributeId())
->columns(new Zend_Db_Expr("CONCAT(`ce1`.`value`, ' ',`ce2`.`value`) AS customer_name"));

并将您获取客户名称的 _prepareColumns 方法中的 addColumn('name', 代码替换为:

$this->addColumn('customer_name', array(
'header' => Mage::helper('sales')->__('Customer Name'),
'index' => 'customer_name',
'filter_name' => 'customer_name'
));

关于magento - 在 magento 1.7.0.2 中将客户名称添加到订单网格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com