Jump to content

Precios de productos en venta a granel


Manuel_GT

Recommended Posts

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 by Manuel_GT
ortografía (see edit history)
Link to comment
Share on other sites

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

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

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

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

  • 4 weeks later...
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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...