Manuel_GT Posted September 27, 2023 Share Posted September 27, 2023 (edited) Hola al foro. Resulta que tengo algunos productos que se venden tanto envasados como a granel. He creado combinaciones para los distintos envases (1kg, 3kg, 5kg, 8kg, etc..) asignando el precio de cada uno a su campo "impacto en el precio" y dejando el precio del producto a 0. Hasta aquí todo bien. Pero claro, la venta a granel pueden ser 200Kg o 20.000kg. Entonces he pensado en crear un "envase" más, llamado granel de 1kg que tenga una cantidad mínima para su venta. Parece que todo era correcto hasta que he puesto el precio de un kg de uno de estos productos granel, que era de 0,026 €/kg y he podido comprobar que los pedidos no manejaban bien este precio. Prestashop redondea a dos decimales los valores (que almacena correctamente en la base de datos ) a la hora de mostrar estos en las fichas de producto. Esto, no es muy problemático ya que puedo tratar el tema en la plantilla. El problema real viene cuando hago un pedido y añado las 13.000 unidades ( 13.000 kg) del producto. Resulta que en lugar de multiplicar el precio por las unidades y redondear, primero redondea y luego multiplica! 13.000 x 0,03 = 390 € 13.000 x 0,026 = 338 € Lo que en un par de unidades es despreciable, en 13.000 es bastante apreciable, incluso haciendo el producto poco competitivo en el mercado en el que este producto se vende. No se si mi problema es de configuración, metiendo los precios en casillas incorrectas, o que directamente la tienda maneja mal esta situación en su core. Entiendo que los redondeos solo deberían aplicarse el los resultados y no en los operadores. ¿Alguien ha tenido este tipo de problema? Si es así, ¿cómo lo ha solucionado? ¿Cómo se vende a granel en Prestashop? Gracias! Edited September 27, 2023 by Manuel_GT ortografía (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted September 27, 2023 Share Posted September 27, 2023 Yo de primeras probaría con las opciones de redondeo Redondeo a la baja, cuando se ha pasado la mitad // Opción por defecto Redondea hasta el siguiente valor par Redondea hasta el siguiente valor impar Redondear al alza al valor más próximo Redondear a la baja al valor más próximo Link to comment Share on other sites More sharing options...
Manuel_GT Posted September 28, 2023 Author Share Posted September 28, 2023 Gracias por la respuesta. Lo probaré. En todo caso creo que el problema no es el tipo de redondeo sino cuando se efectúa este. Se pierde mucha precisión si se redondea antes de empezar a operar porque en mi caso particular, al redondear el precio por unidad estas multiplicando el error. Cualquier error por redondeo se multiplicara ya sea al alza o a la baja. Cualquiera que haya visto una factura de la luz sabe de que hablo. El precio del kWh suele tener cinco decimales ( 0.22486 €/kWh ) Si se redondease a lo prestashop las empresas perderían o ganarían millones de € en las facturas dependiendo de si se redondea a la baja 0,22 o al alza 0,23. Link to comment Share on other sites More sharing options...
ventura Posted September 28, 2023 Share Posted September 28, 2023 Tienes opción para que se se apliquen más decimales en la configuración de las divisas. Por otro lado puedes revisar por ejemplo /classes/Cart.php la función applyProductCalculations para ver como se aplica se realizan las operaciones dependiendo de ltipo de redondeo Link to comment Share on other sites More sharing options...
Manuel_GT Posted October 1, 2023 Author Share Posted October 1, 2023 Gracias por y tu aporte @ventura He probado a poner un decimal mas a la moneda y claro, ahora me salen los precios con tres decimales en todas partes y no se produce ningún redondeo, lo cual es inaceptable cuando los precios aparecen con los impuestos incluidos. Creo que la forma mas limpia en mi caso es que el producto tenga 10 o 100 unidades mínimas de forma que el tercer decimal pase a ser el segundo y el redondeo se haga en el cuarto. Siendo venta a granel por peso, que se vendan en múltiplos de 10 o 100Kg en lugar de 1 kg. Gracias! Link to comment Share on other sites More sharing options...
El plan de Dan Posted October 26, 2023 Share Posted October 26, 2023 On 9/27/2023 at 5:09 AM, Manuel_GT said: Hola al foro. Resulta que tengo algunos productos que se venden tanto envasados como a granel. He creado combinaciones para los distintos envases (1kg, 3kg, 5kg, 8kg, etc..) asignando el precio de cada uno a su campo "impacto en el precio" y dejando el precio del producto a 0. Hasta aquí todo bien. Pero claro, la venta a granel pueden ser 200Kg o 20.000kg. Entonces he pensado en crear un "envase" más, llamado granel de 1kg que tenga una cantidad mínima para su venta. Parece que todo era correcto hasta que he puesto el precio de un kg de uno de estos productos granel, que era de 0,026 €/kg y he podido comprobar que los pedidos no manejaban bien este precio. Prestashop redondea a dos decimales los valores (que almacena correctamente en la base de datos ) a la hora de mostrar estos en las fichas de producto. Esto, no es muy problemático ya que puedo tratar el tema en la plantilla. El problema real viene cuando hago un pedido y añado las 13.000 unidades ( 13.000 kg) del producto. Resulta que en lugar de multiplicar el precio por las unidades y redondear, primero redondea y luego multiplica! 13.000 x 0,03 = 390 € 13.000 x 0,026 = 338 € Lo que en un par de unidades es despreciable, en 13.000 es bastante apreciable, incluso haciendo el producto poco competitivo en el mercado en el que este producto se vende. No se si mi problema es de configuración, metiendo los precios en casillas incorrectas, o que directamente la tienda maneja mal esta situación en su core. Entiendo que los redondeos solo deberían aplicarse el los resultados y no en los operadores. ¿Alguien ha tenido este tipo de problema? Si es así, ¿cómo lo ha solucionado? ¿Cómo se vende a granel en Prestashop? Gracias! No eres el primero que vende productos por kilos, lo de las combinaciones es una opción pero es de locos. A ver si te encuentro uno o varios módulos que había adaptados para ajustar el precio por peso variable... Link to comment Share on other sites More sharing options...
El plan de Dan Posted October 26, 2023 Share Posted October 26, 2023 No era este el que buscaba, pero hace años que no veo esto, y creo que igualmente sirve. Se lo puse a un cliente para otra función (combinaba medidas y material) hace un par de años: https://www.knowband.com/prestashop-dynamic-pricing Link to comment Share on other sites More sharing options...
Manuel_GT Posted October 27, 2023 Author Share Posted October 27, 2023 Gracias por el aporte @El plan de Dan Por ahora lo de la venta a granel esta previsto en una segunda fase, así que puedo dedicar tiempo a buscar una solución vía módulo o programando algo. Si encuentras la solución que comentabas avísame ¿ok? El módulo que me señalas no me termina de convencer, aunque no he entrado en detalle. Lo miraré despacio. Una vez más, gracias. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now