Wir verwenden Magento CE 1.7 und haben verschiedene Rundungsprobleme. Bei verschiedenen Berechnungen ergibt sich eine Differenz von 0,01 EUR.
Das Grundproblem könnte sein, dass die Artikelpreise inkl. Gesetzl. MwSt.
Co-Programmierer haben die Mage_Core_Model_Store::roundPrice()
Berechnungsmethode mit einer Genauigkeit von 4 Stellen überschrieben. Dies scheint jedoch Probleme mit PayPal-Zahlungen zu verursachen.
Gibt es eine Lösung für diese Probleme?
BEARBEITEN:
Wir haben versucht , tatsächlich einen offiziellen Core - Patch , die im Grunde 4-stellige fügt eine Rundung auf \Mage_Tax_Model_Sales_Total_Quote_Shipping::_round
, \Mage_Tax_Model_Sales_Total_Quote_Subtotal::_deltaRound
und \Mage_Tax_Model_Sales_Total_Quote_Tax::_deltaRound
das behebt ein Coupon Rundung Problem , aber nicht das PayPal Problem.
quelle
Antworten:
Wir sind uns einiger Rundungsprobleme innerhalb des Magento-Steuermoduls bewusst, die die beschriebenen Szenarien abdecken. Derzeit arbeiten wir an diesen Problemen für eine kommende Version 1.13. Diese Rundungsprobleme lösen eine einfache Paypal-Prüfung aus, mit der festgestellt wird, ob die Positionen im Einkaufswagen korrekt addiert wurden. Es sieht so aus, als würde sich Fabians Patch kurzfristig um den Paypal-Check kümmern.
Wenn Sie Fragen, Kommentare oder Vorschläge zur Verbesserung des Magento Tax-Moduls haben, zögern Sie bitte nicht, mich zu kontaktieren, da ich der für Steuern zuständige Produktmanager bin.
Grüße, Chuck
quelle
Dank Andreas Vogt baue ich ein Modul, um den runden Paypal-Fehler zu beheben. Andreas gab mir ein paar Core-Hacked-Files und ich machte das Modul. Es wird überprüft, ob die Summen korrekt sind, und wenn nicht, wird sie korrigiert.
Afaik der Core-Hack wird in freier Wildbahn getestet. Viele Leute fragten nach dem Modul, aber niemand gab mir Feedback, ob es funktioniert. Aber es ist Unit-getestet! (nur ob das umschreiben funktioniert, da ich keine ahnung hatte, was das paypal problem ist ;-))
https://github.com/magento-hackathon/PaypalRoundBugfix
quelle
Wir haben es sowohl mit dem Paypal-Rundungsfehler als auch mit der Ausgabe von Gutscheincodes mit 100% Rabatt zu tun. Wir haben nur Probleme bei den Preisen (wie Eur 3,99 inkl. MwSt.), Bei denen der Nettopreis auf der 3. Stelle eine 5 (3.325) hat. So hat auch die Steuer (hier mit 20%) auf der 3. Stelle eine 5 (0,665). Wenn Sie also beide Preise aufrunden und addieren (was Paypal und Magento tun), ist die Gesamtsumme 0,01 Euro mehr als der Grundpreis (4,00 Euro).
Die richtige Berechnung sollte 3,32 Euro netto + 0,67 Euro Steuer = 3,99 Euro sein
Da wir auch versuchen, eine allgemeine Lösung zu finden, versuchen wir es mit dem Paypal-Rundungsfix!
quelle
Es besteht ein allgemeiner Zusammenhang zwischen den Preisen, der Menge, dem Rabatt, der Steuer und deren Genauigkeit.
Das wichtige Problem ist die gerundete Zwischensumme, die ich mit der max berechne. Error. 2 Nachkommastellen bedeuten 5 * 10 ^ -3
A) x * 10 ^ 2 / (y + 10 ^ 2) // s * (y + 10 ^ 2) / 10 ^ 2
B) x * (y + 10 2) / 10 2 // s * 10 2 / (10 2 + y)
......
Wenn Sie mit Rabatten oder Steuern rechnen und den Preis neu berechnen möchten , kann die nächste Erklärung für Sie interessant sein. Bitte beachten Sie, da ich im Frontend keinen Fall kenne, ist es möglich, dass es eine interne Berechnung gibt. A) Summe => Steuer / Rabatt => Summe B) Steuer / Rabatt => Summe => Steuer / Rabatt
A) x * y / 10 ^ 2 // s * 10 ^ 2 / y
B) x * 10 ^ 2 / y // s * y / 10 ^ 2
Mit einer Genauigkeit von 2 Stellen müssen Sie eine Rate ohne gebrochene Ziffern haben. Beispiel: Summe: 15,15 Steuersatz: 0,3% => Steuer 0,04545 => gerundet 0,0455 Steuer: 0,0455 => Summe: 15,17
Wenn a die Genauigkeit ist, muss y kleiner als a + 2 sein.
Bitte beachten Sie, wenn Sie mit Mengen umgehen. Der Fehler wird multipliziert. Wenn Sie also ein Maximum von 10 ^ 5 haben, müssen Sie eine Genauigkeit von 7 haben. Dies ist nur besorgniserregend, wenn Sie mit Offset rechnen!
ADDITION (9.10.2013 Magento Version 1.7.0.2) Brutto <=> Netto und Steuern // Amerika <=> alte Europa-Mengen sind ganze Zahlen (Cents) und das Mapping
f (x) = rund (a * x) a> 1 ist nicht bijektiv. In meinen Worten: Nicht für jeden Preis inkl. existiert ein Preis zzgl. gesetzl. oder Es gibt manchmal 2 Preise inkl. gesetzl. für einen preis excl. oder Sie können 2 verschiedene Ergebnisse erhalten, je nachdem, wie Sie berechnen
Praxisbeispiel aus Deutschland:
Sie versuchen einen Preis inkl. MwSt. Einzugeben. Steuern: 19,95 Sie erhalten 16,76 (2 Ziffern) als Ihre Preise zzgl. gesetzl. die Steuern (19%). Wenn Sie die 19% Steuern berechnen, erhalten Sie (16,76 * 0,19) 3,18. (Achtung: 19,95 * 019 / 1,19 ~ 3,19)
Es gibt also einen Cent Unterschied. 16,76 => 19,94 16,77 => 19,96
Es gibt keinen Preis 19,95 in Amerika - Land des Netto.
Rechnen Sie so weit wie möglich mit Originalpreisen. Verwenden Sie für die Einbeziehung der Preise den eingegebenen Preis und die Steuern (gebrochene Zahl).
PayPal hat diesen Betrugscheck - jetzt bin ich mir nicht sicher - aber PayPal fügt nur die Zahl hinzu, die Magento ihm gibt. siehe http://fabiankrueger.de/blog/magento-und-paypayl-rundungsfehler/ Wenn dies nicht zutrifft und PayPal Tax oder Total neu berechnet, ist dieses Problem nicht lösbar, da sonst die Preise - falsch oder richtig - zuvor in Magento angezeigt werden . Löse es dort. Bei mir scheint es zu funktionieren.
quelle