# Módulo Pet Shop para PrestaShop: documentação do módulo

> Este módulo acrescenta ao PrestaShop 8 e 9 perfis de animais na conta do cliente, um cálculo de ração e uma recomendação de formato nas páginas de ração seca, e…

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

Este módulo acrescenta ao PrestaShop 8 e 9 perfis de animais na conta do cliente, um cálculo de ração e uma recomendação de formato nas páginas de ração seca, e planos de reposição que enviam um lembrete antes de o saco acabar, calculado no consumo real do cliente. Nome técnico: `dfpetcare`.

## Instalação

1. Em **Módulos > Gestor de módulos**, clique em **Carregar um módulo** e arraste o ficheiro ZIP.
2. O módulo cria as suas tabelas e três espécies com as respetivas raças: cão (32 raças), gato (12 raças) e coelho (2 raças).
3. Surge um menu **Vender > Animais** com quatro páginas: **Rações dos alimentos**, **Planos de reposição**, **Perfis de animais** e **Espécies e raças**. É adicionada uma ligação **Os meus animais** à página A minha conta do cliente.
4. Agende o URL cron indicado na página de configuração do módulo (ver abaixo).

## Definir os alimentos

Só os produtos declarados em **Animais > Rações dos alimentos** mostram o bloco da ração. Clique em **Adicionar**, procure o produto pelo nome, referência ou ID e preencha:

- **Para**: as espécies abrangidas. Na página do produto só são propostos os animais destas espécies. Deixe vazio para todas.
- A **fase de vida** do alimento (todas as idades, crescimento, adulto, sénior): aparece um aviso se o animal do cliente não estiver nessa fase.
- **Cálculo**: pela energia ou pela tabela de doseamento (ver abaixo).
- **Conservação após abertura** em dias: os sacos que ficariam abertos mais tempo não são recomendados. 0 = sem limite.
- **Peso líquido**: num produto com combinações, o peso de cada combinação em gramas. O botão **Preencher a partir dos nomes das combinações** usa os pesos lidos nos nomes (`12 kg`, `400 g`, `12 x 85 g`). Deixe vazia uma combinação que não seja alimento. Num produto simples, indique o peso líquido total.

### Cálculo pela energia

Indique a energia metabolizável do alimento em kcal/kg (ração seca: normalmente 3400 a 4200, húmida: 700 a 1200). Para um cão ou um gato, o módulo calcula a necessidade energética em repouso (70 × peso0,75), multiplica-a por um coeficiente segundo a fase de vida, a esterilização e a atividade e converte-a em gramas. Este método não se aplica às espécies definidas como «Outra».

### Cálculo pela tabela de doseamento

Copie a tabela impressa no saco: uma linha por peso do animal com os gramas por dia e a fase de vida da linha. Entre duas linhas, a ração é interpolada. Fora da tabela, segue o peso metabólico. A opção **Ajustar ao animal** corrige a ração segundo a esterilização e a atividade para adultos e séniores. É o único método possível para coelhos, roedores e aves.

Quando o veterinário definiu um peso-alvo, o módulo calcula a ração para esse peso e não para o peso atual.

## Espécies e raças

Em **Animais > Espécies e raças**, cada espécie tem um nome por idioma e um **modelo nutricional**: cão, gato ou outra (apenas tabela de doseamento). As raças têm um nome por idioma e um **tamanho** de toy a gigante: num cachorro, o tamanho define a idade adulta (12 meses nas raças pequenas, 18 meses nas grandes, 24 meses nas gigantes). Sem raça, o tamanho é deduzido do peso. Uma espécie usada por animais não pode ser eliminada: desative-a. Eliminar uma raça deixa os animais em causa sem raça.

## O que o cliente vê

### Os meus animais

Em A minha conta, o cliente cria até 20 perfis: nome, espécie, raça, sexo, data de nascimento, peso atual, peso-alvo, esterilização e nível de atividade. Cada cartão mostra a idade e a fase de vida (cachorro, gatinho, adulto, sénior).

### Página do produto

Por baixo do preço, o bloco **Ração diária e formato** propõe os animais do cliente compatíveis com o alimento. Para os animais selecionados, mostra a ração em gramas por dia, o número de refeições aconselhado, o total quando há vários e uma tabela de formatos com a duração e o preço por quilo. O formato recomendado tem um selo e um botão **Escolher o saco**. Um guia de transição de 7 dias indica os gramas do novo alimento dia a dia, com o nome do alimento atual do animal quando é conhecido.

O formato recomendado é o mais barato por quilo entre os disponíveis que duram pelo menos a **duração mínima** definida, sem ultrapassar a conservação após abertura.

A caixa **Avisar-me por e-mail alguns dias antes de o saco acabar** ativa os lembretes para este alimento. A escolha dos animais e a caixa ficam guardadas para a próxima encomenda.

### Visitantes

Com a **calculadora de ração para visitantes**, um visitante ou um cliente sem animais indica a espécie, o peso, a idade, a atividade e a esterilização e obtém a mesma recomendação. Um cliente com sessão iniciada pode guardar este perfil dando-lhe um nome.

### Página de confirmação da encomenda

Depois de uma encomenda de ração, um bloco propõe ativar os lembretes e, se o cliente tiver vários animais, escolher os que comem este alimento. Este bloco nunca desativa lembretes já ativos: só pode ativá-los e indicar os animais.

## Planos de reposição

Cada cliente tem um plano por alimento. Uma encomenda é registada na validação e acrescentada ao plano quando o seu estado conta como pago. O stock começa na data da encomenda mais o **prazo médio de entrega** e diminui todos os dias com o consumo:

- o **consumo teórico** é a soma das rações dos animais ligados ao plano;
- em cada resposta do cliente sobre o que resta (pelo menos 5 dias depois da anterior), o módulo calcula o consumo observado, limita-o entre 0,4 e 2,5 vezes o teórico para afastar erros de digitação e combina-o com a estimativa anterior;
- se o cliente alterar o perfil de um animal, o consumo acompanha na mesma proporção.

Daí resulta a data de fim do saco, e o lembrete é agendado com a **antecedência do lembrete** definida. Um plano cujo saco está vazio há 90 dias sem nova encomenda é encerrado.

### Área de cliente

Em Os meus animais, cada alimento acompanhado mostra um indicador de stock, os dias restantes, a data de fim estimada, a data do próximo lembrete e o consumo utilizado. O cliente pode indicar o que resta (vazio, um quarto, metade, três quartos, um saco, um saco e meio, dois sacos), escolher os animais que comem o alimento, ativar ou desativar os lembretes, voltar a encomendar ou deixar de acompanhar o alimento.

## Lembretes e nova encomenda

Só os planos cujo cliente ativou os lembretes recebem e-mails:

- o **primeiro lembrete** sai no dia previsto;
- o **segundo lembrete** sai o número de dias definido mais tarde se o cliente não voltou a encomendar nem respondeu (0 desativa-o).

O e-mail contém um botão **Encomendar de novo**, três ligações de resposta (restam cerca de 2 semanas, cerca de 1 semana, o saco está vazio) e uma ligação para pausar os lembretes. As ligações de resposta abrem uma página de confirmação: nada é registado até o cliente clicar, o que protege contra os antivírus de correio que abrem as ligações.

O botão Encomendar de novo pede o início de sessão, enche o carrinho com o mesmo formato e a mesma quantidade e redireciona para a encomenda. Se esse formato estiver esgotado, o módulo propõe o formato disponível mais próximo em quantidade. Se o **desconto de reposição** for superior a 0 e o cliente mantiver os lembretes ativos, é aplicado um vale de utilização única, limitado a esse alimento e válido durante o número de dias definido (código `PET` seguido de 8 caracteres).

O módulo nunca cobra o cliente: ele paga a nova encomenda com os seus meios de pagamento habituais.

## Configuração do módulo

- **Antecedência do lembrete** (7 dias): quantos dias antes do fim estimado sai o lembrete. Inclua o seu prazo de entrega.
- **Segundo lembrete** (5 dias, 0 = desativado).
- **Prazo médio de entrega** (3 dias): início do consumo de um saco novo.
- **Desconto de reposição** (5%, 0 = sem vale) e **validade do vale** (14 dias).
- **Duração mínima do saco recomendado** (14 dias) e **conservação após abertura por defeito** (42 dias), pré-preenchida nos novos alimentos.
- **Calculadora de ração para visitantes**, **executar tarefas com o tráfego do back office** e **lembretes por execução** (50).

Os valores fora dos limites são automaticamente ajustados aos limites permitidos.

## Tarefa cron

A página de configuração mostra um URL protegido por token. Chame-o de hora a hora, por exemplo:

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

Cada execução integra as encomendas pagas, envia os lembretes devidos e encerra os planos inativos. Sem cron, mantenha ativa a execução com o tráfego do back office: as tarefas correm no máximo de 3 em 3 horas quando um funcionário usa o back office. O botão **Executar tarefas agora** lança-as a pedido.

## Back office

- **Planos de reposição**: lista de planos filtrável por cliente, e-mail, alimento, estado, lembretes e data de fim, exportável em CSV, com os indicadores do mês (lembretes enviados, novas encomendas após um lembrete, respostas de stock). A ficha de um plano mostra os animais e a sua ração, o consumo teórico e o utilizado, o stock estimado e o histórico completo, e permite registar o stock indicado pelo cliente ou reenviar o lembrete.
- **Perfis de animais**: lista filtrável e exportável para os seus segmentos de marketing (espécie, raça, idade, peso, esterilização, cliente).
- **Ficha de cliente**: um bloco mostra os seus animais e planos com uma ligação para cada plano.

## E-mails e traduções

O modelo `dfpetcare_reorder` é fornecido em 8 idiomas (francês, inglês, espanhol, alemão, italiano, neerlandês, polaco, português), em HTML e texto, com assunto e introdução próprios para o segundo lembrete. Para qualquer outro idioma instalado, o modelo inglês é copiado. A interface do módulo está traduzida nos mesmos idiomas.

## RGPD

O módulo responde aos pedidos de exportação e eliminação de dados pessoais: perfis de animais, planos, encomendas acompanhadas e escolhas guardadas. Eliminar um cliente elimina também os seus dados no módulo.

## Atualização a partir da 1.0.0

Instale o ZIP 1.1.0 sobre a versão existente. O script de atualização acrescenta a data do último lembrete, ativa o segundo lembrete a 5 dias, liga os hooks da página de confirmação da encomenda e da ficha de cliente e mantém os seus animais, alimentos e planos.

## Perguntas frequentes

### O bloco da ração não aparece na página do produto

Verifique se o produto está declarado e ativo em Rações dos alimentos, se foi indicada uma energia ou uma tabela e se o cliente tem um animal de uma espécie compatível. Sem animais, a calculadora só aparece se estiver ativada.

### A duração dos sacos não é mostrada

Falta o peso líquido da combinação. Indique-o em Rações dos alimentos.

### Não é enviado nenhum lembrete

Verifique se o cliente ativou os lembretes para este alimento, se a tarefa cron corre (data da última execução na página de configuração) e se os e-mails da loja funcionam. O botão Enviar o lembrete agora na ficha de um plano mostra um erro se o envio falhar.

### O que acontece na desinstalação?

As tabelas do módulo são eliminadas: animais, alimentos, planos e históricos. Os vales já criados permanecem nas regras de carrinho.
