0

我遵循了一些建议,将一些数据从一个表复制到数据库上的另一个表,但它不起作用。

根据我收到的关于这个问题的回复:Magento: How to save data to order_payment and quote_payment

我尝试对 Mage/Sales/etc/Config.xml 文件执行以下操作

<sales_convert_order_payment>
            <cc_bankname>
                <to_quote_payment>cc_bankname</to_quote_payment>
            </cc_bankname>
</sales_convert_order_payment>

和这个

<sales_convert_quote_payment>
            <cc_bankname>
                <to_order_payment>cc_bankname</to_order_payment>
            </cc_bankname>
</sales_convert_quote_payment>

但是银行名称仅保存在 sales_flat_quote_payment 表上,而不是 sales_flat_order_payment 表上,这是我需要在订单发票和管理后端的订单/视图下显示此新数据的表。

如果我在数据库中手动输入数据(即银行名称),我可以在需要的地方显示此信息,但我无法跟踪每笔交易以在订单完成时手动输入数据,因为客户可以看到他们的订单详细信息一旦提交,他们将无法查看新数据,直到我自己这样做。

有谁知道为什么数据没有被转移到 sales_fat_order_payment 表?

我创建的新手机号码属性也有同样的问题,但我相信如果我能解决这个问题,那么我应该能够处理所有其他类似的问题。

4

1 回答 1

0

该技术(使用与 Mage 相同的名称命名)不适用于 config.xml。这个怎么运作?你需要阅读 Alanstorm 写的这篇文章http://alanstorm.com/magento_config_declared_modules_tutorial

您需要通过在 app/etc/modules 中定义来创建自己的模块(当然,您应该将其命名为 Mage 以外的名称)。

例如: app/etc/modules/Test_Sales.xml

内容:

<?xml version="1.0"?>
<config>
    <modules>
        <Test_Sales>
            <active>true</active>
            <codePool>local</codePool>
        </Test_Sales>
    </modules>
</config>

app/code/local/Test/Sales/etc/config.xml-> 在这里定义你的新配置

在旧版本的 magento 中,销售订单以 eav 类型存储。在更高版本中,它已被扁平化。看名字:sales_flat_quote_payment,sales_flat_order_payment

Magento 始终保持其数据向后兼容,这就是它cc_ownereav_attribute.

在您的情况下,您不需要在其中创建新值eav_attribute(您只需要cc_bankname在其中添加列sales_flat_quote_paymentsales_flat_order_payment我很确定您已经创建了该列)。

正如您之前所说,它没有保存到的sales_flat_order_payment问题是因为缓存问题(Magento 缓存了 config.xml 所以你需要刷新它System > Cache Management > Configuration

于 2012-08-17T16:34:12.097 回答