Estamos utilizando Magento CE 1.7 y tenemos varios problemas de redondeo. En varios cálculos hay una diferencia de 0,01 EUR.
La cuestión básica podría ser que los precios de los artículos son incl. impuesto.
Los coprogramadores sobrescribieron el Mage_Core_Model_Store::roundPrice()
método para calcular con una precisión de 4 dígitos. Pero esto parece causar problemas con los pagos de PayPal.
¿Hay una solución para esos problemas?
EDITAR:
Nos intentado un parche oficial núcleo que básicamente agrega 4 dígitos redondeo a \Mage_Tax_Model_Sales_Total_Quote_Shipping::_round
, \Mage_Tax_Model_Sales_Total_Quote_Subtotal::_deltaRound
y \Mage_Tax_Model_Sales_Total_Quote_Tax::_deltaRound
el que corrige un problema de redondeo cupón pero no el problema de PayPal.
fuente
Respuestas:
Somos conscientes de varios problemas de redondeo dentro del módulo impositivo central de Magento que cubren los escenarios que se han descrito. Actualmente estamos trabajando en esos problemas para una próxima versión 1.13. Esos problemas de redondeo están desencadenando un simple cheque de Paypal que determina si las líneas de pedido en el carrito se suman correctamente. Parece que el parche de Fabian se encarga del cheque de Paypal a corto plazo.
Si tiene alguna pregunta, comentario o sugerencia sobre cómo podemos mejorar el módulo de impuestos de Magento, no dude en ponerse en contacto conmigo, ya que soy el gerente de producto responsable de los impuestos.
Saludos, Chuck
fuente
Gracias a Andreas Vogt, construí un módulo para corregir el error redondo de Paypal. Andreas me dio algunos archivos pirateados básicos e hice el módulo. Comprueba si las sumas son correctas y, si no, se corrige.
Afaik, el truco central, se prueba en la naturaleza. Mucha gente solicitó el módulo, pero ninguno me dio retroalimentación si funciona. ¡Pero es unitario probado! (solo si las reescrituras funcionan, porque no tenía idea de cuál es el problema de PayPal ;-))
https://github.com/magento-hackathon/PaypalRoundBugfix
fuente
Nos enfrentamos tanto al error de redondeo de PayPal como al problema con los códigos de cupón de 100% de descuento. Solo tenemos problemas con los precios (como Eur 3,99 con impuestos incluidos), donde el precio neto tiene en el 3er dígito un 5 (3,325). Así también el impuesto (aquí con 20%) tiene en el 3er dígito un 5 (0,665). Entonces, si redondea y agrega ambos precios (lo que hace paypal y magento), el total es Eur 0,01 más que el precio base (Eur 4,00).
El cálculo correcto debe ser Eur 3,32 neto + Eur 0,67 impuesto = Eur 3,99
Como también estamos tratando de encontrar una solución general, le damos una oportunidad al arreglo de redondeo de PayPal.
fuente
Existe una relación general entre los precios, la cantidad, el descuento, los impuestos y sus precisiones.
La cuestión importante es el subtotal redondeado que estoy calculando con el máximo. Error. 2 dígitos fraccionarios significa 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)
......
Si desea calcular con descuentos o impuestos y desea volver a calcular el precio, la siguiente explicación puede ser interesante para usted. Tenga en cuenta que no conozco ningún caso en el front-end, es posible que haya un cálculo interno. A) Total => Impuesto / Descuento => Total B) Impuesto / Descuento => Total => Impuesto / Descuento
A) x * y / 10 ^ 2 // s * 10 ^ 2 / y
B) x * 10 ^ 2 / y // s * y / 10 ^ 2
Con una precisión de 2 dígitos, debe tener una tasa SIN DÍGITOS FRACCIONALES. Ejemplo: Total: 15,15 tasa impositiva: 0,3% => impuesto 0,04545 => redondeado 0,0455 impuesto: 0,0455 => total: 15,17
si a es la precisión, entonces debe ser y menor que a + 2.
Tenga en cuenta si maneja cantidades. El error se multiplicará. Entonces, si tiene un máximo de 10 ^ 5, debe tener una precisión de 7. ¡Esto es preocupante si está calculando con desplazamiento!
ADEMÁS (10/09/2013 Magento versión 1.7.0.2) Brutto Netto <=> e Impuestos // América <=> viejos aparatos de Europa son enteros (centavos) y el mapeo
f (x) = round (a * x) a> 1 es No es biyectivo. En mis palabras: no para todos los precios incl. existe un precio excl. o A veces hay 2 precios incl. por un precio excl. o puede obtener 2 resultados diferentes dependiendo de cómo calcule
Ejemplo del mundo real de Alemania:
Intenta ingresar un precio incl. impuestos: 19,95 Usted obtiene 16,76 (2 dígitos) como sus precios excl. los impuestos (19%). Si calcula el 19% de impuestos que obtiene (16,76 * 0.19) 3,18. (Tenga en cuenta: 19.95 * 019 / 1.19 ~ 3.19)
Entonces hay 1 centavo de diferencia. 16,76 => 19,94 16,77 => 19,96
No hay precio 19,95 en Estados Unidos - tierra de netto.
Así que calcule con los precios originales lo más lejos posible. Para incluir precios, use el precio ingresado y los impuestos (número desglosado).
PayPal tiene esta verificación de fraude, ahora no estoy seguro, pero PayPal solo agrega el número que le da magento. ver http://fabiankrueger.de/blog/magento-und-paypayl-rundungsfehler/ Si esto no es cierto y PayPal recalcula el Impuesto o el Total, este problema no se puede resolver, de lo contrario, los precios, incorrectos o correctos, se muestran antes en Magento . Resuélvelo allí. Para mí parece funcionar.
fuente