Cómo cobrar gastos de envío según el código postal en PrestaShop
Crear zonas por código postal, rangos y prefijos, rechazar una zona, mantener la recogida en tienda y guardar la configuración: el recorrido completo en el back office.
PrestaShop solo conoce zonas y países. Un cliente de Madrid, un cliente de Baleares y un cliente de un pueblo aislado pueden pagar lo mismo, o recibir un transportista que usted no quiere venderles. El módulo Gastos de envío por código postal añade reglas sobre sus transportistas: cada código, rango o prefijo recibe su tarifa, su rechazo o su importe mínimo. Aquí tiene cómo configurarlo, qué cambia en el pago y qué no hace.
¿Quién necesita gastos de envío por código postal y quién no?
El módulo sirve cuando el precio del transporte depende de un lugar preciso dentro de un mismo país, y no aporta nada cuando basta una tarifa nacional.
Tres situaciones lo justifican.
- Envía a islas o zonas alejadas, y el transportista aplica un recargo.
- Quiere un mensajero local a partir de un importe de carrito, o el envío gratuito alrededor de su almacén.
- Cobra un porcentaje del carrito para pedidos voluminosos en lugar de una tarifa fija.
Una tienda que aplica un precio único para todo el país, o cuyas tarifas ya vienen de una API de transportista, apenas gana nada. El módulo no crea transportistas: pone precio a los que usted marca. Los transportistas gratuitos, la recogida en tienda y los de otros módulos conservan sus precios.
Funciona en PrestaShop 1.7.8, 8.0+ y 9.0+, con PHP 7.4 o superior. PrestaShop 1.7.7 no es compatible.
¿Cómo se definen gastos de envío distintos según el código postal?
Marque los transportistas gestionados, cree una zona por código, rango o prefijo y escriba una tarifa por transportista y por tramo.
Cinco pasos en el back office:
- Instale el módulo y active la licencia. El menú Transporte > Envío por código postal abre la lista de zonas; el botón Ajustes lleva a la configuración.
- En Transportistas gestionados, marque los que dependen del código postal. El módulo guarda sus ajustes originales y los restaura si los desmarca. Indique si sus precios se introducen sin impuestos o con impuestos.
- Pulse Añadir una zona. Complete el Nombre, multilingüe y usado también para reconocer la zona en los CSV, luego Activa, Rechazar la entrega y un Mensaje al cliente opcional.
- En Códigos postales, elija el país e introduzca los códigos separados por comas o saltos de línea: un código (28013), un rango (28001-28099) o un prefijo (28*, SW1*). Pulse Comprobar para ver lo que se añadirá y luego Añadir.
- En Transportistas y tarifas, abra el bloque Todos los transportistas gestionados o el de un transportista. Añadir una tarifa pide la base (Peso o Importe del carrito) y el tramo: Desde incluido, Hasta (excluido), vacío sin límite. El precio puede ser fijo o un porcentaje. El cálculo elige Sustituye el precio de PrestaShop o Se suma al precio de PrestaShop.
Una dirección recibe una sola zona. El código exacto prevalece sobre el prefijo, el prefijo sobre el rango y, entre dos reglas del mismo tipo, la zona situada más arriba en la lista. El orden se ajusta arrastrando; la columna Controles señala zonas sin códigos o sin tarifas, tramos no cubiertos y códigos atendidos por una zona prioritaria.

Un caso concreto: una tienda de Barcelona crea la zona Barcelona con el rango 08001-08099 para su mensajero, la zona España con el rango 01000-52999 para Express 24h y la zona Baleares con el prefijo 07*. El mensajero cubre el centro, Express cubre el resto y la zona Baleares se rechazará en el paso siguiente.
El bloque Probar un código postal reproduce un pedido con un país, un código postal, un peso y un importe de carrito con impuestos después de descuentos, y explica la ausencia de un transportista.

¿Cómo se rechaza la entrega en algunas zonas?
Active Rechazar la entrega en la zona: los transportistas gestionados desaparecen del pago para esos códigos y la recogida en tienda sigue disponible.
El rechazo solo afecta a los transportistas gestionados. Un transportista de otro módulo o uno gratuito sigue apareciendo. El mensaje de la zona, o en su defecto el mensaje general de la configuración, se muestra en el paso de envío y en el comprobador; se traduce a cada idioma de la tienda.
También puede rechazar de forma más fina sin bloquear toda la zona. En el bloque de un transportista, marque Rechazar este transportista en esta zona o fije un Importe mínimo de pedido, por ejemplo para un mensajero disponible a partir de un carrito concreto.
El ajuste Código postal fuera de cualquier zona decide qué ocurre con los códigos que no caen en ninguna zona: precio de PrestaShop o rechazo. El rechazo solo se aplica en países donde existe al menos una zona.

¿Qué ocurre cuando se aplica el envío gratuito de PrestaShop?
Los transportistas gestionados aceptados cuestan cero, el comprobador muestra «Gratuito» y la prueba «Gratuito»; una zona o un transportista rechazado sigue rechazado.
El umbral se ajusta en PrestaShop, en Transporte > Preferencias, por importe o por peso. El módulo lee ese umbral para la divisa y la tienda correspondientes. Las reglas de carrito siguen aplicándose.
La versión 2.0.1 corrige un fallo de la 2.0.0: una zona con entrega rechazada volvía a ser entregable y gratuita en cuanto se aplicaba el envío gratuito de PrestaShop. Ahora el rechazo se examina antes que el envío gratuito y el transportista gestionado deja de ofrecerse. La recogida en tienda nunca se toca.
El comprobador de la ficha de producto y la estimación del carrito siguen el mismo cálculo. Se activan por separado en la configuración, con Mostrar el comprobador en las fichas de producto y Mostrar la estimación en el carrito. La estimación muestra un precio con impuestos y recuerda que el precio final se da en el pago.
Si el envío gratuito viene de una promoción y no del umbral de PrestaShop, un módulo de promociones y reglas de carrito lo lleva al pago, y el módulo de envío sigue aplicando sus rechazos.

¿Cómo se guarda y se traslada la configuración de envío?
Exporte la tienda a CSV antes de cualquier cambio y vuelva a importar el archivo con Sustituir todas las zonas de esta tienda para recuperar la misma configuración.
El bloque Importar / exportar ofrece Exportar CSV, un archivo de ejemplo y una vista previa antes de importar. El separador puede ser punto y coma, coma o tabulador; la codificación UTF-8 o Windows-1252; los números aceptan coma o punto. Los archivos de las versiones 1.0.0 y 2.0.0 siguen siendo legibles.
Cada línea tiene un tipo: zone, postcode, rate o carrier. La vista previa cuenta zonas y tarifas y señala cada línea con error y su número. Después hay tres modos: Combinar, Sustituir las zonas presentes en el archivo y Sustituir todas las zonas de esta tienda. Antes de cada importación se guarda una copia automática, descargable en Copias de seguridad automáticas.
La versión 2.0.1 completa la exportación: cada zona sale con su identificador, su nombre y su mensaje en cada idioma. Sustituir todas las zonas recrea por tanto las zonas tal cual. Dos zonas con el mismo nombre ya no se fusionan, la copia de una zona recibe un nombre único como «París (copia 2)» y la vista previa señala un nombre ambiguo. Una exportación con tarifas de un transportista eliminado se importa con un aviso, sin perder las líneas.
En PrestaShop 1.7.8 y 8, la exportación, el archivo de ejemplo y las copias solo pueden descargarlos los empleados autorizados a ver la página de zonas.
Es la forma más segura de guardar la configuración de envío, volver atrás tras una importación parcial o conservar una referencia antes de cambiar todas las tarifas.
Lo que el módulo no hace
El módulo no crea transportistas, no modifica ningún archivo del núcleo y no sustituye sus tarifas por una API de precios en tiempo real.
- No crea transportistas: el que marca debe existir ya, estar activado para la zona de PrestaShop del país de entrega y tener al menos un tramo de precio. La prueba señala lo que falta.
- No gestiona transportistas gratuitos, la recogida en tienda ni los transportistas de otros módulos.
- No acepta expresiones regulares: los prefijos con letras cubren, por ejemplo, códigos británicos como SW1* en Londres.
- No calcula peso volumétrico ni condiciones por grupo de clientes, categoría o cantidad, y no ofrece un panel de análisis.
- No sustituye el IVA ni las reglas fiscales; para el IVA europeo sigue haciendo falta un módulo dedicado.
Sobre la licencia, una aclaración. Sin licencia activa, los gastos de envío se siguen aplicando en el pago y solo se bloquea la modificación de la configuración. Si el servidor de licencias no responde, la licencia sigue activa siete días desde el primer fallo; una revocación, suspensión o caducidad real se aplican siempre.
El módulo no promete ningún resultado comercial: aplica las reglas que usted introduce, y PrestaShop conserva impuesto, divisa y redondeo. La ficha del módulo y su documentación detallan cada pantalla. Para el pago, un checkout en una página muestra los pasos en una sola página.
Preguntas frecuentes
¿Cómo configuro gastos de envío distintos según el código postal?
¿Se puede rechazar la entrega en algunas zonas?
¿Qué ocurre si el envío gratuito coincide con una zona rechazada?
¿Cómo se guarda y se restaura la configuración?
¿Cómo se evita el envío a zonas aisladas o islas?
Productos de este artículo
Gastos de envío por código postal — Tarifas de envío basadas en código postal
Tarifas de envío por código postal: zonas ilimitadas, códigos exactos, rangos y prefijos Tarifas por...
Promos inteligentes: 3x2, packs y tramos
Cree promociones avanzadas para su tienda PrestaShop : 3x2, compre X y obtenga Y gratis, descuentos por tramos,...
Mensajes condicionales y CTA en producto
Mensajes personalizados en sus fichas de producto según condiciones: stock, precio, rebaja, marca, cliente o país...
Express Checkout : Compra en una sola página
El proceso de compra nativo de PrestaShop tiene cuatro pasos y muchos clics. Express Checkout pone todo el pedido...