Magento 2: प्रोग्राम में कार्ट में कस्टम टैक्स राशि जोड़ें


11

मैं प्रोग्रामआउट कार्ट में चेकआउट के लिए कस्टम टैक्स राशि जोड़ना चाहता हूं।

यहाँ उदाहरण है।

Cart Old Tax = 4.21

Custom Tax = 2

New Tax = 4.21 + 2 = 6

नीचे दिए गए स्क्रीनशॉट की जाँच करें।

यहां छवि विवरण दर्ज करें

मुझे इसे प्रोग्रामेटिक रूप से करने की आवश्यकता है।


कहां custom amountसे आए हो?
तोन गुयेन

@ToanNguyen जो मुझे सत्र से मिलता है, मेरा कहना है कि उस मूल्य को कर में कैसे जोड़ा जा सकता है।
धीरेन वसोया १०'१oya को

@DirenVasoya, कार्ट में जोड़े जाने पर हम उत्पाद के लिए कस्टम टैक्स मूल्य कैसे जोड़ सकते हैं, यहाँ मेरा सवाल है, magento.stackexchange.com/questions/274520/…
jafar pinjar

@DirenVasoya, नीचे दिए गए समाधान मैंने कोशिश की, यह गाड़ी दिखा रहा है, लेकिन गणना नहीं कर रहा है ..
jafar pinjar

@DirenVasoya - क्या आपको इस समस्या का समाधान मिला?
मानषी बिड़ला

जवाबों:


4

आप घटना को देख सकते हैं sales_quote_address_collect_totals_afterऔर इसे प्राप्त कर सकते हैं। इसके लिए, आपको एक मॉड्यूल सेटअप करने और किसी ईवेंट को कॉन्फ़िगर करने की आवश्यकता है। चलो का कहना है कि हमारे मॉड्यूल है MStack_Exchange

फ़ाइल: app\code\MStack\Exchange\etc\events.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="sales_quote_address_collect_totals_after">
        <observer name="changeTaxTotal" instance="MStack\Exchange\Observer\ChangeTaxTotal"/>
    </event>
</config>

फ़ाइल: app\code\MStack\Exchange\Observer\ChangeTaxTotal.php

<?php
namespace MStack\Exchange\Observer;

use \Magento\Framework\Event\ObserverInterface;
use \Magento\Framework\Event\Observer;

class ChangeTaxTotal implements ObserverInterface
{
    public $additionalTaxAmt = 2;

    public function execute(Observer $observer)
    {
        /** @var Magento\Quote\Model\Quote\Address\Total */
        $total = $observer->getData('total');

        //make sure tax value exist
        if (count($total->getAppliedTaxes()) > 0) {
            $total->addTotalAmount('tax', $this->additionalTaxAmt);
        }

        return $this;
    }
}

यहां महत्वपूर्ण कॉल है: $total->addTotalAmount('tax', $this->additionalTaxAmt);। यह 2मौजूदा कर राशि के साथ जुड़ जाएगा और मुझे लगता है कि आपको अपने मामले में यही चाहिए। इसलिए आपको जो करने की आवश्यकता है, उसे $this->additionalTaxAmtअपने कर बफर मूल्य से बदलें ।

sales_quote_address_collect_totals_afterकुल गणना के तुरंत बाद यह घटना आग की भेंट चढ़ गई थी और इस प्रकार यह खेलने के लिए एकदम सही जगह बन गई।

यदि आप यह जानने के लिए उत्सुक हैं कि यह कुल गणना कहां हो रही है, तो आपको Magento\Quote\Model\Quote\TotalsCollector::collect()और Magento\Quote\Model\Quote\TotalsCollector::collectAddressTotals()तरीकों पर गौर करने की आवश्यकता है ।


मुझे इसकी जाँच करने दीजिए।
धीरेन वसोया

@ राजीव, क्या हम कार्ट में जोड़े जाने पर व्यक्तिगत उत्पाद के लिए कस्टम टैक्स जोड़ सकते हैं? यहाँ मेरा सवाल है, magento.stackexchange.com/questions/274520/…
जफ़र पिंजर

धन्यवाद @ राजीव मेरा दिन बचाने के लिए
Soundararajan m

वर्क्स शुक्रिया
snez

2

@ धीरन वसोया

इन लाइनों का भी उपयोग करें।

$total->addBaseTotalAmount('tax', $this->additionalTaxAmt);
$total->setGrandTotal((float)$total->getGrandTotal() + $this->additionalTaxAmt);
$total->setBaseGrandTotal((float)$total->getBaseGrandTotal() + $this->additionalTaxAmt);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.