/** * Update tax related fields for shipping * * @param ShippingAssignmentInterface $shippingAssignment * @param QuoteAddress\Total $total * @param TaxDetailsItemInterface $shippingTaxDetails * @param TaxDetailsItemInterface $baseShippingTaxDetails * @return $this */ protected function processShippingTaxInfo(ShippingAssignmentInterface $shippingAssignment, QuoteAddress\Total $total, $shippingTaxDetails, $baseShippingTaxDetails) { $total->setTotalAmount('shipping', $shippingTaxDetails->getRowTotal()); $total->setBaseTotalAmount('shipping', $baseShippingTaxDetails->getRowTotal()); $total->setTotalAmount('shipping_discount_tax_compensation', $shippingTaxDetails->getDiscountTaxCompensationAmount()); $total->setBaseTotalAmount('shipping_discount_tax_compensation', $baseShippingTaxDetails->getDiscountTaxCompensationAmount()); $total->setShippingInclTax($shippingTaxDetails->getRowTotalInclTax()); $total->setBaseShippingInclTax($baseShippingTaxDetails->getRowTotalInclTax()); $total->setShippingTaxAmount($shippingTaxDetails->getRowTax()); $total->setBaseShippingTaxAmount($baseShippingTaxDetails->getRowTax()); //Add the shipping tax to total tax amount $total->addTotalAmount('tax', $shippingTaxDetails->getRowTax()); $total->addBaseTotalAmount('tax', $baseShippingTaxDetails->getRowTax()); if ($this->_config->discountTax($shippingAssignment->getShipping()->getAddress()->getQuote()->getStore())) { $total->setShippingAmountForDiscount($shippingTaxDetails->getRowTotalInclTax()); $total->setBaseShippingAmountForDiscount($baseShippingTaxDetails->getRowTotalInclTax()); } return $this; }