【发布时间】:2011-08-31 18:14:03
【问题描述】:
我正在尝试追查一个罕见错误(喜欢那些间歇性错误)的原因,客户在结账时选择注册,但是当订单完成时,Magento 不知何故无法保存客户记录。这导致了一个没有电子邮件地址的孤儿订单,这是一个困难的客户服务情况。
以下是我目前的调查结果:
- adminhtml 中的销售订单视图报告客户是访客并且电子邮件地址为空白。帐单和送货地址是可见的。
-
customer_is_guest在sales_flat_order中为假 -
sales_flat_order条目链接到sales_flat_order_address中的有效记录。 -
sales_flat_order_address记录包含customer_id和customer_address_id的值,但是这些链接的记录不存在。 - 客户信息、订购的产品、付款方式中没有明显的模式。
- system.log、exception.log、apache 错误日志、var/reports 或我知道的任何其他日志中没有相关条目。
想法:
- 客户保存进度已足够生成 ID。
- customer_save_after 上有一个观察者导致保存回滚?
- 低级数据库错误导致保存失败。
有人对如何追踪此问题有任何建议吗?
版本是 Enterprise 1.9。
【问题讨论】:
-
@Anton - 使用何种付款方式似乎并不重要。有些是 Paypal,有些是 Cybersource。
-
您使用哪个 magento 版本?正如我所看到的,客户和订单保存被包含在一笔交易中。而且我在删除客户的核心模块中没有看到任何关于 customer_save_after 事件的观察者(我发现这个事件只有 2 个观察者,他们都在时事通讯模块中)。
-
@Zyava - 这是在 Enterprise v1.9 上 - 我同意,我也没有看到任何相关的 customer_save_after 观察者。我还以为客户保存中的异常也会回滚订单保存...
-
除了这个论坛,我肯定会联系 Magento 的工作人员。他们对没有错误的企业版有既得利益。他们至少可以为您指明正确的方向。对不起,我没有比这更多的东西了。
-
插入是否分配了任何应该在数据库上自动递增的数字字段?也许一些并发问题?使用 InnoDB?