# Gestione Scadenze e Lotti: documentazione

> 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…

- Pagina: <https://www.datafirefly.com/it/documentation/dfdlc/>
- Lingua: it
- Aggiornato il: 2026-10-05
- Altre lingue: [fr](https://www.datafirefly.com/documentation/dfdlc/index.md), [en](https://www.datafirefly.com/en/documentation/dfdlc/index.md), [es](https://www.datafirefly.com/es/documentation/dfdlc/index.md), [de](https://www.datafirefly.com/de/documentation/dfdlc/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfdlc/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfdlc/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfdlc/index.md)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

## Installazione e aggiornamento

Il modulo si installa come qualsiasi modulo PrestaShop, senza dipendenze e senza Composer.

1. Apri **Moduli → Gestore dei moduli**.
2. Clicca su **Carica un modulo** e trascina il file ZIP.
3. 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à

1. Cerca il prodotto (almeno 2 caratteri) e scegli la combinazione, o lascia «Tutte le combinazioni».
2. Lascia **Ricevuto a unità**.
3. Inserisci numero di lotto, tipo di data, data limite, quantità ricevuta e costo d'acquisto unitario IVA esclusa.
4. Imposta **Aggiungi questa quantità allo stock PrestaShop**: Sì per una nuova consegna, No per stock già conteggiato.

### Ricevimento in cartoni

1. Dopo il prodotto, scegli **Ricevuto in cartoni del fornitore**.
2. Seleziona la confezione, indica i **cartoni ricevuti** e il **costo per cartone (IVA esclusa)**, precompilato con il costo abituale.
3. 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`, `ean13` o `id_product`. Anche un riferimento di combinazione funziona in `reference`.
- `combination_reference` o `combination_ean13` collega il lotto a una combinazione.
- Obbligatori: `lot_number` ed `expiry_date` (AAAA-MM-GG o GG/MM/AAAA).
- `date_type`: dlc o dluo (dlc per impostazione predefinita).
- `quantity` e `unit_cost` per un ricevimento a unità.
- `boxes`, `box_reference` e `box_cost` per un ricevimento in cartoni: quantità e costo unitario vengono calcolati dalla confezione.
- `supplier_ref` e `note` sono 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:

1. prima i lotti della combinazione ordinata, poi quelli del prodotto;
2. i lotti vengono consumati dalla data più vicina alla più lontana;
3. 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.
