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

标签 php mysql magento

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

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

  • adminhtml 中的销售订单 View 报告客户是访客并且电子邮件地址为空白。帐单和送货地址是可见的。
  • customer_is_guestsales_flat_order
  • 中为假
  • sales_flat_order 条目链接到 sales_flat_order_address 中的有效记录。
  • sales_flat_order_address 记录包含 customer_idcustomer_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/

相关文章:

php - paypal 付款在 magento 中不可见结帐页面

php - 使用 foreach 循环使用 move_uploaded_file() 函数上传多个文件

php - 如何将自定义字段添加到 IPB 中的表单

c# - 随机无法连接到本地MySQL?

java - MyEclipse Enterprise Workbench 10 确实非常非常慢

mysql - 部分退款如何存储在 WooCommerce 数据库中?

php - 查询 MySQL 表

php - 从数据库表中选择特定字段

Magento:在管理运输模块中获取国家/地区的区域列表

xml - 自定义模块中的 Magento Layout xml 不起作用