# DataFirefly PWA — Komplettanleitung

> Übersicht Das Modul DataFirefly PWA (dfpwa) verwandelt Ihren PrestaShop-Shop in eine Progressive Web App: Kunden installieren ihn auf dem Home-Bildschirm, erhalten Web-Push-Benachrichtigungen und stöbern auch offline weiter. Das Modul ist…

- Seite: <https://www.datafirefly.com/de/documentation/dfpwa/>
- Sprache: de
- Aktualisiert am: 2026-09-20
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/dfpwa/index.md), [en](https://www.datafirefly.com/en/documentation/dfpwa/index.md), [es](https://www.datafirefly.com/es/documentation/dfpwa/index.md), [it](https://www.datafirefly.com/it/documentation/dfpwa/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfpwa/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfpwa/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfpwa/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

## Übersicht

Das Modul **DataFirefly PWA** (`dfpwa`) verwandelt Ihren PrestaShop-Shop in eine **Progressive Web App**: Kunden installieren ihn auf dem Home-Bildschirm, erhalten **Web-Push-Benachrichtigungen** und stöbern auch offline weiter. Das Modul ist vollständig eigenständig: Die Verschlüsselung läuft in nativem PHP, ohne Composer, ohne Drittanbieterdienst und ohne Abonnement.

Vier Säulen: ein **installierbarer** Shop, eine **professionelle Push-Engine** (reichhaltige, geplante, segmentierte Kampagnen), **Automatisierungen** (Bestellungen, Warenkörbe, Bestand, Preise) und ein **Offline-Modus**.

## Kompatibilität und Voraussetzungen

- PrestaShop 8.0 bis 9.x, Einzelshop und Multishop
- Modul in 7 Sprachen übersetzt: FR, EN, ES, DE, IT, NL, PL
- Keine Abhängigkeit: weder Composer noch Framework noch externer Dienst
- **HTTPS erforderlich**: PWAs und Web-Push existieren über HTTP nicht
- **PHP-openssl-Erweiterung** mit der Kurve `prime256v1` für die VAPID-Verschlüsselung
- **Cron-Aufgabe** für geplante Kampagnen, Produktalarme und Warenkorb-Rückgewinnung

Sind openssl oder `prime256v1` nicht verfügbar, wird die Installation mit einer eindeutigen Meldung blockiert. Bitten Sie Ihren Hoster, die Erweiterung zu aktivieren.

## Installation

1. Back-Office: **Module > Modul-Manager**.
2. **Modul hochladen**, dann `dfpwa.zip` auswählen.
3. Auf **Konfigurieren** klicken.
4. Die im Dashboard angezeigte **Cron-URL** kopieren und alle 5 bis 15 Minuten in Ihrem Planer aufrufen lassen.

Bei der Installation erzeugt das Modul Ihre **VAPID-Schlüssel** und ein **Cron-Token**, legt seine Tabellen an, installiert die Kampagnenseite und fügt den Link „Benachrichtigungseinstellungen“ im Kundenkonto hinzu. Gültige PWA-Symbole sind enthalten, der Shop ist also sofort installierbar, noch bevor Sie eigene hochladen.

## Konfiguration

### Anwendung und Installation

- **Name** und **Kurzname**: nach der Installation unter dem Symbol sichtbar.
- **Designfarbe** und **Hintergrundfarbe**: Systemleiste und Startbildschirm.
- **Anzeigemodus**: _standalone_ empfohlen. Der Modus _browser_ verhindert jede Installation.
- **Start-URL**: Seite, die beim Start der App geöffnet wird.
- **Symbole 192 und 512 px**: quadratisches PNG oder WebP. Ein zu kleines oder nicht quadratisches Symbol wird abgelehnt und das mitgelieferte Standardsymbol behalten, damit die Installierbarkeit nie bricht.
- **Installationsbanner**, **Anzeigeverzögerung** und **iOS-Hinweis**.

### Installierbarkeits-Diagnose

Das Dashboard prüft Punkt für Punkt, was Chrome vor dem Installationsangebot verlangt: HTTPS, kompatibler Anzeigemodus, gültige Symbole in 192 und 512 px, verfügbare Offline-Fallback-Seite und aktiviertes Modul. Ein Link öffnet das erzeugte Manifest.

Auf iPhone und iPad gibt es keine automatische Aufforderung: Safari verlangt den manuellen Schritt „Zum Home-Bildschirm“. Das ist normal, und das Modul erklärt es dem Besucher. Die Diagnose betrifft also Android und Desktop-Browser. Im Shop meldet der Befehl `dfpwaDiagnose()` in der Browser-Konsole genau, was blockiert.

### Web-Push

- **VAPID-Subject**: Kontaktadresse für die Push-Dienste, als `mailto:` oder `https://`.
- **Besucher automatisch fragen** und **Einwilligungstext**: sanfte Aufforderung vor dem nativen Browserdialog, DSGVO-konform.
- **Abo-Glocke**: sechs Positionen, im Warenkorb und an der Kasse ausblendbar. Sobald der Besucher angemeldet ist, wird die Glocke zur Abkürzung zu seinen Einstellungen.
- **Abstände der Glocke**: vier Werte in Pixeln, horizontal und vertikal, getrennt für Desktop und Mobilgeräte (unter 768 px Breite). Damit hält die Glocke eine Chat-Blase, ein Barrierefreiheits-Widget oder eine fixierte In-den-Warenkorb-Leiste des Themes frei. Bei den mittigen Positionen verschiebt der vertikale Wert die Glocke lediglich aus der Mitte. Zulässiger Bereich: 0 bis 2000.
- **Lebensdauer der Nachricht**: wie lange ein Push-Dienst eine nicht zugestellte Benachrichtigung aufbewahrt.
- **Maximale Benachrichtigungen pro Gerät und Tag**: 0 deaktiviert das Limit. Transaktionale Nachrichten verbrauchen es nie.
- **Ruhezeiten**: in diesem Fenster eingereihte Kampagnen stellt der Cron danach zu. Zwei gleiche Werte deaktivieren die Funktion.
- **Nachrichten pro Cron-Lauf**: verringern, wenn Ihr Hoster ein kurzes PHP-Timeout erzwingt.

### Offline-Modus

- **Cache-Strategie**: _stale-while-revalidate_ (empfohlen), _Network-First_ oder _Cache-First_.
- **Titel** und **Meldung** der Fallback-Seite sowie eine Liste **vorab gecachter URLs**.

Warenkorb, Kasse und Kundenkonto bleiben stets vom Cache ausgeschlossen. Den Offline-Modus abzuschalten macht den Shop nicht uninstallierbar: die Fallback-Seite wird weiterhin ausgeliefert, denn ein Browser installiert nur eine App, die offline antworten kann.

## Installationslinks, ohne Pop-up

Wenn Sie im Shop überhaupt kein Pop-up möchten, schalten Sie das **Installationsbanner**, die automatische Benachrichtigungsanfrage und die **schwebende Glocke** ab und platzieren Sie einfach Links „Hier klicken, um unsere App zu installieren“. Der Besucher klickt, wenn er es möchte.

### Verfügbare Platzierungen

- **Footer** (standardmäßig aktiv)
- **Obere Navigation**
- **Kundenkonto** (standardmäßig aktiv)
- **Bestellbestätigungsseite** (standardmäßig aktiv), direkt nach dem Kauf
- **Produktseite**
- **Transaktions-E-Mails** (standardmäßig aktiv)

Jede Platzierung hat ihren eigenen Schalter. Drei Darstellungen stehen zur Wahl: Schaltfläche, Textlink oder breites Banner, und der Text lässt sich je Sprache anpassen.

### Überall sonst: das Widget

Für eine Stelle, die das Modul nicht abdeckt, etwa die Danksagung nach einer Bewertung oder einen Block Ihres Themes, fügen Sie diese Zeile in die betreffende Vorlage ein:

```
{widget name='dfpwa'}
```

### In E-Mails

Eine E-Mail kann keine Installation auslösen, daher öffnet der Link den Shop mit dem Parameter `?dfpwa_install=1`, der den Vorgang sofort bei Ankunft des Kunden startet, ohne die übliche Verzögerung. Geben Sie die betreffenden Vorlagen durch Kommas getrennt an (zum Beispiel `order_conf,shipped`) oder lassen Sie das Feld für alle E-Mails leer. Für E-Mail-Programme ohne HTML wird eine Textfassung ergänzt.

Der Link erscheint nur, wenn eine Installation tatsächlich möglich ist. Er bleibt verborgen, wenn die App bereits installiert ist, wenn der Browser sie nicht installieren kann oder solange Chrome die Kriterien nicht bestätigt hat. Auf dem iPhone öffnet ein Klick direkt die Anleitung „Zum Home-Bildschirm“, da Safari keine native Aufforderung kennt.

## Eine Kampagne senden

1. Öffnen Sie **PWA Push** im Administrationsmenü.
2. Geben Sie einen **Titel** (etwa 50 Zeichen) und eine **Nachricht** (etwa 120 Zeichen) ein.
3. Fügen Sie ein **Bannerbild** per Upload hinzu (JPG, PNG oder WebP, max. 2 MB, ideales Verhältnis 2:1) oder über eine URL. Eine hochgeladene Datei hat Vorrang.
4. Fügen Sie bis zu **zwei Aktionsschaltflächen** hinzu, jede mit eigener Beschriftung und URL.
5. Richten Sie nach **Sprache**, **Kundengruppe**, **Gerät** (iOS, Android, Desktop) und **Zielgruppe** (alle, registrierte Kunden, Gäste) aus.
6. Lassen Sie **Planen für** leer, um sofort zu senden, oder geben Sie ein Datum als `JJJJ-MM-TT HH:MM` an.
7. Nutzen Sie den **Testmodus**, um sich die Benachrichtigung vor einem Massenversand selbst zuzusenden.

Der Testmodus adressiert nur Geräte, die mit einem Kundenkonto mit Ihrer Mitarbeiter-E-Mail-Adresse verknüpft sind. Passt kein Konto, wird der Versand abgelehnt, statt an das ganze Segment zu gehen.

### Versand-Warteschlange

Jeder Versand wird eingereiht und in Stapeln verarbeitet. Ein Teil geht sofort raus, den Rest stellt der Cron zu. Ein Bestand von Zehntausenden Abonnenten verursacht daher kein Timeout und keine abgeschnittenen Statistiken. Das Dashboard zeigt, wie viele Benachrichtigungen warten, und erlaubt einen manuellen Lauf.

### Verlauf und Statistiken

Der Verlauf listet die letzten dreißig Kampagnen mit Status, Empfängern, Zustellungen, Fehlern, Klicks und Klickrate. Ein Klick wird der Kampagne zugeordnet, die die Benachrichtigung erzeugt hat, und der Zähler kann die Zahl tatsächlich zugestellter Nachrichten nie überschreiten. Abonnenten lassen sich als CSV exportieren.

## Automatisierungen

### Bestellverfolgung

Wählen Sie die Status aus, die eine Benachrichtigung auslösen. Standard: Zahlung angenommen, versendet, geliefert. Kein Häkchen bedeutet: bei jeder Statusänderung benachrichtigen.

### Warenkorb-Rückgewinnung

Der Cron erkennt Warenkörbe mit Artikeln, die einem angemeldeten Kunden zugeordnet und ohne Bestellung sind, innerhalb des konfigurierten Fensters (1 bis 168 Stunden).

### Wieder-verfügbar- und Preissenkungs-Alarme

Auf der Produktseite erscheint eine Schaltfläche. Die Wieder-verfügbar-Schaltfläche wird nur bei nicht lieferbaren Produkten angezeigt, die für Preissenkungen immer. Der Besucher braucht kein Konto: der Alarm hängt am Abonnement seines Geräts. Der Preis zum Zeitpunkt der Anfrage wird gespeichert, und Sie legen den **Mindestprozentsatz der Senkung** fest, der den Alarm auslöst.

### Willkommensbenachrichtigung

Wird einmalig gesendet, bei der ersten Anmeldung eines Geräts. Sie bestätigt die Anmeldung und wird von den Kundeneinstellungen nie blockiert.

## Einstellungen des Kunden

Im Konto öffnet der Kunde **Benachrichtigungseinstellungen** und schaltet vier Kategorien ein oder aus:

- **Bestellaktualisierungen**: Versand und Statusänderungen
- **Produktalarme**: wieder verfügbar und Preissenkungen
- **Warenkorb-Erinnerungen**: Rückgewinnung des abgebrochenen Warenkorbs
- **Angebote und Neuigkeiten**: Marketingkampagnen

Standardmäßig ist alles aktiv, auch für bestehende Abonnenten nach einem Update. Die Auswahl gilt für alle Geräte des Kunden, und ein neues Gerät übernimmt seine Einstellungen. Eine abgeschaltete Kategorie wird nie gesendet, selbst bei transaktionalen Nachrichten, die Tageslimit und Ruhezeiten ignorieren.

## DSGVO

- Einwilligung wird vor jeder Anmeldung mit einer ausdrücklichen Meldung eingeholt
- Der Kunde verwaltet seine Kategorien im Konto und kann alles abschalten
- Das Löschen eines Kundenkontos entfernt Abonnements, Produktalarme und eingereihte Nachrichten über den DSGVO-Hook von PrestaShop
- Keine Daten gehen an einen Drittanbieterdienst: die Verschlüsselung läuft auf Ihrem Server

## Anpassung durch das Theme

- `data-dfpwa-bell` an einem Element macht daraus eine Abo-Schaltfläche und ersetzt die schwebende Glocke.
- `data-dfpwa-share` an einem Element macht daraus eine native Teilen-Schaltfläche.
- Die Klasse `dfpwa-prefs-form` bleibt bewusst ohne Stil für Ihre eigenen CSS-Regeln.

## FAQ und Fehlerbehebung

### Das Installationsbanner erscheint auf Android nicht

Chrome zeigt nichts an, solange der Shop die Kriterien nicht erfüllt. Prüfen Sie die Diagnose im Dashboard und führen Sie dann `dfpwaDiagnose()` in der Browser-Konsole im Shop aus: das Ergebnis nennt, was fehlt. Wenn die PWA auf dem Gerät bereits installiert war, deinstallieren Sie sie und löschen Sie die Website-Daten vor dem nächsten Test. Eine vom Besucher gemerkte Ablehnung verfällt nach 30 Tagen oder sofort mit `dfpwaResetPrompts()`.

### Auf dem iPhone lässt sich nichts installieren

Das ist das normale Verhalten von Safari, das keine automatische Aufforderung kennt. Die Anleitung „Zum Home-Bildschirm“ des Moduls erklärt die Schritte. Web-Push funktioniert dort erst ab iOS 16.4 und nur bei installiertem Shop.

### Benachrichtigungen werden nicht versendet

Prüfen Sie, ob Push aktiviert ist, die VAPID-Schlüssel vorhanden sind und Kunden sich angemeldet haben. Der Testmodus prüft die gesamte Kette. Bleiben Nachrichten in der Warteschlange, kontrollieren Sie, ob der Cron wirklich aufgerufen wird.

### Eine Kampagne bleibt ausstehend

Sie ist entweder für ein späteres Datum geplant, während der Ruhezeiten eingereiht oder wird gerade in Stapeln zugestellt. Im Dashboard lässt sich ein Lauf erzwingen.

### Ein Kunde sagt, er erhalte nichts mehr

Sehen Sie in seinen Benachrichtigungseinstellungen nach: vielleicht hat er eine Kategorie abgeschaltet. Prüfen Sie auch das Tageslimit pro Gerät und die Ruhezeiten.

### Produktalarme lösen nicht aus

Sie hängen vom Cron ab. Prüfen Sie, dass er läuft, dass die Alarmart aktiviert ist und bei Preissenkungen, dass der Rabatt den konfigurierten Mindestprozentsatz erreicht.
