ম্যাজেন্টো 2: কার্যক্রমে কার্টে কাস্টম ট্যাক্সের পরিমাণ যুক্ত করুন


11

আমি প্রোগ্রাম থেকে চেকআউট কার্টে কাস্টম ট্যাক্সের পরিমাণ যুক্ত করতে চাই।

এখানে উদাহরণ।

Cart Old Tax = 4.21

Custom Tax = 2

New Tax = 4.21 + 2 = 6

নীচে স্ক্রিনশট চেক করুন।

এখানে চিত্র বর্ণনা লিখুন

আমি প্রোগ্রামের মাধ্যমে এটি করা প্রয়োজন।


তোমার custom amountকোথা থেকে এসেছে?
তোয়ান এনগুইন

@ টোয়াননগুইন যে আমি অধিবেশনটি থেকে পেয়েছি, আমার বক্তব্যটি কীভাবে এই মূল্যকে করের সাথে যুক্ত করতে পারে।
ধীরেন ভસોয়া

@ ধীরেনভাসোয়া, কার্টে যুক্ত হওয়ার পরে আমরা কীভাবে পণ্যটির জন্য কাস্টম ট্যাক্সের দাম যুক্ত করতে পারি, এখানে আমার প্রশ্নটি রয়েছে, magento.stackexchange.com/questions/274520/…
জাফর পিনজার

@ ধীরেনভাসোয়া, নীচের সমাধানের চেষ্টা করেছিলাম, এটি কার্ট দেখাচ্ছে কিন্তু গণনা করা হচ্ছে না
জাফর পিনজার

@ ধীরেনভাসোয়া - আপনি কি এই সমস্যার সমাধান পেয়েছেন?
মানশভী বিরলা

উত্তর:


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/Qestions/274520/…
জাফর পিনজার

ধন্যবাদ আমার দিন সংরক্ষণ করতে @Rajeev
Soundararajan মি

কাজগুলি আপনাকে ধন্যবাদ
স্নেজ

2

@ ধীরেন বাসোয়া

এই লাইনগুলিও ব্যবহার করুন।

$total->addBaseTotalAmount('tax', $this->additionalTaxAmt);
$total->setGrandTotal((float)$total->getGrandTotal() + $this->additionalTaxAmt);
$total->setBaseGrandTotal((float)$total->getBaseGrandTotal() + $this->additionalTaxAmt);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.