Newsletter Management
Newsletter-Anmeldung, Abonnentenverwaltung und Versand für Sylius - Double Opt-in, Kategorien, Einstellungen pro Channel, Tracking, Statistiken, CSV-Export, Storefront und Shop API
Newsletter Management
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Überblick
Newsletter-Anmeldung, Abonnentenverwaltung und Versand für Sylius-Shops. Besucher melden sich über eine eigene Seite oder das Footer-Formular an, bestätigen per Double Opt-in und verwalten ihr Abo über einen persönlichen Link, ganz ohne Login. Im Admin schreibst du Newsletter, verschickst oder planst sie, siehst Zustellprotokoll und Statistiken und exportierst die Abonnentenliste als CSV.
Alles läuft zweigleisig: Storefront (Twig) und Shop API (headless) nutzen dieselbe Fachlogik. Die Einstellungen gelten pro Channel.
Das Plugin ist pro Channel schaltbar: Solange für einen Channel keine aktivierte Konfiguration existiert, bietet er keine Anmeldung an (Seite und Shop API antworten mit 404, kein Footer-Formular).
graph LR
A["Storefront: /newsletter und Footer"] --> C["NewsletterSubscriptionManager"]
B["Shop API: /shop/newsletter-subscriptions"] --> C
C --> D["Channel-Einstellungen"]
D --> E["Abonnement in der Datenbank"]
D --> F["Mails: Bestätigung, Willkommen"]
G["Admin: Newsletter schreiben, senden, planen"] --> H["Zustellungen in der Datenbank"]
I["Cronjob: mmd:newsletter:send"] --> H
H --> J["Newsletter-Mails an bestätigte Abonnenten"]
Dokumentation
| Seite | Inhalt |
|---|---|
| Installation und Betrieb | Installation, Setup-Command, Update, Cronjobs, Deinstallation |
| Konfiguration | Einstellungen pro Channel, Kategorien, Admin-Oberfläche, Praxis-Beispiele |
| Storefront-Integration | Anmeldeseite, Footer-Formular, Bestätigung, Abo verwalten, Abmeldung, Twig Hooks, Theme-Hinweise |
| Shop API / Headless | Endpunkte für Anmeldung, Bestätigung, Abmeldung, Einstellungen und Kategorien, Fehlerformat |
| Newsletter schreiben und versenden | Editor, Platzhalter, Vorschau und Testversand, sofort senden, planen, Zustellprotokoll |
| Tracking und Statistiken | Tracking-Modi, Statistik-Dashboard, Aufbewahrungsfristen und Bereinigung |
| Erweiterbarkeit | Event vor der Anmeldung, Formular-Erweiterung, ALTCHA, Templates überschreiben |
| Fehlerbehebung und FAQ | Typische Probleme, bekannte Einschränkungen, häufige Fragen |
| Technische Details | Architektur, Plugin-Struktur, Entities und Tabellen |
Features
| Feature | Beschreibung |
|---|---|
| Anmeldung mit Double Opt-in | Eigene Seite /newsletter und Footer-Formular; Bestätigungslink per Mail, pro Channel abschaltbar |
| Abmeldung erst per Klick | Der Abmelde-Link zeigt nur eine Seite, abgemeldet wird erst per Klick auf den Button |
| Kategorien | Übersetzbare Newsletter-Kategorien, optional auf bestimmte Channels beschränkt; ohne Auswahl gilt das allgemeine Newsletter-Abo |
| Einstellungen pro Channel | Newsletter an/aus, Double Opt-in, Footer-Formular, Absender, Datenschutzseite, Mailer-Transport, Tracking, Aufbewahrungsfristen |
| Sylius-Checkbox wird echtes Abo | Die Newsletter-Checkbox aus Registrierung und Kundenkonto legt ein Abo mit Double Opt-in an |
| Abo verwalten ohne Login | Willkommensmail mit persönlichem Link zum Ändern von Name und Kategorien und zum Abmelden |
| Newsletter-Editor | Betreff, Preheader, HTML und Text, Platzhalter, Vorschau, Testversand, Duplizieren |
| Versand und Planung | Sofort senden oder planen, Versand per Cronjob in Paketen, Wiederholversuche, Zustellprotokoll |
| Tracking | Aus, anonym (nur Zähler) oder personenbezogen mit Einwilligung |
| Statistiken | Dashboard im Admin mit Abonnentenentwicklung und Kennzahlen je Newsletter |
| Aufbewahrung und Bereinigung | Fristen pro Channel; zwei Commands räumen Abos und Tracking-Daten auf |
| CSV-Export | Abonnentenliste aus dem Admin, filterbar nach Status und Channel |
| Shop API | Anmeldung, Bestätigung, Abmeldung, Einstellungen und Kategorien headless |
| Spam-Schutz-Anbindung | Event vor jeder Anmeldung und erweiterbares Formular, genutzt vom ALTCHA-Plugin |
Anforderungen
| Anforderung | Version | Hinweise |
|---|---|---|
| Sylius | ^2.2 | Getestet gegen Sylius 2.2 und 2.3 |
| PHP | ^8.3 | |
| Symfony | ^7.4 | |
| API Platform | ^4.2.1 oder ^5.0 | api-platform/doctrine-orm, api-platform/metadata und api-platform/state für die Shop API; welche Hauptversion zum Zuge kommt, bestimmt die Sylius-Version deines Projekts |
| Datenbank | MySQL oder MariaDB | Die Migrationen sind in MySQL-Syntax geschrieben (AUTO_INCREMENT, ENGINE = InnoDB); PostgreSQL wird nicht unterstützt |
kernel.secret |
nicht leer | In Sylius aus APP_SECRET. Damit werden die Tracking-Links in den Newslettern signiert; alle Anwendungsserver müssen denselben Wert verwenden |
| Cronjob | Pflicht | Ohne mmd:newsletter:send geht kein Newsletter hinaus, siehe Installation |
Lizenz
Kommerzielle Lizenz, alle Rechte vorbehalten.
Support
Bei Fragen zur Lizenz, technischen Fragen oder Fehlern erreichst du mich unter support@markus-michalski.net.