আমি প্রোগ্রাম থেকে চেকআউট কার্টে কাস্টম ট্যাক্সের পরিমাণ যুক্ত করতে চাই।
এখানে উদাহরণ।
Cart Old Tax = 4.21
Custom Tax = 2
New Tax = 4.21 + 2 = 6
নীচে স্ক্রিনশট চেক করুন।
আমি প্রোগ্রামের মাধ্যমে এটি করা প্রয়োজন।
আমি প্রোগ্রাম থেকে চেকআউট কার্টে কাস্টম ট্যাক্সের পরিমাণ যুক্ত করতে চাই।
এখানে উদাহরণ।
Cart Old Tax = 4.21
Custom Tax = 2
New Tax = 4.21 + 2 = 6
নীচে স্ক্রিনশট চেক করুন।
আমি প্রোগ্রামের মাধ্যমে এটি করা প্রয়োজন।
উত্তর:
আপনি ইভেন্টটি পর্যবেক্ষণ করতে 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()পদ্ধতিগুলি পরীক্ষা করা দরকার ।
custom amountকোথা থেকে এসেছে?