PrestaShop Módulos PrestaShop

Verificação de Idade no PrestaShop: Janela Bloqueante para CBD, Álcool, Vape e Profissionais de Saúde

A janela de verificação de idade bloqueante, limpa, conforme e que funciona em qualquer tema.

Vender CBD, álcool, líquidos para cigarros eletrónicos ou armas online sem bloquear o acesso a menores expõe-no a coimas da ASAE. Vender material médico reservado a profissionais sem materializar uma declaração expõe-no às regras de publicidade de dispositivos médicos. O dfagegate coloca uma janela bloqueante logo na primeira visita, define um cookie SameSite=Lax (Secure em HTTPS) e materializa a decisão do visitante: botões sim/não, data de nascimento com cálculo de idade no servidor, ou declaração de profissão com número profissional no modo médico. Concebido para PrestaShop 8 e 9, multiloja, multilingue (FR/EN/ES/DE por predefinição) e com registos conformes ao RGPD (IP em hash SHA-256).

PrestaShop 8 e 9 Multiloja FR/EN/ES/DE Cookie SameSite RPPS/ADELI Conforme o RGPD
  • Reembolso em 30 dias
  • 12 meses de atualizações
  • Suporte em 24h
www.datafirefly.com/pt/
Verificação de idade à entrada de uma loja PrestaShop
v1.0.3 · atualizado 2026-05-10
O que faz

A versão curta.

01

Janela bloqueante no servidor e em JavaScript

Apresentada pelo PrestaShop através do hook displayBeforeBodyClosingTag, com um recurso em JavaScript que injeta a janela no body se o seu tema personalizado não chamar o hook. Funciona no Classic e em 99 % dos temas personalizados sem mexer no layout.

02

3 tipos de verificação à escolha

Botões Sim/Não (CBD, álcool, cigarros eletrónicos, isqueiros), data de nascimento completa com cálculo de idade no servidor (armas e mercados mais estritos, a 21 anos), ou declaração de profissão de saúde com número profissional (material médico reservado a profissionais).

03

Modo médico para profissionais de saúde

Para revendedores de dispositivos médicos cuja publicidade está reservada a profissionais de saúde. Lista de profissões personalizável, validação por regex do número profissional francês (9 a 11 dígitos, desativável para outros países) e nenhum armazenamento do número, apenas validação.

04

Registos conformes ao RGPD com IP em hash SHA-256

Opcional: regista as recusas numa tabela dedicada com IP em hash (nunca em claro), data e motivo. Retenção configurável. O cookie é estritamente necessário e, por isso, isento de consentimento prévio.

A versão longa

Tudo o que quer saber antes de instalar.

Uma análise detalhada de como o Verificação de Idade no PrestaShop: Janela Bloqueante para CBD, Álcool, Vape e Profissionais de Saúde funciona, porque o construímos assim e o raciocínio por trás das funcionalidades acima.

§ 01

Porquê um módulo dedicado em vez de uma janela genérica

As janelas de marketing clássicas fecham-se com um clique, não validam nada, não colocam qualquer cookie de conformidade e não deixam rasto na base de dados. Num site de CBD ou de álcool fiscalizado pela ASAE, isso é uma não conformidade direta. Para um revendedor de material médico, é um risco quanto às regras de publicidade de dispositivos médicos. O dfagegate faz o contrário: janela realmente bloqueante (bloqueio do scroll e captura do foco), validação no servidor, cookie SameSite e Secure e registos com IP em hash. É uma ferramenta de conformidade, não um widget de marketing.

§ 02

O modo padrão: CBD, álcool, cigarros eletrónicos e armas

Para a maioria dos mercados regulados a 18 anos (ou 21 em certos países). Três tipos de verificação à escolha, conforme o seu perfil de risco: botões Sim/Não (rápido, com pouco atrito, suficiente para CBD ou álcool de grande consumo), data de nascimento completa com cálculo de idade no servidor com DateTimeImmutable (impossível de contornar pelas ferramentas de programador, recomendado para armas ou líquidos com nicotina) e redirecionamento configurável em caso de recusa para uma página externa.

§ 03

O modo médico: publicidade reservada a profissionais de saúde

O módulo foi construído sobre o artigo L5122-9 do Código da Saúde Pública francês, que proíbe a publicidade junto do público em geral para certos dispositivos médicos e a reserva a profissionais de saúde habilitados. Em Portugal, o enquadramento equivalente é supervisionado pelo INFARMED. O dfagegate materializa a declaração: lista de profissões personalizável (médico, farmacêutico, fisioterapeuta, dentista, veterinário, etc.), caixa de declaração sob compromisso de honra e validação opcional do número profissional francês por regex. Numa loja portuguesa, em que o número é a cédula da respetiva ordem, basta desativar essa validação. O número nunca é guardado na base de dados: serve apenas para validação. É o espírito da conformidade mínima viável: um rasto da declaração, sem recolha excessiva.

§ 04

Multiloja e multilingue desde a instalação

Todas as configurações (modo, tipo de verificação, textos, cores e exceções) são guardadas por contexto de loja através de id_shop_group e id_shop. Pode ter uma loja de CBD a 18 anos em PT e uma loja de cigarros eletrónicos a 21 anos noutro mercado dentro do mesmo PrestaShop, cada uma com os seus textos e o seu cookie. Os hooks são registados em todas as lojas na instalação, através de Shop::getCompleteListOfShopsID(), o que evita a armadilha clássica do módulo que só funciona na loja atual.

§ 05

Robustez do lado do tema: injeção por JavaScript

O hook displayBeforeBodyClosingTag deveria ser universal a partir do PrestaShop 1.7.5, mas muitos temas personalizados omitem-no no layout. O dfagegate trata desse caso: a janela HTML pré-apresentada é passada para JavaScript por Media::addJsDef. No DOMContentLoaded, o script verifica se o elemento dfagegate-modal existe no DOM e, se não existir, injeta-o com insertAdjacentHTML. Funciona em qualquer tema, sem mexer no layout. Uma mensagem console.info confirma se o recurso foi ativado.

§ 06

RGPD: cookie estritamente necessário e IP em hash

O cookie dfagegate_ok entra na categoria de «estritamente necessário ao cumprimento de uma obrigação legal de acesso» e está isento de consentimento prévio, ao contrário dos cookies de marketing, nos termos da diretiva ePrivacy transposta em Portugal pela Lei n.º 41/2004, cuja fiscalização cabe à CNPD. O valor é binário (1 = confirmado), com duração configurável, SameSite=Lax e Secure em HTTPS. Os registos de recusa opcionais guardam o IP em hash SHA-256 (nunca em claro), o que protege a privacidade e ainda permite estatísticas. Compatível com qualquer banner de consentimento existente.

§ 07

Diagnóstico integrado para depurar depressa

Depois de ativado, o dfagegate acrescenta na tag head um comentário HTML do tipo «dfagegate v1.0.3 enabled=1 should_display=1». Em caso de problema, lê diretamente o código-fonte da página: enabled=0 significa que o módulo não está ativo, should_display=0 significa que há uma exceção ativa (IP, caminho ou cliente com sessão iniciada) e a ausência do comentário significa que o hook não está registado. Deixa de precisar de procurar nos registos.