Prestashop: Dos transportistas en un mismo pedido

Es posible, que cuando trabajamos con varios transportistas que a su vez pueden estar asignados a productos distintos, nos encontremos un caso en el que un mismo cliente, en un único pedido decide añadir varios productos los cuales cuentan con transportistas distintos y a su vez uno de los cuales no está disponible para enviar a la zona de ese cliente. Prestashop en su versión 1.6.x non tenía esto pensado, y nos encontraríamos que por defecto desaparece el nombre del transportista y nos lo muestra como uno solo, aunque luego ese pedido genere dos a su vez, pero permitiendo la realización del pedido al cliente, cuando en este caso uno de los  productos no puede ser enviado a dicha zona.

 

Aquí os dejo una solución sencilla, buscaríamos

– Class:  Cart (classes/Cart.php)

– Function: getDeliveryOptionList

y reemplazaríamos esta línea

if (count($packages) == 1 && count($package[‘carrier_list’]) == 1 && current($package[‘carrier_list’]) == 0) {

por esta

if (count($package[‘carrier_list’]) == 1 && current($package[‘carrier_list’]) == 0) {

 

De esta manera, si uno de los paquetes no tiene un transportista disponible, el pedido se bloquea y el mensaje “no hay transportista disponible” se muestra en el proceso de pago.

 

 

Fuente: https://www.prestashop.com/forums/topic/985344-major-carriers-problem-when-restrictions-applied-within-product-settings/