Gestão de Validades e Lotes: documentação
Lotes com data limite de consumo e durabilidade mínima, caixas do fornecedor, custos, FEFO, escalões de desconto, importação CSV e controlo de stock.
Instalação e atualização
O módulo instala-se como qualquer módulo PrestaShop, sem dependências nem Composer.
- Abra Módulos → Gestor de módulos.
- Clique em Carregar um módulo e largue o ficheiro ZIP.
- Depois clique em Configurar.
O módulo cria três tabelas (lotes, movimentos, embalagens do fornecedor) e dois separadores no menu Catálogo: Lotes e validades e Embalagens do fornecedor.
A partir de uma versão anterior, basta carregar o novo ZIP. Os lotes e o seu histórico são mantidos. Se usava o desconto único da versão 1.0.0, ele passa a ser o primeiro escalão de desconto.
Se os separadores não aparecerem logo, limpe a cache em Parâmetros avançados → Desempenho e volte a iniciar sessão.
Data limite de consumo e durabilidade mínima: o que faz o módulo
A data limite de consumo (DLC, consumir até) aplica-se a alimentos perecíveis: ultrapassada, o produto não deve ser vendido. A data de durabilidade mínima (DLUO / DDM, consumir de preferência antes de) indica perda de qualidade: o produto pode continuar à venda se o cliente estiver informado.
- Um lote expirado com data limite de consumo nunca é atribuído a uma encomenda, mesmo que o cron ainda não tenha corrido nesse dia.
- As ações automáticas na expiração (retirada do stock, desativação do produto) só se aplicam à data limite de consumo.
- Um lote com durabilidade mínima ultrapassada é apenas desativado; enquanto estiver ativo, pode ser atribuído a encomendas.
Escolha com cuidado o tipo de data ao criar o lote: é ele que decide se as ações automáticas se aplicam.
Configurar o módulo
A página de configuração mostra o URL do cron, um estado rápido dos lotes e quatro blocos de definições.
Apresentação na página do produto
- Mostrar a data na página do produto: data do lote em stock mais próximo para a combinação escolhida pelo cliente.
- Limite do selo de validade curta: abaixo deste número de dias aparece o selo «Validade curta». Por defeito: 10 dias.
Descontos automáticos em validade curta
- Ativar os descontos automáticos: ao desativar, todos os descontos criados pelo módulo são removidos.
- Escalões de desconto: até 10 linhas «quando o lote expira dentro de X dias» / «desconto Y %». Veja a secção Escalões de desconto.
Stock e custos
- Quando expira um lote com data limite de consumo: desativar apenas o lote, desativá-lo e retirar a quantidade restante do stock (recomendado), ou retirar o stock e desativar o produto se não restar nenhum lote válido.
- Adicionar por defeito a quantidade recebida ao stock do PrestaShop: valor proposto ao criar um lote. Deixe em Não enquanto regista lotes de stock já contabilizado no PrestaShop.
- Registar o custo do lote em cada linha de encomenda: veja Custo de compra e margens.
- Devolver as unidades aos lotes quando uma encomenda é cancelada: veja Cancelamento e reativação.
- Imprimir os números de lote nas guias de remessa (ativo por defeito) e nas faturas (desativado por defeito).
Alertas por e-mail
- Limite de alerta antes da validade: janela vigiada pelo e-mail resumo. Por defeito: 30 dias.
- E-mail do destinatário: deixe vazio para usar o endereço da loja.
Embalagens do fornecedor
Se compra em caixas e vende à unidade, defina a embalagem uma vez em Catálogo → Embalagens do fornecedor:
- produto e, se necessário, combinação;
- nome (por exemplo «Caixa de 12»);
- referência do fornecedor e EAN da caixa;
- unidades por caixa e custo habitual da caixa (sem IVA);
- referência e EAN da unidade vendida. Se ficarem vazios, são usados os do produto ou da combinação.
O custo unitário resultante é mostrado em tempo real. Um produto pode ter várias embalagens.
Criar e receber um lote
Em Catálogo → Lotes e validades, clique em Adicionar um lote, ou use o mesmo botão no painel de lotes da página do produto.
Receção à unidade
- Procure o produto (pelo menos 2 caracteres) e escolha a combinação, ou deixe «Todas as combinações».
- Deixe Recebido à unidade.
- Indique número do lote, tipo de data, data limite, quantidade recebida e custo de compra por unidade sem IVA.
- Defina Adicionar esta quantidade ao stock do PrestaShop: Sim para uma nova entrega, Não para stock já contabilizado.
Receção em caixas
- Depois do produto, escolha Recebido em caixas do fornecedor.
- Selecione a embalagem, indique as caixas recebidas e o custo por caixa (sem IVA), pré-preenchido com o custo habitual.
- A quantidade e o custo unitário são calculados e bloqueados: 3 caixas de 12 a 30 € dão 36 unidades a 2,50 €.
A referência do fornecedor do lote é pré-preenchida com a da caixa. Pode substituí-la pelo número da guia de remessa do fornecedor.
Alterar, desativar, eliminar
- O produto de um lote não pode ser alterado depois da criação.
- Alterar a quantidade regista um movimento de ajuste sem mexer no stock do PrestaShop.
- Um número de lote só pode existir uma vez por produto.
- Um lote já vendido não pode ser eliminado: desative-o.
Importar lotes em CSV
Botão Importar lotes (CSV) na lista de lotes. Nessa página pode descarregar um ficheiro de exemplo.
- Separador ponto e vírgula, vírgula ou tabulação; primeira linha = nomes das colunas; máximo de 5.000 linhas e 5 MB.
- O produto é encontrado por
reference,ean13ouid_product. Uma referência de combinação também funciona emreference. combination_referenceoucombination_ean13associa o lote a uma combinação.- Obrigatórios:
lot_numbereexpiry_date(AAAA-MM-DD ou DD/MM/AAAA). date_type: dlc ou dluo (dlc por defeito).quantityeunit_costpara uma receção à unidade.boxes,box_referenceebox_costpara uma receção em caixas: quantidade e custo unitário são calculados a partir da embalagem.supplier_refenotesão opcionais.
reference;lot_number;date_type;expiry_date;quantity;unit_cost
CROQ-2KG;L2026-118;dluo;2027-03-31;24;6.40
PATE-12;L2026-204;dlc;15/01/2027;;
Um número de lote que já existe para o produto é ignorado. O relatório lista cada linha com erro e o motivo; as restantes linhas são importadas.
Painel de indicadores e vistas filtradas
No topo da lista, os cartões são clicáveis e filtram a lista: lotes expirados ainda ativos, lotes perto da validade, lotes com desconto ativo, valor de compra em risco e valor de compra do stock em lotes. O filtro mantém-se ao mudar de página; Mostrar todos os lotes remove-o.
A saída FEFO
Na validação de uma encomenda, para cada produto:
- primeiro os lotes da combinação encomendada, depois os do produto;
- os lotes são consumidos da data mais próxima para a mais distante;
- os lotes expirados com data limite de consumo ficam excluídos.
Uma encomenda de 10 unidades perante um lote de 4 e outro de 8 retira as 4 primeiras e depois 6 do lote seguinte. Cada retirada fica registada com a encomenda.
Custo de compra e margens
Com Registar o custo do lote em cada linha de encomenda ativo, o módulo calcula o custo médio ponderado dos lotes consumidos e guarda-o como preço de compra da linha da encomenda. As estatísticas de margem do PrestaShop passam a usar o custo real. Os lotes sem custo não entram no cálculo.
Escalões de desconto
Exemplo: 10 % a 90 dias, 20 % a 60 dias, 30 % a 30 dias.
- Aplica-se a percentagem mais alta entre os escalões atingidos: o desconto nunca desce à medida que a data se aproxima.
- Só se aplica ao lote que sai primeiro, por produto ou por combinação.
- É uma regra de preço de catálogo padrão do PrestaShop que termina na data limite.
- Quando o lote esgota, o desconto passa para o lote seguinte ou desaparece.
- Os descontos são recalculados ao guardar as definições ou um lote, e depois todos os dias pelo cron.
Estas regras seguem as prioridades habituais do PrestaShop. Se já aplica descontos de catálogo amplos, verifique as prioridades antes de ativar os escalões.
Preparação: encomenda e guia de remessa
Na encomenda do back office, o bloco Lotes enviados (FEFO) indica para cada produto o lote, a data, a quantidade e o custo. Os mesmos lotes são impressos na guia de remessa, e na fatura se a opção estiver ativa.
Cancelamento e reativação
Quando uma encomenda passa a Cancelada, as suas unidades voltam aos lotes de origem. Se depois voltar a um estado válido, as unidades são retiradas de novo pela ordem FEFO. O ciclo pode repetir-se sem contagem dupla.
As devoluções parciais com reposição de stock não são atribuídas automaticamente a um lote. Aparecem no Controlo de stock, onde cria o lote correspondente.
Controlo de stock
O botão Controlo de stock compara as unidades em lotes com o stock do PrestaShop:
- uma diferença positiva significa unidades sem lote: Criar um lote para as unidades em falta abre o formulário pré-preenchido;
- uma diferença negativa significa que os lotes contêm mais do que o stock: corrija os lotes ou o stock.
Os produtos com lotes ao nível do produto são comparados pelo stock total; os produtos com todos os lotes associados a combinações são comparados combinação a combinação.
Painel de lotes na página do produto
A página do produto no back office lista os lotes do produto com estado, custo e desconto, e compara o total com o stock do PrestaShop. O botão Adicionar um lote pré-seleciona o produto. No PrestaShop 8.1 e 9, o painel está no separador Módulos da página do produto.
Tarefa cron
A saída de stock, a rastreabilidade e a importação funcionam sem cron. Os escalões de desconto, os lotes expirados e o alerta por e-mail precisam de uma chamada diária ao URL indicado na configuração:
https://a-sua-loja.pt/index.php?fc=module&module=dfdlc&controller=cron&token=O_SEU_TOKEN
A resposta JSON indica os lotes desativados, as unidades retiradas, os produtos desativados, os descontos criados, atualizados ou removidos e os alertas enviados.
Alertas por e-mail
Em cada execução do cron, um e-mail resumo lista os lotes cuja data entra na janela de alerta: número, produto, tipo, data e quantidade. Cada lote é assinalado uma só vez. Os modelos são fornecidos em 8 idiomas na pasta mails/.
Apresentação na página do produto
Através do hook displayProductAdditionalInfo, a página mostra «Consumir até» ou «Consumir de preferência antes de» com a data do lote mais próximo para a combinação escolhida. Abaixo do limite aparece o selo «Validade curta» com o desconto. Um desconto de escalão fora desse limite é indicado como «oferta por validade». O modelo views/templates/hook/product-expiry.tpl pode ser substituído no tema.
Rastreabilidade e recolha de lotes
O formulário de um lote mostra o seu histórico: receção, encomendas, cancelamentos, ajustes, retirada por expiração, com ligação a cada encomenda. Exportar CSV descarrega o histórico do lote; Exportar movimentos na lista descarrega o histórico completo. Estes dados são a base de um procedimento de recolha.
Perguntas frequentes
O módulo substitui o stock do PrestaShop?
Não. O stock do PrestaShop continua a ser a referência para vender; o módulo divide-o em lotes datados e assinala as diferenças.
E se os lotes não cobrirem todo o stock?
A encomenda decorre normalmente: o módulo retira o que estiver disponível nos lotes. O Controlo de stock mostra as unidades sem lote.
É compatível com multiloja?
Sim. Cada lote pertence à loja onde foi criado.
O que acontece na desinstalação?
As três tabelas são eliminadas com o seu conteúdo. Faça uma cópia de segurança se pretende reinstalar.