# DF Recently Viewed: recent bekeken producten (PrestaShop 8/9)

> Overzicht DF Recently Viewed (dfrecentlyviewed) toont de producten die uw bezoekers onlangs hebben bekeken, maar met een architectuur die op conversie is gericht: de geschiedenis wordt aan serverzijde bewaard, bij…

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

## Overzicht

DF Recently Viewed (`dfrecentlyviewed`) toont de producten die uw bezoekers onlangs hebben bekeken, maar met een architectuur die op conversie is gericht: de geschiedenis wordt aan serverzijde bewaard, bij het inloggen in het klantaccount samengevoegd, via AJAX opgebouwd zodat zij achter een paginacache juist blijft, en verrijkt met badges bij een prijsdaling. Een analytisch dashboard vult het geheel aan met een conversiepercentage van bekijken naar kopen.

### Vereisten

- PrestaShop 8.0 tot 9.x
- PHP 7.4 tot 8.3
- Geen enkele externe afhankelijkheid (geen Composer, geen jQuery, geen carrouselbibliotheek)

## Installatie

1. Open in de backoffice **Modules > Modulebeheer**.
2. Klik op **Een module installeren** en plaats het bestand `dfrecentlyviewed.zip`.
3. Klik op **Installeren**. De module maakt zijn tabel aan, registreert zijn hooks en voegt een tabblad **Catalogus > Statistieken bekeken producten** toe.
4. Klik op **Configureren** om bij de instellingen te komen.

De module werkt meteen na de installatie met zinnige standaardinstellingen: 8 producten, carrousel, AJAX-weergave, badges bij prijsdaling ingeschakeld en een bewaartermijn van 90 dagen.

## Configuratie

### Tabblad Weergave

- **Titel van het blok**: vertaalbaar in elk van uw talen.
- **Aantal producten**: van 1 tot 24 producten in het blok.
- **Carrouselopmaak**: aan geeft een horizontale carrousel met navigatiepijlen. Uit geeft een responsief raster.
- **Op de productfiches tonen**: hook `displayFooterProduct`.
- **Op de startpagina tonen**: hook `displayHome`.
- **Op de winkelwagenpagina tonen**: hook `displayShoppingCartFooter`.
- **De link « mijn geschiedenis wissen » tonen**: aanbevolen voor AVG-transparantie.

### Tabblad Slim gedrag

- **Het huidige product uitsluiten**: voorkomt dat de fiche die al op het scherm staat wordt aanbevolen.
- **Uitverkochte producten verbergen**: het filter houdt rekening met toegestane voorbestellingen.
- **Producten verbergen die al in de winkelwagen zitten**: de winkelwagen wordt aan serverzijde herberekend, nooit vanuit de pagina in cache.
- **Badges bij prijsdaling**: toont een badge « -X % » wanneer de prijs is gedaald sinds de vorige raadpleging door de bezoeker.
- **AJAX-weergave (cachebestendig)**: sterk aanbevolen, zie het aparte onderdeel hieronder.
- **Bewaartermijn van de geschiedenis (dagen)**: van 1 tot 730 dagen. Oudere weergaven worden automatisch opgeruimd.

## Samenwerking met een full-pagecache

Op een winkel met Varnish, Cloudflare, LiteSpeed Cache of een CDN wordt een gepersonaliseerd blok dat aan serverzijde is opgebouwd samen met de pagina in cache gezet: de volgende bezoeker ziet dan de geschiedenis van iemand anders, of een leeg blok.

De modus **AJAX-weergave**, die standaard aanstaat, lost dat op: het blok wordt na het opbouwen van de pagina geïnjecteerd, via een verzoek aan de frontcontroller van de module. Het vastleggen van de productweergave vertrekt als een niet-blokkerende _beacon_, die ook werkt wanneer de pagina uit de cache komt.

Schakel de AJAX-modus alleen uit als uw winkel geen enkele paginacache gebruikt. Anders toont het blok verkeerde gegevens.

## Badges bij prijsdaling

Bij elke raadpleging van een productfiche legt de module de op dat moment getoonde prijs inclusief btw vast, voor die specifieke bezoeker. Bij het tonen van het blok vergelijkt hij die bewaarde prijs met de huidige prijs:

- Is de prijs met minstens 1 % gedaald, dan verschijnt linksboven op de miniatuur een rode badge « ↓ -X % ».
- De bewaarde prijs wordt bij elke nieuwe raadpleging bijgewerkt: de badge betekent dus altijd « de prijs is gedaald sinds uw vorige bezoek aan deze fiche ».
- Stijgt de prijs weer, dan verdwijnt de badge.

## Geschiedenis over meerdere apparaten

De weergaven worden vastgelegd met de gastidentificatie (`id_guest`) voor anonieme bezoekers, en met de klantidentificatie (`id_customer`) voor ingelogde bezoekers.

Bij het inloggen (hook `actionAuthentication`) wordt de gastgeschiedenis in het klantaccount samengevoegd: de weergavetellers worden opgeteld en de meest recente raadplegingsdatum blijft behouden. Zo vindt de klant zijn bekeken producten op al zijn apparaten terug.

## Pagina « Mijn browsegeschiedenis »

De module voegt een tegel toe in de klantenzone (hook `displayCustomerAccount`) die naar een eigen pagina leidt met maximaal 48 bekeken producten en een wisknop als die optie aanstaat.

URL van de pagina: `/module/dfrecentlyviewed/history` (herschreven volgens uw URL-configuratie).

## Widget

Het blok kunt u vanuit elke template van uw thema aanroepen:

```
{widget name='dfrecentlyviewed'}
{widget name='dfrecentlyviewed' limit=6}
```

De parameter `limit` is optioneel en begrensd op 24; zonder die parameter geldt het aantal dat in de backoffice is ingesteld.

## Analytisch dashboard

Ga naar **Catalogus > Statistieken bekeken producten**. Daar vindt u, over een periode van 7, 30, 90 of 365 dagen:

- **Productweergaven**: het totale aantal vastgelegde raadplegingen.
- **Verschillende bekeken producten**: de werkelijke breedte van de catalogusontdekking.
- **Unieke bezoekers**: gasten en klanten samen.
- **Conversie van bekijken naar kopen**: het percentage koppels klant/product die na de raadpleging tot een geldige bestelling hebben geleid. Wordt alleen op ingelogde klanten berekend.
- **Meest bekeken producten**: een rangschikking met een rechtstreekse link naar de productfiche in de backoffice.

## AVG en bewaartermijn

### Hooks van psgdpr

De module implementeert `actionExportGDPRData` en `actionDeleteGDPRCustomer`: is de officiële module psgdpr geïnstalleerd, dan wordt de browsegeschiedenis meegenomen in de exports en de verwijderingen van persoonsgegevens die uw klanten aanvragen.

### Zelf wissen

Staat de optie aan, dan verschijnt naast de titel van het blok en op de geschiedenispagina een link « Mijn geschiedenis wissen ». De bezoeker kan zijn gegevens zelf verwijderen, met bevestiging.

### Automatisch opruimen

Weergaven die ouder zijn dan de ingestelde bewaartermijn worden automatisch opgeruimd, op opportunistische wijze (bij ongeveer 1 % van de vastgelegde weergaven). Daarvoor is geen configuratie nodig.

### Optionele CRON

Voor winkels met veel verkeer staat op de configuratiepagina een met een token beveiligde opruim-URL. U kunt die dagelijks aanroepen:

```
0 4 * * * curl -s "https://uw-winkel.nl/module/dfrecentlyviewed/tracking?action=cleanup&token=UW_TOKEN"
```

## Integratie in het thema

De producten worden getoond met de native miniatuur van uw thema (`catalog/_partials/miniatures/product.tpl`). Het blok neemt dus automatisch het ontwerp van uw lijsten over: afbeelding, naam, prijs, promobadges en een snelle toevoegknop als uw thema die aanbiedt.

Wilt u de container aanpassen, overschrijf dan de templates van de module vanuit uw thema:

```
themes/uw-thema/modules/dfrecentlyviewed/views/templates/hook/recentlyviewed.tpl
themes/uw-thema/modules/dfrecentlyviewed/views/templates/hook/_products.tpl
```

## Multistore

De geschiedenissen zijn per winkel afgeschermd: een bezoeker die een product op winkel A bekijkt, ziet dat niet opduiken op winkel B. Alle instellingen worden via de Configuration-tabel van PrestaShop bewaard, met native multistore-ondersteuning.

## Verwijderen

Bij het verwijderen worden de geschiedenistabel, alle instellingen en het statistiektabblad gewist. Er wordt vooraf om bevestiging gevraagd.

## Problemen oplossen

### Het blok verschijnt niet

- Controleer of de hook van de betrokken pagina in de configuratie is ingeschakeld (productfiche, startpagina, winkelwagen).
- Het blok verschijnt alleen als de bezoeker minstens één in aanmerking komend product heeft bekeken. Een bezoeker die voor het eerst op de winkel komt, ziet niets.
- Staan het uitsluiten van het huidige product en het uitsluiten van de winkelwagen allebei aan, dan blijft er mogelijk geen enkel product over om te tonen.

### Het blok blijft leeg op een pagina uit de cache

Zorg dat de modus **AJAX-weergave** aanstaat. Controleer ook of uw cacheconfiguratie de verzoeken naar `/module/dfrecentlyviewed/tracking` niet onderschept.

### De badges bij prijsdaling verschijnen nooit

De badge kan alleen verschijnen als de bezoeker het product _vóór_ de prijsdaling heeft bekeken. Geef bezoekers na een prijswijziging de tijd om terug te komen. Controleer ook of de optie wel aanstaat.
