PS PrestaShop Iniciante

DataFirefly Price Alert: documentação

Instalação, configuração, modos de alerta, cron, seguimento de conversões e resolução de problemas do módulo de alerta de descida de preço para PrestaShop 8 e 9.

Atualizado Versão do módulo 1.0.3

Apresentação

O DataFirefly Price Alert acrescenta um alerta de descida de preço à sua loja PrestaShop 8 ou 9. Os seus visitantes inscrevem-se a partir da página de produto (com ou sem conta de cliente), escolhem entre dois modos, qualquer descida ou preço alvo, e recebem um e-mail assim que o preço desce. Cada encomenda feita por um subscritor notificado é automaticamente atribuída como conversão, com a receita recuperada visível no painel de administração.

Instalação

  1. No back-office, aceda a Módulos → Gestor de módulos → Instalar um módulo.
  2. Carregue o ficheiro dfpricealert-x.x.x.zip.
  3. Clique em Instalar. O módulo cria duas tabelas (df_pricealert_subscriber e df_pricealert_event), regista os seus hooks e adiciona o separador Price Alerts em Catálogo.

Não é necessária nenhuma dependência Composer: o módulo inclui um autoloader PSR-4 autónomo. PHP 8.0 no mínimo.

Adaptação para Portugal: os três modelos de e-mail são fornecidos em FR/EN/ES/DE, com recurso automático ao inglês quando o idioma do subscritor não existe. Crie a pasta modules/dfpricealert/mails/pt/ a partir da versão inglesa e traduza os modelos, caso contrário os visitantes portugueses receberão os alertas em inglês.

Configuração

Aceda a Módulos → DataFirefly Price Alert → Configurar. As definições disponíveis:

  • Duplo opt-in (RGPD): ativo por defeito. O subscritor recebe um e-mail de confirmação e o alerta só fica ativo após o seu clique. Fortemente recomendado para a conformidade com o RGPD.
  • Modo de alerta por defeito: o modo pré-selecionado no formulário: qualquer descida ou preço alvo. O cliente pode sempre mudar.
  • Posição do formulário: displayProductActions (por baixo do botão de compra) ou displayProductAdditionalInfo (zona de informações complementares).
  • Percentagem mínima de descida: em modo qualquer descida, ignorar as descidas inferiores a N%. 0 = qualquer descida dispara.
  • Limiar de alerta ao comerciante: receba um e-mail quando um produto atinge N subscritores ativos. 0 desativa.
  • E-mail do comerciante: destinatário do alerta acima (por defeito: e-mail da loja).
  • Retenção (dias): limpeza automática dos subscritores cancelados/notificados há mais de N dias. 180 por defeito, 0 desativa.

Funcionamento do lado do cliente

Inscrição

O formulário está sempre visível na página de produto. O cliente introduz o seu e-mail e escolhe:

  • Qualquer descida: será avisado na primeira redução abaixo do preço apresentado no momento da inscrição (sujeito ao limiar mínimo configurado).
  • Quando atingir: introduz um preço alvo, obrigatoriamente inferior ao preço atual. O alerta só parte quando o preço desce até esse nível ou abaixo.

Se o produto tiver combinações, a combinação selecionada é capturada automaticamente, e atualizada se o cliente mudar de combinação antes de confirmar.

Confirmação (duplo opt-in)

Com o duplo opt-in ativo, o subscritor recebe um e-mail de confirmação. O alerta permanece no estado pending até ao clique, e passa depois a active. Sem duplo opt-in, o alerta fica ativo de imediato.

Notificação

Quando é detetada uma descida elegível, o subscritor recebe um e-mail com o preço antigo riscado, o novo preço, a percentagem de redução, o montante poupado e uma ligação direta para o produto. O seu estado passa a notified: não receberá outro e-mail para a mesma inscrição.

Deteção das descidas: os três gatilhos

O módulo deteta as descidas de preço por três canais complementares:

  1. Hook actionObjectProductUpdateAfter: dispara a cada gravação de um produto no back-office. Cobre as alterações manuais de preço com latência nula.
  2. Hook actionUpdateProductAttribute: dispara na alteração de uma combinação. Cobre as alterações de preço por combinação.
  3. Comando CLI bin/scan-prices.php: a ligar num cron. Indispensável para os preços específicos programados (specific prices com data), que se ativam sem disparar nenhum hook.

Configuração do cron

*/30 * * * * php /caminho/para/a/sua/loja/modules/dfpricealert/bin/scan-prices.php --shop=1 >> /var/log/dfpricealert.log 2>&1

O parâmetro --shop é opcional (loja por defeito caso contrário). O comando mostra o número de alertas enviados e o tempo de execução.

Configuração recomendada: deixe os hooks ativos (latência zero nas alterações manuais) e adicione o cron a cada 30 minutos para cobrir as promoções programadas.

Seguimento de conversões

No hook actionOrderStatusPostUpdate, o módulo percorre cada linha da encomenda e procura um subscritor no estado notified correspondente ao trio (e-mail do cliente, id do produto, id da combinação). Em caso de correspondência, o subscritor passa a purchased e o id_order é registado.

A correspondência aceita quer a combinação exata, quer uma inscrição genérica (combinação 0): os produtos sem combinações e as inscrições «produto principal» são portanto corretamente atribuídos. O seguimento funciona também em checkout como convidado, porque a correspondência é feita por e-mail.

Painel de administração

O separador Catálogo → Price Alerts mostra:

  • 6 KPI: subscritores ativos, notificados, convertidos, taxa de conversão, descida média aceite, receita recuperada.
  • Produtos com forte potencial: top 10 dos produtos por número de subscritores ativos, com preço médio de inscrição. É a sua lista de candidatos prioritários para uma promoção dirigida.
  • Lista de subscritores: filtrável por estado, e-mail e produto, paginada a 25 linhas.
  • Ações: analisar todos os produtos imediatamente, limpar as entradas antigas, exportar a lista completa em CSV.

Ciclo de vida de um subscritor

Cada inscrição passa pelos seguintes estados:

  • pending: inscrito, à espera de confirmação (duplo opt-in).
  • active: alerta ativo, vigiado pelas análises.
  • notified: e-mail de descida enviado. Estado final, salvo compra.
  • purchased: encomenda detetada após notificação, conversão atribuída.
  • unsubscribed: cancelamento através da ligação presente em cada e-mail.

Cada transição é registada na tabela df_pricealert_event (pista de auditoria completa).

E-mails

Três modelos, cada um fornecido em FR/EN/ES/DE no formato HTML + texto:

  • confirm: confirmação do duplo opt-in com botão de ativação.
  • alert: notificação de descida: preço antigo riscado, novo preço em destaque, poupança em euros e em percentagem, botão para o produto.
  • merchant: notificação ao comerciante quando um produto ultrapassa o limiar de subscritores ativos.

O e-mail parte no idioma do subscritor (o da página no momento da inscrição), com recurso automático ao inglês se o idioma não estiver disponível. Os modelos são personalizáveis em modules/dfpricealert/mails/<iso>/.

RGPD

  • Duplo opt-in por e-mail antes da ativação (ativo por defeito).
  • Tokens criptográficos de 32 bytes (random_bytes) únicos por subscritor para a confirmação e o cancelamento.
  • Ligação de cancelamento num clique em cada e-mail.
  • Limpeza automática configurável dos dados antigos (minimização dos dados).
  • Nenhum dado enviado a serviços de terceiros: tudo fica no seu servidor.

Resolução de problemas

Os alertas não partem

  • Verifique que o subscritor está no estado active (não pending: o duplo opt-in exige a confirmação).
  • Verifique o limiar mínimo de descida: uma descida de 3% com um limiar de 5% não dispara.
  • Em modo preço alvo, o preço tem de atingir ou passar abaixo do alvo, não basta descer.
  • Para os preços específicos programados, verifique que o cron está a correr (consulte o registo).
  • Teste o envio de e-mail do PrestaShop em geral (Parâmetros avançados → E-mail → Teste).

Erros na inscrição

O módulo regista todos os erros em Parâmetros avançados → Registos com o prefixo [dfpricealert]. O formulário mostra além disso os erros de servidor detalhados diretamente por baixo do botão (estado HTTP e excerto da resposta), o que acelera o diagnóstico.

O formulário não aparece

  • Verifique a posição configurada: alguns temas não implementam displayProductAdditionalInfo; mude para displayProductActions.
  • Esvazie a cache do PrestaShop (Parâmetros avançados → Desempenho).

Desinstalação

A desinstalação elimina as duas tabelas do módulo (subscritores e eventos incluídos), os hooks, o separador de administração e todas as chaves de configuração. Exporte o CSV antes, se quiser conservar o histórico.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte