PS PrestaShop Principiante

Fecha de entrega estimada — Guía completa

Instalar y configurar el módulo Fecha de entrega estimada: hora de corte, tiempos de preparación, transportistas y festivos.

Actualizado Versión del módulo 1.0.0

Presentación

DataFirefly Delivery Date muestra una fecha de entrega estimada en la ficha de producto, el carrito y el checkout de tu tienda PrestaShop 8 o 9. El cálculo combina cuatro factores: el tiempo de preparación propio de cada producto, el rango de entrega del transportista (mín/máx días laborables), los fines de semana y festivos, y tu hora de corte diaria. Antes de la hora de corte, una cuenta atrás en vivo indica al cliente el tiempo restante para un envío en el mismo día.

Instalación

  1. En tu back-office de PrestaShop, abre Módulos → Gestor de módulos → Subir un módulo.
  2. Sube el archivo dfdeliverydate.zip.
  3. Haz clic en Instalar y después en Configurar.

La instalación crea tres tablas (ps_dfdeliverydate_product, ps_dfdeliverydate_carrier, ps_dfdeliverydate_holiday), registra los hooks necesarios, añade una pestaña de administración para los festivos y precarga los ocho festivos nacionales franceses como recurrentes anuales.

Configuración general

Desde Módulos → Gestor de módulos → DataFirefly Delivery Date → Configurar, el primer panel agrupa los ajustes globales:

  • Hora y minuto de corte — la hora límite de pedido para un envío en el mismo día (por defecto 14:00).
  • Zona horaria de envío — cadena de zona horaria PHP, por defecto Europe/Paris. Todos los cálculos de fechas se realizan en esta zona, independientemente de la del servidor.
  • Días de preparación por defecto — aplicados a todos los productos sin valor específico.
  • Mín/máx días de transportista por defecto — usados cuando un transportista no tiene rango propio.
  • Exclusión de fines de semana — excluye sábado y domingo del cálculo. Si está desactivada, puedes excluir solo el domingo (opción siguiente) si envías los sábados.
  • Modo de visualización — rango (entre mín y máx), solo fecha más tardía, o rango acompañado de la fecha de envío.
  • Zonas de visualización — tres interruptores independientes: ficha de producto, carrito, checkout.
  • Cuenta atrás en vivo — activa o desactiva el contador HH:MM:SS hasta la hora de corte.

Tiempo de preparación por producto

Cada ficha de producto del back-office muestra un panel «Delivery date — preparation time». Introduce el número de días laborables necesarios antes de que este producto pueda enviarse:

  • 0 — producto en stock, envío inmediato (elegible para envío en el mismo día antes de la hora de corte);
  • 2 — producto que requiere dos días laborables de preparación;
  • 14 — producto fabricado o personalizado bajo pedido.

El valor se guarda al guardar el producto. En el carrito, el producto con el tiempo de preparación más largo determina la fecha de envío del pedido completo.

Configuración de transportistas

El segundo panel de la página de configuración lista todos los transportistas activos. Para cada uno, define el mínimo y el máximo de días laborables de entrega. Ejemplos habituales: mensajería exprés 1–2, correo estándar 3–5, redes de puntos de recogida 4–7. En la ficha de producto y el carrito se usa el rango del transportista por defecto de la tienda; en el checkout, el módulo cambia al transportista realmente seleccionado por el cliente.

Cuando PrestaShop versiona un transportista (se crea un nuevo ID automáticamente tras una modificación), el módulo copia la configuración al nuevo ID — no se pierde ningún parámetro.

Festivos

Los festivos se gestionan desde Mejorar → Envío → Festivos (Delivery Date). Cada entrada tiene una fecha, un nombre, un indicador de recurrente y un estado activo/inactivo:

  • Recurrente — solo cuentan el mes y el día; el festivo se proyecta automáticamente sobre el año en curso y el siguiente (p. ej. Navidad cada 25 de diciembre).
  • Puntual — una fecha única concreta, ideal para un puente o un cierre excepcional.

Los ocho festivos nacionales franceses vienen preinstalados como recurrentes: 1 de enero, 1 de mayo, 8 de mayo, 14 de julio, 15 de agosto, Todos los Santos, 11 de noviembre, 25 de diciembre. Puedes desactivarlos individualmente y añadir tus festivos regionales o extranjeros.

Algoritmo de cálculo

El cálculo sigue estos pasos, todos expresados en días laborables en la zona horaria configurada:

  1. La fecha de envío parte de hoy. Si la hora actual supera la hora de corte, se desplaza a mañana.
  2. El tiempo de preparación del producto (o el máximo del carrito) se añade en días laborables, saltando fines de semana y festivos.
  3. Si la fecha de envío resultante cae en un día no laborable, se empuja al siguiente día laborable.
  4. El rango de entrega se obtiene añadiendo el mín y el máx del transportista, también en días laborables.

El mensaje «envío hoy» y la cuenta atrás solo aparecen cuando se cumplen tres condiciones: la hora actual es anterior a la hora de corte, hoy es un día laborable y el tiempo de preparación es cero.

Personalización de plantillas

Los tres widgets del frontend se renderizan mediante plantillas Smarty sobrescribibles. Copia el archivo o archivos correspondientes desde modules/dfdeliverydate/views/templates/hook/ a themes/tu-tema/modules/dfdeliverydate/views/templates/hook/:

  • product-delivery-date.tpl — ficha de producto;
  • cart-delivery-date.tpl — carrito;
  • checkout-delivery-date.tpl — checkout y confirmación de pedido.

Cada plantilla recibe un array $dfdd que contiene entre otros ships_today, min_date_label, max_date_label, ship_date_label, cutoff_ts y display_mode. El CSS está en views/css/front.css (clases con prefijo dfdd-).

Solución de problemas

  • El widget no aparece en la ficha de producto — comprueba que la zona está activada en la configuración y que tu tema implementa el hook displayProductAdditionalInfo (el tema Classic y la mayoría de temas del mercado lo hacen).
  • La cuenta atrás muestra 00:00:00 — la hora de corte de hoy ha pasado; el contador solo se muestra mientras el envío en el mismo día sigue siendo posible.
  • Las fechas parecen desplazadas un día — revisa la zona horaria configurada en el módulo: el cálculo usa esa zona, no la del servidor ni la del navegador.
  • Un festivo no se tiene en cuenta — comprueba que está activo y, si es puntual, que su año coincide con el año en curso.

Desinstalación

La desinstalación elimina las tres tablas del módulo, todas las entradas de configuración (prefijo DFDD_), la pestaña de administración de festivos y los registros de hooks. Los tiempos de preparación introducidos producto a producto se pierden definitivamente — expórtalos antes si lo necesitas.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte