DataFirefly Auto Clearance: liquidação automática de stock parado
Instalação, patamares de desconto, regras por categoria, proteção de preços, tarefa cron, painel e resolução de problemas.
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:
- 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.
- 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.
- Ative a execução automática, primeira opção do separador Patamares e preços.
- 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.