DataFirefly Social Connect: dokumentacja
Instalacja i konfiguracja logowania społecznościowego Google, Apple i Facebook: OAuth, pulpit analityczny, kupon powitalny, podpisany webhook CRM, RODO.
Prezentacja
DataFirefly Social Connect dodaje do PrestaShop 8 i 9 trzy przyciski logowania społecznościowego (Google, Apple, Facebook) połączone z kompletnym pulpitem analitycznym. Moduł nie ogranicza się do uwierzytelniania: mierzy konwersję, automatycznie generuje kupony powitalne, zasila Twój CRM przez podpisany webhook i pozostaje w 100% zgodny z RODO.
Cel jest podwójny: usunąć tarcie rejestracji (jedno kliknięcie zamiast formularza) i zmierzyć rzeczywisty wpływ na Twój biznes (kliknięcia, konwersje, przychód generowany przez klientów społecznościowych).
Instalacja
- Pobierz archiwum
dfsocialconnect.zipze swojego konta klienta na datafirefly.com. - W zapleczu PrestaShop przejdź do Moduły > Menedżer modułów > Zainstaluj moduł i wskaż plik ZIP.
- Kliknij Zainstaluj. Moduł tworzy 5 tabel (
ps_dfsc_identity,ps_dfsc_log,ps_dfsc_stats_daily,ps_dfsc_button_click,ps_dfsc_consent) oraz ukrytą zakładkę zapleczaAdminDfSocialConnect. - Kliknij Konfiguruj. Trafiasz na pusty pulpit: pierwsze dane pojawią się, gdy tylko użytkownik kliknie przycisk społecznościowy.
Moduł jest zgodny z PrestaShop od 8.0.0 do 9.99.99 i z PHP od 7.4 do 8.3. Nie wymaga żadnej zewnętrznej zależności Composera: minimalny autoloader PSR-4 jest w zestawie.
Konfiguracja providerów
Każdy provider wymaga danych logowania OAuth uzyskanych z jego konsoli deweloperskiej. Moduł wyświetla dokładny adres callback do skopiowania do każdej konsoli. To najważniejszy etap: najmniejsza literówka powoduje błąd redirect_uri_mismatch.
Google OAuth2 i OpenID Connect
- Wejdź na https://console.cloud.google.com/apis/credentials.
- Utwórz lub wybierz projekt, a następnie kliknij Utwórz dane logowania > Identyfikator klienta OAuth 2.0.
- Typ aplikacji: Aplikacja internetowa.
- W polu Autoryzowane identyfikatory URI przekierowania wklej adres wyświetlony w zakładce „Providers” konfiguracji modułu (postać:
https://twoj-sklep.pl/module/dfsocialconnect/callback?provider=google). - Odczytaj Client ID i Client Secret i wklej je do modułu.
- Włącz przełącznik „Google włączony”.
Apple Sign In
- Wejdź na https://developer.apple.com/account/resources/identifiers/list (wymagane płatne konto deweloperskie Apple).
- Utwórz Services ID (nie App ID). Zanotuj jego identyfikator: to Twój Client ID.
- Włącz Sign In with Apple dla tego Services ID, skonfiguruj domenę swojego sklepu i wklej adres callback wyświetlony przez moduł (provider=apple) jako Return URL.
- W sekcji Keys utwórz nowy klucz z włączonym Sign In with Apple. Pobierz plik
.p8: nigdy więcej nie będziesz mógł go odzyskać. - Odczytaj swój Team ID (prawy górny róg konsoli Apple), swój Key ID (identyfikator klucza utworzonego w kroku 4) oraz całą zawartość pliku .p8 (razem z liniami BEGIN PRIVATE KEY i END PRIVATE KEY).
- Wklej te 4 pola do konfiguracji modułu (Services ID, Team ID, Key ID, zawartość .p8).
- Włącz przełącznik „Apple włączony”.
Moduł podpisuje JWT client_secret algorytmem ES256 w locie i regeneruje go automatycznie co 5 miesięcy (maksymalna ważność dopuszczona przez Apple to 6 miesięcy). Nie musisz zarządzać żadną ręczną rotacją.
Facebook Login
- Wejdź na https://developers.facebook.com/apps.
- Utwórz nową aplikację typu Konsumenci.
- W sekcji Add products dodaj Facebook Login.
- W Facebook Login > Settings wklej adres callback wyświetlony przez moduł (provider=facebook) w polu Valid OAuth Redirect URIs.
- Odczytaj App ID i App Secret w Settings > Basic i wklej je do modułu.
- Włącz przełącznik „Facebook włączony”.
Moduł korzysta z Graph API v19.0 i automatycznie włącza appsecret_proof, co uniemożliwia odtworzenie skradzionego access tokenu, wymagając podpisu HMAC sekretem aplikacji.
Zakładka Zachowanie
Ta zakładka steruje tym, co dzieje się po udanym logowaniu społecznościowym.
- Auto-link po zweryfikowanym e-mailu: jeśli e-mail zwrócony przez providera jest oznaczony jako zweryfikowany i odpowiada istniejącemu kontu klienta, moduł automatycznie wiąże providera z tym kontem zamiast tworzyć nowe. Zalecane: włączone.
- Import awatara: pobiera zdjęcie profilowe do
/img/dfsc/avatars/<id_customer>.<ext>(limit 2 MB, biała lista MIME JPEG, PNG, WebP). Przeżywa wygaśnięcie CDN providera. - Kupon powitalny: dla każdego nowego konta utworzonego przez logowanie społecznościowe moduł tworzy jednorazową regułę koszyka PrestaShop na nazwisko klienta. Skonfiguruj prefiks (domyślnie
WELCOME), kwotę i okres ważności. - Grupa klientów per provider: przypisz ID grupy PrestaShop do każdego providera (Google, Apple, Facebook). Przydatne do segmentacji kampanii marketingowych według pochodzenia.
- Domyślny opt-in newslettera: po włączeniu utworzony klient jest oznaczany jako zapisany do newslettera (włączaj tylko wtedy, gdy Twój proces obejmuje zgodny z RODO double opt-in).
- Rate limiting: maksymalna liczba prób z jednego IP w oknie 15 minut. Domyślnie 30 prób. Powyżej użytkownik otrzymuje komunikat „Zbyt wiele prób”.
- Retencja logów: liczba dni przechowywania surowych logów (
ps_dfsc_logips_dfsc_button_click). Dzienny rollup (ps_dfsc_stats_daily) jest przechowywany bezterminowo i zasila pulpit.
Zakładka Wygląd
Wybierz wizualną formę przycisków:
- Styl: 5 wariantów, rounded (domyślny, narożniki 8 px), pill (całkowicie zaokrąglony), square (kanciasty), ghost (przezroczysty z obramowaniem), minimal (kompaktowy).
- Tryb etykiety: 3 tryby, Kontynuuj z X (domyślny, neutralny), Zaloguj się przez X (strona logowania), Zarejestruj się przez X (strona rejestracji).
- Pokaż na stronie logowania i Pokaż na stronie rejestracji: niezależne przełączniki.
- Widget Moje konto: wyświetla w panelu klienta sekcję „Połączone konta”, pozwalającą powiązać lub odwiązać każdego providera w dowolnym momencie (wymóg RODO).
Pulpit analityczny
Pierwsza zakładka konfiguracji agreguje statystyki domyślnie z ostatnich 30 dni (wartość konfigurowalna).
- 4 karty KPI: Udane logowania, Kliknięcia w przyciski, Nowi utworzeni klienci, Niepowodzenia.
- Krzywa czasowa: udane logowania dziennie, z podziałem na providerów (Google niebieski, Apple czarny, Facebook w niebieskim Meta).
- Podział per provider: wykres pierścieniowy Chart.js z udziałem procentowym każdego providera.
- Współczynnik konwersji per provider: kliknięcie kontra udane logowanie. Pozwala wykryć źle skonfigurowanego providera (nienaturalnie niski współczynnik).
- Podział urządzeń i przeglądarek: wykres słupkowy zagregowany w oknie czasowym.
- Heatmapa dzień × godzina: siatka 7 × 24 w 7 odcieniach niebieskiego. Zidentyfikuj szczyty użycia, aby dopasować kampanie.
- Penetracja społecznościowa: odsetek Twojej bazy klientów, który ma powiązanego co najmniej jednego providera.
- Przychód generowany przez klientów społecznościowych: suma opłaconych zamówień klientów utworzonych przez logowanie społecznościowe, wyliczana złączeniem SQL na
ps_orders.
Webhook CRM
Przy każdym udanym logowaniu lub powiązaniu konta moduł może wysłać żądanie HTTP POST na wybrany przez Ciebie adres, w trybie fire-and-forget (czas odpowiedzi Twojego endpointu nie wpływa na czas logowania użytkownika).
- Adres webhooka: zalecany endpoint HTTPS. Make, n8n, Zapier albo Twój wewnętrzny stack.
- Wspólny sekret: używany do podpisania payloadu algorytmem HMAC-SHA256. Podpis jest wysyłany w nagłówku
X-Dfsc-Signature. Po stronie odbiorczej przelicz HMAC na surowej treści, aby zweryfikować autentyczność.
Przykładowy wysyłany payload:
{
"event": "social_login_success",
"provider": "google",
"id_customer": 1234,
"email": "maria.kowalska@example.com",
"is_new_account": true,
"ip": "203.0.113.42",
"timestamp": 1748378400
}
RODO i zgoda
Moduł został zaprojektowany tak, aby respektować RODO by design:
- Przy każdym logowaniu społecznościowym do
ps_dfsc_consenttrafia wiersz ze znacznikiem czasu, IP, user agentem i providerem. To Twój audit trail. - Widget „Połączone konta” w Moim koncie pozwala klientowi odwiązać providera w dowolnym momencie.
- Odinstalowanie modułu czysto usuwa 5 tabel i wszystkie klucze konfiguracji. Konta klientów pozostają nietknięte.
- Żaden sekret OAuth nie jest nigdy przesyłany jawnie: cała wymiana odbywa się przez HTTPS, a JWT Apple jest podpisywany lokalnie Twoim kluczem .p8.
Odinstalowanie
Odinstaluj moduł w Moduły > Menedżer modułów. Proces:
- Usuwa 5 tabel
ps_dfsc_*. - Usuwa zakładkę zaplecza
AdminDfSocialConnect. - Usuwa wszystkie klucze konfiguracji
DFSC_*. - Powiązania społecznościowe klientów są kasowane, ale konta klientów i ich zamówienia pozostają nietknięte. Awatary zapisane w
/img/dfsc/avatars/są usuwane.
Rozwiązywanie problemów
Błąd „redirect_uri_mismatch” (Google): adres wklejony do konsoli Google nie odpowiada dokładnie temu, który wyświetla moduł. Sprawdź schemat (https), domenę (z www lub bez) i pełną ścieżkę. Żadnych znaków na końcu (ukośnik, spacja).
Błąd „invalid_client” (Apple): Twój JWT client_secret jest nieprawidłowy. Częste przyczyny: błędny Team ID lub Key ID, ucięta zawartość .p8 (sprawdź linie BEGIN i END PRIVATE KEY) albo pomylenie Services ID z App ID.
Błąd „Invalid OAuth access token signature” (Facebook): Twój App Secret jest błędny. Wygeneruj go ponownie w Settings > Basic i wklej jeszcze raz.
„Zbyt wiele prób, zaczekaj chwilę”: zadziałał rate limiter. Albo odczekaj 15 minut, albo podnieś próg w zakładce Zachowanie.
Statystyki nie rosną: sprawdź, czy do ps_dfsc_button_click faktycznie trafiają wiersze (jedno kliknięcie w trybie incognito powinno wystarczyć). Jeśli nic się nie zapisuje, kontroler frontowy jest prawdopodobnie nieosiągalny: sprawdź swoje reguły przepisywania adresów.
Kupon powitalny nie jest tworzony: sprawdź, czy funkcja jest włączona w zakładce Zachowanie, czy kwota i prefiks są wypełnione i czy konto klienta faktycznie zostało utworzone (a nie tylko powiązane z istniejącym kontem: auto-link nie generuje kuponu).