_tony_ Posted March 31, 2015 Share Posted March 31, 2015 (edited) Buenas tardes compañeros. A ver si alguien ya tiene solucionado este problema que me surje a mi. Quiero que cuando pasen de 80€ en el carrito, el envío sea gratis pero LIMITADO A 20KG. Alguien tiene una solucion? Gracias! Edited April 11, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
ventura Posted March 31, 2015 Share Posted March 31, 2015 Tienes tambien la opcion de establecer el peso a partir del cual sera gratuito desde el mismo apartado Transporte/preferencias Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Gracias por responder. Pero claro...lo que yo quiero es que NO sea gratis si excedes X peso. Por ejemplo: 80€ envio gratis HASTA 20Kg. Si sobrepasas los 20kg conlleva un gasto extra. Link to comment Share on other sites More sharing options...
ventura Posted March 31, 2015 Share Posted March 31, 2015 Ok no lo habia entendido bien. Para combinar ambas opciones precio y peso tienes que editar o sobreescribir en archivo override la funcion public function getPackageShippingCost del archivo \classes\Cart.php Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Me puedes guiar un poco más? Donde modifico ese archivo...y que tengo que modificar exactamente? Gracias tio y disculpa Link to comment Share on other sites More sharing options...
ventura Posted March 31, 2015 Share Posted March 31, 2015 (edited) En esa funcion tienes esto // Free fees $free_fees_price = 0; if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) $free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency)); $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false); if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0) Prueba a ponerlo asi para una limitacion de 20 kg // Free fees $free_fees_price = 0; if (isset($configuration['PS_SHIPPING_FREE_PRICE'])) $free_fees_price = Tools::convertPrice((float)$configuration['PS_SHIPPING_FREE_PRICE'], Currency::getCurrencyInstance((int)$this->id_currency)); $orderTotalwithDiscounts = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, null, null, false); if ($orderTotalwithDiscounts >= (float)($free_fees_price) && (float)($free_fees_price) > 0 && $this->getTotalWeight() <= 20) Edited March 31, 2015 by ventura (see edit history) Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Perdona pero es que yo de programación.... Yo ya tengo transportistas asignados. Donde está esa funcion para cambiar? Link to comment Share on other sites More sharing options...
ventura Posted March 31, 2015 Share Posted March 31, 2015 Desconozco si hay algun modulo que permita hacerlo desde el backoffice sino la unica manera es a traves de la modificacion de archivos del core de Prestashop, el ejemplo que te he puesto en mi mensaje anterior Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 La pregunta es " donde está situado ese archivo para modificarlo" ? Link to comment Share on other sites More sharing options...
ventura Posted March 31, 2015 Share Posted March 31, 2015 La pregunta es " donde está situado ese archivo para modificarlo" ? La respuesta la tienes en un mensaje mas arriba Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Siento mi torpeza y siento darte la tabarra ...pero no sé localizar el override ni las funciones., ni el core de prestashop. Por eso te decía que no sé donde modificar ese archivo. Voy a trastear a ver si lo encuentro... Mil gracias Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Vale...por el FTP. Ya lo tengo localizado.. Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 No encuentro " class/cart.php" Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Puede ser esto? Pero no estaba en override. La dirección es : httpdocs/clasess/cart.php Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Lo he modificado como me has dicho. Ahora? Link to comment Share on other sites More sharing options...
_tony_ Posted March 31, 2015 Author Share Posted March 31, 2015 Bueno para inutiles como yo; os cuento la solución que yo le he dado. Ya que no soy capaz de toquetear el corazón de prestashop. Simplemente he creado un transporte y lo he regido por PRECIO, y luego le he puesto que el peso máximo que puede llevar este transportista son 20kg. En mi caso: 0 a 80€ el precio del envió es el más caro de la web ( puesto manualmente) pero luego a partir de 80€ le pongo otro rango y le pongo que el coste es 0€. Por lo que cuando pasen de 80€ será el envío gratis, pero al pasar de 20kg el transportista desaparecerá y se irá automaticamente a los de pago. Espero que os sirva. Un saludo Link to comment Share on other sites More sharing options...
ventura Posted April 1, 2015 Share Posted April 1, 2015 Si, era ahi donde indicabas. Si no tienes problemas de incompatibilidades o solapamientos con los transportistas es una buena opción la que has realizado Link to comment Share on other sites More sharing options...
_tony_ Posted April 1, 2015 Author Share Posted April 1, 2015 En principio funciona bien.....espero que siga así. Link to comment Share on other sites More sharing options...
h3r0 Posted April 10, 2015 Share Posted April 10, 2015 Hola ventura, He modificado el código como dices pero no consigo avanzar. Si no es mucha molestia, podrías decirme como configurar el backoffice para que la modificación del codigo que comentas arriba funcione... Solo tengo un transportista, por el momento no necesito más. He probado de varias formas y no lo consigo. Link to comment Share on other sites More sharing options...
ventura Posted April 10, 2015 Share Posted April 10, 2015 Configura los transportistas con su rangos. Y luego establecer el importe a partir del cual el envio sera gratuito, con el codigo indicado ese valor solo se aplicara cuando el total del carrito tenga un peso igual o superior a 20 kg por ejemplo. Asi deberia funcionar Link to comment Share on other sites More sharing options...
h3r0 Posted April 11, 2015 Share Posted April 11, 2015 Perfectísimo!! Ahora si!! Muchísimas gracias por tu ayuda ventura. Link to comment Share on other sites More sharing options...
ventura Posted April 11, 2015 Share Posted April 11, 2015 Me alegro de que te haya servido. Doy el tema por solucionado. Un saludo Link to comment Share on other sites More sharing options...
Recommended Posts