Double-Opt-In Workflow¶
Das Plugin implementiert DSGVO-konformen Double-Opt-In (DOI) für alle Stock-Alert-Abos. So funktioniert es im Detail.
Warum DOI¶
Nach DSGVO Art. 7 + § 7 UWG brauchst Du für werbliche oder transaktionale Mail-Kommunikation eine belegbare Einwilligung des Empfängers. Single-Opt-In (nur E-Mail-Feld absenden) reicht nicht – jemand könnte die Adresse eines anderen eintragen.
DOI = nach Eintragung eine Bestätigungsmail mit Link, Klick erforderlich, erst dann ist das Abo aktiv. Damit ist die Einwilligung dokumentiert + zeitlich belegt.
Der Flow im Detail¶
sequenceDiagram
participant Kunde
participant Storefront
participant Plugin
participant Mail
Kunde->>Storefront: E-Mail eintragen, abschicken
Storefront->>Plugin: POST /stock-alert/subscribe
Plugin->>Plugin: Abo anlegen (status=pending)
Plugin->>Mail: Bestätigungs-Mail mit Link
Mail->>Kunde: "Bitte Klicken Sie zur Bestätigung"
Kunde->>Plugin: Click auf Link (signierter Token)
Plugin->>Plugin: Abo bestätigen (status=confirmed)
Plugin->>Kunde: "Vielen Dank, Sie sind eingetragen"
Note over Plugin: Wartet auf Bestand > Schwelle...
Plugin->>Plugin: Cron-Check findet wieder verfügbar
Plugin->>Mail: Verfügbarkeits-Mail
Mail->>Kunde: "Ihr Wunschprodukt ist wieder da!"
Plugin->>Plugin: Abo schließen (status=sent)
Schritt 1: Eintragung¶
Der Kunde sieht im Storefront das Formular und gibt seine E-Mail ein.
Spam-Schutz automatisch aktiv:
- Honeypot-Feld (unsichtbar; Bots füllen es aus, Menschen nicht)
- Rate-Limit (max. X Eintragungen pro IP pro Stunde, in Konfig einstellbar)
- Validierung der E-Mail-Adresse (RFC + DNS-Check optional)
Plugin legt ein Abo mit status = pending an.
Schritt 2: Bestätigungs-Mail¶
Sofort nach Eintragung geht eine Mail an die angegebene Adresse:
- Subject: „Bitte bestätigen Sie Ihre Stock-Alert-Anmeldung"
- Inhalt: Erklärung + Bestätigungs-Button mit signiertem Token
- Footer: DSGVO-Hinweis, „Wenn Sie nichts angemeldet haben, ignorieren Sie diese Mail"
Der Token enthält:
- Abo-ID
- Zeitstempel
- Hash mit Plugin-Secret (HMAC-SHA256)
Damit ist der Link nicht fälschbar und läuft nach Konfig-Zeit ab (Default 48h).
Schritt 3: Bestätigung¶
Kunde klickt auf den Link → URL wie https://shop.tld/stock-alert/confirm/<token>.
Plugin:
- Validiert Token (Signatur, Ablauf)
- Setzt
status = confirmed, speichert Bestätigungs-Zeitstempel + IP (DSGVO-Audit) - Zeigt Erfolgs-Seite
Bei abgelaufenem oder ungültigem Token:
- Fehlerseite mit Hinweis „Link abgelaufen, bitte neu anmelden"
Schritt 4: Verfügbarkeits-Erkennung¶
Cron-Task läuft alle 5 Minuten (anpassbar). Für jedes confirmed-Abo:
- Aktuellen Bestand des Produkts/Variants abfragen
- Wenn Bestand ≥ konfigurierte Schwelle: weiter zu Schritt 5
- Sonst: nichts tun, beim nächsten Cron-Lauf erneut prüfen
Schritt 5: Verfügbarkeits-Mail¶
Mail wird verschickt:
- Subject: „[Produkt] ist wieder verfügbar"
- Inhalt: Produktbild, Preis, Direkt-Link zum Produkt
- CTA-Button „Jetzt bestellen"
Plugin setzt status = sent, speichert Versand-Zeitstempel.
DSGVO-Konformität¶
| Anforderung | Wie das Plugin sie umsetzt |
|---|---|
| Einwilligung | Double-Opt-In mit signiertem Token |
| Nachweis | Bestätigungs-Zeitstempel + IP gespeichert |
| Zweckbindung | Nur Verfügbarkeits-Benachrichtigung – keine Newsletter, kein Verkauf |
| Abbestellung | Jede Mail enthält Direkt-Abmelde-Link mit Token |
| Datenminimierung | Nur E-Mail-Adresse, Produkt-ID, Status, Zeitstempel |
| Löschung | Auto-Cleanup nach konfigurierter Retention |
| Auskunftsrecht | Im Admin-Modul nach E-Mail filterbar |
| Geografische Analyse | Nur 2 Stellen der PLZ aus IP-Geo-Lookup (anonymisiert) |
Abmeldung¶
Jede Verfügbarkeits-Mail enthält einen Link „Vom Stock-Alert abmelden". Klick führt zu https://shop.tld/stock-alert/unsubscribe/<token> – Plugin löscht das Abo sofort.
Optional kannst Du in der Konfig „Vollständig anonymisieren statt löschen" aktivieren – dann bleibt der Eintrag für Statistik mit gehashter E-Mail-Adresse erhalten.
Im Admin-Modul¶
Im Admin Kommora → Stock Alert → Abonnements siehst Du alle Abos:
| Spalte | Inhalt |
|---|---|
| Adresse | |
| Produkt | Produktname + Variant |
| Status | pending / confirmed / sent / expired |
| Eingetragen | Zeitstempel der Erst-Eintragung |
| Bestätigt | Zeitstempel der DOI-Bestätigung |
| Versandt | Zeitstempel der Verfügbarkeits-Mail |
Filter nach Status, Datum, E-Mail-Suche, Produkt-Suche.
Bulk-Aktionen¶
Im Admin:
- „Abo manuell anlegen" – z.B. für telefonische Anmeldungen, DOI wird umgangen
- „Abos löschen" für DSGVO-Auskunftsfälle
- „CSV-Export" der aktuellen gefilterten Liste