Quiero agregar un monto de impuestos personalizado al carrito de pago mediante programación.
Aquí está el ejemplo.
Cart Old Tax = 4.21
Custom Tax = 2
New Tax = 4.21 + 2 = 6
Mira la captura de pantalla a continuación.
Necesito esto hecho programáticamente.
custom amount
vienes?Respuestas:
Puedes observar el evento
sales_quote_address_collect_totals_after
y lograrlo. Para esto, necesita configurar un módulo y configurar un evento. Digamos que nuestro módulo esMStack_Exchange
.Archivo :
app\code\MStack\Exchange\etc\events.xml
Archivo :
app\code\MStack\Exchange\Observer\ChangeTaxTotal.php
La llamada importante aquí es:
$total->addTotalAmount('tax', $this->additionalTaxAmt);
. Esto se agregará2
con el monto del impuesto existente y creo que eso es lo que necesita en su caso. Entonces, lo que debe hacer es reemplazarlo$this->additionalTaxAmt
con su valor de amortiguación de impuestos.El evento se
sales_quote_address_collect_totals_after
dispara justo después de que se hayan realizado los cálculos totales y, por lo tanto, se convierta en un lugar perfecto para jugar.Si tiene curiosidad por saber dónde están ocurriendo estos cálculos totales, entonces debe investigar
Magento\Quote\Model\Quote\TotalsCollector::collect()
yMagento\Quote\Model\Quote\TotalsCollector::collectAddressTotals()
métodos.fuente
@Dhiren Vasoya
Use estas líneas también.
fuente