在Magento的销售网格中添加“用户组”列
令人惊讶的是Magento后台的“Sales > Orders”和“Sales > Orders > Create New Order” 网格里没有“用户组”这一列。为什么我们需要这一列呢?也许你需要在网格中列出/筛选“经销商”组支付的订单。也许你能够筛选 “Sales > Orders > Create New Order” 网格通过在创建订单前的用户组来查看“经销商”客户数量。
默认情况下“Sales > Orders” 网格使用“sales_flat_order_grid”进行渲染。这个表基本上是“sales_flat_order”表的冗余子组。令人惊讶的是“sales_flat_order” 表里有“customer_group_id”列,而“sales_flat_order_grid”表中没有。所以我们第一步就是要添加“customer_group_id”列到“sales_flat_order_grid”表中。
我们通过一个类似这样的简单升级脚本来实现:
$installer->getConnection()
->addColumn($installer->getTable('sales/order_grid'), 'customer_group_id', array(
'TYPE' => Varien_Db_Ddl_Table::TYPE_SMALLINT,
'NULLABLE' => false,
'DEFAULT' => '0',
'COMMENT' => 'Customer Group'
));
如果这个安装/升级脚本执行成功,我们就会在“sales_flat_order_grid”表中看到“customer_group_id”列。注意,Magento会在新订单保存时自动填充“sales_flat_order_grid.customer_group_id”中的数据。
然后我们将重写Mage_Adminhtml_Block_Sales_Order_Grid和Mage_Adminhtml_Block_Sales_Order_Create_Customer_Grid。但只做些小的修改来让我们的“Customer Group”显示。
我们通过config.xml来添加合适的入口:
<global>
<blocks>
<adminhtml>
<rewrite> <sales_order_create_customer_grid>Mycompany_Myextension_Block_Adminhtml_Sales_Order_Create_Customer_Grid</sales_order_create_customer_grid>
<sales_order_grid>Mycompany_Myextension_Block_Adminhtml_Sales_Order_Grid</sales_order_grid>
</rewrite>
</adminhtml>
</blocks>
</global>
最后,添加重写模块
<?php
class Mycompany_Myextension_Block_Adminhtml_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid
{
protected function _prepareColumns()
{
$groups = Mage::getResourceModel('customer/group_collection')
->addFieldToFilter('customer_group_id', array('gt'=> 0))
->load()
->toOptionHash();
$this->addColumn('customer_group_id', array(
'header' => Mage::helper('customer')->__('Customer Group'),
'width' => '100',
'index' => 'customer_group_id',
'type' => 'options',
'options' => $groups,
));
$this->addColumnsOrder('customer_group_id', 'shipping_name');
return parent::_prepareColumns();
}
}
<?php
class Mycompany_Myextension_Block_Adminhtml_Sales_Order_Create_Customer_Grid extends
Mage_Adminhtml_Block_Sales_Order_Create_Customer_Grid
{
protected function _prepareColumns()
{
$groups = Mage::getResourceModel('customer/group_collection')
->addFieldToFilter('customer_group_id', array('gt'=> 0))
->load()
->toOptionHash();
$this->addColumn('group', array(
'header' => Mage::helper('customer')->__('Group'),
'width' => '100',
'index' => 'group_id',
'type' => 'options',
'options' => $groups,
));
$this->addColumnsOrder('group', 'email');
return parent::_prepareColumns();
}
}
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:Magento中创建简单的社交链接 下一篇:在Magento中自定义路由器