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.

Comment facturer la livraison selon le code postal sur PrestaShop

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

En el editor de zona, la entrada «75116, 92*, 93100-93199» se analiza antes de añadirla: cada código reconocido aparece junto a las reglas ya existentes.
En el editor de zona, la entrada «75116, 92*, 93100-93199» se analiza antes de añadirla: cada código reconocido aparece junto a las reglas ya existentes.

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.

La prueba muestra la zona París encontrada por el rango 75001-75020, la regla aplicada y el precio sin y con impuestos del transportista gestionado, con el umbral de envío gratuito del carrito.
La prueba muestra la zona París encontrada por el rango 75001-75020, la regla aplicada y el precio sin y con impuestos del transportista gestionado, con el umbral de envío gratuito del carrito.

¿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.

En el paso de envío, el mensaje de la zona explica el rechazo y la recogida en tienda sigue pudiéndose elegir: el cliente no se queda ante un error.
En el paso de envío, el mensaje de la zona explica el rechazo y la recogida en tienda sigue pudiéndose elegir: el cliente no se queda ante un error.

¿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.

En la ficha de producto, el cliente introduce su código postal y ve el transportista, el precio con impuestos y el umbral de envío gratuito antes de añadir al carrito.
En la ficha de producto, el cliente introduce su código postal y ve el transportista, el precio con impuestos y el umbral de envío gratuito antes de añadir al carrito.

¿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?
Marque los transportistas gestionados en la configuración y cree una zona por sector. En la zona, añada códigos exactos, rangos o prefijos y escriba una tarifa por transportista y por tramo de peso o importe. El módulo elige la zona en el pago y PrestaShop aplica impuesto, divisa y redondeo.
¿Se puede rechazar la entrega en algunas zonas?
Sí. Active «Rechazar la entrega» en la zona: los transportistas gestionados dejan de ofrecerse para esos códigos. La recogida en tienda y los transportistas de otros módulos siguen disponibles. Un mensaje traducido explica el rechazo al cliente. El rechazo se mantiene aunque se aplique el envío gratuito de PrestaShop, desde la versión 2.0.1.
¿Qué ocurre si el envío gratuito coincide con una zona rechazada?
Desde la versión 2.0.1 prevalece el rechazo: el transportista gestionado no se ofrece aunque el carrito alcance el umbral de envío gratuito por importe o peso. Los transportistas aceptados sí pasan a cero. El comprobador muestra «Gratuito» y la prueba «Gratuito» cuando un transportista será realmente gratuito en el pago.
¿Cómo se guarda y se restaura la configuración?
Use «Exportar CSV» en el bloque Importar / exportar. El archivo contiene zonas, códigos postales, tarifas y reglas de transportista. Para restaurar, elija «Sustituir todas las zonas de esta tienda»: las zonas se recrean con su identificador, nombre y mensaje en cada idioma. También se guarda una copia automática antes de cada importación.
¿Cómo se evita el envío a zonas aisladas o islas?
Cree una zona con los prefijos o rangos correspondientes, por ejemplo 07* para Baleares, y active «Rechazar la entrega». Los transportistas gestionados desaparecen del pago para esos códigos y la recogida en tienda sigue disponible. También puede rechazar un solo transportista o fijar un importe mínimo sin bloquear toda la zona.

Productos de este artículo

Encuentre el módulo que su tienda necesita

Ver los módulos