क्या कोई नियम या प्लगइन स्पॉट तब होता है जब गाड़ी का नियम मान्य नहीं होता है?


13

क्या कोई ऐसी घटना या जगह है, जिसके लिए मैं प्लगइन कर सकता हूं जब कोई शॉपिंग कार्ट मूल्य नियम मान्य नहीं होता है (जैसे कि जब यह समाप्त हो जाता है या यदि आप अन्य उत्पादों की मात्रा को बदलते हैं जहां यह लागू नहीं होता है)? मुझे पता है कि यह स्वचालित रूप से कार्ट से निकाल दिया गया है, लेकिन मुझे पता नहीं लग सकता है कि यह कोड में क्या हो रहा है।

मैं एक मॉड्यूल लिख रहा हूं जो कूपन के लिए कार्ट में एक मुफ्त उत्पाद जोड़ता है जहां सबटोटल एक्स राशि से अधिक है। कार्ट में वस्तुओं की मात्रा को कम करने के अलावा यह सब काम कर रहा है, जहां सबटोटल एक्स के नीचे जाता है। कूपन हटाया जा रहा है, लेकिन मेरा उत्पाद कार्ट में रह रहा है।

अब तक मैंने निम्नलिखित घटनाओं में टैप किया है, जो मुझे अब तक की आवश्यकता है ...

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')यह देखने के लिए तुलना करता हूं कि क्या नियम को हटा दिया गया है। मुझे ऐसा लगता है कि ऐसा करने का एक बेहतर तरीका है, लेकिन यह फिलहाल काम करता है। मेरे पास अभी भी कूपन के साथ समस्या है जो समाप्त हो रही है ...


क्या आप संक्षेप में बता सकते हैं, इसका बहुत ही जटिल
अनस मंसूरी

जवाबों:


0

मैं इसे चारों ओर प्लगइन के साथ करूँगा

\ Magento \ SalesRule \ मॉडल \ RulesApplier :: applyRules

आपके पास $ नियम पैरामीटर हैं जो एक सरणी होगी जिसमें पुरानी लागू नियम आईडी होगी, और $ कार्यवाही का परिणाम () कॉल लागू आईडी का एक सरणी होगा। हो सकता है कि अगर आप इसके साथ क्या करने का इरादा रखते हैं, इसका खुलासा करने पर एक बेहतर जगह मिल सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.