Php 为什么Magento在生成ID后无法保存客户?

Php 为什么Magento在生成ID后无法保存客户?,php,mysql,magento,Php,Mysql,Magento,我试图找出一个罕见错误(喜欢那些间歇性错误)的原因,客户在结账时选择注册,但当订单完成时,Magento不知何故未能保存客户记录。这导致没有电子邮件地址的孤立订单,这是一个困难的客户服务情况 以下是我到目前为止的调查结果: adminhtml中的Sales Order视图报告客户是来宾,电子邮件地址为空。账单和发货地址可见 客户是客人在销售订单中为假 sales\u flat\u order条目链接到sales\u flat\u order\u地址中的有效记录 sales\u flat\u o

我试图找出一个罕见错误(喜欢那些间歇性错误)的原因,客户在结账时选择注册,但当订单完成时,Magento不知何故未能保存客户记录。这导致没有电子邮件地址的孤立订单,这是一个困难的客户服务情况

以下是我到目前为止的调查结果:

  • adminhtml中的Sales Order视图报告客户是来宾,电子邮件地址为空。账单和发货地址可见
  • 客户是客人
    销售订单中为假
  • sales\u flat\u order
    条目链接到
    sales\u flat\u order\u地址中的有效记录
    
  • sales\u flat\u order\u address
    记录包含
    customer\u id
    customer\u address\u id
    的值,但是这些链接记录不存在
  • 在客户信息、订购的产品、付款方式方面没有明显的模式
  • 在system.log、exception.log、apache错误日志、var/reports或我知道的任何其他日志中都没有相关条目
想法:

  • 客户保存进展足够快,因此生成了一个ID
  • 在customer_save_上有一个观察器,这会导致保存回滚吗
  • 低级数据库错误导致保存失败
有人对如何追查这件事有什么建议吗


版本是Enterprise 1.9。

我会添加大量额外的日志记录,尝试将其记录得足够好,以捕获错误,并在可以检测到错误时保存这些日志

一旦有了显示bug的日志,就可以更容易地隔离出有问题的代码


为此,您可能需要记录数据库查询,不幸的是,如果数据量很大和/或受到隐私问题的影响,这可能会很棘手。

@Anton-采用何种支付方式似乎无关紧要。有些是Paypal,有些是Cybersource。你使用哪个magento版本?正如我所看到的,客户和订单保存被包装到一个事务中。在删除客户的核心模块中,我没有看到任何关于客户事件后保存的观察者(我发现只有两个观察者参与此事件,他们都在时事通讯模块中)。@Zyava-这是在Enterprise v1.9上-我同意,我也没有看到任何与此相关的客户事件后保存的观察者。我还以为客户保存中的异常也会回滚订单保存…除了这个论坛,我肯定会联系Magento的工作人员。他们对企业版无bug有既得利益。他们至少能为你指明正确的方向。很抱歉,我没有比这更多的内容了。插入项是否分配了任何应该在数据库中自动递增的数字字段?可能是并发问题?使用InnoDB?