我正在尝试追查一个罕见错误(喜欢那些间歇性错误)的原因,客户在结账时选择注册,但是当订单完成时,Magento 不知何故无法保存客户记录。这导致了一个没有电子邮件地址的孤儿订单,这是一个困难的客户服务情况。
以下是我目前的调查结果:
- adminhtml 中的销售订单 View 报告客户是访客并且电子邮件地址为空白。帐单和送货地址是可见的。
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。
最佳答案
我会添加大量额外的日志记录,尝试将其记录到足以捕获错误 - 并在可以检测到错误时保存这些日志。
一旦您拥有显示错误的日志,您就可以更轻松地隔离有问题的代码。
为此,您可能需要记录数据库查询,不幸的是,如果数据量很大和/或存在隐私问题,这可能会很棘手。
关于php - 为什么 Magento 在生成 ID 后无法保存客户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107850/