# Envío Refrigerado y Seco PrestaShop: instalación y configuración

> Presentación El módulo está pensado para tiendas que venden productos secos y refrigerados. El cliente mantiene un solo carrito, paga una vez y recibe un único pedido con un único…

- Página: <https://www.datafirefly.com/es/documentation/dfcoldchain/>
- Idioma: es
- Actualizado el: 2026-10-12
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/dfcoldchain/index.md), [en](https://www.datafirefly.com/en/documentation/dfcoldchain/index.md), [de](https://www.datafirefly.com/de/documentation/dfcoldchain/index.md), [it](https://www.datafirefly.com/it/documentation/dfcoldchain/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfcoldchain/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfcoldchain/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfcoldchain/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## Presentación

El módulo está pensado para tiendas que venden productos secos y refrigerados. El cliente mantiene un solo carrito, paga una vez y recibe un único pedido con un único importe de envío. Ese importe depende de la zona (país y código postal) y del contenido del carrito: solo seco, solo refrigerado o ambos. El refrigerado se rechaza en las zonas a las que no llega la cadena de frío. Tras el pedido, el módulo lo separa en paquetes, uno por tipo, cada uno con su transportista y su seguimiento.

## Instalación

1. En **Módulos > Gestor de módulos**, haz clic en **Subir un módulo** y envía el archivo `dfcoldchain-1.0.2.zip`.
2. El módulo crea su transportista, llamado **Envío estándar**. Puedes renombrarlo en **Transporte > Transportistas**: el módulo sigue al transportista aunque se modifique.
3. Comprueba que el transportista tiene una **regla de impuestos**. En la instalación el módulo copia la del transportista por defecto.
4. Abre la configuración del módulo y empieza por la pestaña **Diagnóstico**.

Al instalar se crean cuatro zonas de ejemplo para España y Portugal (una ciudad, las islas y ciudades autónomas, Madeira y Azores, la península). Adáptalas o elimínalas antes de publicar.

## Zonas y tarifas

Las zonas se leen de arriba abajo, primero el número de prioridad más bajo. Se aplica la primera zona activa cuyo país y código postal coinciden con la dirección. Un destino que no coincide con ninguna zona no recibe este transportista, y en él se rechaza el refrigerado.

### Campos de una zona

- **Nombre de la zona** y **Activa**.
- **Prioridad**: coloca las zonas precisas (una ciudad, unas islas) antes que las amplias (todo un país).
- **Países (ISO)**: uno o varios códigos separados por comas, por ejemplo `ES,PT`.
- **Códigos postales**: vacío para todo el país, si no un código por línea o separados por comas.
- **Gratis desde**: umbral de envío gratis, 0 para ninguno.
- **Solo seco**, **Solo refrigerado**, **Seco y refrigerado**: tarifas con IVA en la moneda por defecto.
- **Se pueden entregar productos refrigerados**: desmarcado, cualquier carrito con refrigerado queda bloqueado en esta zona.
- **Separar el pedido en un envío por tipo**: desmarcado, el pedido sale en un único envío (reparto local, por ejemplo).

### Sintaxis de los códigos postales

- valor exacto: `50001`
- rango: `50001-50020` (los dos extremos deben tener la misma longitud), o `50001..50020`
- prefijo: `07*`
- código con guion: `1000-001` se lee como código exacto. Un rango sobre los 4 primeros dígitos se escribe `4000-4999`.

### Importe mostrado

Las tarifas se introducen con IVA. El módulo calcula la base imponible con el tipo del transportista para la dirección del cliente, de modo que el importe mostrado es siempre el introducido, sea cual sea el país. Los importes se convierten a la moneda del carrito.

## Productos refrigerados

En la pestaña **Productos refrigerados**, selecciona las categorías afectadas (Ctrl o Cmd para varias) y marca **Incluir subcategorías** si hace falta. Un producto es refrigerado si pertenece a una de estas categorías, aunque no sea su categoría por defecto. Todo lo demás es seco.

En **Excepciones por producto** puedes buscar un producto por nombre, referencia o ID y forzarlo como refrigerado o seco. Los cambios se guardan al momento.

## Paquetes después del pedido

Cuando se hace un pedido con el transportista del módulo en una zona que separa envíos, el módulo crea un paquete por cada tipo presente: primero el refrigerado, después el seco. En la pestaña **Envíos** configura para cada tipo:

- el **nombre del transportista que ve el cliente** (por defecto SEUR Frío para el refrigerado y Transporte estándar para el seco);
- la **URL de seguimiento**, donde `@` se sustituye por el número de seguimiento.

En una zona sin separación, el pedido tiene un único envío con el nombre y la URL de seguimiento del transportista del pedido.

## Checkout

- **Ocultar los demás transportistas** cuando el del módulo está disponible: el cliente ve un único importe.
- **Transportistas que se mantienen siempre**: por ejemplo la recogida en tienda. Siguen visibles y no los bloquea la restricción del refrigerado.
- **Umbral de envío gratis calculado tras aplicar cupones**: por defecto el umbral se calcula sobre el total de productos con IVA, antes de descuentos.
- **Aviso en las fichas de productos refrigerados**.
- **Comprobador de código postal en el carrito** cuando contiene refrigerado.
- **Botón para quitar los productos refrigerados** cuando la dirección no tiene servicio.

### Cómo funciona el bloqueo

Cuando el carrito lleva refrigerado y la dirección de entrega está fuera de zona, el módulo retira las opciones de envío de la lista que PrestaShop construye para todos los checkouts. Sin opción de envío el pedido no se puede pagar. El cliente ve un mensaje con los productos afectados, mostrado con el hook `displayBeforeCarrier` del checkout nativo e inyectado por JavaScript en los checkouts de una página que recargan los transportistas por AJAX.

Para un cliente invitado, el carrito se estima con el país de la tienda, o con el código postal introducido en el comprobador del carrito, hasta que escribe su dirección en el checkout.

### Textos para el cliente

El aviso de la ficha de producto y el mensaje de bloqueo se editan por idioma en la pestaña **Checkout**.

## Simulador

La pestaña **Simulador** calcula con las zonas guardadas la zona aplicada, el importe y los paquetes previstos para un país, un código postal, un total de productos y un contenido (seco, refrigerado o ambos). Guarda antes de simular si has cambiado las zonas.

## Diagnóstico

La pestaña **Diagnóstico** comprueba que el transportista existe y tiene regla de impuestos, que los umbrales nativos de envío gratis están desactivados (**Transporte > Preferencias**), que no se añaden gastos de manipulación, que hay productos refrigerados definidos y que ningún producto está restringido a transportistas. También lista los módulos que actúan sobre los mismos puntos (transportistas, checkout, validación del pedido). El botón **Volver a crear el transportista** repara una instalación cuyo transportista se ha borrado.

## Pedidos

- **Ficha del pedido**: un panel Envíos muestra cada paquete con sus productos, transportista, número y URL de seguimiento, y estado (Por preparar, Enviado, Entregado).
- **Email al cliente**: marca la casilla antes de guardar un paquete enviado para mandar su contenido y el enlace de seguimiento. Plantilla `dfcoldchain_shipped` en la carpeta `mails/` del módulo, en inglés, español, francés y portugués.
- **Albarán**: una página imprimible por paquete, con franja REFRIGERADO para el frío.
- **Regenerar los envíos**: úsalo tras modificar las líneas del pedido, mientras no haya salido ningún paquete.
- **Alerta**: si un pedido contiene refrigerado para una zona fuera de la cadena de frío, un mensaje rojo lo indica.
- **Lado cliente**: cuando el pedido tiene varios paquetes o un número de seguimiento, aparecen en el detalle del pedido de su cuenta.

## Limitaciones conocidas

- El módulo no genera etiquetas: créalas con tus transportistas o en sus módulos.
- Un producto restringido a ciertos transportistas puede hacer que PrestaShop divida el carrito en varios pedidos. Quita esas restricciones.
- Un umbral nativo de envío gratis (**Transporte > Preferencias**) anula las zonas del módulo.
- Las zonas y los ajustes son comunes a todas las tiendas en multitienda.
- Un pack nativo se clasifica según el propio producto pack, no según sus componentes.
- Cada checkout de una página tiene su propio marcado: prueba un pedido completo como invitado y como cliente registrado en una copia de la tienda antes de publicar.
