【发布时间】:2012-08-16 20:44:57
【问题描述】:
我遵循了一些建议,将一些数据从一个表复制到数据库上的另一个表,但它不起作用。
根据我收到的关于这个问题的回复: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 表中?
我在创建新的手机号码属性时遇到了同样的问题,但我相信如果我能解决这个问题,那么我应该能够处理所有其他类似的问题。
【问题讨论】:
-
属性有自己的表(我相信是eav_attribute)...你的属性值保存在那里吗??
-
是的,我的新自定义属性设置在 eav_attribute 表上,就像其他相同性质的属性一样。我的意思是 cc_owner (默认情况下与信用卡所有者名称的 magento 一起安装)和我的自定义属性 cc_bankname 都列出了。现在客户使用信用卡付款时输入的新数据应保存到 sales_flat_quote_payment 和 sales_flat_order_payment 但正如我之前提到的,我的自定义属性 cc_bankname 仅将银行名称保存到 sales_flat_quote_payment 而不像 cc_owner 保存到两个表.
-
您是否已经尝试过
<to_order_payment>*</to_order_payment>,即使用*而不是cc_name作为节点值? -
@JürgenThelen 是的,我已经用 * 和样本上的值本身进行了尝试。无论哪种方式,我都会得到相同的结果。我什至尝试编辑 core/mage/sales/etc/config.xml 以查看它是否是我的本地/mage 文件没有被我的 Magento 拾取,但它仍然不起作用。
-
我会检查
Mage_Sales_Model_Convert_Quote::paymentToOrderPayment()是否真的会被调用。如果是这样,请打开调试器和单一跟踪以查找问题。如果没有调用该方法,请检查您的付款方式代码为什么它没有调用转换方法。