Magento 2: Como tributar uma taxa personalizada

9
  • Quero adicionar um imposto à taxa personalizada. o cálculo do imposto é perfeito e obtém o valor do imposto, mas não está definido nos arquivos TAX em quote_address no banco de dados.

    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); 
    }
    
  • Tento definir o valor do imposto no método de coleta, mas não está definido.

  • Eu quero o mesmo como este código. é Magento1, mas eu quero Magento 2

Hardik Dhankecha
fonte
Tente seguir o seguinte para adicionar uma taxa personalizada ao seu subtotal magento.stackexchange.com/questions/92774/…
Abhinav Singh

Respostas:

1

Você pode usar o código abaixo para definir o valor do imposto no endereço e nas tabelas de cotações:

$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 isso ajude você. Se você tiver alguma dúvida, não hesite em perguntar.

Feliz por ajudar!

Obrigado,

Pratik Navapara
fonte
0

Em vez de uma chamada, $total->setTaxAmount()você precisa usar addTotalAmount:

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