# DataFirefly Auto Clearance: liquidação automática de stock parado

> Instalação Instale o módulo em Módulos > Gestor de módulos > Carregar um módulo enviando o ficheiro ZIP, ou copie a pasta dfclearance para o diretório /modules/ da loja e…

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

## Instalação

Instale o módulo em **Módulos > Gestor de módulos > Carregar um módulo** enviando o ficheiro ZIP, ou copie a pasta `dfclearance` para o diretório `/modules/` da loja e clique em Instalar.

Na instalação, o módulo:

- cria uma categoria **Outlet** sob Início, que pode renomear ou substituir por uma categoria existente;
- adiciona o separador **Catálogo > Liquidação automática**, que lista os produtos no outlet;
- cria as suas tabelas (produtos no outlet, exclusões, registo, vendas do outlet);
- fica **desativado**: nenhum preço nem categoria muda enquanto não ativar a execução automática.

Se atualizar a partir da versão 1.0.0, basta carregar o novo ZIP: o script de atualização adiciona a tabela de vendas, as novas definições e os novos hooks sem mexer nas definições existentes.

## Primeiros passos

A página de configuração mostra uma lista de quatro passos enquanto o módulo não estiver totalmente em funcionamento:

1. **Defina os patamares** no separador Patamares e preços. Os valores predefinidos são 10 % aos 90 dias, 20 % aos 150 dias e 35 % aos 240 dias.
2. **Execute uma simulação** com o botão Simular no topo da página. O relatório lista os produtos que entrariam no outlet, os descontos que mudariam e os produtos que sairiam. Nada é gravado.
3. **Ative a execução automática**, primeira opção do separador Patamares e preços.
4. **Agende a tarefa cron** com o URL do separador Tarefa cron.

Depois de uma simulação, o botão **Aplicar agora** executa o processamento a sério se o módulo estiver ativado.

## Patamares e preços

### Patamares predefinidos

Cada patamar associa um número de dias sem vendas a um desconto em percentagem. O primeiro patamar é o limiar de entrada no outlet. Cada patamar tem de dar um desconto superior ao anterior. Uma linha do tempo por baixo da tabela mostra a progressão e assinala os patamares incoerentes antes de guardar.

Os dias sem vendas contam a partir da última encomenda válida que contém o produto, todas as combinações incluídas. Um produto nunca vendido conta a partir da data de criação.

### Progressão dos patamares

- **Dias sem vendas**: o contador recomeça após cada venda, incluindo uma venda no outlet.
- **Tempo no outlet**: os patamares continuam mesmo que o produto venda.

Em ambos os casos, o desconto de um produto no outlet nunca desce.

### Patamares por categoria

O botão **Adicionar uma regra por categoria** cria um conjunto de patamares próprio de uma categoria. A regra aplica-se à categoria e a todas as subcategorias e substitui os patamares predefinidos para os produtos em causa. Quando um produto corresponde a várias regras, vale a primeira da lista. Para um produto movido para o outlet, o módulo usa as categorias que tinha antes de entrar.

### Gestão das categorias

- **Adicionar** (recomendado): o produto é adicionado ao outlet e mantém as suas categorias.
- **Adicionar como categoria predefinida**: o outlet passa também a ser a categoria predefinida, visível no breadcrumb.
- **Mover**: o produto passa a aparecer apenas no outlet. As suas categorias são guardadas e repostas quando sai.

Os modos Adicionar como categoria predefinida e Mover alteram o URL do produto se a categoria fizer parte do formato de URL dos produtos. O PrestaShop redireciona o URL antigo, mas verifique este ponto antes de os usar num catálogo bem posicionado.

### Proteção de preços

- **Desconto máximo** (60 % por predefinição): limite aplicado a todos os patamares.
- **Proteção de margem**: o preço outlet nunca desce abaixo do preço de compra sem IVA acrescido da margem mínima (5 % por predefinição). Os produtos sem preço de compra não são limitados. Se nenhum desconto for possível, o produto não entra no outlet.
- **Terminação do preço**: Exato, x,99, x,90 ou x,00. O módulo arredonda o preço outlet com IVA do país predefinido para a terminação mais próxima. Se nenhuma terminação ficar a menos de 5 pontos do desconto do patamar, mantém a percentagem exata.

A caixa **Pré-visualização com um produto a** calcula em tempo real o preço em cada patamar para o preço que escolher, com arredondamento e desconto máximo incluídos.

## Elegibilidade

### Condições de entrada

- **Stock mínimo para entrar**: indique 2 ou mais para manter a última unidade ao preço normal.
- **Ignorar os produtos já em promoção**: um produto com um desconto ativo para todos os clientes não entra no outlet, para evitar acumulações.
- **Categorias e marcas excluídas**: os produtos em causa nunca entram. Um campo de filtro ajuda a encontrar uma categoria numa lista longa.

Os produtos virtuais, desativados ou com preço zero são sempre ignorados.

### Condições de saída

- **Sair do outlet quando esgotado**: o produto recupera as categorias e o preço normal quando esgota.
- **Sair do outlet quando reabastecido**: o produto sai quando o stock ultrapassa a quantidade que tinha ao entrar.
- Um produto desativado ou excluído também sai na execução seguinte.

### Prazo de reentrada

Um produto que sai do outlet, retirado manualmente, reabastecido ou excluído e depois autorizado de novo, não pode voltar antes deste prazo (30 dias por predefinição, 0 desativa-o). Com 30 dias, o preço riscado corresponde sempre ao preço mais baixo dos últimos 30 dias, como exige a diretiva europeia Omnibus. O prazo não se aplica após uma mudança da categoria outlet.

### Novos produtos por execução

Limita o número de produtos que entram no outlet em cada execução (200 por predefinição). O resto é tratado nas execuções seguintes. Cada execução tem também um limite de tempo para respeitar os limites do alojamento.

### Pausa

Indique uma data de início e uma de fim para suspender a liquidação durante os saldos ou uma campanha de Black Friday. Durante a pausa, nenhum produto entra no outlet e nenhum desconto aumenta. As saídas continuam a aplicar-se e os preços outlet atuais não mudam. O cabeçalho do módulo mostra a pausa em curso.

## Tarefa cron

O separador **Tarefa cron** fornece o URL a chamar uma vez por dia, de preferência à noite, com um botão para copiar. Parâmetros disponíveis:

- `&simulate=1`: execução de teste, nada é alterado;
- `&all_shops=1`: trata todas as lojas de uma instalação multiloja.

Exemplo de linha para crontab ou cPanel:

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

A data da última chamada é apresentada. Se a execução automática estiver ativada e o cron não for chamado há mais de 48 horas, aparece um aviso no topo da página. O botão **Novo token** invalida o URL atual.

Se a loja estiver em manutenção, adicione o endereço IP do servidor à lista de IP de manutenção, caso contrário a chamada é bloqueada.

## Painel

O separador Painel mostra:

- o número de produtos e unidades no outlet;
- o stock a escoar ao valor de compra e o seu valor ao preço outlet;
- a faturação outlet sem IVA dos últimos 30 dias, com o número de encomendas e unidades, e desde a instalação;
- o stock escoado ao valor de compra;
- o desconto médio dos produtos no outlet;
- um gráfico da faturação outlet dia a dia, os movimentos dos últimos 30 dias, a distribuição dos produtos por desconto e os cinco mais vendidos do outlet.

As vendas são registadas no momento da encomenda, para os produtos que estavam nessa altura no outlet. Só contam as encomendas válidas e os valores são convertidos para a moeda predefinida. Os números começam com a instalação do módulo: não há histórico retroativo.

## Produtos em breve e exclusões

O separador **Em breve** lista os produtos que atingirão o limiar de entrada nos próximos 7, 14, 30 ou 60 dias, com o desconto que vão receber, o stock e o seu valor de compra. Os produtos marcados como «próxima execução» já ultrapassaram o limiar. O botão **Excluir** retira-os definitivamente da liquidação.

O separador **Produtos excluídos** aceita ID ou referências separados por vírgulas. Excluir um produto que já está no outlet fá-lo sair de imediato. O botão **Remover a exclusão** torna-o de novo elegível, após o prazo de reentrada.

## Etiqueta e e-mails

### Etiqueta

A etiqueta aparece nas miniaturas e nas fichas de produto, ao lado da etiqueta de desconto nativa. Pode escolher a cor e o texto em cada idioma, com pré-visualização em tempo real.

### Relatório por e-mail

Depois de ativado, é enviado um relatório após cada execução real que faz entrar ou sair produtos, ou que altera um desconto. Lista os produtos em causa com o desconto e o motivo. Deixe o campo destinatários vazio para usar o e-mail da loja, ou introduza vários endereços separados por vírgulas. O botão de teste envia o resultado de uma simulação.

## Lista dos produtos no outlet

**Catálogo > Liquidação automática** lista os produtos no outlet com o desconto, o preço normal com IVA, o preço outlet com IVA, o stock, a data de entrada e o próximo passo (por exemplo «35 % dentro de 38 dias»). A partir desta lista pode:

- retirar um produto do outlet, que não poderá voltar antes do fim do prazo de reentrada;
- lançar uma execução manual;
- exportar a lista em CSV.

## Como o desconto é aplicado

O desconto é um preço específico nativo do PrestaShop, para todos os clientes, moedas e países. O tema mostra por isso o preço riscado e a etiqueta de desconto habituais. Sem terminação de preço, o desconto é uma percentagem. Com uma terminação, é um valor com IVA calculado para o país predefinido, e os temas mostram então a poupança como valor e não como percentagem.

O módulo atualiza o índice de preços do módulo de pesquisa facetada quando este o permite, para que o filtro por preço continue correto. Se o preço base de um produto mudar enquanto está no outlet, o preço específico é recalculado na execução seguinte.

## Desinstalação e reposição

O botão **Retirar todos os produtos**, no separador Tarefa cron, retira todos os produtos do outlet, repõe as suas categorias e elimina os preços outlet. Depois aplica-se o prazo de reentrada. A desinstalação do módulo faz o mesmo antes de eliminar as suas tabelas. A categoria outlet não é eliminada.

## Resolução de problemas

### Nenhum produto entra no outlet

Execute uma simulação. A secção Produtos ignorados lista os produtos que a proteção de margem impede de descontar. Os outros filtros não geram linhas no relatório: verifique o stock mínimo, a opção que ignora os produtos já em promoção, as categorias e marcas excluídas, o prazo de reentrada e uma eventual pausa. Verifique por fim que o primeiro patamar não é mais longo do que a antiguidade dos seus produtos.

### Um produto retirado manualmente não volta

É o prazo de reentrada. Reduza-o, ou coloque-o a 0 se não vender na União Europeia.

### O preço outlet não termina em ,99

Num produto barato, nenhuma terminação fica a menos de 5 pontos do desconto do patamar: o módulo mantém então a percentagem exata. Noutros países além do predefinido, uma taxa de IVA diferente também desloca a terminação.

### O cron não corre

Abra o URL do cron num navegador: deve devolver um resultado JSON. Um erro 503 indica normalmente o modo de manutenção, um erro 403 um token inválido.

## Compatibilidade

- PrestaShop 8.0 a 9.x, o mesmo ZIP cobre as duas versões.
- Multiloja e multilíngue.
- Sem dependências Composer.
- Desconto aplicado por produto, todas as combinações incluídas.
- Interface disponível em francês, inglês, espanhol, alemão, italiano, neerlandês, polaco e português.
