Magento – 将自定义属性(列)添加到sales_order索引网格

Magento – 将自定义属性(列)添加到sales_order索引网格,第1张

概述我已经在sales_order_flat表中添加了一个自定义属性,我试图在sales_order / index的网格中显示这个属性. 我已成功完成了客户属性,但在使用订单数据尝试相同的 *** 作时遇到错误. <global> <blocks> <adminhtml> <rewrite> <sales_order_grid> 我已经在sales_order_flat表中添加了一个自定义属性,我试图在sales_order / index的网格中显示这个属性.

我已成功完成了客户属性,但在使用订单数据尝试相同的 *** 作时遇到错误.

<global>    <blocks>        <adminHTML>            <rewrite>                <sales_order_grID>WACI_adminHTMLExt_Block_Sales_Order_GrID</sales_order_grID>            </rewrite>        </adminHTML>    </blocks> <!-- etc  -->

应用程序/代码/本地/命名空间/模块/块/销售/订单/ GrID.PHP

class WACI_adminHTMLExt_Block_Sales_Order_GrID extends Mage_adminHTML_Block_Sales_Order_GrID{    protected function _prepareColumns()    {        $this->addColumn('dynamics_ord',array(            'header'    => $this->__('Dynamics ID'),'wIDth'     => '75px','index'     => 'dynamics_ord',));        $this->addColumnsOrder('dynamics_ord','entity_ID');        return parent::_prepareColumns();    }}

我看到_prepareCollection是sometimes used,但我试图在setCollection期间修改集合,如果没有其他的话,简单.

无论如何,列都会显示,但不会生成任何数据. (当我尝试排序时页面错误).

有什么想法吗?

更新

这篇文章是this SO thread的扩展我已更新它以匹配模块的当前状态.也就是说,我正在为sales_flat_order和sales_flat_order_grID添加列.

从那篇文章中,我有一个动作来设置这个属性值(在订单完成之后).

我现在的问题是 – updateGrIDRecords()如何发挥作用?

=> updateGrIDRecords似乎在调用$order-> save()时自动调用(我在订单完成后手动完成).

如果我理解正确,因为我没有从任何其他模型中提取数据,所以_prepareColumns调用就是所需要的.

=>是的.保存attr后正确显示和排序.赢得!

解决方法 客户收集和订单网格集合之间的区别在于客户集合是从Mage_Eav_Model_Entity_Collection_Abstract派生的,而sales_flat_order_grID集合是从Mage_Sales_Model_Resource_Abstract派生的,而非EAV.

因此您无法添加要选择的属性,就像您通常可以使用EAV一样 – 您要使用的所有属性必须表示为平面表中的表列.

您正在调用的函数addAttributetoSelect在Mage_Sales_Model_Resource_Collection_Abstract类中实现,并在后台使用addFIEldToSelect,因此在您的情况下,您应该在sales_flat_order_grID表中有一个名为dynamics_ord的列.

将属性值从订单EAV移动到订单网格的功能是Mage_Sales_Model_Resource_Order_Abstract :: updateGrIDRecords,此函数读取sales_flat_order_grID表的结构以了解应将哪些属性写入sales_flat_order_grID表,因此如果缺少dynamics_ord列,则必须将其添加到您的模块的安装脚本.

我遇到了关于如何在安装脚本中添加列然后将其添加到网格的this堆栈溢出解决方案.答案有点过时,但我认为它可行.

我还发现了this开箱即用的解决方案,关于如何添加将在订单网格上使用但尚未测试的属性,因此我无法确定它是否有效.

总结

以上是内存溢出为你收集整理的Magento – 将自定义属性(列)添加到sales_order索引网格全部内容,希望文章能够帮你解决Magento – 将自定义属性(列)添加到sales_order索引网格所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存