# Meldingen fout 500, 404 en checkout PrestaShop (DataFirefly Site Alerts)

> DataFirefly Site Alerts stuurt een e-mail naar de adressen van uw keuze wanneer uw PrestaShop 8- of 9-winkel een fout 500 geeft, 404-fouten opstapelt, of wanneer een klant bij de…

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

DataFirefly Site Alerts stuurt een e-mail naar de adressen van uw keuze wanneer uw PrestaShop 8- of 9-winkel een fout 500 geeft, 404-fouten opstapelt, of wanneer een klant bij de checkout komt zonder dat er een vervoerder of betaalmethode wordt aangeboden. Deze documentatie behandelt de installatie, de instellingen, de inhoud van elke melding en het oplossen van problemen.

## Installatie

1. Open in de back-office **Modules > Modulebeheer**, klik op **Upload een module** en upload het bestand `dfsitealerts-1.0.0.zip`.
2. De module maakt een eigen tabel aan en een tabblad **Geavanceerde instellingen > Fout- en checkoutmeldingen**. De knop Configureren van de module leidt daar direct naartoe.
3. Bij de installatie wordt het e-mailadres van de winkel als ontvanger gebruikt en zijn de vier detecties actief.
4. Klik op **Test-e-mail versturen** om te controleren of de meldingen aankomen.

De module is compatibel met PrestaShop 8.0 tot 9.x en met multistore. Ze gebruikt geen Composer-afhankelijkheden. De e-mails lopen via de configuratie in **Geavanceerde instellingen > E-mail**: als e-mails daar zijn uitgeschakeld, verschijnt bovenaan de modulepagina een waarschuwing.

## Dashboard

Bovenaan de pagina staat het aantal verschillende problemen dat de afgelopen 24 uur is gedetecteerd, per type: fout 500, fout 404, geen vervoerder, geen betaalmethode, site onbereikbaar. Dezelfde URL of dezelfde fout telt één keer. Daaronder staan de huidige ontvangers, de cron-URL en de knoppen **Test-e-mail versturen**, **Geplande taak nu uitvoeren** en **Logboek legen**.

## Ontvangers

- **E-mailadressen**: één adres per regel (komma's en puntkomma's worden ook geaccepteerd). Elk adres ontvangt een eigen e-mail. Een ongeldig adres wordt bij het opslaan geweigerd.
- **Taal van de meldingen**: taal van de e-mails, los van de taal van de bezoekers. Standaard is dit de standaardtaal van de winkel.

## Wat een melding activeert

Elke detectie kan afzonderlijk worden in- of uitgeschakeld.

### Serverfouten (500)

Aan het einde van een front-officeverzoek legt de module fatale PHP-fouten, niet-afgevangen exceptions en elke pagina die met een 5xx-status antwoordt vast. De onderhoudsmodus (503) wordt genegeerd. De e-mail bevat:

- de foutmelding en de stacktrace, met het serverpad verwijderd;
- het type PHP-fout, het bestand en de regel als relatief pad;
- de URL, de herkomstpagina, de HTTP-methode, de controller en de user agent;
- het piekgeheugen en de versies van PrestaShop en PHP.

Wanneer PrestaShop een `PrestaShopException` afvangt en zijn foutpagina toont, is er geen PHP-melding beschikbaar: de module neemt dan het laatste item over uit het bestand `var/logs/JJJJMMDD_exception.log` van die dag. Identieke fouten worden gegroepeerd, waarbij variabele getallen (ID's, geheugengroottes) voor de groepering worden genegeerd.

### Pagina's niet gevonden (404)

404's worden gegroepeerd per URL-pad. Parameters die een pagina identificeren (`controller`, `id_product`…) blijven behouden, trackingparameters (`utm_*`, `gclid`, `fbclid`, `msclkid`…) worden genegeerd. Een melding wordt verstuurd volgens de instellingen in de volgende sectie.

### Checkout zonder vervoerder

De detectie wordt geactiveerd wanneer een klant de verzendstap bereikt met een afleveradres en een niet-lege, niet-virtuele winkelwagen, en er geen enkele vervoerder wordt aangeboden. Problemen worden gegroepeerd per land en per provincie/staat. De e-mail bevat:

- de winkelwagen-ID en klant-ID, het land, de provincie/staat, de postcode en de zone;
- het gewicht en het totaal van de winkelwagen, de lijst met producten en de klantgroep;
- **Actieve vervoerders voor deze zone en groep**, met voor elke vervoerder de reden waarom hij ontbreekt: buiten de gewichtsbereiken, buiten de prijsbereiken, pakketafmetingen te groot, uitgesloten door productbeperkingen of opsplitsing van pakketten, of niet teruggegeven voor deze winkelwagen (vervoerdersmodule of verzendkosten niet beschikbaar);
- **Producten beperkt tot bepaalde vervoerders**: de producten in de winkelwagen waarvoor op het tabblad Verzending vervoerders zijn geselecteerd.

Als er geen actieve vervoerder aan de zone en de groep van de klant is gekoppeld, vermeldt de melding dat direct.

### Checkout zonder betaalmethode

De detectie wordt geactiveerd wanneer een klant de betaalstap bereikt met een te betalen winkelwagen en geen enkele betaalmodule een optie aanbiedt. Een gratis winkelwagen (totaal 0) valt hier niet onder. Problemen worden gegroepeerd per land, valuta, vervoerder en groep. De e-mail bevat het land, de valuta, de gekozen vervoerder, het totaal, de klantgroep en daarna:

- **Actieve betaalmodules**: alle geïnstalleerde en ingeschakelde betaalmodules;
- **Betaalmodules toegestaan voor dit land, deze valuta, groep en vervoerder**: de modules die de beperkingen in **Betaling > Voorkeuren** voor deze klant doorlaten.

Is de tweede lijst leeg, dan ligt de oorzaak in de beperkingen. Bevat ze modules, dan zijn die modules toegestaan maar hebben ze geen optie teruggegeven: de oorzaak ligt dan in hun eigen configuratie (minimumbedrag, niet-gekoppeld account, testmodus).

## Instellingen 404

- **Meldingsdrempel**: een melding gaat uit wanneer dezelfde URL dit aantal bezoeken bereikt sinds de laatste melding. Standaard 5, 1 om al bij het eerste bezoek te melden.
- **Directe melding bij defecte interne links**: wanneer de herkomstpagina bij uw winkel hoort, gaat de melding al bij het eerste bezoek uit, ongeacht de drempel.
- **Bots negeren**: zoekmachines, SEO-crawlers, scripts en lege user agents.
- **Statische bestanden negeren**: afbeeldingen, CSS, JS, lettertypen en video's.
- **Te negeren URL's**: één pad per regel, `*` staat voor willekeurige tekens. De standaardlijst negeert gangbare scans: `/wp-*`, `/wordpress/*`, `/xmlrpc.php`, `*/.env`, `*/.git/*`, `/cgi-bin/*`, `*phpmyadmin*`, `/.well-known/*`, `/apple-touch-icon*`.

## Verzendlimieten en dagelijks overzicht

- **Wachttijd tussen twee meldingen voor hetzelfde probleem**: standaard 60 minuten. Voorvallen tijdens deze wachttijd worden geteld en vermeld in de volgende melding, op de regel “Voorvallen sinds laatste melding”.
- **Maximaal aantal meldingen per uur**: standaard 20, 0 voor geen limiet. Problemen boven de limiet blijven geregistreerd en staan in het overzicht.
- **Dagelijks overzicht**: één e-mail per dag op het gekozen tijdstip (standaard 8:00), met elk probleem dat sinds het vorige overzicht is geregistreerd, ook de problemen onder de meldingsdrempel. Het wordt niet verstuurd als er niets is gebeurd.
- **Logboek bewaren gedurende**: standaard 30 dagen, van 1 tot 365.

## Geplande taak

De meldingen voor 500, 404 en checkout worden in realtime verstuurd. De geplande taak verstuurt het dagelijks overzicht op het geplande tijdstip, verwerkt opnieuw de meldingen die niet in de database konden worden opgeslagen, schoont het logboek op en start de beschikbaarheidscontrole. Eén uitvoering per 15 minuten volstaat.

### Cron via URL

```
*/15 * * * * curl -fsS "https://uw-winkel.nl/module/dfsitealerts/cron?token=…" > /dev/null
```

De exacte URL, met token, wordt op de modulepagina getoond met een knop Kopiëren. Ze antwoordt in JSON en werkt ook in onderhoudsmodus. Een ongeldig token geeft een 403-fout.

### Cron via de opdrachtregel

```
*/15 * * * * php /pad/naar/prestashop/modules/dfsitealerts/cron.php > /dev/null
```

De opdracht verwerkt alle actieve winkels in multistore.

### Zonder cron

Na een gewoon bezoek aan de winkel start de module het onderhoud hooguit één keer per 15 minuten. Het overzicht wordt dus verstuurd na het eerste bezoek na het geplande tijdstip. De beschikbaarheidscontrole draait niet in deze modus.

## Beschikbaarheidscontrole

Sommige fouten 500 treden op voordat PrestaShop start (crash van PHP-FPM, beschadigd configuratiebestand): geen enkele module kan ze dan vastleggen. De beschikbaarheidscontrole laadt bij elke cron-run vanaf de server de URL's die in **Te testen URL's** staan (maximaal 10, de homepage als de lijst leeg is). Een 5xx-antwoord of een mislukte verbinding activeert de melding **Beschikbaarheidscontrole mislukt**, met de HTTP-code, de responstijd en de verbindingsfout. Een 503 wordt genegeerd wanneer de winkel in onderhoudsmodus staat.

Voeg een categoriepagina en een productpagina toe voor een betere dekking. Gebruik voor een volledige serveruitval, waarbij ook de cron niet draait, daarnaast een externe dienst voor beschikbaarheidsmonitoring.

## Meldingenlogboek

De lijst onderaan de pagina toont elk geregistreerd probleem: type, locatie (URL, of land / valuta / vervoerder voor de checkout), bericht of herkomstpagina, aantal voorvallen, eerst en laatst gezien, datum van de laatste melding. U kunt de lijst filteren op type en exporteren naar CSV. De knop Bekijken opent een detailweergave met dezelfde inhoud als de e-mail en de ruwe gegevens in JSON. Een item verwijderen zet de teller ervan op nul.

## Gegevens en privacy

- De checkoutmeldingen bevatten de winkelwagen-ID en klant-ID, het land, de provincie/staat, de postcode, het gewicht en de inhoud van de winkelwagen. Ze bevatten geen naam, postadres, e-mailadres of telefoonnummer.
- Het serverpad wordt uit de foutmeldingen en stacktraces verwijderd.
- Het logboek wordt opgeschoond na de gekozen bewaartermijn.
- Wanneer de database het schrijven weigert, wordt de melding bewaard in een bestand in `var/logs` (maximaal 2 MB) en bij de volgende onderhoudsronde opnieuw verwerkt.

## Bekende beperkingen

- Alleen de front-office wordt bewaakt. Fouten in de back-office activeren geen melding.
- Bij een volledige uitval van de server of PHP kan er geen e-mail worden verstuurd: gebruik een externe dienst voor beschikbaarheidsmonitoring.
- De checkoutdetecties steunen op het standaard bestelproces van PrestaShop. Met een one-page-checkoutmodule van derden hangt de vervoerdersmelding af van de aanroep van de hook `displayBeforeCarrier` en wordt de betaalmelding pas beoordeeld zodra een vervoerder is gekozen.
- Versturen na het tonen van de pagina vereist PHP-FPM of LiteSpeed. Met een andere PHP-uitvoeringsmodus wordt de e-mail verstuurd voordat het verzoek is afgerond.

## Problemen oplossen

### De test-e-mail komt niet aan

Controleer **Geavanceerde instellingen > E-mail** en verstuur vanaf die pagina een test-e-mail. Kijk ook in de spammap: voeg het afzenderadres van de winkel toe aan uw contacten.

### Ik ontvang te veel 404-meldingen

Verhoog de **Meldingsdrempel**, voeg de betreffende paden toe aan **Te negeren URL's**, of maak de ontbrekende 301-redirects aan: een doorgestuurde URL geeft geen 404 meer.

### Geen checkoutmelding terwijl een klant heeft geklaagd

Controleer of beide checkoutdetecties actief zijn en of de klant de betreffende stap echt met een adres heeft bereikt. Gebruikt u een one-page-checkoutmodule van derden, zie dan de sectie Bekende beperkingen.

### “De cron-taak is nog nooit uitgevoerd.” blijft zichtbaar

Open de cron-URL in een browser: die moet `{"ok":true,…}` teruggeven. Een antwoord `invalid token` betekent dat de URL onvolledig is gekopieerd.
