DataFirefly Waitlist: volledige gids
Installatie, configuratie, beheer van varianten, cron, conversietracking en probleemoplossing van de module voor voorraadmeldingen voor PrestaShop 8 en 9.
Overzicht
DataFirefly Waitlist voegt een melding bij terugkeer op voorraad toe aan uw PrestaShop 8- of 9-winkel. Zodra een product, of een specifieke variant, onder de ingestelde voorraaddrempel zakt, verschijnt automatisch een knop « Waarschuw mij zodra dit weer op voorraad is » op de productfiche. De bezoeker laat zijn e-mailadres achter en krijgt bericht zodra de voorraad is aangevuld. Elke bestelling die een gewaarschuwde inschrijver daarna plaatst, wordt in het dashboard als conversie toegerekend.
Installatie
- Ga in de backoffice naar Modules → Modulebeheer → Een module installeren.
- Upload het bestand
dfwaitlist-x.x.x.zip. - Klik op Installeren. De module maakt de tabel
df_dfwaitlist_subscriberaan, registreert zijn hooks en voegt zijn beheertabblad toe. - Open de configuratie om het e-mailadres van de handelaar in te vullen en de cron-URL op te halen.
Geen enkele externe afhankelijkheid. Minimaal PHP 7.4, compatibel tot PHP 8.3. Broncode niet versleuteld.
Configuratie
Ga naar Modules → DataFirefly Waitlist → Configureren. De beschikbare instellingen:
- Double opt-in: als dit actief is, stuurt de inschrijving eerst een bevestigingsmail. Zolang de bezoeker niet heeft geklikt, blijft de inschrijving onbevestigd en volgt er geen enkele melding. Uit te schakelen als u de voorkeur geeft aan directe inschrijving.
- Voorraaddrempel: de hoeveelheid waaronder een product als niet beschikbaar geldt en de knop verschijnt.
- Waarschuwingsdrempel voor de handelaar: het aantal inschrijvers op eenzelfde product vanaf welk u een meldingsmail ontvangt. Standaard 10.
- E-mailadres van de handelaar: ontvanger van bovenstaande waarschuwing.
- Levensduur van de inschrijvingen: nooit gewaarschuwde inschrijvingen worden na N dagen automatisch opgeruimd. Standaard 90.
- Tekst van de knop: per taal aan te passen.
- AVG-vermelding: tekst onder het formulier, per taal aan te passen.
- Cron-URL: beveiligd met een token, met één klik opnieuw te genereren vanuit de backoffice.
Werking aan klantzijde
Verschijnen van de knop
De knop wordt geïnjecteerd via de hook displayProductActions en de zichtbaarheid wordt aan clientzijde bepaald. De module bevraagt het endpoint /modules/dfwaitlist/stockcheck om de werkelijke voorraadstatus van de getoonde variant te kennen, waardoor hij losstaat van het AJAX-hertekengedrag van het thema. Het resultaat: de knop verdwijnt als de gekozen variant beschikbaar is en verschijnt anders opnieuw, zonder de pagina te herladen.
Varianten (declinaties)
De inschrijving gebeurt per combinatie (product, variant). Het formulier toont uitdrukkelijk om welke variant het gaat, bijvoorbeeld « Variant: Rood / Maat L ». Wisselt de bezoeker vóór het bevestigen van variant, dan schakelt het doel automatisch mee. De meldingsmail vermeldt de exacte variant en verwijst naar de fiche met die variant al geselecteerd: verwarring tussen twee maten is uitgesloten.
Bevestiging (double opt-in)
Met actieve double opt-in ontvangt de inschrijver een e-mail met een bevestigingslink voorzien van een token. De inschrijving telt pas na de klik. Dit mechanisme waarborgt de kwaliteit van de lijst (geen verzonnen adressen) en levert een uitdrukkelijk bewijs van toestemming.
Melding bij terugkeer op voorraad
Bij het aanvullen van de voorraad ontvangt de inschrijver een responsieve HTML-mail met de productnaam, de betrokken variant en een rechtstreekse link naar de fiche. Elke e-mail bevat een uitschrijflink die met één klik werkt.
Detectie van voorraadherstel
Twee elkaar aanvullende kanalen, die u allebei actief laat:
- Hook
actionUpdateQuantity: realtime. Zodra een medewerker een voorraad in de backoffice wijzigt, of een geannuleerde bestelling voorraad vrijgeeft, vertrekken de e-mails meteen. - Vangnet-cron: beveiligd met een token. Hij vangt de voorraadbewegingen op die niet via de hooks lopen: API-imports, ERP-synchronisatie, CLI-scripts en updates via de PrestaShop-webservice.
De cron instellen
Kopieer de URL uit de configuratie van de module (die bevat het beveiligingstoken) en koppel die aan een aanroep per uur:
0 * * * * curl -s "https://uw-winkel.nl/module/dfwaitlist/cron?token=UW_TOKEN" > /dev/null 2>&1
Vermoedt u dat het token is uitgelekt, genereer het dan met één klik opnieuw vanuit de configuratie: de oude URL werkt onmiddellijk niet meer. Vergeet niet uw crontab bij te werken na het opnieuw genereren.
Conversietracking
Op de hook actionValidateOrder vergelijkt de module elke bestelregel met de inschrijvingen met status « gewaarschuwd ». De koppeling gebeurt op het drietal (e-mail, id_product, id_product_attribute). Bij een match wordt de inschrijving als geconverteerd gemarkeerd en wordt de id_order vastgelegd.
Omdat de tracking op het e-mailadres berust en niet op het klantaccount, werkt zij zowel voor gastbestellingen als voor ingelogde klanten.
Beheerdersdashboard
- 6 KPI’s: inschrijvers, wachtend op bevestiging, gewaarschuwd, aankopen, conversiepercentage, uitgeschreven.
- Lijst van producten met aanvragen: sorteerbaar en gepagineerd. Dit is uw prioriteitenlijst voor het aanvullen van de voorraad: een product met 47 inschrijvers staat gelijk aan 47 vrijwel zekere verkopen als u snel bijbestelt.
- Detailweergave per product: elke inschrijver met zijn eigen status.
- CSV-export: volledige export van de actieve winkel: e-mail, product, variant, statussen (bevestigd, gewaarschuwd, gekocht, uitgeschreven), datums, IP en het bestelnummer bij conversie. Het bestand bevat een UTF-8 BOM zodat het rechtstreeks in Excel opent zonder gebroken tekens.
Waarschuwing voor de handelaar
Zodra een uitverkocht product de ingestelde drempel aan inschrijvers bereikt, waarschuwt een automatische e-mail u met het aantal wachtenden en een link naar het dashboard. De e-mail vertrekt maar één keer per product, om ruis te vermijden. Dat is het signaal dat uw wachtlijst omzet in een stuurinstrument voor herbevoorrading: u geeft voorrang op basis van gemeten vraag, niet op onderbuikgevoel.
E-mails
Drie sjablonen, elk geleverd in FR/EN/ES/DE als responsieve HTML plus platte tekst:
- Bevestiging: alleen verstuurd als de double opt-in actief is, met de activatielink.
- Melding terugkeer op voorraad: product, variant, rechtstreekse link naar de fiche en uitschrijflink.
- Waarschuwing voor de handelaar: aantal wachtende inschrijvers en een link naar het dashboard.
De sjablonen zijn aan te passen in modules/dfwaitlist/mails/<iso>/.
AVG en kwaliteit van de lijst
- Double opt-in in te schakelen, met bewijs van toestemming (het IP-adres wordt bij de inschrijving vastgelegd).
- Uitschrijven met één klik in elke meldingsmail, via een uniek token dat losstaat van het bevestigingstoken. De inschrijving wordt als uitgeschreven gemarkeerd zonder te worden verwijderd, zodat de traceerbaarheid behouden blijft, en er vertrekt geen enkele e-mail meer.
- Automatisch opruimen van nooit gewaarschuwde inschrijvingen na de ingestelde termijn (standaard 90 dagen): dataminimalisatie.
- Ingebouwde honeypot tegen bots in het formulier, en een limiet van één e-mailadres per product om inschrijvingen in salvo’s te voorkomen.
- Geen enkele externe aanroep: de gegevens blijven in de PrestaShop-database, afgebakend per winkel. Er gaat niets naar DataFirefly of naar een externe dienst.
Multistore en meertaligheid
De inschrijvingstabel bevat de kolommen id_shop en id_lang. Elke subwinkel in een multistore-netwerk heeft dus zijn eigen wachtlijst, zijn eigen waarschuwingen voor de handelaar en zijn eigen KPI’s. De e-mails vertrekken in de taal die de inschrijver bij de inschrijving gebruikte.
Problemen oplossen
De knop verschijnt niet
- Controleer of het product wel degelijk onder de ingestelde voorraaddrempel zit: daarboven wordt de knop bewust verborgen.
- Controleer bij een product met varianten welke variant is geselecteerd: de knop verschijnt alleen als die variant niet beschikbaar is.
- Het thema moet de hook
displayProductActionsimplementeren. Dat is het geval bij Classic en Hummingbird; controleer bij een afwijkend custom thema of de hook in de producttemplate aanwezig is. - Leeg de PrestaShop-cache (Geavanceerde parameters → Prestaties).
De meldingen vertrekken niet bij het aanvullen van de voorraad
- Controleer of de inschrijving bevestigd is: met double opt-in ontvangt een onbevestigde inschrijving nooit een melding.
- Is de voorraad buiten de backoffice om gewijzigd (API, ERP, CLI), dan wordt de realtime hook niet geactiveerd en neemt de cron het over. Controleer of die draait en of het token in de URL actueel is.
- Test het e-mailverkeer van PrestaShop in het algemeen (Geavanceerde parameters → E-mail → Test).
Bepaalde conversies worden niet meegeteld
De koppeling vereist het e-mailadres en het product en de variant. Bestelt de klant met een ander e-mailadres dan dat van zijn inschrijving, of koopt hij een andere variant dan die waarop hij wachtte, dan wordt de conversie niet toegerekend. Dat is bewust zo, om valse positieven te vermijden die uw KPI’s zouden vertekenen.
Verwijderen
Bij het verwijderen worden de tabel df_dfwaitlist_subscriber en alle configuratiesleutels met het voorvoegsel DFWAITLIST_ gewist. Er blijft niets achter in de database. Er wordt om bevestiging gevraagd, want de inschrijvingen en de conversiestatistieken gaan definitief verloren: exporteer vooraf de CSV als u de historiek wilt bewaren.