# Houdbaarheid en batchbeheer: documentatie

> Installatie en update De module wordt geïnstalleerd zoals elke PrestaShop-module, zonder afhankelijkheden en zonder Composer. Open Modules → Modulebeheer. Klik op Module uploaden en zet het ZIP-bestand neer. Klik daarna…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfdlc/>
- Taal: nl
- Bijgewerkt op: 2026-10-05
- Andere talen: [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), [it](https://www.datafirefly.com/it/documentation/dfdlc/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfdlc/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfdlc/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Installatie en update

De module wordt geïnstalleerd zoals elke PrestaShop-module, zonder afhankelijkheden en zonder Composer.

1. Open **Modules → Modulebeheer**.
2. Klik op **Module uploaden** en zet het ZIP-bestand neer.
3. Klik daarna op **Configureren**.

De module maakt drie tabellen aan (batches, bewegingen, leveranciersverpakkingen) en twee tabbladen in het menu Catalogus: **Batches THT** en **Leveranciersverpakkingen**.

Vanaf een eerdere versie uploadt u gewoon het nieuwe ZIP-bestand. Batches en geschiedenis blijven bewaard. Gebruikte u de enkele korting van versie 1.0.0, dan wordt die de eerste kortingsschijf.

Verschijnen de tabbladen niet meteen, leeg dan de cache via Geavanceerde parameters → Prestaties en log opnieuw in.

## TGT en THT: wat de module doet

De **te-gebruiken-tot-datum** (TGT, DLC) geldt voor bederfelijke levensmiddelen: daarna mag het product niet meer verkocht worden. De **ten-minste-houdbaar-tot-datum** (THT, DLUO / DDM) wijst op kwaliteitsverlies: het product mag verkocht blijven worden als de klant geïnformeerd is.

- Een vervallen TGT-batch wordt nooit aan een bestelling toegewezen, ook als de cron die dag nog niet gedraaid heeft.
- Automatische acties bij vervallen (afboeken, product deactiveren) gelden alleen voor TGT.
- Een vervallen THT-batch wordt alleen gedeactiveerd; zolang hij actief is, kan hij aan bestellingen worden toegewezen.

Kies de soort datum zorgvuldig bij het aanmaken: die bepaalt of automatische acties van toepassing zijn.

## De module configureren

De configuratiepagina toont de cron-URL, een snel overzicht van de batches en vier blokken instellingen.

### Weergave op de productpagina

- **Datum op de productpagina tonen**: datum van de dichtstbijzijnde batch op voorraad voor de combinatie die de klant kiest.
- **Drempel voor het label korte houdbaarheid**: onder dit aantal dagen verschijnt het label „Korte houdbaarheid". Standaard: 10 dagen.

### Automatische korting bij korte houdbaarheid

- **Automatische kortingen inschakelen**: uitschakelen verwijdert alle kortingen die de module heeft aangemaakt.
- **Kortingsschijven**: tot 10 regels „wanneer de batch vervalt binnen X dagen" / „korting Y %". Zie het onderdeel Kortingsschijven.

### Voorraad en kosten

- **Wanneer een TGT-batch vervalt**: alleen de batch deactiveren, deactiveren en het resterende aantal afboeken (aanbevolen), of afboeken en het product deactiveren als er geen geldige batch overblijft.
- **Ontvangen aantal standaard aan de PrestaShop-voorraad toevoegen**: voorgestelde waarde bij het aanmaken van een batch. Laat op Nee staan zolang u batches invoert voor voorraad die al in PrestaShop is geteld.
- **Batchkosten op elke bestelregel vastleggen**: zie Inkoopprijs en marges.
- **Eenheden terugzetten in hun batches bij annulering van een bestelling**: zie Annulering en heractivering.
- **Batchnummers op pakbonnen afdrukken** (standaard aan) en **op facturen afdrukken** (standaard uit).

### E-mailwaarschuwingen

- **Waarschuwingsdrempel vóór vervaldatum**: venster dat de overzichtsmail bewaakt. Standaard: 30 dagen.
- **E-mailadres ontvanger**: leeg laten om het adres van de winkel te gebruiken.

## Leveranciersverpakkingen

Koopt u per doos en verkoopt u per stuk, leg de verpakking dan eenmaal vast in **Catalogus → Leveranciersverpakkingen**:

- product en zo nodig combinatie;
- naam (bijvoorbeeld „Doos van 12");
- leveranciersreferentie en EAN van de doos;
- eenheden per doos en gebruikelijke prijs per doos (excl. btw);
- referentie en EAN van de verkochte eenheid. Leeg gelaten worden die van het product of de combinatie overgenomen.

De berekende kostprijs per stuk wordt direct getoond. Een product kan meerdere verpakkingen hebben.

## Een batch aanmaken en ontvangen

Klik in **Catalogus → Batches THT** op **Batch toevoegen**, of gebruik dezelfde knop in het batchpaneel van de productpagina.

### Ontvangst per stuk

1. Zoek het product (minstens 2 tekens) en kies de combinatie, of laat „Alle combinaties" staan.
2. Laat **Ontvangen per stuk** staan.
3. Vul batchnummer, soort datum, vervaldatum, ontvangen aantal en inkoopprijs per eenheid excl. btw in.
4. Kies bij **Dit aantal aan de PrestaShop-voorraad toevoegen**: Ja bij een nieuwe levering, Nee voor voorraad die al geteld is.

### Ontvangst in dozen

1. Kies na het product **Ontvangen in leveranciersdozen**.
2. Selecteer de verpakking, vul de **ontvangen dozen** en de **prijs per doos (excl. btw)** in, vooraf ingevuld met de gebruikelijke prijs.
3. Aantal en kostprijs per stuk worden berekend en vergrendeld: 3 dozen van 12 tegen 30 € geven 36 eenheden van 2,50 €.

De leveranciersreferentie van de batch wordt vooraf ingevuld met die van de doos. U kunt die vervangen door het pakbonnummer van de leverancier.

### Wijzigen, deactiveren, verwijderen

- Het product van een batch kan na het aanmaken niet meer worden gewijzigd.
- Een gewijzigd aantal wordt vastgelegd als correctiebeweging, zonder de PrestaShop-voorraad aan te passen.
- Een batchnummer mag per product maar één keer voorkomen.
- Een al verkochte batch kan niet worden verwijderd: deactiveer hem.

## Batches importeren via CSV

Knop **Batches importeren (CSV)** in de batchlijst. Op die pagina kunt u een voorbeeldbestand downloaden.

- Scheidingsteken puntkomma, komma of tab; eerste regel = kolomnamen; maximaal 5.000 regels en 5 MB.
- Het product wordt gevonden via `reference`, `ean13` of `id_product`. Een combinatiereferentie werkt ook in `reference`.
- `combination_reference` of `combination_ean13` koppelt de batch aan een combinatie.
- Verplicht: `lot_number` en `expiry_date` (JJJJ-MM-DD of DD/MM/JJJJ).
- `date_type`: dlc of dluo (standaard dlc).
- `quantity` en `unit_cost` voor een ontvangst per stuk.
- `boxes`, `box_reference` en `box_cost` voor een ontvangst in dozen: aantal en kostprijs per stuk worden berekend uit de verpakking.
- `supplier_ref` en `note` zijn optioneel.

```
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;;
```

Een batchnummer dat al bestaat voor het product wordt overgeslagen. Het rapport toont elke foutieve regel met de reden; de overige regels worden geïmporteerd.

## Dashboard en gefilterde weergaven

De kaarten boven de lijst zijn klikbaar en filteren de lijst: vervallen batches die nog actief zijn, batches die binnenkort vervallen, batches met lopende korting, inkoopwaarde met vervalrisico en inkoopwaarde van de batchvoorraad. Het filter blijft actief bij het bladeren; **Alle batches tonen** heft het op.

## De FEFO-afboeking

Bij bevestiging van een bestelling geldt per product:

1. eerst de batches van de bestelde combinatie, daarna die van het product;
2. batches worden verbruikt van de dichtstbijzijnde naar de verste datum;
3. vervallen TGT-batches zijn uitgesloten.

Een bestelling van 10 eenheden tegenover een batch van 4 en een batch van 8 neemt eerst de 4, daarna 6 uit de volgende batch. Elke afboeking wordt met de bestelling vastgelegd.

## Inkoopprijs en marges

Met **Batchkosten op elke bestelregel vastleggen** berekent de module de gewogen kostprijs van de verbruikte batches en slaat die op als inkoopprijs van de bestelregel. De margestatistieken van PrestaShop gebruiken dan de echte kostprijs. Batches zonder kostprijs tellen niet mee.

## Kortingsschijven

Voorbeeld: 10 % bij 90 dagen, 20 % bij 60 dagen, 30 % bij 30 dagen.

- Het hoogste percentage van de bereikte schijven geldt: de korting daalt nooit naarmate de datum nadert.
- Ze geldt alleen voor de batch die als eerste wordt verkocht, per product of per combinatie.
- Het is een standaard catalogusprijsregel van PrestaShop die op de vervaldatum afloopt.
- Is de batch uitverkocht, dan gaat de korting naar de volgende batch of verdwijnt ze.
- Kortingen worden herberekend bij het opslaan van de instellingen of een batch, daarna dagelijks door de cron.

Deze regels volgen de gebruikelijke prioriteiten van PrestaShop. Gebruikt u al brede catalogusprijsregels, controleer dan de prioriteiten voordat u de schijven inschakelt.

## Orderpicken: bestelling en pakbon

In de bestelling in de back-office toont het blok **Verzonden batches (FEFO)** per product de batch, datum, het aantal en de kostprijs. Dezelfde batches worden op de pakbon afgedrukt, en op de factuur als die optie aan staat.

## Annulering en heractivering

Krijgt een bestelling de status Geannuleerd, dan gaan de eenheden terug naar hun oorspronkelijke batches. Krijgt ze later weer een geldige status, dan worden de eenheden opnieuw volgens FEFO afgeboekt. Dit kan zich herhalen zonder dubbele telling.

Gedeeltelijke retouren met terugboeking op voorraad worden niet automatisch aan een batch toegewezen. Ze verschijnen in de Voorraadcontrole, waar u de bijbehorende batch aanmaakt.

## Voorraadcontrole

De knop **Voorraadcontrole** vergelijkt de eenheden in batches met de PrestaShop-voorraad:

- een positief verschil betekent eenheden zonder batch: **Batch aanmaken voor de ontbrekende eenheden** opent het vooraf ingevulde formulier;
- een negatief verschil betekent dat de batches meer bevatten dan de voorraad: corrigeer de batches of de voorraad.

Producten met batches op productniveau worden vergeleken op hun totale voorraad; producten waarvan alle batches aan combinaties gekoppeld zijn, per combinatie.

## Batchpaneel op de productpagina

De productpagina in de back-office toont de batches van het product met status, kostprijs en korting, en vergelijkt het totaal met de PrestaShop-voorraad. De knop Batch toevoegen selecteert het product vooraf. In PrestaShop 8.1 en 9 staat het paneel op het tabblad Modules van de productpagina.

## Cron-taak

Afboeking, traceerbaarheid en import werken zonder cron. Kortingsschijven, vervallen batches en de e-mailwaarschuwing hebben een dagelijkse aanroep nodig van de URL uit de configuratie:

```
https://uw-winkel.nl/index.php?fc=module&module=dfdlc&controller=cron&token=UW_TOKEN
```

Het JSON-antwoord meldt gedeactiveerde batches, afgeboekte eenheden, gedeactiveerde producten, aangemaakte, bijgewerkte of verwijderde kortingen en verstuurde waarschuwingen.

## E-mailwaarschuwingen

Bij elke cron-run somt een overzichtsmail de batches op waarvan de datum in het waarschuwingsvenster valt: nummer, product, soort, datum en aantal. Elke batch wordt maar één keer gemeld. De sjablonen zijn beschikbaar in 8 talen in de map `mails/`.

## Weergave op de productpagina

Via de hook `displayProductAdditionalInfo` toont de pagina „Te gebruiken tot" of „Ten minste houdbaar tot" met de datum van de dichtstbijzijnde batch voor de gekozen combinatie. Onder de drempel verschijnt het label „Korte houdbaarheid" met de korting. Een schijfkorting buiten die drempel krijgt het label „aanbieding vanwege houdbaarheid". Het sjabloon `views/templates/hook/product-expiry.tpl` kan in uw thema worden overschreven.

## Traceerbaarheid en terugroepacties

Het formulier van een batch toont de geschiedenis: ontvangst, bestellingen, annuleringen, correcties, afboeking bij vervallen, met een link naar elke bestelling. **CSV exporteren** downloadt de geschiedenis van de batch; **Bewegingen exporteren** in de lijst downloadt de volledige geschiedenis. Deze gegevens vormen de basis van een terugroepprocedure.

## Veelgestelde vragen

### Vervangt de module de PrestaShop-voorraad?

Nee. De PrestaShop-voorraad blijft de basis voor de verkoop; de module verdeelt die in batches met datum en meldt verschillen.

### Wat als mijn batches niet de hele voorraad dekken?

De bestelling verloopt normaal: de module neemt wat in de batches beschikbaar is. De Voorraadcontrole toont eenheden zonder batch.

### Werkt de module met multistore?

Ja. Elke batch hoort bij de winkel waarin hij is aangemaakt.

### Wat gebeurt er bij het verwijderen?

De drie tabellen worden met hun inhoud verwijderd. Maak een back-up als u opnieuw wilt installeren.
