creabit Posted January 28, 2013 Share Posted January 28, 2013 (edited) Si por ejemplo tengo 2 paquetes que pesan 1 kg cada uno, le puedo añadir al pedido final 1 kg más a todos los envíos? es decir, que realmente el envío en este caso sea de 3 kg. Gracias. Edited February 7, 2013 by creabit (see edit history) Link to comment Share on other sites More sharing options...
jesa Posted January 28, 2013 Share Posted January 28, 2013 ?? Puedes explicar mejor que quieres hacer? Si lo que quieres es que todos los envíos paguen un kg mas de transporte, supongo que lo mas sencillo será trampear los precios del transporte. Link to comment Share on other sites More sharing options...
creabit Posted January 28, 2013 Author Share Posted January 28, 2013 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 More sharing options...
jesa Posted January 28, 2013 Share Posted January 28, 2013 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 More sharing options...
creabit Posted January 28, 2013 Author Share Posted January 28, 2013 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 More sharing options...
jesa Posted January 28, 2013 Share Posted January 28, 2013 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 More sharing options...
creabit Posted January 28, 2013 Author Share Posted January 28, 2013 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 More sharing options...
jesa Posted January 28, 2013 Share Posted January 28, 2013 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 More sharing options...
creabit Posted January 28, 2013 Author Share Posted January 28, 2013 Ok, miraré a ver si por código es facil añadir la opción. Gracias. Link to comment Share on other sites More sharing options...
creabit Posted February 6, 2013 Author Share Posted February 6, 2013 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 More sharing options...
creabit Posted February 7, 2013 Author Share Posted February 7, 2013 Solucionado. En la clase Cart.php también hay la misma función, añadí un +1 al valor devuelvo y ahora funciona correctamente. Link to comment Share on other sites More sharing options...
nadie Posted February 7, 2013 Share Posted February 7, 2013 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 More sharing options...
Recommended Posts