# Reserva e Marcação de Consultas: guia completo

> Apresentação O módulo Reserva e Marcação de Consultas (dfbooking) adiciona a marcação de consultas online ao PrestaShop 8 e 9. O cliente escolhe um serviço, um profissional ou «Primeiro disponível»,…

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

## Apresentação

O módulo **Reserva e Marcação de Consultas** (`dfbooking`) adiciona a marcação de consultas online ao PrestaShop 8 e 9. O cliente escolhe um serviço, um profissional ou «Primeiro disponível», e depois um dia e uma hora. As horas propostas são calculadas em tempo real a partir dos horários, da duração do serviço, da pausa e das consultas já marcadas.

Pode ser pedido um sinal: é pago através de uma encomenda nativa do PrestaShop, ou seja, com os meios de pagamento já ativos na sua loja. A equipa trabalha a partir de uma agenda no back office e o cliente gere a sua consulta através de um link privado recebido por email.

Esta documentação corresponde à versão **1.2.0**.

**Idioma da interface.** A gestão do módulo, a página de marcação e os emails estão disponíveis em inglês, francês, espanhol, alemão e italiano. Numa loja em português aparecem em inglês, por isso nesta documentação indicamos os menus e campos com o nome em inglês. Os textos que introduz (nomes e descrições dos serviços, profissionais, condições de marcação) são multilíngues e podem ser escritos em português.

## Conceitos principais

- **Serviço** (Service): o que o cliente marca (corte, consulta, workshop). Tem uma duração, uma pausa, um preço por pessoa, um número de lugares por horário e, opcionalmente, um sinal, uma categoria (Group) e uma foto.
- **Profissional ou recurso** (Staff): a pessoa, cabine ou máquina que realiza o serviço. Cada um tem um horário semanal e, opcionalmente, uma foto e um email.
- **Horário**: uma hora marcável, gerada a partir do horário semanal e do intervalo entre horários.
- **Estados**: Awaiting payment, Awaiting confirmation, Confirmed, Cancelled, Completed, No-show.

## Instalação e atualização

1. Abra **Módulos > Gestor de módulos** e clique em **Enviar um módulo**.
2. Largue o ficheiro `dfbooking.zip` e clique em **Configurar**.

A instalação cria as tabelas, o menu **Bookings** (Calendar, Bookings, Services, Staff and resources), um produto técnico oculto «Booking deposit» e a pasta `img/dfbooking/` para as fotos.

Para atualizar uma versão anterior, instale o novo ZIP por cima: os scripts de atualização acrescentam as novas colunas e tabelas, geram os links privados das marcações existentes e acrescentam o separador Calendar. Marcações, serviços e horários são mantidos.

Não elimine o produto «Booking deposit»: transporta o valor do sinal no carrinho. Não é visível no catálogo e é removido automaticamente ao desinstalar.

## Início rápido

1. Crie um profissional em **Bookings > Staff and resources**. Por defeito é proposto de segunda a sexta, 9:00-12:00 e 14:00-18:00.
2. Crie um serviço em **Bookings > Services** e selecione os profissionais que o realizam.
3. Adicione o link da página de marcação (indicado na configuração) ao seu menu ou a uma página CMS.

Acrescente `?service=ID` ao URL da página de marcação para abrir diretamente um serviço, por exemplo a partir de uma página CMS que o apresenta.

## Configuração

### Horários (Time slots)

- **Slot interval** (30 min por defeito): intervalo entre duas horas de início propostas.
- **Minimum notice** (120 min por defeito): o cliente não pode marcar um horário que comece antes.
- **Booking window** (60 dias por defeito): até quando se pode marcar.
- **Confirm bookings automatically**: se desativado, as marcações sem sinal chegam como «Awaiting confirmation».

### Formulário do cliente (Customer form)

- **Require a customer account** e **Phone number required**.
- **Consent checkbox**: escolha uma página CMS (política de privacidade, condições); aparece uma caixa obrigatória antes da confirmação.
- **Booking conditions**: texto curto por idioma, mostrado antes da confirmação e na página da consulta (cancelamento, reembolso do sinal, atrasos).

### Sinal, cancelamento e alterações

- **Hold an unpaid slot for** (30 min por defeito): passado este prazo sem encomenda, a hora é libertada.
- **Customers can cancel online** e **Customers can move their appointment online**, ativáveis separadamente.
- **Online changes allowed until** X horas antes da consulta (24 por defeito).

### Avisos e lembretes

- **Staff notification email**: recebe cada nova marcação, cancelamento e alteração (vazio = email da loja).
- **Also notify the assigned staff member**: cópia para o email indicado no profissional.
- **Reminder email** X horas antes (24 por defeito, 0 para desativar).
- **Attach a calendar file (.ics) to emails** na confirmação, alteração e cancelamento.
- **Mark past appointments as completed**, automaticamente.

### Página de marcação

- **Accent colour**: botões, dia e hora selecionados. Escolha uma cor legível sobre fundo branco.
- **Page URL**: `/reservation` por defeito, pode ser alterado (por exemplo `/marcacao`).

## Serviços

Em **Bookings > Services**, cada serviço tem:

- **Nome**, **categoria** (Group) e **descrição** por idioma. Os serviços da mesma categoria aparecem juntos, com filtros a partir de duas categorias.
- **Foto** (JPG, PNG ou WebP, máx. 5 MB), mostrada em miniatura.
- **Duração** e **pausa entre consultas** (limpeza, preparação).
- **Lugares por horário** (Places per slot): 1 para uma consulta individual, mais para uma sessão de grupo.
- **Preço por pessoa** (0 oculta o preço) e **sinal**: nenhum, percentagem do preço ou valor fixo por pessoa.
- **Cor** usada na agenda e os **profissionais** que realizam o serviço.

Um serviço só aparece online se tiver pelo menos um profissional ativo associado.

A partir de seis serviços, aparece um campo de pesquisa por cima da lista na página de marcação.

## Profissionais e horários

Em **Bookings > Staff and resources**, indique nome, função, descrição, uma foto (mostrada num círculo), uma cor e, opcionalmente, um email para os avisos.

### Horário semanal

Para cada dia, introduza até três períodos. Use dois períodos para a pausa de almoço. Um dia sem períodos é folga. O botão **Copy to weekdays** copia os períodos de segunda-feira para terça a sexta, e **Clear** limpa um dia.

### Agenda pessoal no telemóvel

Depois de guardar o profissional, a sua ficha mostra um **link de calendário privado**. No Google Calendar (Outros calendários > A partir do URL) ou num iPhone (Definições > Calendário > Contas > Adicionar calendário subscrito), as suas consultas aparecem e atualizam-se automaticamente. Há um link para toda a equipa na configuração.

Este link mostra nomes e telefones dos clientes. Partilhe-o apenas com a pessoa em causa.

## Sessões de grupo

Com mais de um lugar por horário, o cliente escolhe o número de participantes e vê os lugares livres por baixo de cada hora. Várias marcações podem partilhar a mesma hora de início até esgotar os lugares; o preço e o sinal são multiplicados pelo número de participantes.

## Encerramentos e horários excecionais

- **Closures and days off**: um período sem horários, para toda a loja ou um profissional. Se já existirem consultas nesse período, um aviso indica-o: não são canceladas automaticamente.
- **Exceptional opening hours**: horário especial para uma data (abertura noturna, domingo antes do Natal, dia curto), com um segundo período opcional. Substitui a semana habitual apenas nesse dia.

Prioridade para uma data: um encerramento prevalece sempre; depois o horário excecional do profissional e a seguir o de toda a loja; caso contrário, a semana habitual.

## O sinal

1. A marcação é criada como «Awaiting payment» e a hora fica bloqueada.
2. O módulo prepara um carrinho que contém apenas o sinal e envia o cliente para o seu checkout. O carrinho que ele tinha é guardado.
3. Pagamento imediato (cartão, PayPal): a marcação passa a **Confirmed** e os emails são enviados.
4. Pagamento diferido (transferência): a hora continua bloqueada e a marcação é confirmada quando colocar a encomenda num estado pago.
5. Encomenda cancelada ou com erro: a consulta é cancelada e o cliente avisado.
6. Pagamento abandonado: a hora é libertada após o prazo configurado.

Depois da encomenda, o carrinho original do cliente é reposto e a página de confirmação da encomenda mostra a consulta com um link para a gerir.

## Processo de marcação do cliente

1. **Serviço**: lista agrupada por categoria, com filtros e pesquisa.
2. **Profissional**: uma pessoa específica ou «Primeiro disponível». Este passo é ignorado quando só um profissional realiza o serviço.
3. **Dia e hora**: o calendário abre na próxima disponibilidade; as horas estão agrupadas em manhã, tarde e noite.
4. **Dados de contacto**, condições e consentimento, e confirmação.

## Gestão da consulta pelo cliente

Depois da marcação, o cliente chega à página da sua consulta: resumo, adicionar ao Google Calendar e ficheiro .ics para Apple Calendar e Outlook. Conforme as suas definições, pode também **mudar** a consulta para outra hora livre ou **cancelá-la**. A página está acessível pelo link em cada email, também para clientes sem conta. Os clientes com sessão iniciada veem ainda as consultas na sua conta.

## Agenda no back office

**Bookings > Calendar** mostra a vista semana (com filtro por profissional) e a vista dia com uma coluna por profissional. A barra de cor indica o serviço, o contorno indica o estado. Os dias fechados aparecem tracejados e uma linha vermelha marca a hora atual.

- **Clique numa hora livre** para criar uma marcação com dia, hora e profissional já preenchidos.
- **Arraste uma consulta** para a mover mantendo a duração; na vista dia, largá-la noutra coluna troca de profissional. Uma janela de confirmação propõe avisar o cliente por email. Se a hora estiver ocupada, a agenda pede confirmação antes de forçar.
- **Clique numa consulta** para abrir o detalhe.

## Marcações no back office

**Bookings > Bookings** lista as consultas com filtros e exportação CSV. O botão **New booking** cria uma marcação telefónica; a hora de fim resulta da duração do serviço. Uma marcação que se sobreponha a outra é recusada, a menos que ative **Save even if the time is taken**.

O detalhe da marcação reúne consulta, cliente, pagamento com link para a encomenda, mensagem do cliente e uma nota interna. Ações rápidas: **Confirm**, **Mark as completed**, **No-show**, **Cancel booking**, **Restore**, **Resend the email**. Uma mudança de estado envia ao cliente o email correspondente. Uma encomenda de sinal mostra um bloco com a consulta associada.

## Emails

Seis modelos (inglês, francês, espanhol, alemão e italiano; numa loja em português, enviados em inglês): confirmação com ficheiro .ics, pedido recebido, lembrete, cancelamento, alteração e aviso à equipa. Cada email ao cliente contém o link privado de gestão da consulta.

## Tarefas automáticas

Três tarefas correm em segundo plano: envio de lembretes, libertação das horas cujo sinal não foi pago a tempo e passagem das consultas passadas a concluídas. A configuração mostra um **URL cron** protegido por token; chame-o a cada 15 minutos a partir do cron do servidor. Sem cron, as tarefas correm durante as visitas à loja, no máximo a cada 10 minutos. O botão **Run the tasks now** executa-as de imediato.

## Estatísticas e RGPD

O resumo da configuração mostra as próximas consultas e, para o mês em curso: número de consultas, faturação reservada, parte marcada online, taxas de cancelamento e de faltas.

Com o módulo oficial **psgdpr**, a exportação dos dados de um cliente inclui as suas marcações, e a eliminação dos seus dados anonimiza as marcações (nome, email, telefone, mensagem) sem distorcer as estatísticas.

## Resolução de problemas

### Não aparece nenhuma hora

Verifique se o profissional tem horário nesse dia, se o serviço lhe está associado, se o dia não está encerrado, e compare a antecedência mínima e a duração do serviço com os períodos.

### Os lembretes não são enviados

Verifique se o lembrete não está a 0 e se a marcação está «Confirmed». Numa loja com poucas visitas, configure o URL cron.

### A foto não é guardada

A pasta `img/dfbooking/` tem de ter permissões de escrita. Verifique também o tamanho (máx. 5 MB) e o formato.

### O URL de marcação devolve um erro 404

Ative os URL amigáveis em **Parâmetros da loja > Tráfego e SEO** e limpe a cache.
