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

2022-08-30 10:37:48

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

以下是我迄今为止的调查结果:

  • adminhtml 中的销售订单视图报告客户是来宾,电子邮件地址为空。帐单和送货地址可见。
  • customer_is_guest在 中为假sales_flat_order
  • 该条目链接到 中的有效记录。sales_flat_ordersales_flat_order_address
  • 该记录包含 的值,但这些链接的记录不存在。sales_flat_order_addresscustomer_idcustomer_address_id
  • 在客户信息,订购的产品,付款方式中没有明显的模式。
  • 在system.log,exception.log,apache错误日志,var/reports或我所知道的任何其他日志中没有相关条目。

思潮:

  • 客户保存的进度足够大,可以生成一个ID。
  • customer_save_after上有一个观察者导致保存回滚?
  • 低级数据库错误导致保存失败。

有没有人对如何追踪它有任何建议?

版本为企业版 1.9。


答案 1

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

一旦有显示 Bug 的日志,就可以更轻松地隔离有问题的代码。

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


答案 2

推荐