Jump to content

[Solucionado] Añadir kg al peso final del envío


creabit

Recommended Posts

La idea es que los productos se venden en cajas pequeñas, y si un cliente por ejemplo compra 3 productos las cajas pequeñas de cada producto se envían todas dentro de una misma caja más grande, y esta caja grande pongamos que vacía pesa 1 kg, por eso el peso total será el peso de la caja de cada producto más 1 kg que pesa la caja grande.

Link to comment
Share on other sites

Entiendo que si solo compras una caja no envías la de 1kg no?

De todas formas, el problema que veo es que cada cuantas cajas pequeñas envías una grande...si puedes definir claramente las distintas opciones que tienes pues podrás buscar una solucíón...

Si solo fuera una caja por pedido...sería sencillo añadiendo el importe de esa caja en todos los intervalos de precios del transporte.

Link to comment
Share on other sites

Será siempre 1 kg a añadir en cualquier comanda, ya tenga una caja pequeña o varias. La solución de añadir el precio a los intervalos de transporte no sería correcto, porque dependiendo del peso total el intervalo puede variar, es decir, pongamos que el cliente compra 3 cajas y el peso total es de 3 kg el cual iria en una franja de intervalo, pero sumando el 1kg que le falta iría al siguiente intervalo de precios, lo cual puede ser superior a simplemente añadir lo que cuesta ese 1kg de más al intervalo anterior.

 

A parte que el de añadir el precio de ese 1kg a todos los intervalos, cuando hay muchos, es bastante tedioso. La idea era si prestashop tenía simplemente un lugar para añadir kg a todos los pedidos.

Link to comment
Share on other sites

Yo creo que es bastante sencillo siempre que te esté entendiendo correctamente, solo es un cambio de visión del problema.

Si por ejemplo tienes que entre 0-3kg el precio son 5€ y entre 3,1-6kg son 7€ por ponerte un ejemplo...

Ahora tu quieres que el kg ese de mas sean 3€ por ejemplo...

Sería tan sencillo como que le pongas directamente esos 3€ a todos los rangos y te quedaría el primero a 8€ y el segundo a 10€. Si siempre va a ser una sola caja pues no hay problema...

Link to comment
Share on other sites

Pero pon por ejemplo que el cliente compra 2 paquetes y pesa todo 3 kg, en tu caso el cliente pagaría 8€, en cambio si realmente se le suma el kg al pedido, serían 4 kg y en este caso el cliente pagaría 7€, por lo que añadir simplemente los euros a cada intervalo creo que no es del todo correcto.

Link to comment
Share on other sites

Par alo que buscas yo creo que la única opción que tienes es ir metiendo kg a kg y a cada uno ponerle el precio de 1kg mas porque tal cual está planteado prestashop no va a saber si se pasa de rango o no...

Otra posibilidad es que mires las reglas del carrito, pero de igual manera, te dejará meter un importe mas al predido, pero no te añadirá un kg.

Y la opción mas costosa que tienes pero que se adaptará 100% sería que modificaras el código para que se añada 1kg a la hora de asignar el precio de transporte.

Link to comment
Share on other sites

  • 2 weeks later...

He visto que la clase Order.php tiene la función getTotalWeight que en teoría tendria que ser la función que obtiene el peso total del pedido, pues bien, al resultado que devuelve simplemente le sumo 1, pero no funciona... ¿lo estoy haciendo mal?

 

public function getTotalWeight()
{
 $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
 SELECT SUM(product_weight * product_quantity) weight
 FROM '._DB_PREFIX_.'order_detail
 WHERE id_order = '.(int)($this->id));
 return ((float)($result['weight'])) + 1;
}

Link to comment
Share on other sites

Solucionado. En la clase Cart.php también hay la misma función, añadí un +1 al valor devuelvo y ahora funciona correctamente.

 

Si das el tema como solucionado, edita el titulo del tema, editando el primer mensaje, pulsando en editar, y después en "Usar editor completo", añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...