Подтвердить что ты не робот

Почему Magento не смог сохранить клиента после создания идентификатора?

Я пытаюсь отследить причину редкой ошибки (любите эти прерывистые ошибки), когда клиент выбирает зарегистрироваться во время проверки, но когда заказ будет завершен, Magento каким-то образом не сможет сохранить запись клиента. Это приводит к сиротскому заказу без адреса электронной почты, к сложной ситуации с обслуживанием клиентов.

Вот результаты моих исследований:

  • Просмотр заказа клиента в adminhtml сообщает, что клиент является Гостем, а адрес электронной почты пуст. Адреса биллинга и доставки видны.
  • customer_is_guest false в 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 и других журналах нет соответствующих записей.

Мысли:

  • сохранение клиента продвигается достаточно далеко, чтобы создать идентификатор.
  • есть наблюдатель на customer_save_after, который вызывает откат сохранения?
  • ошибка базы данных низкого уровня приводит к сбою сохранения.

Есть ли у кого-нибудь предложения о том, как отслеживать это?

Версия - это Enterprise 1.9.

4b9b3361

Ответ 1

Я бы добавил много дополнительных протоколов, попробуйте записать их достаточно хорошо, чтобы захватить ошибку - и сохранить эти журналы, если ошибка может быть обнаружена.

После того, как у вас есть журналы, которые показывают ошибку, вы можете более легко изолировать проблемный код.

Для этого вам может потребоваться зарегистрировать запросы к базе данных, которые, к сожалению, могут быть сложными, если объем данных высок и/или подвержен проблемам конфиденциальности.