PS PrestaShop Iniciante

Data de entrega estimada: guia completo

Instalar e configurar o módulo Data de entrega estimada: cut-off, prazos de preparação, transportadoras e feriados.

Atualizado Versão do módulo 1.0.0

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.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte