# Taal en land van de bezoeker detecteren (zonder redirect)

> Overzicht De module detecteert het land van de bezoeker (IP-adres) en de talen van zijn browser, en toont daarna een banner die dezelfde pagina voorstelt in de winkel of taal…

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

## Overzicht

De module detecteert het land van de bezoeker (IP-adres) en de talen van zijn browser, en toont daarna een banner die dezelfde pagina voorstelt in de winkel of taal die bij hem past. Ze stuurt nooit door: crawlers zien de banner niet en uw hreflang-tags blijven intact.

Compatibel met PrestaShop 8.0 tot 9.x, één winkel en multistore. De banner verschijnt alleen als er minstens twee actieve bestemmingen zijn (twee talen of twee winkels).

## Installatie

1. Klik in **Modules > Modulebeheer** op **Een module uploaden** en stuur het ZIP-bestand.
2. De module maakt automatisch één bestemming per actieve combinatie van winkel en taal.
3. Open de modulepagina met de knop **Configureren** of via het menu **Internationaal > Taal- en landsuggestie**.

In multistore installeert u de module in de context „Alle winkels” en controleert u of ze in elke bestemmingswinkel actief is. Een label „Module niet geactiveerd in deze winkel” waarschuwt u in het tabblad Bestemmingen.

## Landdetectie inschakelen

Het land wordt in deze volgorde gelezen:

- uit de header van uw CDN (Cloudflare, CloudFront, Vercel);
- uit een MaxMind GeoLite2-bestand als u er een hebt (instelbaar pad);
- uit de ingebouwde, gratis database uit het publieke domein.

Klik op **Database installeren** in het dashboard of in **Regels en detectie** om de ingebouwde database te installeren. Het bestand (ongeveer 8 MB, IPv4 en IPv6) wordt gedownload naar `var/dflocalesuggest/` en lokaal gelezen: geen IP-adres van bezoekers wordt naar derden gestuurd. De status toont de datum en raadt na 45 dagen een update aan.

Blokkeert uw hostingprovider uitgaande verbindingen, dan mislukt de download met een duidelijke melding. Plaats dan een .mmdb-bestand op de server en vul het pad in onder **Regels en detectie**.

## Bestemmingen

Elke rij is een combinatie van winkel en taal die de banner kan voorstellen.

- **Label**: vervangt de winkelnaam in de banner (bijvoorbeeld „België”).
- **Landen**: ISO-codes gescheiden door komma's (NL, BE). Leeg betekent elk land. Een andere winkel die beperkt is tot andere landen wordt nooit voorgesteld aan een bezoeker van wie het land bekend is.
- **Browsertalen**: codes zoals nl, nl-be, en-gb.
- **Volgorde**: sleep de rijen om te beslissen tussen twee bestemmingen met dezelfde score.

**Ontbrekende combinaties toevoegen** maakt rijen voor nieuwe winkels of talen zonder bestaande rijen te wijzigen. Is de module DataFirefly Hreflang geïnstalleerd, dan neemt **Importeren uit DataFirefly Hreflang** uw codes over (nl-BE geeft de taal nl en het land BE).

## Weergave

Kies een thema, de vier kleuren, de hoekafronding, de tekstgrootte en het matglaseffect. De plaatsing stelt u apart in voor computer (balk boven of onder, kaart links of rechts) en mobiel (zwevende kaart, balk). Het live voorbeeld rechts toont het resultaat op computer en mobiel vóór het opslaan.

- **Compacte herinnering**: als de bezoeker de banner negeert en verder surft, tonen de volgende pagina's alleen een klein label.
- **Weergavevertraging**: de banner verschijnt na het laden van de pagina plus deze vertraging.
- **Na weigering verbergen**: hoe lang een bezoeker die op „Hier blijven” klikte met rust wordt gelaten.

## Teksten

De banner is geschreven in de voorgestelde taal: een Duitse bezoeker leest hem in het Duits op een Nederlandse winkel. Elke taal heeft eigen teksten met variabelen die u met één klik invoegt: `{language}`, `{country}`, `{store}`, `{currency}`. Een leeg veld gebruikt de ingebouwde tekst.

## Regels en detectie

- **Als land en taal niet overeenkomen**: het land gaat voor (winkel die naar de bezoeker levert) of de taal gaat voor.
- **Meertalige bezoekers respecteren**: geen taalsuggestie als de huidige taal bij de browsertalen staat.
- **Verbergen voor ingelogde klanten**.
- **Pagina's zonder banner**: uitgesloten controllers, standaard winkelwagen en afrekenproces. Jokertekens zijn toegestaan (module-mijnmodule-*).
- **Wachten tot de cookiebanner gesloten is**: de bekende consentbeheerders worden herkend en de lijst met CSS-selectors is aanpasbaar.

## Testen vóór livegang

Het tabblad **Simulator** toont voor een land en bepaalde browsertalen of de banner verschijnt, met tekst, link en de score van elke bestemming. Om de echte banner in de winkel te zien, voegt u uw IP toe onder **Test-IP-adressen** en opent u een pagina met `?dfls_country=DE&dfls_lang=de`. De link „Bekijk in de winkel” in de simulator doet dat voor u.

## Statistieken

Het dashboard toont getoonde banners (één keer per bezoek), klikken, weigeringen, klikratio, dagelijkse activiteit en ranglijsten per bestemming en per land over 7, 30, 90 dagen of een jaar. **CSV exporteren** downloadt één rij per dag, herkomstwinkel, bestemming en land. De tellers zijn samengevoegd: er wordt geen IP, cookie of klant-ID opgeslagen.

## Gedrag voor de bezoeker

- Een bezoeker die op de suggestie klikt of zelf van winkel of taal wisselt, krijgt op de gekozen bestemming geen suggesties meer.
- De banner wordt nooit aan crawlers getoond (Googlebot, Bingbot, Lighthouse) en draagt `data-nosnippet`.
- De HTML van de pagina's is voor iedereen gelijk: de module werkt met LiteSpeed Cache, Varnish en CDN's.

## Voor ontwikkelaars

DOM-events op `document`: `dfls:shown`, `dfls:accept`, `dfls:dismiss`. Met de optie ingeschakeld worden de events `dfls_shown`, `dfls_accept` en `dfls_dismiss` naar de `dataLayer` voor Google Tag Manager gestuurd. De PHP-hook `actionDflocalesuggestResponse` ontvangt het antwoord per referentie om tekst, link of bestemming aan te passen.

## Problemen oplossen

### De banner verschijnt niet

Controleer of de banner actief is, of er minstens twee geldige bestemmingen zijn, of de pagina niet uitgesloten is en of u in deze browser niet al een suggestie hebt geweigerd of geaccepteerd (wis de lokale opslag van de site). De simulator toont waarom een bestemming wordt overgeslagen.

### Het land staat als „Onbekend” in de back-office

Dat is normaal als u test vanaf een lokaal of privé-IP. Gebruik de simulator of de testparameters.
