# Verjaardagskorting: documentatie van de PrestaShop-module

> Overzicht De module stuurt je klanten automatisch een persoonlijke kortingscode bij drie gelegenheden: hun verjaardag, het jubileum van hun eerste geldige bestelling en het jubileum van het aanmaken van hun…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfkeydates/>
- Taal: nl
- Bijgewerkt op: 2026-09-24
- Andere talen: [fr](https://www.datafirefly.com/documentation/dfkeydates/index.md), [en](https://www.datafirefly.com/en/documentation/dfkeydates/index.md), [es](https://www.datafirefly.com/es/documentation/dfkeydates/index.md), [de](https://www.datafirefly.com/de/documentation/dfkeydates/index.md), [it](https://www.datafirefly.com/it/documentation/dfkeydates/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfkeydates/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfkeydates/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

## Overzicht

De module stuurt je klanten automatisch een persoonlijke kortingscode bij drie gelegenheden: hun verjaardag, het jubileum van hun eerste geldige bestelling en het jubileum van het aanmaken van hun account. Elke code is een native PrestaShop-winkelwagenregel, voorbehouden aan de klant en eenmaal bruikbaar. Daarna meet de module de omzet van de bestellingen die met deze codes zijn geplaatst.

Compatibiliteit: PrestaShop 8.0 tot 9.x, multistore, 8 talen (Engels, Frans, Spaans, Duits, Italiaans, Nederlands, Pools, Portugees).

## Installatie

1. Klik in **Modules > Modulebeheer** op **Upload een module** en verstuur het ZIP-bestand.
2. De module maakt twee tabellen aan, registreert zijn hooks, genereert het token van de geplande taak en kopieert de e-mailsjablonen voor elke geïnstalleerde taal.
3. In het menu **Klanten** verschijnt het nieuwe tabblad **Verjaardagen en speciale dagen**. De knop **Configureren** van de module leidt er ook naartoe.

Om van 1.0.0 naar 1.1.0 te gaan, upload je gewoon het nieuwe ZIP-bestand: het updatescript registreert de nieuwe hooks.

Het dashboard toont de checklist "Aan de slag" zolang de vier belangrijkste stappen niet zijn uitgevoerd: een campagne inschakelen, jezelf een test-e-mail sturen, de dagelijkse taak inplannen en geboortedata verzamelen.

## De campagnes instellen

Het tabblad **Campagnes** bevat één kaart per gelegenheid. Schakel hem in met de schakelaar rechtsboven: de instellingen en het voorbeeld van de e-mail verschijnen.

### Het aanbod

- **Type korting**: percentage, vast bedrag (in de standaardvaluta) of gratis verzending.
- **Waarde** en **Ook gratis verzending aanbieden** bovenop een percentage of bedrag.
- **Minimaal bestelbedrag (incl. btw)**: 0 voor geen minimum.
- **Geldigheid na de datum**: aantal dagen dat de code geldig blijft vanaf de datum van de gelegenheid.
- **Vooraf versturen**: aantal dagen voor de datum. 0 verstuurt op de dag zelf.
- **Verhoging per extra jaar** en **Maximale waarde** (bestel- en accountjubileum): bijvoorbeeld 10 % het eerste jaar, +2 per jaar, maximaal 20 %.
- **Producten die al in de aanbieding zijn uitsluiten** en **Combineerbaar met andere kortingsbonnen**.

### Wie ontvangt het

- **Minimaal aantal geldige bestellingen**: 0 bij de verjaardag neemt ook klanten mee die nog nooit hebben besteld.
- **Codeprefix**: BDAY geeft bijvoorbeeld codes als BDAY-7KQ2M9.
- **Klantgroepen**: niets aangevinkt betekent alle groepen.

### De e-mail

Pas onderwerp, titel en bericht per taal aan via de taaltabbladen. Het voorbeeld rechts wordt live bijgewerkt met de werkelijke korting. Beschikbare tags: `{firstname}`, `{lastname}`, `{discount}`, `{code}`, `{expiry_date}`, `{min_amount}`, `{years}` (behalve verjaardag) en `{shop_name}`. Een leeg veld gebruikt de standaardtekst van de taal.

De knop **Opslaan en test versturen** stuurt de e-mail naar het adres van de ingelogde medewerker, in diens taal.

## De dagelijkse verzending plannen

Kopieer in **Automatisering en instellingen** de URL van de geplande taak en roep hem eenmaal per dag aan, bij voorkeur vroeg in de ochtend. Voorbeeld van een cronregel:

```
0 7 * * * curl -s "https://jouw-winkel.nl/module/dfkeydates/cron?token=JOUW_TOKEN" >/dev/null
```

Elke uitvoering maakt de codes van de dag aan, verstuurt de e-mails en herinneringen, koppelt gebruikte codes aan hun bestelling en verwijdert verlopen, ongebruikte codes.

- **Inhalen van gemiste dagen** (standaard 2): als de taak niet heeft gedraaid, worden de data van de voorgaande dagen verwerkt.
- **Maximaal aantal codes per uitvoering** (standaard 200): de rest wordt bij de volgende uitvoering verstuurd.
- **Ook uitvoeren bij winkelbezoeken**: zonder cronjob draait de module bij winkelbezoeken, maximaal eenmaal per uur en nadat de pagina is verstuurd. Hij stopt zodra er in de laatste 26 uur een echte cronjob is aangeroepen.

De knoppen **Vandaag simuleren** (lijst van de codes die zouden vertrekken, zonder iets te versturen), **Nu uitvoeren**, **Gebruikte codes opnieuw synchroniseren** en **Nieuw token** staan op dezelfde pagina.

Elke klant ontvangt maximaal één code per gelegenheid en per jaar. Je kunt de taak dus meerdere keren starten zonder risico op dubbele codes.

## Bescherming tegen misbruik en verzamelen van geboortedata

De **wachttijd na registratie of wijziging van de verjaardag** (standaard 30 dagen) blokkeert de verjaardagscode voor een account dat te nieuw is of waarvan de datum net in de winkel is ingevuld of gewijzigd. Wijzigingen door een medewerker in de back-office activeren deze wachttijd niet.

De geboortedata komen uit het native veld van het klantaccount (**Klanten > Instellingen > Geboortedatum**). Is dat veld uitgeschakeld, dan verzamelt de module ze zelf:

- op de **orderbevestigingspagina**, als de datum onbekend is (optie _Vraag naar de geboortedatum op de orderbevestigingspagina als die onbekend is_);
- op de pagina **Mijn cadeaus en speciale dagen** in het klantaccount.

Het dashboard toont het percentage accounts met een bekende datum.

## Herinnering voor het verlopen

Schakel de herinnering in en kies hoeveel dagen voor het verlopen hij wordt verstuurd. Hij gaat alleen uit als de code niet is gebruikt. De teksten van de herinnering en de knoptekst van alle e-mails stel je per taal in. De knop **Testherinnering versturen** slaat de instellingen op en stuurt je een voorbeeld.

## Code met één klik

De knop in elke e-mail verwijst naar een ondertekende link die bij de code hoort. De module onthoudt de code en zet hem in de winkelwagen zodra de klant is ingelogd en producten in de winkelwagen heeft. Is de klant niet ingelogd, dan gaat hij naar de inlogpagina. Is het minimale bestelbedrag niet bereikt, dan wacht de code en wordt hij toegepast zodra dat wel zo is. Een verlopen code, een al gebruikte code of een code voor een andere klant wordt met een melding geweigerd.

## De klantpagina "Mijn cadeaus en speciale dagen"

Bereikbaar via **Mijn account**, toont deze pagina de actieve codes met een kopieerknop en een knop **Gebruiken in mijn winkelwagen**, de komende speciale dagen van de klant, het formulier voor de geboortedatum, eerdere cadeaus en een vakje om deze e-mails niet meer te ontvangen. Je kunt deze pagina in de instellingen verbergen.

## Statistieken en omzetrapport

Het tabblad **Dashboard** toont voor de gekozen periode:

- de **gegenereerde omzet** excl. en incl. btw, berekend op geldige bestellingen waarin een code is gebruikt en omgerekend naar de standaardvaluta;
- de **verzonden en gebruikte codes**, de conversieratio en de gemiddelde bestelwaarde;
- de **toegekende korting** en het rendement (omzet gedeeld door korting);
- de **bestellingen zonder de code** die zijn geplaatst terwijl een code geldig was;
- een grafiek over 12 maanden, de resultaten per gelegenheid, de verzendingen van de komende 30 dagen en de laatste bestellingen met een code.

De omzet wordt toegerekend aan de periode waarin de code is verzonden. Het tabblad **Verzonden codes** toont alle codes met zoekfunctie, filters op gelegenheid, status en datum, opnieuw verzenden van de e-mail voor een actieve code en CSV-export. Ook de klantpagina in de back-office toont de codes die naar die klant zijn verzonden.

## Opschonen van verlopen codes

De instelling **Verlopen, ongebruikte codes verwijderen na** (standaard 30 dagen) verwijdert de bijbehorende winkelwagenregels zodat **Catalogus > Kortingen** overzichtelijk blijft. De geschiedenis en statistieken van de module blijven bewaard. Zet 0 om nooit te verwijderen.

## AVG

De module meldt zich aan bij de officiële AVG-module van PrestaShop. De gegevensexport van een klant bevat zijn codes en voorkeuren, het verwijderen wist de modulegeschiedenis van die klant. Elke klant kan zich in zijn account afmelden voor deze e-mails.

## Multistore

Campagnes en instellingen gelden per winkel. Selecteer een winkel in het multistore-menu om ze te wijzigen. De aangemaakte codes zijn beperkt tot de betreffende winkel.

## Veelgestelde vragen en probleemoplossing

### Er wordt geen code verstuurd

Controleer of minstens één campagne is ingeschakeld en gebruik **Vandaag simuleren**. Is de lijst leeg, dan voldoet vandaag geen enkele klant aan de criteria: onbekende datum, lopende wachttijd, groep niet geselecteerd, te weinig bestellingen of afgemelde klant.

### De e-mails komen niet aan

Stuur een test-e-mail vanuit een campagne. Komt die niet aan, controleer dan de e-mailconfiguratie van PrestaShop in **Geavanceerde instellingen > E-mail**. Een code waarvan de e-mail is mislukt, wordt in de codelijst gemarkeerd en kan opnieuw worden verzonden.

### Een bestelling ontbreekt in de statistieken

Alleen geldige bestellingen worden geteld. Heeft een medewerker zonder rechten op de module een bestelling in de back-office aangemaakt, klik dan op **Gebruikte codes opnieuw synchroniseren**; de dagelijkse taak doet dit ook automatisch.
