নতুন অর্ডার ইমেল দু'বার প্রেরণ করা হচ্ছে


25

আমি ম্যাজেন্টো ১.৯.১ ব্যবহার করছি এবং একটি নতুন অর্ডার তৈরি করার সময়, এটি সীমান্ত বা অ্যাডমিন থেকেই হোক, সিস্টেমটি 2 টি ইমেল প্রেরণ করছে - উভয়ই একই!

আমি নেটটি দেখেছি এবং একটি বাগ খুঁজে পেয়েছি যা পুরানো ছিল এবং আমি মন্তব্য করার জন্য উল্লিখিত কোডটি খুঁজে পেলাম না, এটি দেখে মনে হচ্ছিল এটি পেপাল অর্ডারগুলির সাথে করা এবং এটি ঘটনাটি নয়।

আমি সমস্ত এক্সটেনশন অক্ষম করেছি এবং চেষ্টা করেছি এবং এখনও একই সমস্যা ছিল তাই আমি নিশ্চিত যে এটি কোনও এক্সটেনশন সমস্যা নয়।


1
আপনি কি এই সমস্যার সমাধান করেছেন? আমি সময়ে সময়ে একই অদ্ভুত ডাবল অর্ডার কনফার্মেশন পেয়েছি এবং নিশ্চিতকরণ মেলগুলির জন্য বিসিসি ব্যবহার করেছি। কোনও গ্রাহক দুটি মেল পেয়েছেন কিনা তা জানেন না তবে আমি এটি আশা করি না।
ফক্স

ইমেলটি কাকে সম্বোধন করা হয়েছে? আপনি কি আপনার কোনও অ্যাডমিন ইমেলের সাথে চেক আউট করছেন?
এসআর_ম্যাজেন্টো

আমি একই সমস্যা পাচ্ছি (ব্যবহারকারী নতুন অর্ডার দেওয়ার পরে দুটি ইমেল পাচ্ছেন)। আমি নীচের উত্তরের জন্য নিশ্চিত নই এবং আমার দুটি টেবিল "কোর_ইমেল_কুই" এবং "কোর_ইমেল_কুই_সেসিপিয়েন্টস" খালি আছে, তাই আমি মনে করি এটি আমার ক্ষেত্রে হওয়া উচিত নয়। আমাকে এই সাহায্য করুন।
আবী ​​শর্মা

আবি শর্মা, আমারও একই সমস্যা আছে, তবুও, আমি নকল ইমেল পেয়েছি ... আপনি কি সমস্যাটি সমাধান করেছেন? দয়া করে আমাকে জানান
লিয়োর লরিয়া

উত্তর:


48

এই সমস্যাটি অবশ্যই নতুন ম্যাজেন্টো ইমেল ক্যু সিস্টেমের সাথে সম্পর্কিত হতে পারে যা প্রাপকদের টেবিলে এতিম রেকর্ড ছেড়ে দেয়। এটি যদি আপনার সমস্যা হয় তবে আমি আপনাকে একটি সমাধান পাঠিয়ে দেব।

নতুন ম্যাগেন্টো ইমেল ক্যু সিস্টেমটি এই দুটি সারণী পরিচালনা করে: কোর_ইমেল_কুই এবং কোর_ইমেল_কুই_রেসিপিয়েন্টস । পূর্ববর্তীটি ইমেল বার্তাগুলি এবং পরবর্তী বার্তাগুলি এই বার্তাগুলির প্রাপকদের পরিচালনা করে।

Core_email_queue টেবিল আউট পরিষ্কার যেমন Magento ইমেইল সারি উপর ইমেল পাঠানো হয়েছে হয়। এই পরিষ্কারকরণটি কোর_ইমেল_কুই_ক্লান_আপ নামে একটি ক্রোন ট্যাব কাজ দ্বারা সম্পাদিত হয় যা অ্যাপ / কোড / কোর / মাইজ / কোর / ইত্যাদি / কনফিগারেশন। এক্স কনফিগারেশন ফাইলের মধ্যে সংজ্ঞায়িত করা হয় । পরিচ্ছন্নতা সম্পাদন করে এমন কোডটি Mage_Core_Model_Resource_Email_Queue শ্রেণিতে সরানো ম্যাসেজগুলি ফাংশনে সংজ্ঞায়িত করা হয়েছে :

/**
 * Remove already sent messages
 *
 * @return Mage_Core_Model_Resource_Email_Queue
 */
public function removeSentMessages()
{
    $this->_getWriteAdapter()->delete($this->getMainTable(), 'processed_at IS NOT NULL');
    return $this;
}

উপরের কোডটি ক্রোন টাস্ক দ্বারা দিনে একবার কার্যকর করা হয়।

তবে এটি ঘটে যায় যে কোর_ইমেল_উইউ_সেসিপিয়েন্টস টেবিল (ইমেল প্রাপকদের ধারণকৃত একটি, এবং এটি মেসেজ_আইডি ক্ষেত্রে কোর_ইমেল_উইউ টেবিলের সাথে সংযুক্ত ), কোর_ইমেল_উইউ টেবিল (যা ইমেল বার্তাগুলি ধারণ করে) সাথে একসাথে পরিষ্কার করা হয় না , অনাথ রেকর্ড ভিতরে রেখে দেয় সেই বার্তাগুলি টেবিলটি যখন বার্তা সারণীটি পরিষ্কার হয়ে যায়।

এখানে বর্ণিত সমস্যাটি উত্থাপিত হয় যখন কোর_ইমেল_কিউ টেবিল (বার্তাগুলি) পুনরায় সেট করা হয় এবং এই টেবিলের স্বতঃআগ্রহ বার্তা_আইডি ফিল্ডটি আবার 1 এ পুনরায় সংযুক্ত করা হয়।

কারণ কোর_ইমেল_কুই_রেসিপিয়েন্টস টেবিল (প্রাপকগণ) সেই অনুযায়ী পরিষ্কার করা হয়নি, যখন নতুন ইমেলগুলি ম্যাগেন্টো ইমেল সারিতে যুক্ত করা হয়, তখন কোর_ইমেল_উইউ টেবিলে নতুন রেকর্ড তৈরি করা হয় ( বার্তা_আইডি আবার 1 থেকে শুরু হবে) এবং একই সাথে নতুন রেকর্ড তৈরি করা হয় উপর core_email_queue_recipients এই একই আইডি টেবিল (1 থেকে আবার শুরু)।

সমস্যাটি হ'ল এই আইডিগুলি ইতিমধ্যে প্রাপকদের টেবিলে অনাথ রেকর্ড হিসাবে উপস্থিত থাকতে পারে (পূর্ববর্তী ইমেল বার্তাগুলির কারণে)। এই নতুন বার্তা আইডিগুলি এরপরে পুনরাবৃত্তি হয় get কোর_ইমেল_কুই_প্রাপ্তি সারণীর । শেষ অবধি , বিভিন্ন ইমেল বার্তাগুলি ম্যাসেজ_আইডি দ্বারা তাদের সংশ্লিষ্ট প্রাপকদের সাথে লিঙ্ক করা হয়েছে তবে তারা পূর্ববর্তী ইমেলগুলি থেকে একই বার্তা_আইড বরাদ্দ করা পূর্ববর্তী গ্রহণকারীদের সাথেও ভুলভাবে যুক্ত হয়েছে ।

সুতরাং, যখন প্রাপকদের একটি প্রদত্ত বার্তা প্রেরণের জন্য অনুসন্ধান করা হয়, উপযুক্ত প্রাপক ছাড়াও, অন্য ভুল প্রাপক উত্থাপিত হতে পারে।

ভাগ্যক্রমে এই সমস্যার সমাধানটি সম্পাদন করা সহজ।

যা দরকার তা হ'ল কোর_ইমেল_কুই_প্রেরক টেবিলের সমস্ত পুনরাবৃত্তি বার্তাগুলি আইডি পরিষ্কার করা এবং এটি নিশ্চিত করা যে কোনও বার্তা যখন কোর_ইমেল_উইউটিতে মুছে ফেলা হয় টেবিলে , একই সাথে তার প্রাপকগুলি কোর_ইমেল_কুই_আরসিপিয়েন্টস টেবিলে মুছে ফেলা হয় ।

এটি অর্জনের সর্বোত্তম উপায় হ'ল একটি বিদেশী কী তৈরি করা যা এই রেকর্ডগুলিকে লিঙ্ক করে এবং তাদের ক্যাসকেডে মুছে দেয় (তবে এটি করার আগে আপনাকে কিছু পরিষ্কার করা দরকার)।

এই সমস্যাটি সমাধানের পদ্ধতি:

1) এতিম রেকর্ড এবং পুনরাবৃত্তি বার্তাগুলি আইডি থেকে কোর_ইমেল_কুই_প্রেরক সারণীটি পরিষ্কার করার জন্য নিম্নলিখিত দুটি এসকিউএল কোয়েরি কার্যকর করুন :

DELETE FROM core_email_queue_recipients WHERE message_id NOT IN (SELECT message_id FROM core_email_queue);
DELETE FROM core_email_queue_recipients WHERE recipient_id < (SELECT recipient_id FROM (SELECT recipient_id FROM core_email_queue_recipients ORDER BY message_id ASC, recipient_id DESC LIMIT 1) AS r);

প্রথম ক্যোয়ারী এতিম রেকর্ডগুলি মুছে দেয় এবং দ্বিতীয়টি পুরানো রেকর্ডগুলি মুছে দেয় যা আর বৈধ নয়।

2) ক্যাসকেডে প্রাপকদের রেকর্ড মুছতে কোর_ইমেল_কুই_প্রেরক টেবিলে একটি বিদেশী কী তৈরি করুন । এই বিদেশী কী তৈরির জন্য এসকিউএল কোয়েরিটি হ'ল:

ALTER TABLE core_email_queue_recipients ADD FOREIGN KEY(message_id) REFERENCES core_email_queue(message_id) ON DELETE CASCADE;

এই নতুন বিদেশী কী ব্যবহার করার মাধ্যমে, কোন এতিম রেকর্ড উপর ছেড়ে দেওয়া হবে core_email_queue_recipients যখন পরিস্কার টেবিল core_email_queue টেবিল ও ভুল প্রাপককে কোন সদৃশ বার্তা ভবিষ্যতে পাঠানো হবে।


2
দারুন গবেষণা এবং সরবরাহ করা ওয়ার্কিং ফিক্স সিজার। এটি সম্ভাব্যভাবে অন্য গ্রাহকদের কাছে গ্রাহকের নাম এবং ঠিকানা প্রেরণ করবে এটি প্রদত্ত ম্যাজেন্টো টিমের একটি বড় নজরদারি। যে কেউ জানেন যে এই সমস্যাটি আবিষ্কার হওয়ার পর থেকে একে একে (কোন) প্যাচ / রিলিজে সম্বোধন করা হয়েছে?
জিগোজাকো

তবুও উপরের সমাধানটি কার্যকর করার পরে একই আদেশের ইমেলটি একই ইমেল ঠিকানায় একাধিকবার প্রেরণ করা হচ্ছে। আপনি দয়া করে সহায়তা করবেন ??
aton1004

আমি আমার উভয় টেবিলগুলি ইতিমধ্যে খালি আছে তা যাচাই করে দেখছি, তাহলে আমাকে কি এই দুটি পদক্ষেপ (প্রশ্ন) চালাতে হবে ???
আবী ​​শর্মা

যাইহোক আমি এই প্রশ্নগুলি কীভাবে সম্পাদন করেছি তবে কোনও সহায়তা নেই .. তবুও দুবার অর্ডার ইমেল পাওয়া যাচ্ছে
আবী ​​শর্মা

5

আমারও একই সমস্যা ছিল। প্রতিটি অর্ডারের জন্য আমি গ্রাহকদের ই-মেইল এবং আমার স্টোরের ঠিকানায় একটি পৃথক ই-মেইল পেয়েছি - উভয়ই আমার স্টোরের ইমেইল অ্যাকাউন্টের মেলবক্সে।

ম্যাজেন্টো অ্যাডমিনে: সিস্টেম> কনফিগারেশন> বিক্রয় ই-মেলস> অর্ডার

আমি "ই-মেইল প্রেরণ আদেশ" ই-মেইলটি "বিচ্ছিন্ন ই-মেইল" থেকে "বিসিসি" তে সেট করেছি এবং এটি এখন কাজ করে। আমি এখন প্রতি আদেশে কেবল একটি ইমেল পাচ্ছি।


3
আমি ইতিমধ্যে বিসিসি পদ্ধতিটি ব্যবহার করছি যাতে দুর্ভাগ্যক্রমে আমার পক্ষে সমস্যাটি নয় :(
ক্রিস্টোফার থ্রোভার

আমি ইতিমধ্যে এই সেটিংটিও ব্যবহার করছি তবে ব্যবহারকারী নতুন অর্ডার দেওয়ার পরে 2 টি ইমেল পাচ্ছেন।
আবী ​​শর্মা

1

আমারও একই সমস্যা ছিল। আমার ক্ষেত্রে সমস্যাটি ক্রোন.শ স্ক্রিপ্টের উত্স কোডের কারণে হয়েছিল ।

আমার হোস্টিং সরবরাহকারী ম্যাজেন্টো ক্রোন-কাজের জন্য cron.sh এবং cron.php স্ক্রিপ্টগুলির নিজস্ব সংস্করণ ব্যবহার করেছিলেন ।

যখন আমি থেকে পরিবর্তিত cron.sh স্ক্রিপ্টে cron.php Magento-ক্রন-ইয়োব নতুন অর্ডার ইমেইল শুরু করার জন্য স্ক্রিপ্ট শুধুমাত্র একবার পাঠানো হয়েছিল, আমার probelm মীমাংসিত হয়।

হয়তো আপনার সমস্যার কোড সহ কি কিছু আছে cron.sh বা cron.php স্ক্রিপ্ট।


হাই, আমরা ইতিমধ্যে ম্যাজেন্টো ক্রোন কাজের জন্য ক্রোন.এফপি স্ক্রিপ্ট ব্যবহার করছি তবে আমি দুবার ইমেল পাচ্ছি।
আবী ​​শর্মা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.