/** * Update tax related fields for quote item * * @param AbstractItem $quoteItem * @param ItemTaxDetails $itemTaxDetails * @param ItemTaxDetails $baseItemTaxDetails * @param Store $store * @return $this */ public function updateItemTaxInfo($quoteItem, $itemTaxDetails, $baseItemTaxDetails, $store) { //The price should be base price $quoteItem->setPrice($baseItemTaxDetails->getPrice()); $quoteItem->setConvertedPrice($itemTaxDetails->getPrice()); $quoteItem->setPriceInclTax($itemTaxDetails->getPriceInclTax()); $quoteItem->setRowTotal($itemTaxDetails->getRowTotal()); $quoteItem->setRowTotalInclTax($itemTaxDetails->getRowTotalInclTax()); $quoteItem->setTaxAmount($itemTaxDetails->getRowTax()); $quoteItem->setTaxPercent($itemTaxDetails->getTaxPercent()); $quoteItem->setHiddenTaxAmount($itemTaxDetails->getDiscountTaxCompensationAmount()); $quoteItem->setBasePrice($baseItemTaxDetails->getPrice()); $quoteItem->setBasePriceInclTax($baseItemTaxDetails->getPriceInclTax()); $quoteItem->setBaseRowTotal($baseItemTaxDetails->getRowTotal()); $quoteItem->setBaseRowTotalInclTax($baseItemTaxDetails->getRowTotalInclTax()); $quoteItem->setBaseTaxAmount($baseItemTaxDetails->getRowTax()); $quoteItem->setTaxPercent($baseItemTaxDetails->getTaxPercent()); $quoteItem->setBaseHiddenTaxAmount($baseItemTaxDetails->getDiscountTaxCompensationAmount()); //Set discount calculation price, this may be needed by discount collector if ($this->_config->discountTax($store)) { $quoteItem->setDiscountCalculationPrice($itemTaxDetails->getPriceInclTax()); $quoteItem->setBaseDiscountCalculationPrice($baseItemTaxDetails->getPriceInclTax()); } else { $quoteItem->setDiscountCalculationPrice($itemTaxDetails->getPrice()); $quoteItem->setBaseDiscountCalculationPrice($baseItemTaxDetails->getPrice()); } return $this; }