Onderhoudsmodus & Coming Soon: volledige gids
De onderhouds- of coming-soonpagina installeren en instellen: aftelklok, testertoegang via IP en token, zachte lancering per land, e-mailadressen verzamelen en SEO-instellingen.
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
- Open in de backoffice Modules > Modulebeheer > Een module installeren.
- Upload het archief
dfmaintenancepro.zipen klik op Installeren. - 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=XXXXom 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 headerRetry-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/24of2001: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:
- Schakel Zachte lancering in.
- Vul de toegelaten ISO 3166-1 alpha-2-landcodes in, gescheiden door komma’s:
NL,BE,LU,DE. - Kies wat er gebeurt bij een onbepaald land: de onderhoudspagina tonen (de voorzichtige standaard) of toch binnenlaten.
Het land wordt in deze volgorde bepaald:
- De geolocatieheaders van het CDN:
CF-IPCountry(Cloudflare),CloudFront-Viewer-Country(AWS),X-Vercel-IP-CountryenX-Geoip-Country(nginx). - 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-Afterwordt 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:
- Een medewerker die in de backoffice is ingelogd (de cookie
psAdmin). - Een geldige parameter
dfmp_tokenin de URL (die de toegangscookie plaatst). - Een ondertekende toegangscookie die nog geldig is.
- Een IP-adres dat op de witte lijst staat.
- 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:MMheeft en in de toekomst ligt. - Verwijderen: dat wist de tabel met de inschrijvingen. Exporteer vooraf de CSV als u de adressen wilt bewaren.