- Zonas de entrega por código postal
- Tarifas avanzadas por transportista
- Productividad en back office
- Enfoque técnico
- Ultramar / islas / zonas remotas
- Envío gratis local
- Bloquear envío en zonas no servidas
- Costes en porcentaje
- ¿El módulo crea transportistas?
- ¿Qué pasa si no coincide ninguna zona?
- ¿Soporta códigos postales alfanuméricos (UK, CA)?
- ¿Puedo usarlo con One Page Checkout?
- El módulo no aparece en el menú de Envío
- Los costes no cambian en el checkout
- Un transportista desaparece en el checkout
Shipping Cost by Zip Code — Costes de envío por código postal
Shipping Cost by Zip Code es un módulo para PrestaShop que permite aplicar costes de envío precisos en función del código postal del cliente. Puedes crear zonas postales personalizadas (ilimitadas), asociar códigos postales (valores únicos o rangos numéricos) y definir tarifas por transportista con tramos por peso o tramos por importe del carrito.
A diferencia del cálculo nativo por zonas/países, esta solución es ideal cuando los costes varían mucho entre centro urbano, zonas rurales, islas, montaña, territorios de ultramar, etc. El módulo no añade transportistas: ajusta las tarifas de tus transportistas existentes durante el checkout, según el código postal.
Puntos fuertes:
- Zonas postales ilimitadas (códigos únicos y rangos numéricos)
- Tarifas por transportista + tramos ilimitados (por peso o por total del carrito)
- Envío gratis (por tramo, por zona o a partir de un umbral)
- Importación / exportación CSV para configuración masiva
- Sistema de prioridad cuando hay solapamiento de zonas
- Multitienda, multilingüe, sin overrides
Visión general
Por defecto, PrestaShop calcula los costes de envío según zonas geográficas y países, lo cual suele ser demasiado impreciso. Una tienda puede necesitar tarifas distintas según distancia, accesibilidad o el coste real del transporte, incluso dentro del mismo país.
Con Shipping Cost by Zip Code configuras reglas a nivel de código postal:
- Creas una zona postal (p. ej. “Centro ciudad”, “Zona montaña”, “Islas/ultramar”).
- Añades códigos postales (lista) o rangos (p. ej. 75001 → 75020).
- Configuras la tarificación por transportista con lógica por peso o por importe.
Si ninguna zona coincide con el código postal, el comportamiento es configurable: aplicar tarifas estándar de PrestaShop o bloquear el envío (transportistas ocultos).
Funcionalidades
Zonas de entrega por código postal
- Creación de zonas postales ilimitadas
- Formatos de código postal:
- Códigos individuales (un código o una lista)
- Rangos numéricos (p. ej. 75001–75020)
- Varios países pueden gestionarse en la misma zona
- Activar / desactivar zonas
- Opción “Envío desactivado”: oculta transportistas en el checkout para una zona concreta
- Sistema de prioridades para gestionar zonas solapadas
Tarifas avanzadas por transportista
- Tarifas por transportista y por zona
- Modo de cálculo:
- Peso (kg)
- Precio (total del carrito)
- Tramos ilimitados (0–5, 5–10, etc.)
- Importes fijos o tarifas porcentaje
- Envío gratis:
- por tramo
- por zona / transportista
- automáticamente a partir de un umbral de carrito
- Opción “Todos los transportistas”: aplicar una regla a todos los transportistas de una vez
Productividad en back office
- Interfaz integrada en el back office en Envío
- Listado de zonas con búsqueda / filtros / ordenación y posición (drag & drop)
- Editor “todo-en-uno”: ajustes generales + códigos postales + tarifas en la misma página
- Importación CSV con informe de errores
- Exportación CSV de la configuración completa
- Archivo CSV de ejemplo incluido
Enfoque técnico
- Compatible con PrestaShop 1.7.7, 8.x y 9.x
- Compatible con multitienda
- Soporte multilingüe (nombres de zonas traducibles)
- Sin overrides del core de PrestaShop
- Uso de
id_carrier_reference(resistente a cambios en transportistas) - Consultas optimizadas + caché en memoria (matching código postal → zona)
Requisitos
- PrestaShop: mínimo 1.7.7.0 (compatible 1.7.7 → 9.x)
Limitación importante: solo se admiten códigos postales numéricos. Países con códigos postales alfanuméricos (p. ej. Reino Unido, Canadá, Países Bajos) no están soportados.
Instalación
Método 1 — desde el Back Office (recomendado)
- Ve a Módulos > Gestor de módulos
- Haz clic en Subir un módulo
- Selecciona
wepresta_shipping_cost_by_zip.zip - Espera a que finalice la instalación
- Haz clic en Configurar
Método 2 — por FTP
- Descomprime el archivo
- Sube la carpeta
wepresta_shipping_cost_by_zip/a/modules/ - En el back office: Módulos > Gestor de módulos
- Busca el módulo y haz clic en Instalar
- Haz clic en Configurar
Qué hace la instalación
- Crea 4 tablas:
wep_zip_zone,wep_zip_zone_lang,wep_zip_range,wep_zip_delivery - Registra los hooks necesarios
- Añade una pestaña “Shipping by Zip Code” en Envío
- Inicializa una configuración por defecto
Nota: el módulo no crea transportistas. Ajusta los costes de los transportistas existentes según el código postal.
Configuración
Acceso:
- Módulos > Gestor de módulos > Configurar
- o Envío > Shipping by Zip Code
Ajustes globales
- Activar módulo: activa/desactiva el cálculo por código postal
- Comportamiento por defecto (si no hay coincidencia de zona):
- Usar tarifas estándar: PrestaShop aplica sus tarifas nativas (recomendado para empezar)
- Bloquear envío: los transportistas no se muestran en el checkout
Gestión de zonas
Acceso: Envío > Shipping by Zip Code
Crear una zona
- Haz clic en Añadir nueva zona
- Rellena:
- Nombre de zona (multilingüe)
- Activa (Sí/No)
- Envío desactivado (Sí/No)
- Haz clic en Guardar
Añadir códigos postales
En el editor de la zona, sección Códigos postales:
- Selecciona el país
- Añade:
- Lista de códigos postales (separados por comas):
75001, 75002, 75003
- o un rango:
- de
75001a75020
- de
- Lista de códigos postales (separados por comas):
- Haz clic en + Añadir
Solo se admiten códigos postales numéricos.
Configurar transportistas y tarifas
En la sección Transportistas y tarifas:
- Selecciona un transportista (o Todos los transportistas)
- Elige el tipo:
- Peso (kg) o Precio (total del carrito)
- Define el tramo:
- mínimo / máximo
- Indica el coste
- Opciones:
- Porcentaje (si se activa, el coste es un % del carrito)
- Envío gratis
- Gratis a partir de (umbral del carrito)
- Haz clic en + Añadir regla de tarifa
Importación / exportación CSV
Formato CSV
- Separador: punto y coma
; - Codificación: UTF-8
Columnas principales:
zone_name(obligatorio)country_iso(obligatorio)postal_code_from(obligatorio)postal_code_to(opcional: vacío = código único)carrier_reference(obligatorio)calculation_type:weight/price(obligatorio)range_from,range_to,price(obligatorios)is_percentage,is_free,free_from_amount(opcionales)
Importar
- Envío > Shipping by Zip Code
- Importar CSV
- Selecciona el archivo
- Importa y revisa el informe (OK / actualizados / errores)
Comportamientos útiles:
- Si existe una zona con el mismo nombre, se reutiliza (sin duplicados)
- Los rangos existentes no se duplican
- Una regla idéntica se actualiza
Exportar
- Haz clic en Exportar CSV
- El archivo descargado utiliza el mismo formato del import
Sistema de prioridades
Cada zona tiene una posición (ordenable). Si un código postal coincide con varias zonas, se utiliza la zona con la posición más baja.
Orden de coincidencia:
- Coincidencia exacta (código postal individual)
- Coincidencia por rango
- Si hay varias coincidencias, decide la posición de la zona
Multitienda
El módulo es compatible con multitienda:
- Zonas y tarifas se muestran según el contexto (todas las tiendas / grupo / tienda)
- Una zona se asocia al contexto de tienda activo cuando se crea
- Para aplicar la misma configuración a varias tiendas: exporta/importa por CSV
Comportamiento del cliente
En el checkout, el módulo es transparente:
- El cliente introduce la dirección (con código postal)
- PrestaShop muestra los transportistas
- El módulo ajusta los costes según la zona coincidente
El cliente verá:
- costes adaptados a su código postal
- posiblemente menos transportistas si una zona es “no entregable”
- envío gratis si está configurado
Casos de uso habituales
Ultramar / islas / zonas remotas
Crea una zona específica (p. ej. 97100 → 97490) con tarifas más altas que la zona principal.
Envío gratis local
Crea una zona “local” (códigos postales cercanos) con envío gratis, manteniendo tarifas estándar en el resto.
Bloquear envío en zonas no servidas
Crea una zona “no entregable” y activa Envío desactivado para ocultar transportistas.
Costes en porcentaje
Útil para carritos de alto valor: p. ej. 3% del total, y gratis por encima de un umbral.
FAQ
¿El módulo crea transportistas?
No. Utiliza tus transportistas existentes y ajusta el cálculo de costes según el código postal.
¿Qué pasa si no coincide ninguna zona?
Según la configuración global:
- PrestaShop aplica las tarifas estándar
- o el envío se bloquea (transportistas ocultos)
¿Soporta códigos postales alfanuméricos (UK, CA)?
No, solo códigos postales numéricos.
¿Puedo usarlo con One Page Checkout?
Sí. El coste se calcula del lado servidor mediante getOrderShippingCost(), compatible con checkout estándar y OPC.
Resolución de problemas
El módulo no aparece en el menú de Envío
- Comprueba que está instalado y activado
- Vacía la caché: Parámetros avanzados > Rendimiento > Vaciar caché
- Revisa permisos de empleados
Los costes no cambian en el checkout
- ¿Módulo activado?
- ¿Zona coincidente y activa para ese código postal?
- ¿Reglas configuradas para esa zona + transportista?
- ¿Tramos que cubren el peso/importe del carrito?
- ¿Caché vaciada?
Un transportista desaparece en el checkout
- La zona tiene Envío desactivado
- Comportamiento por defecto = Bloquear envío y no hay coincidencia
- No existe una regla para ese transportista en la zona encontrada
Changelog
Versión 1.0.0
- Zonas postales ilimitadas
- Códigos postales individuales + rangos numéricos
- Tarifas por peso o por importe
- Porcentaje sobre el total del carrito
- Envío gratis (por tramo / umbral)
- Bloqueo de envío por zona
- Prioridades entre zonas
- Importación / exportación CSV
- Multitienda + multilingüe
- Compatibilidad PrestaShop 1.7.7 → 9.x
Soporte
- Soporte desde la página del módulo (PrestaShop Addons) o tu área de cliente WePresta
- Tiempo de respuesta habitual: 24–48 horas laborables
Antes de contactar con soporte, prepara:
- versión de PrestaShop
- versión de PHP
- descripción clara del problema
- capturas de pantalla
- logs de PrestaShop si están disponibles
Licencia
Academic Free License (AFL 3.0).
Copyright © WePresta. Todos los derechos reservados.