Gestione Scadenze e Lotti — Documentazione
Installare e usare la gestione dei lotti con scadenza: FEFO, promozioni automatiche, lotti scaduti, cron e avvisi.
Installazione
Il modulo si installa come qualsiasi altro modulo PrestaShop, senza dipendenze e senza Composer.
- Nel back office apri Moduli → Gestore dei moduli.
- Clicca su Carica un modulo e trascina il file
dfdlc-1.0.0.zip. - A installazione conclusa, clicca su Configura.
Durante l’installazione il modulo crea due tabelle (lotti e movimenti di stock), aggiunge la scheda Catalogo → Lotti DLC/DLUO e registra quattro hook: displayHeader, displayProductAdditionalInfo, actionValidateOrder e actionProductDelete.
Se la scheda Lotti DLC/DLUO non compare subito nel menu Catalogo, svuota la cache di PrestaShop da Parametri avanzati → Prestazioni e rientra nel back office.
Capire scadenza e termine minimo di conservazione
Il modulo distingue due tipi di data, e la distinzione non è formale: determina ciò che il modulo si permette di fare in automatico.
Data di scadenza (DLC)
Dicitura «da consumarsi entro». Riguarda gli alimenti microbiologicamente deperibili. Superata quella data il prodotto è considerato non sicuro e non deve più essere venduto. Per questo il modulo applica a questi lotti le azioni automatiche sullo stock e, se lo desideri, la disattivazione del prodotto.
Termine minimo di conservazione (DLUO / DDM)
Dicitura «da consumarsi preferibilmente entro». Segnala una perdita di qualità, non un rischio sanitario. Il prodotto resta legalmente vendibile dopo quella data, purché il cliente sia informato in modo chiaro. Il modulo si limita quindi a disattivare il lotto scaduto: non toglie mai stock e non disattiva mai il prodotto su un termine minimo di conservazione.
Scegli il tipo di data con attenzione alla creazione di ogni lotto. È questo campo, e solo questo, a determinare se alla scadenza vengono attivate o meno le azioni automatiche sullo stock.
Configurare il modulo
La pagina di configurazione raccoglie tutte le impostazioni, oltre all’URL dell’attività cron e a uno stato rapido dei tuoi lotti.
Visualizzazione lato front
- Mostrare la data sulla scheda prodotto: mostra la data del lotto disponibile più vicino, con la dicitura adatta al tipo di data.
- Soglia dell’etichetta scadenza ravvicinata (giorni): al di sotto di questo numero di giorni rimanenti compare un’etichetta «Scadenza ravvicinata» accanto alla data. Valore predefinito: 10 giorni.
Promozioni automatiche
- Attivare le promozioni automatiche: attiva o disattiva completamente il meccanismo.
- Applicare lo sconto a partire da (giorni): finestra prima della data limite in cui un lotto diventa idoneo. Valore predefinito: 15 giorni.
- Percentuale di sconto: tasso applicato, tra 1 e 90 %. Valore predefinito: 30 %.
Gestione dei lotti scaduti
Sono disponibili tre modalità, dalla più prudente alla più automatica:
- Disattivare solo il lotto — nessuna azione sullo stock. Da preferire se vuoi decidere caso per caso.
- Disattivare il lotto e togliere la quantità residua dallo stock — allinea subito lo stock PrestaShop alla realtà del magazzino. È la modalità consigliata.
- Togliere lo stock e disattivare il prodotto se non resta alcun lotto valido — evita la vendita di un articolo il cui stock è interamente scaduto.
Avvisi
- Soglia di avviso (giorni prima della scadenza): finestra di sorveglianza per l’e-mail riepilogativa. Valore predefinito: 30 giorni.
- E-mail destinatario: lascia vuoto per usare l’indirizzo del negozio.
Creare e gestire i lotti
Vai in Catalogo → Lotti DLC/DLUO. L’elenco mostra i lotti ordinati per data di scadenza crescente, con codice colore e giorni rimanenti. Due indicatori in testa alla pagina ricordano quanti lotti scaduti sono ancora attivi e quanti sono vicini alla scadenza.
Aggiungere un lotto
- Clicca su Aggiungi un lotto.
- Digita almeno due caratteri nel campo Prodotto: la ricerca propone i prodotti corrispondenti. Selezionane uno.
- Se il prodotto ha combinazioni, compare un secondo campo. Lascia «Tutte le combinazioni» per collegare il lotto all’intero prodotto, oppure scegli una combinazione precisa.
- Indica il numero di lotto, il tipo di data, la data limite e la quantità ricevuta.
- Il riferimento fornitore e la nota sono facoltativi ma utili in caso di ritiro.
Puoi combinare i due livelli su uno stesso prodotto: alcuni lotti collegati a una combinazione precisa e un lotto generico a livello di prodotto. Lo scarico consuma prima i lotti della combinazione ordinata, poi quelli del prodotto.
Modificare o eliminare un lotto
La modifica consente di correggere la quantità (dopo un inventario, per esempio) o una data. L’eliminazione di un lotto rimuove anche la regola di prezzo associata se era in corso una promozione automatica, insieme al suo storico dei movimenti.
Esportare
Il pulsante di esportazione dell’elenco genera un CSV dei tuoi lotti, filtri e ordinamento applicati inclusi. Comodo per un controllo qualità o un inventario.
Lo scarico FEFO
FEFO significa First Expired, First Out: esce per primo il lotto con la data più vicina. Non serve alcuna impostazione, il meccanismo si applica automaticamente.
Alla convalida di un ordine, per ogni riga di prodotto, il modulo:
- raccoglie i lotti attivi del prodotto che hanno ancora quantità disponibile;
- mette in testa quelli collegati alla combinazione esattamente ordinata, poi quelli collegati al prodotto;
- ordina questo sottoinsieme per data di scadenza crescente;
- scarica la quantità ordinata risalendo l’elenco, lotto dopo lotto.
Esempio: un ordine di 10 unità a fronte di un lotto da 4 (in scadenza il 12 agosto) e di uno da 8 (in scadenza il 3 ottobre) consumerà le 4 unità del primo lotto, poi 6 unità del secondo. I due movimenti sono registrati separatamente, con lo stesso ordine di origine.
Lo scarico FEFO è indipendente dallo stock PrestaShop, che continua a funzionare normalmente. Il modulo mantiene la ripartizione di quello stock in lotti datati; lo stock PrestaShop resta il riferimento per la disponibilità di vendita.
Promozioni automatiche sulle scadenze ravvicinate
Quando un lotto entra nella finestra configurata, il cron crea una regola di prezzo catalogo (uno specific price standard di PrestaShop) sul prodotto:
- sconto in percentuale, al tasso che hai definito;
- data di inizio: il giorno di creazione;
- data di fine: la data di scadenza del lotto, alle 23:59.
La promozione si spegne quindi da sola alla scadenza, senza lasciare regole orfane nel catalogo. Il modulo crea una sola promozione alla volta per prodotto, anche se più lotti entrano contemporaneamente nella finestra.
Lato cliente lo sconto compare normalmente sulla scheda prodotto e l’etichetta «Scadenza ravvicinata» indica la percentuale in corso.
La regola creata è una regola di prezzo catalogo standard, soggetta agli stessi meccanismi di priorità delle tue altre regole. Se applichi già sconti catalogo ampi, verifica la coerenza delle priorità prima di attivare le promozioni automatiche.
Configurare l’attività cron
Lo scarico FEFO funziona senza cron, perché è attivato dagli ordini. Tre elaborazioni richiedono invece una chiamata quotidiana: le promozioni automatiche, la gestione dei lotti scaduti e l’avviso e-mail.
L’URL protetto da token è mostrato nella pagina di configurazione del modulo. Ha questa forma:
https://il-tuo-negozio.com/index.php?fc=module&module=dfdlc&controller=cron&token=IL_TUO_TOKEN
Programma una chiamata al giorno, preferibilmente di primo mattino. Due metodi comuni:
- Cron del tuo hosting: aggiungi un’attività quotidiana che richiama l’URL con
wgetocurl. - Servizio esterno: qualsiasi servizio di cron online accetta questo URL.
La risposta è un JSON che dettaglia l’esecuzione:
{
"success": true,
"promos_applied": 3,
"expired": {
"lots_deactivated": 2,
"stock_deducted": 7,
"products_disabled": 0
},
"alerts_sent": 5
}
Questo formato si inserisce direttamente in uno strumento di monitoraggio, evitando che l’automazione lavori alla cieca.
Il token viene generato in modo casuale all’installazione. Se sospetti che sia trapelato, reinstalla il modulo per generarne uno nuovo e ricordati di aggiornare l’attività pianificata.
Gli avvisi e-mail
A ogni esecuzione del cron il modulo cerca i lotti la cui data rientra nella finestra di avviso e che non sono ancora stati segnalati. Se ne trova, invia una singola e-mail riepilogativa che elenca, per ciascun lotto: numero, prodotto, tipo di data, scadenza e quantità residua.
Ogni lotto viene segnalato una sola volta, grazie a un marcatore nel database. Non ricevi quindi lo stesso promemoria tutti i giorni.
I modelli e-mail sono forniti in francese e inglese nella cartella mails/ del modulo. Puoi personalizzarli liberamente o aggiungere altre lingue duplicando una cartella esistente.
Visualizzazione sulla scheda prodotto
Il modulo utilizza l’hook displayProductAdditionalInfo, presente nei temi Classic e Hummingbird e nella grande maggioranza dei temi di terze parti. Il blocco mostra:
- la dicitura adatta al tipo di data: «Da consumarsi entro» per una scadenza, «Da consumarsi preferibilmente entro» per un termine minimo di conservazione;
- la data del lotto disponibile più vicino;
- l’etichetta «Scadenza ravvicinata» se la soglia è superata, con la percentuale di sconto quando una promozione è attiva.
Se il prodotto non ha alcun lotto attivo con stock e data valida, non viene mostrato nulla: sulla scheda non compare alcun riquadro vuoto.
Personalizzare la visualizzazione
Il rendering è isolato nel template views/templates/hook/product-expiry.tpl e gli stili in views/css/front.css. Puoi sovrascrivere il template dal tuo tema per regolare la posizione o la formattazione, senza modificare il modulo.
Tracciabilità e ritiro di un lotto
Ogni uscita di stock viene registrata nella tabella dei movimenti con il lotto interessato, la quantità e l’ordine di origine. Partendo da un numero di lotto puoi quindi risalire all’elenco degli ordini che lo hanno consumato.
È la base di una procedura di ritiro. Il modulo fornisce il dato grezzo; la procedura in sé (informazione ai clienti, gestione dei resi, eventuale segnalazione alle autorità) spetta alla tua organizzazione qualità.
Domande frequenti
Il modulo sostituisce lo stock di PrestaShop?
No, lo completa. Le quantità PrestaShop restano il riferimento per la vendita. Il modulo mantiene in parallelo la ripartizione di quello stock in lotti datati. In modalità di scarico dallo stock corregge la quantità PrestaShop quando viene tolto un lotto scaduto, così le due viste restano coerenti.
Cosa succede se i miei lotti non coprono tutto lo stock?
Nulla di bloccante. Lo scarico FEFO consuma solo ciò che è disponibile nei lotti; se i lotti si esauriscono, l’ordine prosegue normalmente e viene scaricata solo la quantità PrestaShop. Sta a te completare l’inserimento dei lotti man mano che ricevi merce.
Posso inserire un lotto con una data già passata?
Sì, ma verrà trattato come scaduto alla successiva esecuzione del cron. Per lo storico è meglio inserirlo con la sua data reale e lasciare che il modulo faccia il suo lavoro.
Il modulo è compatibile multinegozio?
Sì. Ogni lotto è collegato al negozio in cui è stato creato, e gli scarichi di stock sono applicati su quel negozio.
Cosa succede alla disinstallazione?
Le due tabelle vengono eliminate, la scheda di amministrazione viene rimossa e gli hook deregistrati. I lotti e il loro storico non vengono conservati: esegui un backup del database se prevedi una reinstallazione.