PS PrestaShop Beginner

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.

Bijgewerkt Moduleversie 1.0.0

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.*

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.
Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support