PS PrestaShop Gemiddeld

AI Competitor — Prijsmonitoring van concurrenten

Prijsmonitoring van concurrenten met AI-extractie installeren en configureren op PrestaShop 8 en 9.

Bijgewerkt Moduleversie 1.0.0

Presentatie

AI Competitor bewaakt de prijzen van uw concurrenten rechtstreeks vanuit uw PrestaShop-backoffice. Voor elk product van uw catalogus registreert u een of meer concurrent-URL’s; de module bezoekt ze met regelmatige tussenpozen, extraheert de getoonde prijs (met een AI-fallback wanneer de klassieke methoden falen), detecteert significante variaties, waarschuwt u per e-mail en stelt een aangepaste prijs voor volgens uw prijsstrategie.

Compatibel met PrestaShop 8.0 tot 9.x, PHP 7.4 tot 8.3, native multistore. Geen Composer-afhankelijkheden.

Installatie

  1. Open in uw backoffice Modules → Modulebeheer → Een module uploaden.
  2. Upload het bestand dfaicompetitor.zip.
  3. De module installeert zich en maakt automatisch haar drie tabellen aan (dfaicompetitor_url, dfaicompetitor_price, dfaicompetitor_alert), evenals het menu Catalogus → AI Competitor.

Na de installatie wordt een uniek crontoken gegenereerd. U vindt het terug op het dashboard van de module.

Initiële configuratie

Open Catalogus → AI Competitor. Het dashboard bundelt de statistieken en vier configuratieblokken.

AI-provider

De AI-fallback is optioneel maar sterk aanbevolen: hij neemt het over wanneer een concurrentensite geen gestructureerde gegevens en geen bruikbare selector aanbiedt. Drie providers worden ondersteund:

  • Mistral AI (standaard): de voordeligste, aanbevolen model: mistral-small-latest
  • Anthropic Claude: de beste precisie op complexe pagina’s, aanbevolen model: claude-haiku-4-5-20251001
  • OpenAI: goed compromis, aanbevolen model: gpt-4o-mini

Voer de API-sleutel van de gekozen provider in. Ze wordt gemaskeerd weergegeven; laat het veld leeg bij een latere opslag om de bestaande sleutel te behouden. U betaalt de provider rechtstreeks, zonder meerkosten van DataFirefly.

Waarschuwingen

  • Notificatie-e-mail: ontvanger van de waarschuwingsdigests en het weekrapport.
  • Variatiedrempel: in procenten (standaard 3%). Daaronder wordt geen waarschuwing aangemaakt.
  • Dag van het weekrapport: standaard maandag.

Scraping

  • URL’s per cronbatch: aantal verwerkte URL’s per uitvoering (standaard 20).
  • Standaardinterval: in uren, toegepast op nieuwe URL’s (standaard 24 uur).
  • HTTP-timeout en User-Agent: de meegeleverde User-Agent is identificeerbaar (DataFireflyBot); u kunt hem aanpassen.

Aanpassingsstrategie

Drie strategieën bepalen de voorgestelde prijs, altijd berekend op basis van de goedkoopste concurrent:

  • Gelijkstellen: dezelfde prijs als de laagste concurrent.
  • Undercut van X%: X% eronder (standaard: 1%).
  • Premium van X%: X% erboven, voor een bewuste premiumpositionering.

Concurrent-URL’s toevoegen

Open Catalogus → AI Competitor → Competitor URLs → Toevoegen. Elke regel koppelt een product uit uw catalogus aan een concurrentenpagina:

  • Product: geselecteerd uit uw catalogus.
  • Naam van de concurrent: vrij label (Amazon, Bol, een webwinkel…).
  • URL: het volledige adres van de concurrerende productpagina.
  • CSS-selector (optioneel): zie hieronder.
  • ISO-valuta: standaard EUR.
  • AI-extractie forceren: omzeilt de klassieke methoden voor deze URL.
  • Interval: in uren, specifiek voor deze URL.

De knop Scrape op elke regel start een directe extractie, handig om een URL direct na het aanmaken te valideren.

Hoe de extractie werkt

Voor elke URL probeert de module vier methoden in cascade en stopt bij de eerste die slaagt:

  1. JSON-LD: de gestructureerde Product/Offer-gegevens, aanwezig op de overgrote meerderheid van e-commercesites. De prijs, de valuta en de beschikbaarheid worden direct gelezen, zonder configuratie.
  2. OpenGraph: de metatags product price amount.
  3. CSS-selector: als u er een hebt opgegeven. De ingebouwde converter ondersteunt classes, id’s, attribuutselectors en child-combinators. Geldige voorbeelden: .current-price, .price-box > .amount, span[itemprop=price].
  4. AI: een opgeschoond HTML-fragment wordt naar uw provider gestuurd, die de prijs, de valuta en de voorraadstatus teruggeeft. Internationale prijsformaten worden ondersteund (1 299,90 — 1.234,56 — $49.99).

Begin altijd zonder CSS-selector: JSON-LD volstaat in de meeste gevallen. Voeg pas een selector of geforceerde AI toe als de kolom Status no_price toont.

De cron configureren

De periodieke scraping steunt op een met een token beveiligd endpoint, getoond op het dashboard. Plan de aanroep elke 30 minuten:

*/30 * * * * curl -s "https://uw-winkel.com/index.php?fc=module&module=dfaicompetitor&controller=cron&token=UW_TOKEN" > /dev/null

Bij elke uitvoering doet de cron het volgende: verwerkt de batch URL’s waarvan het interval is verstreken, verstuurt de openstaande waarschuwingsmails, verzendt het weekrapport als het de juiste dag is, en ruimt oude gegevens op (snapshots > 180 dagen, waarschuwingen > 365 dagen). Het antwoord is een samenvattende JSON.

Het token kan op elk moment opnieuw worden gegenereerd vanaf het dashboard (bestaande crons moeten dan worden bijgewerkt). Handmatig starten kan ook via de knop Run cron now.

Waarschuwingen

Er worden vijf soorten waarschuwingen gegenereerd, elk met een ernstniveau:

  • price_drop / price_rise: variatie boven de drempel. Een variatie ≥ 10% wordt critical.
  • undercut: een concurrent zakt onder uw verkoopprijs inclusief btw. Altijd critical.
  • out_of_stock / back_in_stock: beschikbaarheidsovergangen, gedetecteerd via de gestructureerde gegevens of de AI.
  • scrape_error: alleen na 3 opeenvolgende mislukkingen, om ruis van tijdelijke onbeschikbaarheid uit te sluiten.

De waarschuwingen worden gebundeld in één digest-e-mail per cronuitvoering en zijn raadpleegbaar in Reports & Alerts met leesbevestiging (“Acknowledge all”).

Weekrapport

Elke week, op de geconfigureerde dag, vat een HTML-e-mail samen: de meest ondergeprijsde producten, de sterkste prijsdalingen en -stijgingen bij concurrenten, de gezondheid van de scraping, en een door de AI geschreven managementsamenvatting die de te ondernemen acties prioriteert. Een voorbeeld van het lopende rapport is op elk moment zichtbaar in Reports & Alerts, met een knop voor directe verzending.

Prijssuggestie

Selecteer in Reports & Alerts een bewaakt product: de module toont uw huidige prijs, het min/gemiddelde/max van de concurrenten, de bronnen en de voorgestelde prijs volgens uw strategie. De knop Toepassen schrijft de prijs weg naar het PrestaShop-product.

De toepassing gebeurt nooit automatisch. Dat is een bewuste keuze om spiegelende prijsdalingsspiralen te voorkomen tussen concurrenten die hetzelfde soort tool gebruiken. De omrekening van inclusief naar exclusief btw gebeurt automatisch volgens het btw-tarief van het product.

Probleemoplossing

Status “no_price”

Geen van de methoden heeft een prijs gevonden. Controleer de URL in een browser, voeg een CSS-selector toe die naar het prijselement wijst, of activeer “AI-extractie forceren” voor deze URL.

Status “error”

De pagina antwoordde niet (HTTP ≥ 400 of timeout). Sommige sites blokkeren robots: pas de User-Agent aan in de configuratie, verhoog de timeout of vergroot het interval. Een waarschuwing wordt pas bij de 3e opeenvolgende mislukking verstuurd.

De AI-extractie werkt niet

Controleer of de API-sleutel geldig is en of het model bij uw provider bestaat. AI-aanroepfouten worden gelogd in Geavanceerde instellingen → Logs met het voorvoegsel [dfaicompetitor].

De e-mails komen niet aan

Test de e-mailconfiguratie van PrestaShop (Geavanceerde instellingen → E-mail). De module gebruikt het native mailsysteem met eigen FR/EN-templates.

Goede praktijken en conformiteit

  • Kies ruime intervallen (6 tot 24 uur per URL volstaat voor prijsmonitoring) om de servers van concurrenten niet onnodig te belasten.
  • Behoud een identificeerbare User-Agent: dat is de loyale praktijk die bij concurrentiemonitoring wordt verwacht.
  • Het lezen van publieke prijzen is in Europa doorgaans toegestaan, maar u blijft verantwoordelijk voor het gebruik van de verzamelde gegevens.
Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support