Pergunta

Na minha loja, CE 1.9.2.2, gostaria de arredondar os preços após a aplicação dos impostos.Exemplo:Tenho um produto com preço 160,50 sem impostos aplicados.Para alguns clientes a loja aplica uma regra fiscal que aumenta o preço em 22%.Assim, após o cálculo do imposto, o preço daquele determinado produto passa a ser 195,81.Para esses clientes eu gostaria que o produto custasse 196,00 deixando 160,50 para clientes que não possuem o cálculo do imposto aplicado.

É possível conseguir isso de alguma forma no Magento?

Foi útil?

Solução

Eu consegui fazer isso.Foi assim que consegui.

tive que estender o Mage_Tax_Model_Calculation classe e reescrever a lógica na calcTaxAmount método.

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;
}

Acabei de adicionar as duas linhas:

$taxedPrice = $price + $amount;
$amount += round($taxedPrice) - $taxedPrice;

somar ao valor do imposto a diferença entre o preço tributado e o preço tributado arredondado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top