Magento 2: Cómo hacer que la tarifa personalizada esté sujeta a impuestos

9
  • Quiero agregar un impuesto sobre la tarifa personalizada. El cálculo de impuestos es perfecto y obtiene la cantidad de impuestos, pero no se establece en los archivos de impuestos en quote_address en la base de datos.

    public function collect(
        \Magento\Quote\Model\Quote $quote,
        \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment,
        \Magento\Quote\Model\Quote\Address\Total $total
    ){
    
      $total->setTaxAmount($total->getTaxAmount()+$taxAmount);
      $total->setBaseTaxAmount($total->getBaseTaxAmount()+$taxAmount); 
    }
  • Intento establecer la cantidad de impuestos en el método de recopilación, pero no está establecida.

  • Quiero hacer lo mismo con este código. es Magento1 pero quiero Magento 2

Hardik Dhankecha
fuente
Intente seguir lo siguiente para agregar una tarifa personalizada a su subtotal magento.stackexchange.com/questions/92774/…
Abhinav Singh el

Respuestas:

1

Puede usar el siguiente código para establecer el monto de impuestos en la dirección de cotización y las tablas de cotización:

$quote->setTaxAmount($total->getTaxAmount() + $taxAmount);
$quote->setBaseTaxAmount($total->getBaseTaxAmount() + $taxAmount);

$address = $shippingAssignment->getShipping()->getAddress();
$address->setTaxAmount($total->getTaxAmount() + $taxAmount);
$address->setBaseTaxAmount($total->getBaseTaxAmount() + $taxAmount);

Espero que esto te ayude. Si tiene alguna consulta adicional, no dude en preguntar.

¡Feliz de ayudar!

Gracias,

Pratik Navapara
fuente
0

En lugar de una llamada $total->setTaxAmount(), debe usar addTotalAmount:

$total->addTotalAmount('tax', $amount);
$total->addBaseTotalAmount('tax', $baseAmount);
Michiel
fuente