Estou usando o Magento 1.9.1 e, ao criar um novo pedido, seja do front-end ou do administrador, o sistema está enviando 2 e-mails - ambos iguais!
Eu olhei na net e encontrei um bug que era antigo e não consegui encontrar o código mencionado para comentar, também parecia que isso estava relacionado aos pedidos do Paypal e esse não é o caso.
Desativei TODAS as extensões e tentei e ainda tinha o mesmo problema, por isso estou confiante de que não é um problema de extensão.
magento-1.9
orders
ce-1.9.1.0
transactional-mail
Christopher Thrower
fonte
fonte
Respostas:
Esse problema deve estar relacionado ao novo sistema Magento Email Queue, que deixa registros órfãos na tabela Destinatários. Se este for o seu problema, eu lhe envio uma correção.
O novo sistema Magento Email Queue gerencia essas duas tabelas: core_email_queue e core_email_queue_recipients . O primeiro lida com as Mensagens de e-mail e o último, os Destinatários dessas mensagens.
A tabela core_email_queue é limpa à medida que os emails na Fila de email do Magento são enviados. Essa limpeza é realizada por um trabalho da guia cron chamado core_email_queue_clean_up , definido dentro do arquivo de configuração app / code / core / Mage / Core / etc / config.xm l. O código que executa a limpeza é definido na função removeSentMessages na classe Mage_Core_Model_Resource_Email_Queue :
O código acima é executado uma vez por dia pela tarefa cron.
Mas acontece que a tabela core_email_queue_recipients (aquela que contém destinatários de email e que está vinculada à tabela core_email_queue pelo campo message_id ) não é limpa junto com a tabela core_email_queue (aquela que contém as mensagens de email), deixando registros órfãos dentro tabela Destinatários quando a tabela Mensagem for limpa.
O problema descrito aqui surge quando a tabela core_email_queue (Messages) é redefinida e o campo autoincrement message_id nesta tabela é reiniciado para 1.
Como a tabela core_email_queue_recipients (Destinatários) não foi limpa adequadamente, quando novos emails são adicionados à Fila de E-mail Magento, novos registros são criados na tabela core_email_queue (com message_id iniciando novamente em 1) e, ao mesmo tempo, novos registros são criados na tabela core_email_queue_recipients com esses mesmos IDs (começando novamente em 1).
O problema é que esses IDs podem já existir na tabela Destinatários como registros órfãos (devido a mensagens de email anteriores). Esses novos IDs de mensagens são repetidos dentro da tabela core_email_queue_recipients . No final, diferentes mensagens de email são vinculadas aos seus destinatários correspondentes pelo message_id , mas também são incorretamente vinculadas aos destinatários anteriores aos quais foi atribuído o mesmo message_id dos emails anteriores.
Assim, quando os destinatários são procurados para enviar uma determinada mensagem, além do destinatário apropriado, outros destinatários errados podem surgir.
Felizmente, a correção para esse problema é fácil de executar.
Tudo o que é necessário é limpar todos os IDs de mensagens repetidas na tabela core_email_queue_recipients e garantir que, quando uma mensagem for excluída na tabela core_email_queue , ao mesmo tempo, seus destinatários correspondentes sejam excluídos na tabela core_email_queue_recipients .
A melhor maneira de conseguir isso é criar uma chave estrangeira que vincule esses registros e os exclua em cascata (mas é necessário fazer uma limpeza antes de fazer isso).
Este é o procedimento para corrigir o problema:
1) Execute as duas consultas SQL a seguir para limpar a tabela core_email_queue_recipients dos registros órfãos e dos IDs de mensagens repetidas:
A primeira consulta exclui registros órfãos e a segunda exclui registros antigos que não são mais válidos.
2) Crie uma chave estrangeira na tabela core_email_queue_recipients para excluir os registros de destinatários em cascata. A consulta SQL para criar essa chave estrangeira é:
Ao usar essa nova chave estrangeira, nenhum registro órfão será deixado na tabela core_email_queue_recipients ao limpar a tabela core_email_queue , e nenhuma mensagem duplicada para destinatários errados será enviada no futuro.
fonte
Eu tive o mesmo problema. Para cada pedido, eu recebia o email do cliente e um email separado no endereço da minha loja - ambos na caixa de correio da minha conta de email da loja.
No Magento Admin: Sistema> Configuração> E-mails de Vendas> Pedido
Eu configurei o email "Método de cópia de email para pedido de envio" de "Email separado" para "Cco", e ele funciona agora. Agora estou recebendo apenas um e-mail por pedido.
fonte
Eu tive o mesmo problema. No meu caso, o problema foi causado pelo código fonte do script cron.sh.
Meu provedor de hospedagem usou suas próprias versões dos scripts cron.sh e cron.php para o Magento cron-job.
Quando mudei do script cron.sh para o script cron.php para iniciar o Magento-Cron-Job, o novo e-mail de ordem foi enviado apenas uma vez, meu problema foi resolvido.
Talvez seu problema tenha algo a ver com o código do script cron.sh ou cron.php .
fonte