Вопрос

В моем магазине, 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;

чтобы суммировать с суммой налога разницу между облагаемой налогом ценой и округленной облагаемой налогом ценой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top