मैं वास्तव में नहीं जानता कि क्या यह किसी भी तरह से मदद करेगा, लेकिन देखने के लिए कुछ।
यह संभव है कि आपका collecttotals
मॉडल ऑर्डर अलग तरीके से ऑर्डर कर रहा है, और यह कि ग्रैंड_टोटल के बाद टैक्स का आदेश / लागू किया जा रहा है
आप परीक्षण कर सकते हैं यदि यह इस प्रकार है। (ध्यान दें कि इसमें कुछ डीबग जानकारी प्राप्त करने के लिए एक कोर फ़ाइल को समायोजित करना शामिल है, कृपया इसे लाइव साइट पर आज़माएं नहीं!)
इसमें स्थित विधि को संपादित करें:
Mage_Sales_Model_Quote_Address::collecttotals
और विधि में एक पंक्ति जोड़ें, जो आपको संसाधित होने के साथ ही मॉडल को आउटपुट करने की अनुमति देगा।
public function collectTotals()
{
Mage::dispatchEvent($this->_eventPrefix . '_collect_totals_before', array($this->_eventObject => $this));
foreach ($this->getTotalCollector()->getCollectors() as $model) {
mage::log($model->getCode()); // <===== ADD THIS LINE
$model->collect($this);
}
Mage::dispatchEvent($this->_eventPrefix . '_collect_totals_after', array($this->_eventObject => $this));
return $this;
}
सुनिश्चित करें कि लॉगिंग सक्षम है।
कंसोल के माध्यम से लॉग फ़ाइल को पूँछें: tail -f system.log
दृश्यपटल के माध्यम से समस्या को पुन: उत्पन्न करें।
आपको अपने लॉग में निम्नानुसार प्रविष्टियाँ मिलेंगी (यह वेनिला 1.9.2.2 से - आपके पास अन्य प्रविष्टियाँ हो सकती हैं)
2015-12-21T05:54:12+00:00 DEBUG (7): nominal
2015-12-21T05:54:12+00:00 DEBUG (7): subtotal
2015-12-21T05:54:12+00:00 DEBUG (7): msrp
2015-12-21T05:54:12+00:00 DEBUG (7): freeshipping
2015-12-21T05:54:12+00:00 DEBUG (7): tax_subtotal
2015-12-21T05:54:12+00:00 DEBUG (7): weee
2015-12-21T05:54:12+00:00 DEBUG (7): shipping
2015-12-21T05:54:12+00:00 DEBUG (7): tax_shipping
2015-12-21T05:54:12+00:00 DEBUG (7): discount
2015-12-21T05:54:12+00:00 DEBUG (7): tax
2015-12-21T05:54:12+00:00 DEBUG (7): grand_total
आप इसे दोहराते हुए देखेंगे, इसलिए बस यह देखें कि यह कहां से शुरू होता है, और समाप्त होता है, पैटर्न को देखना आसान होना चाहिए
ऊपर अंतिम दो प्रविष्टियों पर ध्यान दें: टैक्स Grand_total से पहले आता है। यह संभव हो सकता है कि यह आदेश बेकार से बाहर है, और ग्रैंड_टोटल के बाद टैक्स दिखाई दे रहा है, इसलिए ग्रैंड_टोटल पर टैक्स लागू नहीं होगा।
संपादित करें:
ठीक है, इसलिए मैंने संदर्भित प्रश्न नहीं देखा वास्तव में इस मुद्दे को एकत्र करने के लिए संग्रहकर्ताओं की छंटनी की ओर इशारा करता है। मुझे संदेह था कि यह मुद्दा हो सकता है, लेकिन PHP7 में खुद इसका परीक्षण नहीं किया है
एक समाधान है, लेकिन यह बहुत अच्छा नहीं है। स्टोर में रखा गया कोई भी नया एक्सटेंशन, जो कलेक्टर में मॉडल सम्मिलित करता है, को नोट करना होगा, और इसके अलावा छंटनी में जोड़ा जाएगा, अन्यथा चीजें और भी गलत हो सकती हैं। आगे चलकर मेंटेनेंस का एक सा मुद्दा हो सकता है।
केवल एक विशिष्ट <sort_order>
को योग कॉन्फ़िगरेशन में रखकर क्रम को बाध्य करें। आप इसे अपने स्वयं के एक्सटेंशन के माध्यम से कर सकते हैं, जिसमें केवल एक config.xml होगा, जहां आप प्रत्येक कलेक्टर के लिए ऑर्डर निर्दिष्ट करते हैं।
config.xml में, इस तरह के निर्देश हैं:
<sales>
<quote>
<totals>
<nominal>
<sort_order>100</sort_order>
</nominal>
<subtotal>
<sort_order>200</sort_order>
</subtotal>
<msrp>
<sort_order>300</sort_order>
</msrp>
<freeshipping>
<sort_order>400</sort_order>
</freeshipping>
......
insert each collector model with a sort directive
......
</totals>
</quote>
प्रत्येक सॉर्टिंग निर्देश के बीच बड़े अंतराल का उपयोग करें, जिससे अतिरिक्त आगे बढ़ने के लिए स्थान की अनुमति मिल सके।
जैसा कि उल्लेख किया गया है, बहुत सुरुचिपूर्ण नहीं है, लेकिन आपकी तत्काल समस्या को हल कर सकता है।
यह भी ध्यान दें कि सिस्टम में अन्य कलेक्टर निर्देश हैं, इसलिए वे गलत / आवश्यकता समायोजन भी हो सकते हैं
कोर बिक्री विस्तार config.xml की जाँच करें, और के लिए खोज <totals>
वहाँ आप पाएंगे:
<order_invoice>
<order_creditmemo>
<pdf>
अन्य एक्सटेंशन में अन्य भी हो सकते हैं, कोर / 3rd पार्टी हो
उम्मीद है की वो मदद करदे।
पुनश्च: मैंने PHP7 में इसका कोई परीक्षण नहीं किया है। मुझे पता है कि php5.x के तहत Sort_order निर्देश कार्यों के रखने