Por que o Magento não conseguiu salvar um cliente depois de gerar uma ID?

Estou tentando rastrear a causa de um erro raro (adoro esses erros intermitentes), onde um cliente seleciona para Registrar no momento do check-out, mas quando o pedido é concluído, o Magento de alguma maneira não consegue salvar o registro do cliente. Isso resulta em um pedido órfão sem endereço de e-mail, uma difícil situação de atendimento ao cliente.

Aqui estão os resultados das minhas investigações até agora:

  • A Exibição da ordem do cliente no adminhtml informa que o cliente é convidado e o endereço de e-mail está em branco. Os endereços de cobrança e envio são visíveis.
  • customer_is_guest é falso em sales_flat_order
  • A input sales_flat_order liga para um registro válido em sales_flat_order_address .
  • O registro sales_flat_order_address contém valores para customer_id e customer_address_id no entanto, esses registros vinculados não existem.
  • Não existe um padrão discernível na informação do cliente, produtos encomendados, methods de pagamento.
  • Não há inputs relevantes em system.log, exception.log, logs de erro de apache, var / reports ou quaisquer outros registros que eu conheço.

Pensamentos:

  • o saldo do cliente está avançando o suficiente para gerar uma ID.
  • há um observador em customer_save_after que está causando uma reversão da gravação?
  • um erro de database de baixo nível está fazendo com que o salvamento falhe.

Alguém tem alguma sugestão sobre como rastrear isso?

A versão é Enterprise 1.9.

Eu adicionaria um monte de log extra, tente registrá-lo bem o suficiente para capturar o bug – e salvar esses logs se o bug puder ser detectado.

Depois de ter logs que mostram o bug, você pode isolar o código problemático mais facilmente.

Para isso, talvez você precise registrar as consultas do database, o que, infelizmente, pode ser complicado se o volume de dados estiver alto e / ou sujeito a preocupações de privacidade.