# Envio de receita médica e validação farmacêutica no PrestaShop: documentação

> Funcionamento É você quem decide que produtos são regulados. Quando um cliente adiciona um deles ao carrinho, aparece por baixo o bloco «Receita e validação farmacêutica». O cliente envia aí…

- Página: <https://www.datafirefly.com/pt/documentation/prescription-upload-pharmacist-validation-prestashop/>
- Idioma: pt
- Atualizado em: 2026-10-07
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/prescription-upload-pharmacist-validation-prestashop/index.md), [en](https://www.datafirefly.com/en/documentation/prescription-upload-pharmacist-validation-prestashop/index.md), [es](https://www.datafirefly.com/es/documentation/prescription-upload-pharmacist-validation-prestashop/index.md), [de](https://www.datafirefly.com/de/documentation/prescription-upload-pharmacist-validation-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/prescription-upload-pharmacist-validation-prestashop/index.md), [pl](https://www.datafirefly.com/pl/documentation/prescription-upload-pharmacist-validation-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/prescription-upload-pharmacist-validation-prestashop/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Funcionamento

É você quem decide que produtos são regulados. Quando um cliente adiciona um deles ao carrinho, aparece por baixo o bloco «Receita e validação farmacêutica». O cliente envia aí a sua receita e encomenda. A encomenda fica no estado _A aguardar validação farmacêutica_ até o farmacêutico decidir no back office. Os documentos são cifrados no seu servidor e nunca são servidos diretamente pelo servidor web.

- **Receita obrigatória**: é preciso enviar um documento antes de encomendar.
- **Verificação farmacêutica**: não é exigido documento, mas a encomenda é verificada antes do envio.
- **Venda livre**: sem validação, aplica-se apenas a quantidade máxima por encomenda. Num produto, este modo também o exclui da regra da sua categoria.

Só farmácias e locais de venda autorizados podem vender medicamentos online, em alguns países (como França) a venda online de medicamentos sujeitos a receita é proibida, e uma receita contém dados de saúde. O módulo fornece as ferramentas técnicas; a autorização de venda e o alojamento continuam sob a sua responsabilidade.

## Requisitos

- PrestaShop 8.0 a 9.x.
- Extensão PHP `openssl` (verificada na instalação).
- Uma tarefa cron a cada hora, recomendada para lembretes, alertas e eliminação.
- HTTPS na loja.

## Instalação

1. Em _Módulos > Gestor de módulos_, clique em _Carregar um módulo_ e envie o ZIP.
2. O módulo cria o estado de encomenda _A aguardar validação farmacêutica_, a pasta de armazenamento cifrado e dois menus: _Encomendas > Receitas_ e _Encomendas > Regras de receita_.
3. Abra a configuração do módulo: o painel _Estado_ indica se a pasta de armazenamento está pronta e protegida contra o acesso direto.

## Definir os produtos regulados

Menu _Encomendas > Regras de receita_, botão _Adicionar uma regra_:

- **Aplica-se a**: um produto (pesquisa por nome, referência, EAN ou ID) ou uma categoria com as suas subcategorias.
- **Modo**: receita obrigatória, verificação farmacêutica ou venda livre.
- **Quantidade máxima por encomenda**: por produto, somando todas as combinações. Acima disso, a finalização da compra fica bloqueada. 0 significa sem limite.

Uma regra de produto prevalece sempre sobre as regras de categoria. Se um produto pertencer a várias categorias reguladas, «Receita obrigatória» prevalece sobre «Verificação farmacêutica» e aplica-se a quantidade máxima mais pequena.

A regra de um produto também se define no separador _Módulos_ da página do produto. É guardada de imediato, sem guardar o produto.

## Definições do módulo

### Fluxo de validação

- **Depois da encomenda** (predefinição): o cliente paga e a encomenda aguarda a validação. Uma recusa obriga a reembolsar o cliente na página da encomenda.
- **Antes do pagamento**: o cliente com sessão iniciada envia o carrinho ao farmacêutico e só pode pagar depois da validação. Se o carrinho mudar depois, tem de ser enviado de novo.

### Documentos

- **Tipos aceites**: PDF, JPEG, PNG, WebP. O tipo real é verificado pela assinatura do ficheiro, e os PDF com JavaScript, ações de arranque ou anexos são recusados.
- **Tamanho máximo** (8 MB por predefinição) e **número máximo de ficheiros por pedido** (5 por predefinição).
- **Reutilização de receitas validadas**: um cliente com sessão iniciada pode anexar uma receita validada a um novo carrinho até à sua data de validade.
- **Validade predefinida** (90 dias): preenchida no formulário de validação.
- **Texto de consentimento**, por idioma: o cliente tem de marcar a caixa antes de cada envio.

### Questionário de saúde

Quando ativo, pergunta pelo paciente (o próprio ou outra pessoa), idade, peso, altura, sexo, gravidez ou amamentação, alergias, tratamentos em curso e antecedentes. A finalização da compra aguarda as respostas. São cifradas e preenchidas na encomenda seguinte de um cliente com sessão iniciada.

### Lembretes e prazos

- **Lembrete ao cliente** (2 dias): email quando o cliente não respondeu a um pedido de informações.
- **Cancelamento automático** (10 dias): o pedido é recusado com o motivo «Sem resposta do cliente».
- **Alerta ao farmacêutico** (24 horas): resumo dos pedidos e mensagens de clientes em espera para além do prazo.

0 desativa cada função.

### Notificações e estados

- **Emails de notificação do farmacêutico**: um ou mais endereços separados por vírgulas.
- **Estado das encomendas recusadas**: Cancelada por predefinição, o que repõe o stock.
- **Respostas guardadas**: uma por linha e por idioma, inseridas com um clique numa mensagem ou decisão.

### Armazenamento e conservação

- **Pasta de armazenamento**: `var/dfprescription/` por predefinição. Recomenda-se um caminho absoluto fora da raiz web. Deixa de poder ser alterada quando há documentos guardados.
- **Conservação dos documentos** (365 dias): os ficheiros são eliminados após este prazo, exceto nos pedidos em curso e nas receitas ainda válidas. Os metadados e o registo de auditoria são mantidos.

## Percurso do cliente

1. A página do produto mostra um distintivo: receita obrigatória, verificação farmacêutica ou limite por encomenda.
2. No carrinho, o cliente arrasta os documentos ou tira uma fotografia com o telemóvel, marca o consentimento, preenche o questionário se for preciso e pode deixar uma nota ao farmacêutico.
3. Enquanto faltar alguma coisa, as ligações para a finalização da compra ficam desativadas e o acesso direto à página da encomenda devolve o cliente ao carrinho com uma mensagem.
4. Depois da encomenda, a página de confirmação, o detalhe da encomenda e a página _As minhas receitas_ da conta mostram o estado do pedido. Os convidados acompanham o pedido através de uma ligação privada enviada por email.

## Tratar um pedido

Menu _Encomendas > Receitas_. A lista mostra o estado, o número de documentos e as mensagens não lidas, com contadores no topo. A ficha de um pedido reúne:

- os documentos num visualizador (PDF integrado, imagens com rotação e zoom), com abertura e transferência;
- o cliente, a encomenda ou encomendas, os produtos em causa e a sua regra;
- as respostas ao questionário de saúde, com os pontos de risco destacados;
- o fio de mensagens com o cliente;
- o formulário de decisão e o registo de auditoria.

### Decidir

- **Validar**: defina a data de validade da receita. A encomenda retoma o estado que tinha antes da espera, por exemplo Pagamento aceite.
- **Pedir informações**: a mensagem é obrigatória. O cliente recebe um email e responde na sua conta ou através da ligação privada.
- **Recusar**: escolha um motivo. A encomenda passa ao estado definido para as recusas.

O nome do farmacêutico e o seu número profissional são guardados com cada decisão e memorizados para o funcionário. Cada pedido pode receber uma nota interna, nunca visível para o cliente.

Se um módulo de pagamento alterar o estado de uma encomenda em espera (por exemplo, um webhook de pagamento), o módulo memoriza esse estado e volta a colocar a encomenda em espera. Uma alteração manual feita por um funcionário é respeitada e registada.

## Mensagens cliente ↔ farmacêutico

Cada pedido tem o seu fio de mensagens, cifrado como os documentos. O farmacêutico responde na ficha do pedido, inserindo se quiser uma resposta guardada. O cliente recebe o texto por email e responde em _As minhas receitas_. O farmacêutico recebe um email sem o texto da mensagem, apenas com uma ligação para o pedido. O cliente pode enviar no máximo 20 mensagens por dia e por pedido.

## Código QR das receitas eletrónicas

Ao abrir um pedido, o código QR de cada documento é lido no seu navegador, nas imagens e nas 3 primeiras páginas dos PDF. O bloco _Código QR da receita eletrónica_ mostra:

- o identificador detetado e o conteúdo completo do código QR;
- um alerta se a mesma receita já tiver sido enviada noutro pedido da loja, com a indicação «outro cliente» quando for o caso;
- um campo para introduzir o número à mão se o código QR estiver ilegível, e um botão para o ler novamente.

Só um software de farmácia certificado pode consultar os serviços oficiais de receita eletrónica. O módulo prepara a verificação e deteta reutilizações; o farmacêutico verifica depois o identificador no seu software.

## Tarefa agendada

A configuração do módulo mostra o URL do cron. Chame-o a cada hora:

```
0 * * * * curl -s "https://a-sua-loja.pt/module/dfprescription/cron?key=A_SUA_CHAVE" >/dev/null
```

Envia os lembretes e alertas, cancela os pedidos sem resposta e elimina os ficheiros expirados. Sem cron, estas tarefas são executadas no máximo uma vez por hora ao abrir a página _Receitas_.

## Segurança e conformidade

- Cifragem AES-256-GCM dos documentos, respostas ao questionário, mensagens e conteúdo dos códigos QR. A chave é derivada de um segredo do módulo e do `_COOKIE_KEY_` da loja.
- Registo de auditoria de cada envio, consulta, transferência, mensagem e decisão, com o endereço IP.
- Exportação CSV do registo em _Encomendas > Receitas_ (botão _Exportar o registo_), sem documentos nem respostas de saúde.
- Compatível com o módulo RGPD oficial: a exportação dos dados do cliente inclui os pedidos, e a eliminação de um cliente apaga os seus documentos e mensagens.

Numa migração, mantenha o `_COOKIE_KEY_` da loja e o valor de configuração `DFPRESCRIPTION_KEY`. Sem um deles, os documentos guardados deixam de poder ser decifrados.

## Resolução de problemas

### O painel Estado indica que a pasta está acessível a partir da web

Os ficheiros continuam cifrados, mas o nginx ignora o ficheiro `.htaccess`. Adicione uma regra `deny all` à pasta ou escolha uma pasta fora da raiz web.

### O cliente não vê o bloco da receita

Verifique se uma regra abrange o produto ou uma das suas categorias, e se o seu tema mostra o hook `displayShoppingCartFooter` na página do carrinho.

### O código QR não é lido

O código QR tem de estar nítido e totalmente visível. Use _Ler novamente_ depois de receber uma fotografia melhor, ou introduza o número da receita à mão.

## Desinstalação

A desinstalação elimina definitivamente todos os documentos guardados e as tabelas do módulo. O estado de encomenda dedicado fica oculto mas é mantido para o histórico das encomendas. Exporte o registo antes de desinstalar se precisar de guardar um rasto.
