# Data de entrega estimada: guia completo

> Apresentação O DataFirefly Delivery Date mostra uma data de entrega estimada na página de produto, no carrinho e no checkout da sua loja PrestaShop 8 ou 9. O cálculo combina…

- Página: <https://www.datafirefly.com/pt/documentation/dfdeliverydate/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dfdeliverydate/index.md), [en](https://www.datafirefly.com/en/documentation/dfdeliverydate/index.md), [es](https://www.datafirefly.com/es/documentation/dfdeliverydate/index.md), [de](https://www.datafirefly.com/de/documentation/dfdeliverydate/index.md), [it](https://www.datafirefly.com/it/documentation/dfdeliverydate/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfdeliverydate/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfdeliverydate/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

O DataFirefly Delivery Date mostra uma data de entrega estimada na página de produto, no carrinho e no checkout da sua loja PrestaShop 8 ou 9. O cálculo combina quatro fatores: o prazo de preparação próprio de cada produto, o intervalo de entrega da transportadora (mín./máx. dias úteis), os fins de semana e feriados, e a sua hora de cut-off diária. Antes do cut-off, uma contagem decrescente em direto indica ao cliente o tempo restante para uma expedição no próprio dia.

**Adaptação para Portugal:** o módulo é entregue com o fuso horário `Europe/Paris` e os 8 feriados nacionais franceses pré-instalados. Numa loja portuguesa, altere o fuso para `Europe/Lisbon` (ou `Atlantic/Azores` se expedir a partir dos Açores), desative os feriados franceses e registe os feriados portugueses listados na secção «Feriados» abaixo.

## Instalação

1. No seu back-office PrestaShop, abra **Módulos → Gestor de módulos → Instalar um módulo**.
2. Carregue o ficheiro `dfdeliverydate.zip`.
3. Clique em **Instalar** e depois em **Configurar**.

A instalação cria três tabelas (`ps_dfdeliverydate_product`, `ps_dfdeliverydate_carrier`, `ps_dfdeliverydate_holiday`), regista os hooks necessários, adiciona um separador de administração para os feriados e pré-preenche os 8 feriados nacionais franceses em modo recorrente anual.

## Configuração geral

A partir de **Módulos → Gestor de módulos → DataFirefly Delivery Date → Configurar**, o primeiro painel reúne as definições globais:

- **Hora e minuto de cut-off**: a hora limite de encomenda para uma expedição no próprio dia (por defeito 14h00).
- **Fuso horário de expedição**: cadeia de fuso PHP, por defeito `Europe/Paris`. Todos os cálculos de datas são feitos neste fuso, independentemente do fuso do servidor. Use `Europe/Lisbon` para Portugal continental e Madeira.
- **Prazo de preparação por defeito**: aplicado a todos os produtos para os quais não foi introduzido nenhum prazo específico.
- **Mín./máx. de dias da transportadora por defeito**: usados quando uma transportadora não tem intervalo próprio.
- **Exclusão dos fins de semana**: exclui sábado e domingo do cálculo. Se estiver desativada, pode excluir apenas o domingo (opção seguinte) se expedir ao sábado.
- **Modo de apresentação**: intervalo (entre mín. e máx.), apenas a data mais tardia, ou intervalo acompanhado da data de expedição.
- **Zonas de apresentação**: três interruptores independentes: página de produto, carrinho, checkout.
- **Contagem decrescente em direto**: ativa ou desativa o contador HH:MM:SS até ao cut-off.

## Prazo de preparação por produto

Cada página de produto do back-office mostra um painel **«Delivery date — preparation time»**. Introduza o número de dias úteis necessários antes de o produto poder ser expedido:

- `0`: produto em stock, expedível imediatamente (elegível para expedição no próprio dia antes do cut-off);
- `2`: produto que exige dois dias úteis de preparação;
- `14`: produto fabricado ou personalizado por encomenda.

O valor é registado ao guardar o produto. No carrinho, é o produto com o prazo de preparação mais longo que determina a data de expedição da encomenda completa.

## Configuração das transportadoras

O segundo painel da página de configuração lista todas as transportadoras ativas. Para cada uma, defina o **mínimo** e o **máximo** de dias úteis de entrega. Exemplos correntes em Portugal: CTT Expresso 1–2, CTT correio normal 3–5, ponto de recolha 3–6. Na página de produto e no carrinho, é usado o intervalo da transportadora por defeito da loja; no checkout, o módulo muda para a transportadora realmente selecionada pelo cliente.

Quando o PrestaShop versiona uma transportadora (novo ID criado automaticamente após alteração), o módulo copia a configuração para o novo ID: nenhuma parametrização é perdida.

## Feriados

Os feriados são geridos a partir de **Melhorar → Entrega → Feriados (Delivery Date)**. Cada entrada tem uma data, um nome, um indicador _recorrente_ e um estado ativo/inativo:

- **Recorrente**: só contam o mês e o dia; o feriado é projetado automaticamente no ano corrente e no ano seguinte (ex.: Natal todos os 25 de dezembro).
- **Pontual**: uma data precisa única, ideal para uma ponte ou um encerramento excecional.

Os 8 feriados nacionais franceses estão pré-instalados em modo recorrente. Numa loja portuguesa, desative-os individualmente e registe os feriados nacionais portugueses: 1 de janeiro, 25 de abril, 1 de maio, 10 de junho, 15 de agosto, 5 de outubro, 1 de novembro, 1 de dezembro, 8 de dezembro e 25 de dezembro em modo recorrente; a Sexta-feira Santa e o Corpo de Deus, de data móvel, devem ser registados como feriados pontuais a cada ano. Acrescente ainda, se for o caso, o feriado municipal da sua cidade e os feriados regionais dos Açores e da Madeira.

## Algoritmo de cálculo

O cálculo segue estes passos, todos expressos em dias úteis no fuso configurado:

1. A data de expedição começa em hoje. Se a hora atual ultrapassar o cut-off, é adiada para amanhã.
2. O prazo de preparação do produto (ou o máximo do carrinho) é adicionado em dias úteis, saltando fins de semana e feriados.
3. Se a data de expedição obtida cair num dia não útil, é empurrada para o dia útil seguinte.
4. O intervalo de entrega é calculado adicionando o mín. e o máx. da transportadora, sempre em dias úteis.

A menção «expedição hoje» e a contagem decrescente só aparecem se três condições estiverem reunidas: a hora atual é anterior ao cut-off, hoje é um dia útil e o prazo de preparação é zero.

## Personalização dos templates

Os três widgets do front-office são renderizados por templates Smarty substituíveis. Copie o ou os ficheiros em causa de `modules/dfdeliverydate/views/templates/hook/` para `themes/o-seu-tema/modules/dfdeliverydate/views/templates/hook/`:

- `product-delivery-date.tpl`: página de produto;
- `cart-delivery-date.tpl`: carrinho;
- `checkout-delivery-date.tpl`: checkout e confirmação de encomenda.

Cada template recebe um array `$dfdd` que contém nomeadamente `ships_today`, `min_date_label`, `max_date_label`, `ship_date_label`, `cutoff_ts` e `display_mode`. O CSS está em `views/css/front.css` (classes com o prefixo `dfdd-`).

## Resolução de problemas

- **O widget não aparece na página de produto**: verifique que a zona está ativa na configuração e que o seu tema implementa o hook `displayProductAdditionalInfo` (é o caso do tema Classic e da maioria dos temas do mercado).
- **A contagem decrescente mostra 00:00:00**: o cut-off do dia foi ultrapassado; o contador só é apresentado enquanto a expedição no próprio dia ainda é possível.
- **As datas parecem desfasadas de um dia**: verifique o fuso horário configurado no módulo: o cálculo usa esse fuso e não o do servidor nem o do navegador.
- **Um feriado não é considerado**: verifique que está ativo e, para um feriado pontual, que o seu ano corresponde ao ano em curso.

## Desinstalação

A desinstalação elimina as três tabelas do módulo, todas as entradas de configuração (prefixo `DFDD_`), o separador de administração dos feriados e os registos de hooks. Os prazos de preparação introduzidos produto a produto são portanto definitivamente perdidos: exporte-os previamente se necessário.
