有没有办法在Magento管理员的"Orders“下添加一个新的搜索字段?我希望能够按优惠券代码使用情况进行搜索(例如:按优惠券代码搜索:"sale2013",在结账时列出应用该优惠券代码的所有订单)。

我可以将这些数据从Magento DB中提取出来,但我真的很想将此功能添加到Magento管理中,使同事和我的老板更轻松。这可以做到吗?如果可以,我可以从哪里开始呢?谢谢你们。
发布于 2013-01-15 09:41:11
结账时使用的优惠券代码存储在客户结账时的主订单表(sales_flat_order)中。如果没有值,则没有使用优惠券代码。但是,管理中网格的数据来自sales_flat_order_grid表;出于性能原因,它来自那里,而不是主要的order表,这在流量非常大的站点上尤为明显。
现在我们知道了需要过滤的数据在哪里,以及网格的数据来自哪里,我们可以继续构建它!
您需要做的第一件事是向sales_flat_order_grid表添加一个coupon_code列,该列与sales_flat_order表上的列的定义相匹配。一旦存在匹配的列并且刷新了缓存,sales_flat_order的coupon_code列中的值就会自动填充到sales_flat_order_grid中。
数据在订单保存时更新,因此,具体地说,新订单和通过管理员更新的订单(甚至订单上的注释)都将填充数据。对于现有订单,运行数据升级脚本以复制值。
在数据/模式就位之后,您需要让网格为其显示一个可过滤的列。为此,您需要从自定义模块重写Mage_Adminhtml_Block_Sales_Order_Grid类(请不要直接编辑核心文件,它将在以后困扰您),并使用包含列定义的方法覆盖_prepareColumns方法:
$this->addColumn('coupon_code', array(
'header' => Mage::helper('sales')->__('Coupon Code'),
'index' => 'coupon_code',
));如果你是Magento开发的新手,我敢说我才刚刚开始帮助你。但是,您将有大量的参考点可供深入挖掘并构建所需的功能。HTH!:)
发布于 2013-01-15 15:39:33
使用这个扩展向网格添加新列很容易:https://github.com/magento-hackathon/GridControl
添加这个扩展,在您的etc目录中使用gridcontrol.xml编写自己的扩展
然后,像这样的东西应该会起作用:
<?xml version="1.0"?>
<gridcontrol>
<grids>
<order.grid>
<coupon_code>
<after>columnname</after>
<add>
<header>Coupon code</header>
<type>text</type>
<index>coupon_code</index>
<joinField>coupon_code|sales/order|coupon_code|entity_id=entity_id||left</joinField>
</add>
</coupon_code>
</order.grid>
</grids>
</gridcontrol>https://stackoverflow.com/questions/14329320
复制相似问题