DataFirefly Social Connect: volledige gids
Sociaal aanmelden met Google, Apple en Facebook installeren en configureren: OAuth, analytisch dashboard, welkomstbon, ondertekende CRM-webhook, AVG.
Overzicht
DataFirefly Social Connect voegt aan PrestaShop 8 en 9 drie knoppen voor sociaal aanmelden toe (Google, Apple, Facebook), gekoppeld aan een volledig analytisch dashboard. De module doet meer dan alleen authenticeren: hij meet de conversie, genereert automatisch welkomstbonnen, voedt uw CRM via een ondertekende webhook en blijft 100% AVG-conform.
Het doel is dubbel: de inschrijffrictie wegnemen (één klik in plaats van een formulier) en de daadwerkelijke impact meten op uw business (klikken, conversies, omzet gegenereerd door de sociale klanten).
Installatie
- Download het archief
dfsocialconnect.zipvanuit uw klantaccount op datafirefly.com. - Ga in de PrestaShop-backoffice naar Modules > Modulebeheer > Een module installeren en upload de ZIP.
- Klik op Installeren. De module maakt 5 tabellen aan (
ps_dfsc_identity,ps_dfsc_log,ps_dfsc_stats_daily,ps_dfsc_button_click,ps_dfsc_consent) en een verborgen BO-tabbladAdminDfSocialConnect. - Klik op Configureren. U komt op het lege dashboard; de eerste gegevens verschijnen zodra een gebruiker op een sociale knop klikt.
De module is compatibel met PrestaShop 8.0.0 tot 9.99.99 en PHP 7.4 tot 8.3. Er is geen enkele externe Composer-afhankelijkheid nodig: een minimale PSR-4-autoloader is inbegrepen.
Configuratie van de providers
Elke provider vereist OAuth-inloggegevens uit zijn ontwikkelaarsconsole. De module toont de exacte callback-URL om in elke console te plakken; dit is de belangrijkste stap: de kleinste typefout veroorzaakt een fout redirect_uri_mismatch.
Google OAuth2 / OpenID Connect
- Ga naar https://console.cloud.google.com/apis/credentials.
- Maak of selecteer een project en klik daarna op Inloggegevens maken > OAuth 2.0-client-ID.
- Applicatietype: Webapplicatie.
- Plak in Geautoriseerde omleidings-URI’s de URL die in het tabblad “Providers” van de moduleconfiguratie wordt getoond (vorm:
https://uw-winkel.com/module/dfsocialconnect/callback?provider=google). - Haal de Client ID en het Client Secret op en plak ze in de module.
- Activeer de schakelaar “Google ingeschakeld”.
Apple Sign In
- Ga naar https://developer.apple.com/account/resources/identifiers/list (betaald Apple-ontwikkelaarsaccount vereist).
- Maak een Services ID aan (en geen App ID). Noteer de identifier: dat is uw Client ID.
- Activeer Sign In with Apple op deze Services ID, configureer het domein van uw winkel en plak de door de module getoonde callback-URL (provider=apple) als Return URL.
- Maak in Keys een nieuwe sleutel aan met Sign In with Apple geactiveerd. Download het
.p8-bestand; u kunt het daarna nooit meer ophalen. - Haal uw Team ID op (rechtsboven in de Apple-console), uw Key ID (de identifier van de in stap 4 aangemaakte sleutel) en de volledige inhoud van het .p8-bestand (met de regels BEGIN PRIVATE KEY en END PRIVATE KEY).
- Plak de 4 velden in de configuratie van de module (Services ID, Team ID, Key ID, .p8-inhoud).
- Activeer de schakelaar “Apple ingeschakeld”.
De module ondertekent de client_secret-JWT in ES256 on the fly en genereert die automatisch elke 5 maanden opnieuw (de door Apple toegestane maximale geldigheid is 6 maanden). U hoeft geen enkele handmatige rotatie te beheren.
Facebook Login
- Ga naar https://developers.facebook.com/apps.
- Maak een nieuwe app van het type Consumenten aan.
- Voeg in de sectie Add products Facebook Login toe.
- Plak onder Facebook Login > Settings de door de module getoonde callback-URL (provider=facebook) in Valid OAuth Redirect URIs.
- Haal de App ID en het App Secret op onder Settings > Basic en plak ze in de module.
- Activeer de schakelaar “Facebook ingeschakeld”.
De module gebruikt de Graph API v19.0 en activeert automatisch appsecret_proof, dat het herafspelen van een gestolen access token verhindert door een HMAC-handtekening van het app-secret te vereisen.
Tabblad Gedrag
Dit tabblad stuurt wat er gebeurt zodra de sociale aanmelding is geslaagd.
- Auto-link op geverifieerde e-mail: is het door de provider teruggegeven e-mailadres als geverifieerd gemarkeerd en komt het overeen met een bestaand klantaccount, dan koppelt de module de provider automatisch aan dat account in plaats van een nieuw aan te maken. Aanbevolen: AAN.
- Avatar importeren: downloadt de profielfoto naar
/img/dfsc/avatars/<id_customer>.<ext>(limiet 2 MB, MIME-whitelist JPEG/PNG/WebP). Overleeft het verlopen van de provider-CDN’s. - Welkomstbon: voor elk nieuw account dat via een sociale aanmelding wordt aangemaakt, maakt de module een PrestaShop-CartRule voor eenmalig gebruik aan op naam van de klant. Configureer het voorvoegsel (standaard
WELCOME), het bedrag en de geldigheidsduur. - Klantengroep per provider: wijs elk provider (Google / Apple / Facebook) een PrestaShop-groeps-ID toe. Nuttig om uw marketingcampagnes per herkomst te segmenteren.
- Nieuwsbrief-opt-in standaard: indien ingeschakeld wordt de aangemaakte klant als nieuwsbriefabonnee gemarkeerd (alleen activeren als uw proces een AVG-conforme dubbele opt-in omvat).
- Rate limiting: maximum aantal pogingen per IP in een venster van 15 minuten. Standaard: 30 pogingen. Daarboven krijgt de gebruiker een melding “Te veel pogingen”.
- Bewaartermijn van de logs: aantal dagen dat de ruwe logs worden bewaard (
ps_dfsc_logenps_dfsc_button_click). De dagelijkse rollup (ps_dfsc_stats_daily) wordt onbeperkt bewaard en voedt het dashboard.
Tabblad Uiterlijk
Kies de visuele weergave van de knoppen:
- Stijl: 5 varianten: rounded (standaard, hoeken 8 px), pill (volledig afgerond), square (hoekig), ghost (transparant met rand), minimal (compact).
- Labelmodus: 3 modi: Doorgaan met X (standaard, neutraal), Aanmelden met X (inlogpagina), Inschrijven met X (registratiepagina).
- Tonen op de inlogpagina en Tonen op de registratiepagina: onafhankelijke schakelaars.
- Widget Mijn account: toont in de klantomgeving een zone “Verbonden accounts” waarmee elk provider op elk moment gekoppeld of ontkoppeld kan worden (AVG-vereiste).
Analytisch dashboard
Het eerste tabblad van de configuratie aggregeert de statistieken over standaard 30 glijdende dagen (instelbaar).
- 4 KPI-kaarten: geslaagde aanmeldingen, klikken op de knoppen, nieuwe aangemaakte klanten, mislukkingen.
- Tijdcurve: geslaagde aanmeldingen per dag, gesegmenteerd per provider (Google blauw, Apple zwart, Facebook Meta-blauw).
- Verdeling per provider: Chart.js-doughnut met het percentage van elk provider.
- Conversiepercentage per provider: klik versus geslaagde aanmelding. Laat toe een slecht geconfigureerd provider te herkennen (abnormaal laag percentage).
- Breakdown apparaat en browser: geaggregeerde bar chart over het venster.
- Heatmap dag × uur: raster 7 × 24 in 7 blauwtinten. Herken de gebruikspieken om uw campagnes bij te sturen.
- Sociale penetratie: percentage van uw klantenbestand dat minstens één gekoppeld provider heeft.
- Omzet gegenereerd door de sociale klanten: som van de betaalde bestellingen van klanten die via een sociale aanmelding zijn aangemaakt, berekend via SQL-JOIN op
ps_orders.
CRM-webhook
Bij elke geslaagde aanmelding of accountkoppeling kan de module een HTTP POST-request naar een URL van uw keuze sturen, in fire-and-forget-modus (de antwoordtijd van uw endpoint beïnvloedt de aanmeldtijd van de gebruiker niet).
- Webhook-URL: HTTPS-endpoint aanbevolen. Make, n8n, Zapier of uw interne stack.
- Gedeeld secret: gebruikt om de payload in HMAC-SHA256 te ondertekenen. De handtekening wordt verzonden in de header
X-Dfsc-Signature. Herbereken aan ontvangerszijde de HMAC op de ruwe body om de authenticiteit te valideren.
Typische verzonden payload:
{
"event": "social_login_success",
"provider": "google",
"id_customer": 1234,
"email": "marie.dupont@example.com",
"is_new_account": true,
"ip": "203.0.113.42",
"timestamp": 1748378400
}
AVG en toestemming
De module is ontworpen om de AVG by design te respecteren:
- Bij elke sociale aanmelding wordt een regel ingevoegd in
ps_dfsc_consentmet tijdstempel, IP, user agent en provider: dat is uw auditspoor. - De widget “Verbonden accounts” in Mijn account laat de klant op elk moment een provider ontkoppelen.
- De de-installatie van de module verwijdert netjes de 5 tabellen en alle configuratiesleutels. De klantaccounts blijven intact.
- Geen enkel OAuth-secret wordt ooit in klare tekst doorgegeven: alle uitwisselingen verlopen via HTTPS en de Apple-JWT wordt lokaal met uw .p8-sleutel ondertekend.
De-installatie
De-installeer de module vanuit Modules > Modulebeheer. Het proces:
- Verwijdert de 5
ps_dfsc_*-tabellen. - Verwijdert het BO-tabblad
AdminDfSocialConnect. - Verwijdert alle
DFSC_*-configuratiesleutels. - De sociale koppelingen van de klanten worden verwijderd, maar de klantaccounts en hun bestellingen blijven intact. De gecachte avatars in
/img/dfsc/avatars/worden verwijderd.
Probleemoplossing
Fout “redirect_uri_mismatch” (Google): de in de Google-console geplakte URL komt niet exact overeen met die welke de module toont. Controleer het schema (https), het domein (met of zonder www) en het volledige pad. Geen enkel eindteken (slash, spatie).
Fout “invalid_client” (Apple): uw client_secret-JWT is ongeldig. Frequente oorzaken: onjuiste Team ID of Key ID, afgekapte .p8-inhoud (controleer de regels BEGIN/END PRIVATE KEY), of Services ID verward met App ID.
Fout “Invalid OAuth access token signature” (Facebook): uw App Secret is fout. Genereer het opnieuw vanuit Settings > Basic en plak het opnieuw.
“Te veel pogingen, even geduld”: activering van de rate limiter. Wacht 15 minuten, of verhoog de drempel in Gedrag.
De statistieken lopen niet op: controleer of ps_dfsc_button_click daadwerkelijk regels ontvangt (één klik in incognitomodus moet volstaan). Wordt er niets geschreven, dan is de front-controller waarschijnlijk onbereikbaar: controleer uw URL-herschrijfregels.
De welkomstbon wordt niet aangemaakt: controleer of de functie is ingeschakeld in Gedrag, of het bedrag en het voorvoegsel zijn ingevuld, en of het klantaccount daadwerkelijk is aangemaakt (en niet simpelweg aan een bestaand account gekoppeld: de auto-link geeft geen voucher uit).