Saya menggunakan Magento 1.9.1 dan ketika membuat pesanan baru, apakah itu dari frontend atau Admin, sistem mengirimkan 2 email - keduanya sama!
Saya telah mencari di internet dan menemukan bug yang sudah lama dan saya tidak dapat menemukan kode yang disebutkan untuk berkomentar, itu juga sepertinya berkaitan dengan pesanan Paypal dan ini bukan masalahnya.
Saya telah menonaktifkan SEMUA ekstensi dan mencoba dan masih memiliki masalah yang sama, jadi saya yakin itu bukan masalah Ekstensi.
magento-1.9
orders
ce-1.9.1.0
transactional-mail
Christopher Thrower
sumber
sumber
Jawaban:
Masalah ini harus terkait dengan sistem Antrian Email Magento baru, yang meninggalkan catatan anak yatim di tabel Penerima. Jika ini adalah masalah Anda, saya mengirimi Anda perbaikan.
Sistem Antrian Email Magento baru mengelola dua tabel ini: core_email_queue dan core_email_queue_recipients . Yang pertama menangani Pesan email, dan yang berikutnya, Penerima pesan-pesan ini.
The core_email_queue meja dibersihkan sebagai email di Magento Email Queue dikirim. Pembersihan ini dilakukan oleh pekerjaan tab cron yang disebut core_email_queue_clean_up , yang didefinisikan di dalam aplikasi / kode / core / Mage / Core / etc / config.xm l file config. Kode yang melakukan pembersihan didefinisikan pada fungsi removeSentMessages di kelas Mage_Core_Model_Resource_Email_Queue :
Kode di atas dijalankan sekali sehari oleh tugas cron.
Tapi kebetulan bahwa tabel core_email_queue_recipients (yang memegang Penerima email, dan yang ditautkan ke tabel core_email_queue oleh bidang message_id ), tidak dibersihkan bersama-sama dengan tabel core_email_queue (yang memegang pesan email), meninggalkan catatan yatim piatu di dalam, bahwa tabel Penerima ketika kemudian tabel Pesan dibersihkan.
Masalah yang dijelaskan di sini muncul ketika tabel core_email_queue (Pesan) di-reset dan bidang message_id autoincrement pada tabel ini diinisiasi ulang ke 1.
Karena tabel core_email_queue_recipients (Penerima) belum dibersihkan, ketika email baru ditambahkan ke Antrian Email Magento, catatan baru dibuat pada tabel core_email_queue (dengan message_id mulai lagi dari 1), dan pada saat yang sama catatan baru dibuat pada tabel core_email_queue_recipients dengan id yang sama (mulai dari 1).
Masalahnya adalah id ini mungkin sudah ada di tabel Penerima sebagai catatan anak yatim (karena pesan email sebelumnya). Id mesages baru ini kemudian diulang di dalam tabel core_email_queue_recipients . Pada akhirnya, berbagai pesan email ditautkan ke Penerima mereka yang sesuai oleh message_id , tetapi mereka juga secara keliru tertaut ke penerima sebelumnya yang diberi message_id yang sama dari email sebelumnya.
Dengan demikian, ketika penerima dicari untuk mengirim pesan yang diberikan, selain penerima yang sesuai, penerima yang salah lainnya dapat muncul.
Untungnya perbaikan untuk masalah ini mudah dilakukan.
Yang diperlukan hanyalah membersihkan semua id pesan yang diulang pada tabel core_email_queue_recipients , dan memastikan bahwa ketika sebuah Pesan dihapus pada tabel core_email_queue , pada saat yang sama Penerima terkaitnya akan dihapus pada tabel core_email_queue_recipients .
Cara terbaik untuk mencapai ini adalah dengan membuat kunci asing yang menautkan catatan ini dan menghapusnya pada kaskade (tetapi Anda perlu melakukan pembersihan sebelum Anda bisa melakukannya).
Ini adalah prosedur untuk memperbaiki masalah:
1) Jalankan dua query SQL berikut untuk membersihkan tabel core_email_queue_recipients dari catatan yatim dan id pesan berulang:
Kueri pertama menghapus catatan yatim, dan yang kedua menghapus catatan lama yang tidak lagi valid.
2) Buat kunci asing pada tabel core_email_queue_recipients untuk menghapus catatan Penerima pada kaskade. Permintaan SQL untuk membuat kunci asing ini adalah:
Dengan menggunakan kunci asing baru ini, tidak ada catatan yatim piatu yang akan ditinggalkan di tabel core_email_queue_recipients saat membersihkan tabel core_email_queue , dan tidak ada pesan yang digandakan ke penerima yang salah yang akan dikirim di masa mendatang.
sumber
Saya memiliki masalah yang sama. Untuk setiap pesanan, saya akan menerima email pelanggan dan email terpisah ke alamat toko saya - keduanya ke kotak surat akun email toko saya.
Di Magento Admin: Sistem> Konfigurasi> Email Penjualan> Pesanan
Saya telah mengatur email "Kirim Pesanan Metode Salin Email" dari "Email Terpisah" ke "Bcc", dan sekarang berfungsi. Saya hanya menerima satu email per pesanan sekarang.
sumber
Saya memiliki masalah yang sama. Dalam kasus saya masalahnya disebabkan oleh kode sumber skrip cron.sh.
Penyedia hosting saya menggunakan versinya sendiri dari skrip cron.sh dan cron.php untuk cron-job Magento.
Ketika saya mengubah dari skrip cron.sh ke skrip cron.php untuk memulai Magento-Cron-Job, pesanan baru eMail hanya dikirim sekali, masalah saya terpecahkan.
Mungkin masalah Anda ada hubungannya dengan kode skrip cron.sh atau cron.php .
sumber