Ich möchte dem Warenkorb programmgesteuert einen benutzerdefinierten Steuerbetrag hinzufügen.
Hier ist das Beispiel.
Cart Old Tax = 4.21
Custom Tax = 2
New Tax = 4.21 + 2 = 6
Überprüfen Sie den Screenshot unten.
Ich muss das programmgesteuert machen.
custom amount
kommst du ?Antworten:
Sie können das Ereignis beobachten
sales_quote_address_collect_totals_after
und erreichen. Dazu müssen Sie ein Modul einrichten und ein Ereignis konfigurieren. Nehmen wir an, unser Modul istMStack_Exchange
.Datei :
app\code\MStack\Exchange\etc\events.xml
Datei :
app\code\MStack\Exchange\Observer\ChangeTaxTotal.php
Der wichtige Aufruf hier ist :
$total->addTotalAmount('tax', $this->additionalTaxAmt);
. Dies wird2
mit dem bestehenden Steuerbetrag addiert und ich denke, das ist es, was Sie in Ihrem Fall brauchen. Was Sie also tun müssen, ist, durch$this->additionalTaxAmt
Ihren Steuerpufferwert zu ersetzen .Das Ereignis
sales_quote_address_collect_totals_after
wird ausgelöst, kurz nachdem die Gesamtberechnung abgeschlossen war, und wird somit zum perfekten Ort zum Herumspielen.Wenn Sie neugierig sind, wo diese Gesamtberechnungen stattfinden, müssen Sie sich mit
Magento\Quote\Model\Quote\TotalsCollector::collect()
undMagento\Quote\Model\Quote\TotalsCollector::collectAddressTotals()
Methoden befassen .quelle
@ Driren Vasoya
Verwenden Sie auch diese Zeilen.
quelle