যখন কোনও শপিং কার্টের দামের নিয়মটি আর বৈধ না থাকে (যেমন আপনি যখন এটির মেয়াদ শেষ হয় বা আপনি যে পণ্যগুলি আর ব্যবহার করেন না তার পরিমাণ পরিবর্তন করেন) এর জন্য আমি প্লাগইন করতে পারি এমন কোনও অনুষ্ঠান বা স্থান আছে কি? আমি জানি যে এটি স্বয়ংক্রিয়ভাবে কার্ট থেকে সরানো হয়েছে, তবে কোডে এটি ঘটছে এমন জায়গাটি আমি খুঁজে পাচ্ছি না।
আমি এমন একটি মডিউল লিখছি যা একটি কুপনের জন্য কার্টে একটি নিখরচায় পণ্য যুক্ত করে যেখানে সাবটোটেল এক্স পরিমাণের চেয়ে বেশি। কার্টের সাবটোটালটি এক্স এর নীচে চলে যাওয়ার আইটেমের পরিমাণ হ্রাস করার সময় ব্যতীত এগুলি সবই কাজ করছে coup কুপনটি সরানো হচ্ছে, তবে আমার পণ্যটি কার্টে থেকে যাচ্ছে।
আমার এখন পর্যন্ত যা প্রয়োজন তা করতে আমি এখন পর্যন্ত নিম্নলিখিত ইভেন্টগুলিতে ট্যাপ করেছি ...
salesrule_validator_process
checkout_cart_update_items_after
sales_quote_collect_totals_before
আমি খুঁজে পেয়েছি Magento\Quote\Model\CouponManagement
যা এটির set()
ও remove()
পদ্ধতিগুলির যেহেতু আশাব্যঞ্জক বলে মনে হয়েছে , তবে কার্টটি আপডেট হওয়ার পরে তারা কল করা হবে বলে মনে হয় না।
এটিতেও এটি checkout_cart_update_items_after
একটি যৌক্তিক জায়গার মতো মনে হয় যা আমি চেক করতে পারি, তবে এটি এখনও নিয়ম অনুযায়ী সেট করা আছে বলে মনে হয়$cart->getQuote()->getAppliedRuleIds()
আপডেট: আমি checkout_cart_save_after
ইভেন্টটির জন্য একটি পর্যবেক্ষক যুক্ত করে শেষ করেছিলাম যা পরে collectTotals()
জানা যায় যে নিয়মটি এখনও কার্টের মধ্যে রয়েছে কিনা। তারপরে আমি মূলত এই নিয়মটি সরিয়ে ফেলা হয়েছে কিনা তা দেখার $quote->getAppliedRuleIds()
সাথে তুলনা করি $quote->getOrigData('applied_rule_ids')
। আমি মনে করি এটি করার আরও ভাল উপায় আছে তবে এটি মুহুর্তের জন্য কাজ করে। আমার কাছে এখনও কুপনগুলির সাথে সমস্যাটি রয়েছে যা শেষ হচ্ছে ...