# Prova Social: notificações de compra e visitantes, guia completo

> Apresentação O módulo Prova Social: notificações de compra e visitantes em direto acrescenta dois mecanismos de confiança às suas fichas de produto: notificações discretas de compras recentes («A Maria L.…

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

## Apresentação

O módulo **Prova Social: notificações de compra e visitantes em direto** acrescenta dois mecanismos de confiança às suas fichas de produto: **notificações discretas de compras recentes** («A Maria L. comprou este produto há 2 h») e um **emblema de visitantes em direto** («12 pessoas estão a ver este produto»).

A sua particularidade é a abordagem **ética e RGPD by design**: só apresenta **encomendas realmente feitas** na sua loja e **visitantes realmente presentes**. Nunca inventa nada. A anonimização é aplicada **do lado do servidor** antes de qualquer envio ao navegador, os tempos são arredondados, nenhum dado bruto do cliente é exposto e o módulo não coloca **qualquer cookie**.

Compatível com PrestaShop 8.0 a 9.x, multiloja e multi-idioma (FR/EN/ES/DE/IT incluídos), sem Composer e sem jQuery. Se não houver encomendas recentes ou visitantes suficientes, o módulo simplesmente não mostra nada.

O pacote de traduções não inclui o português: traduza as cadeias das notificações em **Internacional > Traduções > Traduções dos módulos**, caso contrário o visitante verá os textos no idioma de recurso.

## Instalação

1. No back-office, abra **Módulos > Gestor de módulos**.
2. Clique em **Carregar um módulo** e selecione o ficheiro `dfsocialproof.zip`.
3. A instalação cria automaticamente a tabela dos visitantes e regista os valores de configuração predefinidos.
4. O módulo fica ativo de imediato nas fichas de produto, com definições prudentes e funcionais.

Não é obrigatório configurar nada para começar. Por predefinição: notificações sobre as encomendas dos últimos 7 dias, anonimização «nome próprio + inicial» e contador apresentado a partir de 3 visitantes em simultâneo.

## Configuração

A página **Configurar** está organizada em três painéis, mais um painel «Privacy by design» que resume as garantias do módulo.

### Notificações de compra

- **Ativar as notificações de compra**: interruptor do primeiro mecanismo.
- **Janela temporal (horas)**: só são apresentadas as encomendas reais feitas dentro desta janela (168 h por predefinição, ou seja, 7 dias). Se não houver nenhuma, não é apresentado nada.
- **Número máximo de notificações**: limite por carregamento de página (5 por predefinição).
- **Nível de anonimização**: três modos detalhados na secção seguinte.
- **Estados de encomenda considerados**: lista de seleção múltipla (Ctrl/Cmd para escolher vários). Só as encomendas nestes estados geram notificações; por predefinição, os estados «validados» da sua loja.

### Contador de visitantes

- **Ativar o contador de visitantes**: interruptor do segundo mecanismo.
- **Janela de contagem (minutos)**: um visitante é contado enquanto estiver ativo dentro desta janela (15 min por predefinição). Os registos são depois eliminados automaticamente.
- **Mínimo de visitantes para mostrar**: abaixo deste limiar (3 por predefinição), o emblema fica oculto, para nunca identificar um visitante isolado.

### Apresentação

- **Posição**: canto onde as notificações aparecem (inferior esquerdo ou inferior direito).
- **Atraso inicial (segundos)**: tempo até à primeira notificação (4 s por predefinição).
- **Intervalo entre notificações (segundos)**: espaçamento entre dois avisos (9 s por predefinição).
- **Duração da apresentação (segundos)**: tempo de visibilidade de cada aviso (6 s por predefinição).

As notificações só aparecem uma vez por carregamento de página: sem ciclos infinitos que acabam por irritar. O visitante pode fechar os avisos, e essa escolha fica memorizada durante toda a sessão de navegação.

## Os três níveis de anonimização

O nível escolhido aplica-se a todas as notificações, e a transformação é feita **no servidor**: o navegador recebe apenas o texto final, nunca os dados de origem.

- **Nome próprio + inicial**: «A Maria L. comprou este produto.» O mais apelativo, mantendo-se não identificativo.
- **Apenas a localidade**: «Um cliente de Braga comprou este produto.» A localidade vem da morada de entrega da encomenda.
- **Anonimato total**: «Alguém comprou este produto.» O mais prudente, adequado a catálogos sensíveis.

Em localidades pequenas, o modo «apenas a localidade» pode aproximar-se da identificação de uma pessoa concreta se as encomendas forem raras. Nesse caso, prefira o anonimato total.

### Tempos relativos arredondados

As indicações de tempo apresentadas («há 2 h», «há 25 min») são propositadamente **arredondadas**, sendo os minutos arredondados aos 5 minutos. O objetivo é impedir a reidentificação de um cliente por cruzamento da hora exata de uma encomenda com outras informações. É uma opção de privacy by design, não uma aproximação técnica.

## Funcionamento do contador de visitantes

Cada visitante de uma ficha de produto é contado através de uma **impressão SHA-256 com sal**, usando a chave secreta da sua loja (`_COOKIE_KEY_`). Essa impressão nunca é apresentada, nunca é exposta ao navegador e serve apenas para desduplicar as visitas.

- **Sem cookies**: o módulo não coloca cookies nem armazenamento local para contar.
- **Limpeza automática**: os registos expirados são eliminados da base de dados de forma oportunista, sem tarefa de cron a configurar.
- **Limiar de dignidade**: abaixo do mínimo configurado, o emblema desaparece, pelo que um visitante sozinho nunca é apontado como «1 pessoa está a ver este produto».
- **Atualização**: o contador atualiza-se a cada 60 segundos através de um pedido AJAX leve.

## Privacy by design e RGPD

- **Apenas encomendas reais**: nunca há dados inventados. A credibilidade da sua loja fica preservada e mantém-se do lado certo do direito do consumo (práticas comerciais desleais).
- **Anonimização no servidor**: os textos chegam ao navegador já anonimizados e formatados. Nenhum dado bruto do cliente (nome completo, e-mail, morada) circula para o front-office.
- **Respostas AJAX sem cache**: os cabeçalhos impedem qualquer armazenamento intermédio dos textos.
- **Impressões eliminadas**: a tabela dos visitantes limpa-se sozinha e a retenção fica limitada ao estritamente necessário.
- **Zero cookies, zero recursos externos**: não há nada a acrescentar ao seu banner de consentimento por causa deste módulo.

Um painel «Privacy by design» no back-office resume estas garantias: pode apresentá-lo tal como está ao seu encarregado de proteção de dados ou anexá-lo ao registo de atividades de tratamento exigido pela CNPD.

Em Portugal, uma notificação de compra que não corresponda a uma encomenda real seria uma prática comercial desleal ao abrigo do Decreto-Lei n.º 57/2008, alterado pelo Decreto-Lei n.º 109-G/2021, fiscalizado pela ASAE. É precisamente por isso que o módulo se recusa a preencher períodos vazios com dados fabricados: se não houver encomendas na janela, prefira alargar a janela a inventar números.

## Acessibilidade e desempenho

- Avisos anunciados em **aria-live polite** para os leitores de ecrã.
- Respeito por **prefers-reduced-motion**: as animações são desativadas se o visitante o pedir.
- **Modo escuro** suportado automaticamente.
- **JavaScript nativo** sem jQuery, com recursos carregados apenas na página de produto: impacto negligenciável na velocidade.

## Compatibilidade técnica

- **PrestaShop**: 8.0 a 9.x.
- **PHP**: 7.4 a 8.x.
- **Hooks**: actionFrontControllerSetMedia (recursos e configuração do front-office, apenas na página de produto) e displayProductAdditionalInfo (emblema de visitantes).
- **Multiloja** e **multi-idioma** suportados (traduções FR/EN/ES/DE/IT incluídas).
- Sem dependências Composer e sem jQuery.

## Perguntas frequentes

### O módulo inventa compras ou visitantes?

Não, nunca. As notificações vêm apenas de encomendas realmente registadas, e o contador só conta visitantes realmente presentes. Sem dados, o módulo não mostra nada.

### O que acontece se a minha loja tiver poucas encomendas?

Alargue a janela temporal (por exemplo, 336 h para 14 dias): as notificações continuam verdadeiras, apenas a indicação de tempo relativo fica mais antiga. O módulo nunca preenche um vazio com dados falsos.

### O contador coloca algum cookie?

Não. Assenta numa impressão SHA-256 com sal calculada do lado do servidor, nunca exposta e eliminada automaticamente. Não há consentimento adicional a recolher.

### É compatível com o PrestaShop 9 e com multiloja?

Sim, do PrestaShop 8.0 ao 9.x, com suporte nativo de multiloja.

## Resolução de problemas

- **Não aparece qualquer notificação**: confirme que existem encomendas na janela temporal com um dos estados selecionados. É o comportamento normal do módulo na ausência de dados reais.
- **O contador de visitantes não aparece**: o número de visitantes ativos está provavelmente abaixo do limiar mínimo. Baixe o limiar ou teste com vários navegadores ou dispositivos em simultâneo.
- **As notificações não voltam a aparecer**: se o visitante fechou um aviso, essa escolha fica memorizada durante a sessão. Abra uma janela de navegação privada para voltar a testar.
- **O emblema não se atualiza**: a atualização acontece a cada 60 segundos; confirme também que nenhuma cache agressiva está a bloquear os pedidos AJAX do controlador de front-office.
