Почему 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.
Ответы
Ответ 1
Я бы добавил много дополнительных протоколов, попробуйте записать их достаточно хорошо, чтобы захватить ошибку - и сохранить эти журналы, если ошибка может быть обнаружена.
После того, как у вас есть журналы, которые показывают ошибку, вы можете более легко изолировать проблемный код.
Для этого вам может потребоваться зарегистрировать запросы к базе данных, которые, к сожалению, могут быть сложными, если объем данных высок и/или подвержен проблемам конфиденциальности.