PS PrestaShop Intermédio

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

Instalar o módulo, definir os produtos regulados, configurar o fluxo e tratar receitas, mensagens e códigos QR no back office.

Atualizado Versão do módulo 1.2.0

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.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte