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.