Круглая цена после уплаты налогов
-
29-09-2020 - |
Вопрос
В моем магазине, CE 1.9.2.2, я хотел бы округлить цены после уплаты налогов.Пример:У меня есть товар по цене 160,50 без учета налогов.Для некоторых покупателей магазин применяет налоговое правило, которое увеличивает цену на 22%.Таким образом, после расчета налога цена на этот конкретный продукт становится 195,81.Для этих клиентов я хотел бы, чтобы цена продукта составляла 196,00, оставляя 160,50 для клиентов, к которым не применяется расчет налога.
Можно ли каким-то образом добиться этого в Magento?
Решение
Мне удалось это сделать.Вот как я этого добился.
Мне пришлось продлить Mage_Tax_Model_Calculation
класс и перепишите логику в calcTaxAmount
метод.
public function calcTaxAmount($price, $taxRate, $priceIncludeTax = false, $round = true)
{
$taxRate = $taxRate / 100;
if ($priceIncludeTax) {
$amount = $price * (1 - 1 / (1 + $taxRate));
} else {
$amount = $price * $taxRate;
}
$taxedPrice = $price + $amount;
$amount += round($taxedPrice) - $taxedPrice;
if ($round) {
return $this->round($amount);
}
return $amount;
}
Я просто добавил две строки:
$taxedPrice = $price + $amount;
$amount += round($taxedPrice) - $taxedPrice;
чтобы суммировать с суммой налога разницу между облагаемой налогом ценой и округленной облагаемой налогом ценой.