Hola @marcosdeco, tal como comentan @ramon92 y @pabloweb, PrestaShop 1.7.6.5 no tiene una funcionalidad nativa en el Back Office para filtrar transportistas por códigos postales específicos. Las zonas se gestionan a nivel de país o estado/provincia, no de forma tan detallada.
La solución más limpia y directa en tu versión de PrestaShop es crear un override de la clase Cart para modificar el método getAvailableCarriers(). Este método es el encargado de devolver la lista de transportistas disponibles para un carrito y dirección de entrega concretos.
Deberías crear el archivo override/classes/Cart.php (si no existe ya) y añadir la siguiente lógica dentro de la clase Cart extendida. Asegúrate de adaptar los códigos postales y el ID o nombre del transportista que quieres ocultar:
// En override/classes/Cart.php, dentro de getAvailableCarriers():
foreach ($carriers as $key => $carrier) {
if ($address && in_array(substr($address->postcode, 0, 2), ['35', '38', '51', '52'])) {
if ($carrier['id_carrier'] == 1 || strpos($carrier['name'], 'Estándar') !== false) {
unset($carriers[$key]);
}
}
}
return $carriers; // Asegúrate de devolver la lista filtrada
Después de guardar el archivo, recuerda limpiar la caché de PrestaShop (normalmente en Parámetros avanzados > Rendimiento) para que el override se cargue correctamente. Este código verifica el prefijo del código postal y, si coincide con alguno de los definidos como 'remoto', elimina el transportista con ID 1 (o cuyo nombre contenga 'Estándar') de la lista.