Magento:无法在DB上的多个表上保存数据

时间:2012-08-16 20:44:58

标签: magento sales

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

根据我在此问题上收到的回复: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表?

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

1 个答案:

答案 0 :(得分: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 - &gt;在这里定义你的新配置

在旧版magento中,销售订单以eav类型存储。 在更高版本中,它已经变平了。 查看名称:sales_flat_quote_paymentsales_flat_order_payment

Magento始终保持其数据向后兼容,这就是cc_owner中属性名称为eav_attribute的原因。

在您的情况下,您无需在eav_attribute中创建新值(只需在cc_banknamesales_flat_quote_payment中添加列sales_flat_order_payment即可很确定你已经创建了。)

正如您之前所说,未将其保存到sales_flat_order_payment的问题是由于缓存问题(Magento缓存了config.xml,因此您需要刷新它System > Cache Management > Configuration