Я использую Magento 1.9.1 и при создании нового заказа, будь то от внешнего интерфейса или от администратора, система отправляет 2 электронных письма - оба одинаковые!
Я посмотрел в сети и обнаружил ошибку, которая была старой, и я не смог найти код, упомянутый для комментирования; похоже, это было связано с заказами Paypal, а это не так.
Я отключил ВСЕ расширения и попробовал, но у меня все еще была та же проблема, поэтому я уверен, что это не проблема с расширениями.
magento-1.9
orders
ce-1.9.1.0
transactional-mail
Кристофер Метатель
источник
источник
Ответы:
Эта проблема должна быть связана с новой системой Magento Email Queue, которая оставляет бесхозные записи в таблице получателей. Если это ваша проблема, я отправлю вам исправление.
Новая система Magento Email Queue управляет этими двумя таблицами: core_email_queue и core_email_queue_recipients . Первый обрабатывает сообщения электронной почты, а второй - Получатели этих сообщений.
Таблица core_email_queue очищается при отправке электронных писем в почтовой очереди Magento. Эта очистка выполняется заданием cron с именем core_email_queue_clean_up , которое определено в файле конфигурации app / code / core / Mage / Core / etc / config.xm l. Код , который выполняет очистку , определенные на removeSentMessages функционировать в Mage_Core_Model_Resource_Email_Queue класса:
Приведенный выше код выполняется один раз в день задачей cron.
Но бывает так, что таблица core_email_queue_recipients (та, которая содержит получателей электронной почты и связана с таблицей core_email_queue полем message_id ), не очищается вместе с таблицей core_email_queue (которая содержит сообщения электронной почты), оставляя записи-сироты внутри эта таблица получателей, когда таблица сообщений очищается.
Описанная здесь проблема возникает, когда таблица core_email_queue (сообщения) сбрасывается, и поле message_id автоинкремента в этой таблице повторно устанавливается на 1.
Поскольку таблица core_email_queue_recipients (Recipients) не была соответственно очищена, при добавлении новых электронных писем в очередь электронной почты Magento новые записи создаются в таблице core_email_queue (с message_id, начинающимся снова с 1), и в то же время создаются новые записи в таблице core_email_queue_recipients с теми же идентификаторами (начиная с 1).
Проблема в том, что эти идентификаторы могут уже существовать в таблице получателей в виде записей сирот (из-за предыдущих сообщений электронной почты). Эти новые идентификаторы сообщений затем повторяются в таблице core_email_queue_recipients . В конце разные сообщения электронной почты связываются с соответствующими получателями с помощью message_id , но они также ошибочно связываются с предыдущими получателями, которым был присвоен тот же message_id из предыдущих писем.
Таким образом, при поиске получателей для отправки данного сообщения, помимо соответствующего получателя, могут возникнуть другие неправильные получатели.
К счастью, решение этой проблемы легко выполнить.
Все, что нужно, - это очистить все повторяющиеся идентификаторы сообщений в таблице core_email_queue_recipients и убедиться, что при удалении сообщения из таблицы core_email_queue одновременно соответствующие получатели удаляются в таблице core_email_queue_recipients .
Лучший способ добиться этого - создать внешний ключ, который связывает эти записи и удаляет их каскадно (но вам необходимо выполнить некоторую очистку, прежде чем вы сможете это сделать).
Это процедура для устранения проблемы:
1) Выполните следующие два запроса SQL, чтобы очистить таблицу core_email_queue_recipients от потерянных записей и идентификаторов повторяющихся сообщений:
Первый запрос удаляет потерянные записи, а второй удаляет старые записи, которые больше не действительны.
2) Создайте внешний ключ в таблице core_email_queue_recipients, чтобы удалить записи получателей в каскаде. Запрос SQL для создания этого внешнего ключа:
С помощью этого нового внешнего ключа, не бесхозных записи не будут оставлены на core_email_queue_recipients столе при чистке core_email_queue стола, и не дублированные сообщений в неправильные получатель будут отправлены в будущем.
источник
У меня такая же проблема. Для каждого заказа я получал электронную почту клиентов и отдельную электронную почту на адрес моего магазина - оба в почтовый ящик моей учетной записи электронной почты магазина.
В Magento Admin: Система> Конфигурация> Электронная почта продаж> Заказ
Я установил адрес электронной почты «Метод копирования электронной почты для заказа» с «Отдельная электронная почта» на «Скрытая копия», и теперь он работает. Сейчас я получаю только одно электронное письмо за заказ.
источник
У меня такая же проблема. В моем случае проблема была вызвана исходным кодом скрипта cron.sh.
Мой хостинг-провайдер использовал свои собственные версии скриптов cron.sh и cron.php для работы cron в Magento.
Когда я перешел от сценария cron.sh к сценарию cron.php для запуска задания Magento-Cron, электронное письмо с новым заказом было отправлено только один раз, моя проблема была решена.
Возможно, ваша проблема связана с кодом скрипта cron.sh или cron.php .
источник