首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Magento管理员添加搜索字段

问向Magento管理员添加搜索字段
EN

Stack Overflow用户
提问于 2013-01-15 08:35:28
回答 2查看 1.3K关注 0票数 0

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

​

​

我可以将这些数据从Magento DB中提取出来,但我真的很想将此功能添加到Magento管理中,使同事和我的老板更轻松。这可以做到吗?如果可以,我可以从哪里开始呢?谢谢你们。

EN

回答 2

Stack Overflow用户

发布于 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方法:

代码语言:javascript
复制
    $this->addColumn('coupon_code', array(
        'header' => Mage::helper('sales')->__('Coupon Code'),
        'index' => 'coupon_code',
    ));

如果你是Magento开发的新手,我敢说我才刚刚开始帮助你。但是,您将有大量的参考点可供深入挖掘并构建所需的功能。HTH!:)

票数 1
EN

Stack Overflow用户

发布于 2013-01-15 15:39:33

使用这个扩展向网格添加新列很容易:https://github.com/magento-hackathon/GridControl

添加这个扩展,在您的etc目录中使用gridcontrol.xml编写自己的扩展

然后,像这样的东西应该会起作用:

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14329320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档