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





modules 2.2 (2)


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

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

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

Я пытаюсь отследить причину редкой ошибки (люблю эти прерывистые ошибки), когда клиент выбирает регистрацию во время проверки, но когда заказ завершен, 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.




На самом деле для этого мало причин.

Form.serialize() прототипа использует другой метод из того же класса, который называется Form.getElements() . Вы можете попробовать следующий код, чтобы узнать, какие элементы передаются из объекта payment.form. Просто переопределите review.save() во время выполнения для цели отладки.

Вы можете вставить следующий код в консоль своего любимого браузера (Chrome, Firefox или Safari):

review.save = review.save.wrap(function (originalMethod) {
    console.log(payment.form); // Check what is in the form object
    console.log(Form.getElements(payment.form)); // Check what items are returned for serializing
    originalMethod(); // Calling original place order functionality to see if the issue occurs, so you can compare above debug info
});

Я думаю, это поможет вам разобраться с проблемой процесса сериализации. Возможно, что форма оплаты каким-то образом пуста, или все элементы в форме были отключены и так далее ...

С уважением, Иван







php mysql magento