# Onderhoudsmodus & Coming Soon: volledige gids

> Onderhoudsmodus & Coming Soon (dfmaintenancepro) toont niet-toegelaten bezoekers een vormgegeven wachtpagina, met een aftelklok, het verzamelen van e-mailadressen, testertoegang via IP of token en een zachte lancering per land, zonder…

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

Onderhoudsmodus & Coming Soon (`dfmaintenancepro`) toont niet-toegelaten bezoekers een vormgegeven wachtpagina, met een aftelklok, het verzamelen van e-mailadressen, testertoegang via IP of token en een zachte lancering per land, zonder ooit de native onderhoudsmodus van PrestaShop in te schakelen. De winkel blijft technisch online: de backoffice, de betaalwebhooks en de geplande taken blijven gewoon werken.

## Installatie

1. Open in de backoffice **Modules > Modulebeheer > Een module installeren**.
2. Upload het archief `dfmaintenancepro.zip` en klik op **Installeren**.
3. Klik op **Configureren** om het paneel van de module te openen.

De installatie maakt de tabel `dfmp_subscriber` aan (de verzamelde e-mailadressen), registreert het verborgen tabblad « Subscribers » en maakt automatisch een uniek toegangstoken aan. Er wordt geen enkele override geïnstalleerd: de module steunt alleen op de hook `actionDispatcherBefore`.

De module staat na de installatie standaard uit: stel uw pagina rustig in, bekijk een voorbeeld, en schakel die pas in op het gewenste moment.

## Informatiepaneel

Boven aan de configuratiepagina vat een paneel het belangrijkste samen:

- **Status**: een groene badge « ACTIEF » wanneer de pagina aan de bezoekers wordt getoond, en anders een neutrale badge.
- **Test-URL**: de link `https://uwwinkel.nl/?dfmp_token=XXXX` om te delen, die een toegangscookie in de browser van de tester zet.
- **Het token opnieuw genereren**: maakt alle al verleende toegangscookies meteen ongeldig.
- **Voorbeeld bekijken**: toont de onderhoudspagina, ook als de module uitstaat (met de parameter `dfmp_preview`).
- **Verzamelde e-mailadressen**: rechtstreekse toegang tot de lijst met inschrijvingen en hun aantal.

## Algemene configuratie

- **De onderhoudspagina inschakelen**: de hoofdschakelaar. Zodra die aanstaat, zien alle niet-toegelaten bezoekers de wachtpagina.
- **Modus**: « Coming soon (vóór de lancering) » of « Onderhoud (tijdelijk niet beschikbaar) ». Die keuze wijzigt alleen de badge op de pagina; het SEO-gedrag stelt u in het SEO-onderdeel in.
- **Lanceringsdatum**: in de vorm `JJJJ-MM-DD UU:MM`, in de tijdzone van de server. Zij voedt de aftelklok en de header `Retry-After`.
- **De aftelklok tonen**: de teller met dagen, uren, minuten en seconden verdwijnt vanzelf zodra de datum is bereikt.

## Testtoegang (IP en token)

### IP-witte lijst

Eén item per regel (of gescheiden door komma's). Er zijn drie formaten toegelaten:

- Exacte IPv4- of IPv6-adressen: `82.64.12.7`
- CIDR-reeksen: `192.168.1.0/24` of `2001:db8::/32`
- IPv4-jokertekens: `192.168.1.*`

### Testlink met token

Deel de URL uit het informatiepaneel. Bij het openen komt er een met HMAC SHA-256 ondertekende cookie in de browser van de tester, voor de ingestelde duur (standaard 72 uur): daarna surft hij door de echte winkel alsof er niets aan de hand is. Het veld **Duur van de toegangscookie** bepaalt die geldigheid.

Is er een link uitgelekt? Klik op « Het token opnieuw genereren »: het token verandert en alle al geplaatste cookies worden meteen ongeldig.

### Betaalwebhooks

Met de optie **De frontcontrollers van de modules toelaten** (standaard aan) komen alle verzoeken met `fc=module` door: de IPN's en betaalcallbacks (PayPal, Stripe en dergelijke) worden nooit geblokkeerd, ook niet middenin het onderhoud.

Medewerkers die in de backoffice zijn ingelogd, zien altijd de echte winkel, zonder enige instelling: de beheersessie volstaat.

## Zachte lancering per land

Die modus maakt van de wachtpagina een instrument voor een geleidelijke lancering:

1. Schakel **Zachte lancering** in.
2. Vul de toegelaten **ISO 3166-1 alpha-2-landcodes** in, gescheiden door komma's: `NL,BE,LU,DE`.
3. Kies wat er gebeurt bij een **onbepaald land**: de onderhoudspagina tonen (de voorzichtige standaard) of toch binnenlaten.

Het land wordt in deze volgorde bepaald:

1. De geolocatieheaders van het CDN: `CF-IPCountry` (Cloudflare), `CloudFront-Viewer-Country` (AWS), `X-Vercel-IP-Country` en `X-Geoip-Country` (nginx).
2. De GeoLite2-database van PrestaShop, als de geolocatie is ingesteld via **Internationale parameters > Geolocatie**.

Zonder CDN en zonder GeoLite2-database valt het land niet te bepalen: alle bezoekers vallen dan onder de regel « onbepaald land ». Controleer uw configuratie vóór u een zachte lancering in productie inschakelt.

## Inhoud en vormgeving

- **Titel, ondertitel en bericht**: per taal te vertalen via de vlaggen; het bericht aanvaardt eenvoudige HTML.
- **Logo**: de absolute URL van een afbeelding (PNG of SVG is aan te raden). Laat u dat leeg, dan verschijnt de naam van de winkel als tekst.
- **Kleuren**: achtergrond, accent (de aftelklok, de knop en de badge) en tekst, via de kleurkiezers.
- **Sociale netwerken**: Facebook, Instagram, X, LinkedIn en YouTube. Vul alleen in wat u wilt tonen; de SVG-pictogrammen zitten ingebouwd.
- **Eigen CSS**: wordt achteraan de stijlen ingevoegd om alles fijn bij te stellen.

De aangemaakte pagina staat volledig op zichzelf: CSS en JavaScript zitten inline, er is geen enkel extern lettertype of script, en er vertrekt geen enkel extern verzoek. Zij respecteert `prefers-reduced-motion` en past zich aan mobiel aan.

Gebruik bij elke aanpassing de knop « De onderhoudspagina bekijken »: die werkt ook met de module uit, zodat u zonder risico kunt ontwerpen vóór u die inschakelt.

## E-mailadressen verzamelen

- **Het verzamelen inschakelen**: toont het formulier onder de aftelklok.
- **Tijdelijke aanduiding, opschrift van de knop, succesbericht en AVG-vermelding**: alle per taal te vertalen.

Het formulier werkt via AJAX met een onzichtbaar honeypotveld dat bots tegenhoudt. Elke inschrijving legt het e-mailadres, de taal, het herkende land, het IP-adres en de datum vast, met uniciteit per adres en per winkel.

### Lijst met inschrijvingen en CSV-export

Open via het informatiepaneel **Verzamelde e-mailadressen**: de lijst is per kolom te filteren, te sorteren, in bulk op te schonen en met de knop **CSV-export** te exporteren, klaar om op de dag van de lancering in uw e-mailtool te importeren.

## SEO

- **HTTP-code 503** (aanbevolen): meldt Google dat het om een tijdelijke onbeschikbaarheid gaat. De header `Retry-After` wordt berekend op de tijd tot de lanceringsdatum (met een plafond van 7 dagen); is er geen datum in de toekomst, dan geldt de waarde van het veld **Retry-After**.
- **HTTP-code 200**: voor een blijvende, indexeerbare coming-soonpagina.

In alle gevallen stuurt de pagina een tag `noindex, nofollow` en `no-cache`-headers mee: uw catalogus blijft geïndexeerd, de wachtpagina niet.

## Technische werking

Bij elk verzoek aan de frontzijde beoordeelt de module de toelatingen in deze volgorde en laat hij door bij het eerste succes:

1. Een medewerker die in de backoffice is ingelogd (de cookie `psAdmin`).
2. Een geldige parameter `dfmp_token` in de URL (die de toegangscookie plaatst).
3. Een ondertekende toegangscookie die nog geldig is.
4. Een IP-adres dat op de witte lijst staat.
5. Een toegelaten land, als de zachte lancering aanstaat.

Anders verschijnt de onderhoudspagina en stopt de uitvoering vóór de frontcontroller. In multistore zijn de configuratie en de lijst met inschrijvingen eigen aan elke winkel.

## Problemen oplossen

- **Ik zie nog altijd de winkel terwijl de module aanstaat**: waarschijnlijk bent u in dezelfde browser in de backoffice ingelogd, of is er nog een geldige toegangscookie. Test in een privévenster.
- **Een tester ziet de onderhoudspagina ondanks de tokenlink**: mogelijk is het token na het versturen van de link opnieuw gegenereerd; stuur de URL uit het informatiepaneel opnieuw door.
- **De zachte lancering blokkeert iedereen**: er is geen CDN-header en geen GeoLite2-database beschikbaar, dus het land blijft onbepaald en de standaardregel blokkeert. Zet « Onbekend land » op « Toelaten » of stel de geolocatie in.
- **De aftelklok verschijnt niet**: controleer of de lanceringsdatum de vorm `JJJJ-MM-DD UU:MM` heeft en in de toekomst ligt.
- **Verwijderen**: dat wist de tabel met de inschrijvingen. Exporteer vooraf de CSV als u de adressen wilt bewaren.
