Mostrar fecha estimada de entrega en PrestaShop 8 paso a paso

PrestaShop 8 no incluye cálculo ni visualización de fecha estimada de entrega en ficha de producto de forma nativa. Hay que añadirlo con módulo o con código en el theme. Este post cubre cómo hacerlo bien, qué variables considerar y cómo evitar los errores típicos.

⚠️

PrestaShop no lo hace de serie

No hay ningún ajuste nativo para calcular ni mostrar la fecha de entrega. Cualquier tienda que la quiera tiene que construirla: con código en el theme o con un módulo dedicado.

Dónde mostrar la fecha

Tres ubicaciones razonables, ordenadas por impacto: ficha de producto, cerca del botón añadir al carrito (mayor impacto, lugar mínimo no negociable), listado de productos — categoría o búsqueda (mejora el CTR a ficha, impacto medio) y carrito/checkout (refuerza la decisión durante la compra, impacto bajo pero positivo). Recomendación: empezar por ficha, extender a listado si funciona; carrito y checkout son extras opcionales.

Variables que hay que calcular

El cálculo de la fecha estimada debe considerar:

  1. Hora actual del servidor en zona horaria del cliente. Sin esto, un cliente que mira a las 23:00 puede ver fecha distinta a uno que mira a las 09:00 del mismo día.
  2. Hora límite de pedido para envío hoy (configurable, habitualmente 12:00 o 14:00 para tiendas con almacén propio).
  3. Días de preparación en almacén (0 días si se envía el mismo día, 1-2 días si requiere preparación).
  4. Stock actual del producto. Si está disponible, día 0. Si está agotado con fecha de reposición, esa fecha + preparación.
  5. Calendario laboral del almacén y del transportista: días laborables, festivos nacionales y locales, ¿reparte sábados?
  6. Tiempo de tránsito del transportista según destino, conocido por código postal o país.

La fecha final es la suma de estos componentes aplicados al pedido específico. Antes de implementar conviene tener claros los valores concretos de tu logística: hora límite (p. ej. 14:00), días de preparación (0 si stock, 2 si reposición), calendario laboral (festivos nacionales + locales de tu almacén) y tiempos de tránsito por zona (península 24-48h, Baleares 48-72h, Canarias 72-96h, internacional según país). Sin esos datos definidos, cualquier implementación dará fechas inconsistentes.

Cómo se calcula, en pseudocódigo

La lógica básica del cálculo:

fechaBase = hoy
si stock disponible y hora actual antes de horaLimite:
    fechaBase = hoy
si stock disponible y hora actual despues de horaLimite:
    fechaBase = siguiente dia laborable
si stock agotado con fecha reposicion:
    fechaBase = fecha reposicion + diasPreparacion

zonaCliente = detectar por codigo postal o pais
diasTransito = tabla por zona

fechaEntrega = sumar diasTransito dias laborables a fechaBase
mostrar fechaEntrega en formato amigable

En PrestaShop 8 esto se materializa en un override del controlador de producto que añade la variable fecha_entrega al contexto Smarty, y en una modificación de la plantilla TPL que la renderiza.

Override del theme

Camino más directo: código en el theme que calcula y renderiza la fecha. Sin interfaz de configuración, el equipo no técnico no puede tocar los valores y hay que revisarlo en cada actualización.

Módulo dedicado

Encapsula la misma lógica con interfaz BO: hora límite, días de preparación por producto o categoría, calendario con festivos editables, tabla de tránsito multi-transportista y plantillas de texto multilingüe. Configuración accesible sin tocar código y compatible con futuras actualizaciones.

Rendimiento y caché

En listados con 30+ productos por página, calcular 30 fechas en cada visita puede ralentizar. Sin caché, calcular la fecha para cada producto del listado añade trabajo en cada renderizado, y ese coste se multiplica por el número de productos mostrados — suficiente para notarse en Core Web Vitals si el catálogo es grande. Tres optimizaciones: caché por sesión de visitante con la zona ya detectada (la fecha solo cambia significativamente si pasa una hora), cálculo perezoso (se calcula la primera vez que se pinta y se cachea 5-15 minutos) e invalidación al medianoche y al cambiar stock.

Multilingüe y honestidad en el texto

El formato de la fecha cambia por idioma («Recíbelo el martes 19 de mayo» en español, «Receive it on Tuesday, May 19» en inglés, y así en cada idioma activo de la tienda) — PrestaShop ya tiene gestión nativa de idiomas y plantillas Smarty con traducción; el texto no debe ir hardcoded. Dos detalles que mejoran la percepción sin caer en presión artificial: mostrar el tiempo restante hasta la hora límite («recíbelo el martes si compras en las próximas 2 horas», urgencia honesta basada en logística real) e indicar con claridad cuando el plazo supera lo esperado («recíbelo en 10-14 días» con explicación si el producto requiere reposición) — la sorpresa al recibir es peor que la información clara al comprar.

El atajo: módulo Zeyvro

El módulo Delivery Date (Recíbelo el día) de Zeyvro para PrestaShop 8 implementa el cálculo completo con configuración BO de hora límite, días de preparación, festivos, calendario por transportista, multilingüe y caché — mostrar en ficha, listado y carrito desde un solo punto de configuración. Compensa en cualquier tienda con catálogo de cierto tamaño, donde mantener el cálculo a mano en el theme sale caro en tiempo de mantenimiento — el módulo es gratuito, así que el ahorro es directamente ese tiempo de desarrollo. No compensa en una tienda muy pequeña con logística irregular donde no se puede prometer fechas con honestidad.

Preguntas frecuentes

¿PrestaShop 8 calcula la fecha de entrega de forma nativa?

No. No hay ningún ajuste nativo para esto — hay que añadirlo con código en el theme (override del controlador de producto + plantilla TPL) o con un módulo dedicado.

¿Qué variables hay que considerar para calcular la fecha?

Hora actual en la zona horaria del cliente, hora límite de pedido, días de preparación en almacén, stock del producto, calendario laboral del almacén y del transportista, y tiempo de tránsito según destino.

¿Cómo evitar que el cálculo ralentice el listado de productos?

Con caché por sesión de visitante, cálculo perezoso (5-15 minutos) e invalidación al medianoche o al cambiar el stock. Sin caché, el coste de calcular la fecha se repite en cada producto del listado, lo cual puede notarse en catálogos grandes.

¿Se puede mostrar la fecha en varios idiomas?

Sí. El formato cambia por idioma («recíbelo el martes 19» / «receive it on Tuesday 19») usando la gestión nativa de idiomas y plantillas Smarty de PrestaShop — el texto va en la traducción del módulo o del theme, nunca hardcoded.

Todo esto ya calculado, configurado desde el BO y sin tocar código.

Ver Zeyvro Delivery Date →

Zeyvro desarrolla módulos para PrestaShop 8 desde una tienda real en producción. Código sin ofuscar.

Captura ampliada

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio