DataFirefly Server-Side für Shopware — Komplette Anleitung
Plugin installieren, Verbindungsschlüssel einfügen, Einwilligungs-Gate konfigurieren und die Zustellung der serverseitigen Conversions prüfen.
Überblick
DataFirefly Server-Side ist der kostenlose Shopware-Connector für den Dienst DataFirefly Server-Side Tracking. Bei jeder aufgegebenen Bestellung baut das Plugin ein vollständiges Kauf-Event auf und sendet es Server-zu-Server, signiert mit HMAC-SHA256, an den in der EU gehosteten DataFirefly-Dispatcher. Der Dienst nimmt das Event entgegen, dedupliziert es und liefert es an Ihre Ziele aus: Meta CAPI, GA4, TikTok Events API, Pinterest Conversions API und Google Ads.
Das Plugin ist auf Shop-Seite bewusst minimal: Es speichert keine Ziel-Credentials, fügt dem Storefront kein Skript hinzu und legt keine Tabelle an. Es erfasst, baut, signiert, sendet — alles Weitere passiert auf Dienstseite.
Geschäftsmodell: Das Plugin ist kostenlos; die Auslieferung der Events erfordert ein Abonnement des Dienstes (Starter 39 €/Monat, Growth 119 €/Monat, Scale 349 €/Monat). Details und Anmeldung auf server-side.datafirefly.com.
Voraussetzungen
- Shopware 6.5.x, 6.6.x oder 6.7.x (selbstgehostete Installation — Shopware Cloud akzeptiert keine Server-Plugins)
- PHP 8.1 oder höher, je nach Shopware-Version, mit der curl-Erweiterung
- Ein aktives Abonnement des Dienstes DataFirefly Server-Side Tracking, um Ihren Verbindungsschlüssel zu erhalten
Installation
Per ZIP-Upload
- Öffnen Sie in der Shopware-Administration Erweiterungen → Meine Erweiterungen → Erweiterung hochladen und wählen Sie die ZIP-Datei des Plugins.
- Klicken Sie auf Installieren, dann auf Aktivieren.
Über die Kommandozeile
bin/console plugin:refresh
bin/console plugin:install --activate DatafireflyServerSide
bin/console cache:clear
Das Plugin fügt dem Storefront nichts hinzu: Nach der Installation ist kein build-storefront nötig.
Verbindung mit dem Dienst
Verbindungsschlüssel abrufen
- Melden Sie sich in Ihrem Kundenbereich auf server-side.datafirefly.com an.
- Öffnen Sie den Bereich Shop verbinden.
- Kopieren Sie den einzeiligen Verbindungsschlüssel im Format
dfss_…. Er kodiert Ihre Tenant-ID, Ihren HMAC-Signaturschlüssel und den Ingestion-Endpunkt.
Der Verbindungsschlüssel enthält Ihr Signatur-Secret: Behandeln Sie ihn vertraulich, wie ein Passwort. Bei einem Leak regenerieren Sie ihn im Kundenbereich und ersetzen ihn in der Plugin-Konfiguration.
Schlüssel in Shopware einfügen
- Öffnen Sie Erweiterungen → Meine Erweiterungen → DataFirefly Server-Side → Konfiguration.
- Fügen Sie den Schlüssel in das Feld Verbindungsschlüssel ein.
- Aktivieren Sie den Schalter Tracking aktivieren und speichern Sie.
Das war’s: Ab der nächsten aufgegebenen Bestellung geht das Kauf-Event an den Dispatcher. Ein fehlender oder fehlerhafter Schlüssel ist nie ein blockierender Fehler — das Plugin betrachtet sich einfach als nicht konfiguriert und sendet nichts.
Konfiguration
- Tracking aktivieren — Hauptschalter. Standardmäßig aus.
- Verbindungsschlüssel — der
dfss_…-Schlüssel aus Ihrem Kundenbereich. - Marketing-Einwilligung erforderlich — aktiviert das Einwilligungs-Gate (standardmäßig aus, siehe unten).
- Name des Einwilligungs-Cookies — das Cookie, das Ihr Consent-Tool (CMP) setzt.
- Wert des Einwilligungs-Cookies (enthält) — optional: erwartetes Wertfragment im Cookie.
Die Konfiguration erfolgt pro Sales Channel: Sie können das Tracking in einem Shop aktivieren und in einem anderen nicht, oder unterschiedliche Schlüssel pro Kanal verwenden.
Einwilligungs-Gate
Der Shopware-Core setzt nativ kein einzelnes serverseitig lesbares Marketing-Einwilligungs-Cookie. Das Plugin bietet daher ein generisches Gate, standardmäßig deaktiviert: Ist es aktiv, wird das Kauf-Event nur gesendet, wenn das konfigurierte Cookie in der Anfrage des Kunden vorhanden ist — und, falls ein erwarteter Wert gesetzt ist, nur wenn der Cookie-Wert ihn enthält.
Mit DataFirefly Cookie Consent
Die empfohlene Kombination auf Shopware ist unser Plugin DataFirefly Cookie Consent (DSGVO-konformes Banner mit nativem Google Consent Mode v2): Aktivieren Sie das Gate und tragen Sie den Namen des vom Banner gesetzten Einwilligungs-Cookies ein (in dessen Dokumentation angegeben). Eine verweigerte oder fehlende Marketing-Einwilligung blockiert den Versand serverseitig, vor jeder Übertragung.
Mit einem anderen CMP
Tragen Sie den Namen des Cookies ein, das Ihr CMP setzt, wenn der Besucher Marketing-Cookies akzeptiert (z. B. CookieConsent bei Cookiebot), und optional ein Wertfragment (z. B. marketing:true). Setzt Ihr CMP kein serverseitig lesbares Cookie, oder verwalten Sie die Einwilligung vollständig vorgelagert, lassen Sie das Gate deaktiviert.
Privacy-first-Verhalten
- Gate aktiv + kein Cookie-Name konfiguriert → nichts wird gesendet.
- Gate aktiv + Cookie fehlt oder ist leer → nichts wird gesendet.
- Gate aktiv + erwarteter Wert konfiguriert, aber nicht im Cookie-Wert enthalten → nichts wird gesendet.
- Keine Anfrage verfügbar (CLI- oder Headless-Flows ohne HTTP-Anfrage) → nichts wird gesendet.
Im Zweifel sendet das Plugin nicht: Das ist eine Design-Entscheidung. Kein Event kann „aus Versehen“ ohne Einwilligung rausgehen, solange das Gate aktiv ist.
Verbindung testen
Das Plugin liefert einen Konsolenbefehl mit, der ein synthetisches page_view an den Dispatcher sendet, ohne echte Bestellungen anzufassen:
bin/console datafirefly:serverside:test
Verfügbare Optionen:
--sales-channel-id=<id>— liest die Konfiguration eines bestimmten Sales Channels (Standard: globale Konfiguration).--source-url=<url>— nimmt eine sourceUrl in das Test-Event auf.
Ein HTTP-Code 2xx bestätigt, dass Verbindungsschlüssel, Signatur und Endpunkt korrekt sind — auch wenn auf Dienstseite noch kein Ziel konfiguriert ist.
Funktionsweise
Das Purchase-Event
Das Plugin abonniert das Bestell-Event von Shopware. Bei jedem Auslösen baut es ein purchase-Event mit einer idempotenten, bestellbasierten ID (order_<id>): Setzen Sie zusätzlich Browser-Tags ein, wendet der Dienst die Client-plus-Server-Deduplizierung an und jede Conversion wird nur einmal gezählt.
Gesendete Daten
- Transaktion: gezahlter Wert, Währung, Bestellnummer, Produkte, Mengen, Artikelanzahl.
- Matching: E-Mail, Kunden-ID, Telefon, Vorname, Nachname, Stadt, Postleitzahl und Land der Rechnungsadresse.
- Browser-Identifier zum Bestellzeitpunkt erfasst:
_fbp,_fbc,_ttpund die GA4 Client-ID (Cookie_ga).
Der Aufbau ist defensiv: Jedes optionale Feld wird nur hinzugefügt, wenn es vorhanden und gültig ist (der Dispatcher validiert strikt — Land mit 2 Zeichen, Währung mit 3 usw.). In Headless-Flows, in denen manche Bestell-Assoziationen fehlen können, werden die entsprechenden Felder einfach weggelassen, nie fabriziert.
HMAC-Signierung
Jedes Event wird mit HMAC-SHA256 und dem Secret Ihres Tenants signiert: Die signierten Bytes sind exakt die gesendeten Bytes, mit einem Zeitstempel, der in einem 300-Sekunden-Anti-Replay-Fenster geprüft wird. Übertragen werden die Header Tenant-ID, Timestamp und Signatur. Ihre Meta-, GA4-, TikTok-, Pinterest- und Google-Ads-Credentials bleiben auf Dienstseite — nie im Shop, nie im Browser.
Fail-safe
Das gesamte Subsystem ist so konzipiert, dass es den Checkout nie beeinträchtigt: Timeouts von 2 Sekunden (Verbindung) und 4 Sekunden (gesamt), alle Fehler abgefangen und als Warning in den Shopware-Logs protokolliert, mit HTTP-Code und Bestellnummer — keine Exception erreicht je den Bestellprozess.
Fehlerbehebung
- Kein Event geht raus — prüfen Sie, dass der Schalter für den richtigen Sales Channel aktiviert ist, dass der Schlüssel mit
dfss_beginnt, ohne Leerzeichen oder Zeilenumbrüche, und dass das Einwilligungs-Gate nicht ohne konfiguriertes Cookie aktiv ist. - Der Testbefehl schlägt fehl — ein Code 0 mit einer curl-Meldung deutet auf ein ausgehendes Netzwerkproblem hin (Firewall); ein 401/403 auf einen ungültigen oder regenerierten Schlüssel: Kopieren Sie ihn erneut aus dem Kundenbereich.
- Events in den Logs als nicht zugestellt markiert — HTTP-Code und Bestellnummer werden in den Shopware-Logs protokolliert (Warning-Kanal). Ein 4xx-Code bedeutet, dass das Payload von der strikten Validierung des Dispatchers abgelehnt wurde; Details finden Sie im Event Inspector Ihres Kundenbereichs.
- Doppelte Conversions bei Meta oder GA4 — stellen Sie sicher, dass Ihre Browser-Tags dieselbe Event-ID (
order_<id>) senden, um von der Deduplizierung zu profitieren.
Changelog
- 1.0.0 (01.07.2026) — Erstveröffentlichung: idempotentes serverseitiges Purchase-Event, HMAC-SHA256-Signierung mit Anti-Replay-Fenster, einzeiliger Verbindungsschlüssel, Opt-in-Einwilligungs-Gate per CMP-Cookie, Konfiguration pro Sales Channel, Test-Konsolenbefehl, Fail-safe-Design.