Gestione Scadenze e Lotti: documentazione
Lotti con scadenza e termine minimo, cartoni del fornitore, costi, FEFO, fasce di sconto, importazione CSV e controllo stock.
Installazione e aggiornamento
Il modulo si installa come qualsiasi modulo PrestaShop, senza dipendenze e senza Composer.
- Apri Moduli → Gestore dei moduli.
- Clicca su Carica un modulo e trascina il file ZIP.
- Poi clicca su Configura.
Il modulo crea tre tabelle (lotti, movimenti, confezioni fornitore) e due schede nel menu Catalogo: Lotti DLC/DLUO e Confezioni fornitore.
Da una versione precedente, carica semplicemente il nuovo ZIP. I lotti e il loro storico vengono conservati. Se usavi lo sconto unico della versione 1.0.0, diventa la prima fascia di sconto.
Se le schede non compaiono subito, svuota la cache da Parametri avanzati → Prestazioni e rientra nel back office.
Scadenza e termine minimo: cosa fa il modulo
La data di scadenza (DLC, da consumarsi entro) riguarda gli alimenti deperibili: superata, il prodotto non deve più essere venduto. Il termine minimo di conservazione (DLUO / DDM) segnala una perdita di qualità: il prodotto resta vendibile se il cliente è informato.
- Un lotto scaduto con data di scadenza non viene mai assegnato a un ordine, anche se il cron non è ancora stato eseguito quel giorno.
- Le azioni automatiche alla scadenza (scarico dallo stock, disattivazione del prodotto) riguardano solo la data di scadenza.
- Un lotto con termine minimo superato viene solo disattivato; finché è attivo può essere assegnato agli ordini.
Scegli con cura il tipo di data alla creazione del lotto: è lui a decidere se le azioni automatiche si applicano.
Configurare il modulo
La pagina di configurazione mostra l’URL del cron, uno stato rapido dei lotti e quattro blocchi di impostazioni.
Visualizzazione sulla scheda prodotto
- Mostra la data sulla scheda prodotto: data del lotto in stock più vicino per la combinazione scelta dal cliente.
- Soglia dell’etichetta scadenza ravvicinata: sotto questo numero di giorni compare l’etichetta «Scadenza ravvicinata». Predefinito: 10 giorni.
Sconti automatici sulle scadenze ravvicinate
- Attiva gli sconti automatici: disattivando, vengono rimossi tutti gli sconti creati dal modulo.
- Fasce di sconto: fino a 10 righe «quando il lotto scade entro X giorni» / «sconto Y %». Vedi la sezione Fasce di sconto.
Stock e costi
- Quando scade un lotto con data di scadenza: disattivare solo il lotto, disattivarlo e togliere la quantità residua dallo stock (consigliato), oppure togliere lo stock e disattivare il prodotto se non resta alcun lotto valido.
- Aggiungi per impostazione predefinita la quantità ricevuta allo stock PrestaShop: valore proposto alla creazione di un lotto. Lascialo su No finché registri lotti per stock già conteggiato in PrestaShop.
- Riporta il costo del lotto su ogni riga d’ordine: vedi Costo d’acquisto e margini.
- Rimetti le unità nei loro lotti quando un ordine viene annullato: vedi Annullamento e riattivazione.
- Stampa i numeri di lotto sui documenti di trasporto (attivo per impostazione predefinita) e sulle fatture (disattivato per impostazione predefinita).
Avvisi e-mail
- Soglia di avviso prima della scadenza: finestra controllata dall’e-mail riepilogativa. Predefinito: 30 giorni.
- E-mail destinatario: lascia vuoto per usare l’indirizzo del negozio.
Confezioni fornitore
Se compri a cartoni e vendi a unità, dichiara la confezione una volta in Catalogo → Confezioni fornitore:
- prodotto e, se serve, combinazione;
- nome (per esempio «Cartone da 12»);
- riferimento fornitore ed EAN del cartone;
- unità per cartone e costo abituale del cartone (IVA esclusa);
- riferimento ed EAN dell’unità venduta. Se lasciati vuoti, vengono presi dal prodotto o dalla combinazione.
Il costo unitario risultante viene mostrato in tempo reale. Un prodotto può avere più confezioni.
Creare e ricevere un lotto
In Catalogo → Lotti DLC/DLUO, clicca su Aggiungi un lotto, oppure usa lo stesso pulsante nel pannello lotti della scheda prodotto.
Ricevimento a unità
- Cerca il prodotto (almeno 2 caratteri) e scegli la combinazione, o lascia «Tutte le combinazioni».
- Lascia Ricevuto a unità.
- Inserisci numero di lotto, tipo di data, data limite, quantità ricevuta e costo d’acquisto unitario IVA esclusa.
- Imposta Aggiungi questa quantità allo stock PrestaShop: Sì per una nuova consegna, No per stock già conteggiato.
Ricevimento in cartoni
- Dopo il prodotto, scegli Ricevuto in cartoni del fornitore.
- Seleziona la confezione, indica i cartoni ricevuti e il costo per cartone (IVA esclusa), precompilato con il costo abituale.
- Quantità e costo unitario vengono calcolati e bloccati: 3 cartoni da 12 a 30 € danno 36 unità a 2,50 €.
Il riferimento fornitore del lotto viene precompilato con quello del cartone. Puoi sostituirlo con il numero del documento di consegna del fornitore.
Modificare, disattivare, eliminare
- Il prodotto di un lotto non può essere cambiato dopo la creazione.
- Modificare la quantità registra un movimento di rettifica senza toccare lo stock PrestaShop.
- Un numero di lotto può esistere una sola volta per prodotto.
- Un lotto già venduto non può essere eliminato: disattivalo.
Importare lotti in CSV
Pulsante Importa lotti (CSV) nell’elenco dei lotti. Da quella pagina puoi scaricare un file di esempio.
- Separatore punto e virgola, virgola o tabulazione; prima riga = nomi delle colonne; massimo 5.000 righe e 5 MB.
- Il prodotto viene trovato tramite
reference,ean13oid_product. Anche un riferimento di combinazione funziona inreference. combination_referenceocombination_ean13collega il lotto a una combinazione.- Obbligatori:
lot_numberedexpiry_date(AAAA-MM-GG o GG/MM/AAAA). date_type: dlc o dluo (dlc per impostazione predefinita).quantityeunit_costper un ricevimento a unità.boxes,box_referenceebox_costper un ricevimento in cartoni: quantità e costo unitario vengono calcolati dalla confezione.supplier_refenotesono facoltativi.
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;;
Un numero di lotto già presente per il prodotto viene saltato. Il report elenca ogni riga in errore con il motivo; le altre righe vengono importate.
Cruscotto e viste filtrate
In testa all’elenco, le schede sono cliccabili e filtrano l’elenco: lotti scaduti ancora attivi, lotti in scadenza, lotti con sconto in corso, valore d’acquisto a rischio e valore d’acquisto dello stock in lotti. Il filtro resta attivo durante la paginazione; Mostra tutti i lotti lo rimuove.
Lo scarico FEFO
Alla convalida di un ordine, per ogni prodotto:
- prima i lotti della combinazione ordinata, poi quelli del prodotto;
- i lotti vengono consumati dalla data più vicina alla più lontana;
- i lotti scaduti con data di scadenza sono esclusi.
Un ordine di 10 unità a fronte di un lotto da 4 e uno da 8 prende le prime 4, poi 6 dal lotto successivo. Ogni prelievo viene registrato con l’ordine.
Costo d’acquisto e margini
Con Riporta il costo del lotto su ogni riga d’ordine attivo, il modulo calcola il costo medio ponderato dei lotti consumati e lo salva come prezzo d’acquisto della riga d’ordine. Le statistiche sui margini di PrestaShop usano così il costo reale. I lotti senza costo non entrano nel calcolo.
Fasce di sconto
Esempio: 10 % a 90 giorni, 20 % a 60 giorni, 30 % a 30 giorni.
- Si applica la percentuale più alta tra le fasce raggiunte: lo sconto non scende mai man mano che la data si avvicina.
- Riguarda solo il lotto che uscirà per primo, per prodotto o per combinazione.
- È una regola di prezzo catalogo standard di PrestaShop che termina alla data limite.
- Quando il lotto si esaurisce, lo sconto passa al lotto successivo o scompare.
- Gli sconti vengono ricalcolati al salvataggio delle impostazioni o di un lotto, poi ogni giorno dal cron.
Queste regole seguono le priorità abituali di PrestaShop. Se applichi già sconti catalogo ampi, verifica le priorità prima di attivare le fasce.
Preparazione: ordine e documento di trasporto
Nell’ordine del back office, il blocco Lotti spediti (FEFO) indica per ogni prodotto lotto, data, quantità e costo. Gli stessi lotti vengono stampati sul documento di trasporto, e in fattura se l’opzione è attiva.
Annullamento e riattivazione
Quando un ordine passa ad Annullato, le sue unità tornano nei lotti di origine. Se poi torna in uno stato valido, le unità vengono di nuovo prelevate in ordine FEFO. Il ciclo può ripetersi senza doppi conteggi.
I resi parziali con rientro in magazzino non vengono assegnati automaticamente a un lotto. Compaiono nel Controllo stock, dove crei il lotto corrispondente.
Controllo stock
Il pulsante Controllo stock confronta le unità nei lotti con lo stock PrestaShop:
- una differenza positiva indica unità senza lotto: Crea un lotto per le unità mancanti apre il modulo precompilato;
- una differenza negativa indica che i lotti contengono più dello stock: correggi i lotti o lo stock.
I prodotti con lotti a livello prodotto vengono confrontati sullo stock totale; quelli con tutti i lotti collegati a combinazioni, combinazione per combinazione.
Pannello lotti nella scheda prodotto
La scheda prodotto del back office elenca i lotti del prodotto con stato, costo e sconto, e confronta il totale con lo stock PrestaShop. Il pulsante Aggiungi un lotto preseleziona il prodotto. In PrestaShop 8.1 e 9, il pannello si trova nella scheda Moduli della pagina prodotto.
Attività cron
Scarico, tracciabilità e importazione funzionano senza cron. Le fasce di sconto, i lotti scaduti e l’avviso e-mail richiedono una chiamata giornaliera all’URL mostrato nella configurazione:
https://il-tuo-negozio.com/index.php?fc=module&module=dfdlc&controller=cron&token=IL_TUO_TOKEN
La risposta JSON indica lotti disattivati, unità scaricate, prodotti disattivati, sconti creati, aggiornati o rimossi e avvisi inviati.
Avvisi e-mail
A ogni esecuzione del cron, un’e-mail riepilogativa elenca i lotti la cui data entra nella finestra di avviso: numero, prodotto, tipo, data e quantità. Ogni lotto viene segnalato una sola volta. I modelli sono forniti in 8 lingue nella cartella mails/.
Visualizzazione sulla scheda prodotto
Tramite l’hook displayProductAdditionalInfo, la scheda mostra «Da consumarsi entro» o «Da consumarsi preferibilmente entro» con la data del lotto più vicino per la combinazione scelta. Sotto la soglia compare l’etichetta «Scadenza ravvicinata» con lo sconto. Uno sconto di fascia fuori da quella soglia viene indicato come «offerta per scadenza». Il template views/templates/hook/product-expiry.tpl può essere sovrascritto nel tema.
Tracciabilità e ritiro dei lotti
Il modulo di un lotto mostra il suo storico: ricevimento, ordini, annullamenti, rettifiche, scarico per scadenza, con link a ogni ordine. Esporta CSV scarica lo storico del lotto; Esporta movimenti nell’elenco scarica lo storico completo. Questi dati sono la base di una procedura di ritiro.
Domande frequenti
Il modulo sostituisce lo stock di PrestaShop?
No. Lo stock PrestaShop resta il riferimento per la vendita; il modulo lo suddivide in lotti datati e segnala le differenze.
Cosa succede se i lotti non coprono tutto lo stock?
L’ordine procede normalmente: il modulo preleva ciò che è disponibile nei lotti. Il Controllo stock mostra le unità senza lotto.
Il modulo è compatibile multinegozio?
Sì. Ogni lotto appartiene al negozio in cui è stato creato.
Cosa succede alla disinstallazione?
Le tre tabelle vengono eliminate con il loro contenuto. Esegui un backup se prevedi di reinstallare.