Zum Inhalt

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:

  1. Validiert Token (Signatur, Ablauf)
  2. Setzt status = confirmed, speichert Bestätigungs-Zeitstempel + IP (DSGVO-Audit)
  3. 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:

  1. Aktuellen Bestand des Produkts/Variants abfragen
  2. Wenn Bestand ≥ konfigurierte Schwelle: weiter zu Schritt 5
  3. 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
E-Mail 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

Weiter