Runder Preis nach Steueranwendung
-
29-09-2020 - |
Frage
In meinem Geschäft, CE 1.9.2.2, möchte ich die Preise nach Steueranwendung runden.Beispiel:Ich habe ein Produkt mit einem Preis von 160,50 ohne Steuern.Für einige Kunden wendet das Geschäft eine Steuerregel an, die den Preis um 22% erhöht.Nach der Steuerberechnung beträgt der Preis für dieses bestimmte Produkt also 195,81.Für diese Kunden möchte ich, dass das Produkt einen Preis von 196,00 hat, während für Kunden, auf die die Steuerberechnung nicht angewendet wird, 160,50 übrig bleiben.
Ist es möglich, dies in Magento irgendwie zu erreichen?
Lösung
Ich habe es geschafft.So habe ich es erreicht.
Ich musste die verlängern Mage_Tax_Model_Calculation
klasse und schreibe die Logik in die calcTaxAmount
Methode.
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;
}
Ich habe gerade die beiden Zeilen hinzugefügt:
$taxedPrice = $price + $amount;
$amount += round($taxedPrice) - $taxedPrice;
zum Steuerbetrag die Differenz zwischen dem versteuerten Preis und dem gerundeten versteuerten Preis zu addieren.