SW Shopware 6 Mittel

DfPreorder SW — Vollständiger Leitfaden

DfPreorder SW installieren, konfigurieren und betreiben: Wieder-verfügbar-Warteliste mit DSGVO-Double-Opt-in, Echtzeit-Wiedereingangs-Erkennung + geplanter Durchlauf, mehrsprachige E-Mails und Vorbestellmodus für Shopware 6.5, 6.6 und 6.7.

Aktualisiert Modulversion 1.0.0

Shopware bietet keine native „Benachrichtige mich, wenn wieder verfügbar“-Funktion. DfPreorder SW schließt diese Lücke: Auf jeder ausverkauften Produktseite erscheint automatisch ein Anmeldeformular, und der Kunde erhält eine E-Mail-Benachrichtigung — in seiner eigenen Sprache —, sobald das Produkt wieder verfügbar ist. Das Plugin ergänzt außerdem einen schlanken Vorbestellmodus (Badge und voraussichtliches Versanddatum) und ein Administrationsmodul zur Verwaltung der Anmeldungen. Ein einziges ZIP installiert sich auf Shopware 6.5, 6.6 und 6.7. Dieser Leitfaden behandelt Installation, Asset-Kompilierung, Worker und geplante Aufgabe, Konfiguration, Storefront-Nutzung, Vorbestellmodus, E-Mails, Store API, DSGVO-Konformität und Fehlerbehebung.

Kompatibel mit Shopware 6.5.x, 6.6.x und 6.7.x auf einer einzigen Codebasis. Es wird keine Composer-Abhängigkeit hinzugefügt. Anders als bei manchen Plugins, die mit vorkompiliertem dist ausgeliefert werden, enthält DfPreorder die JavaScript-Quellen: Nach der Installation ist eine Kompilierung von Storefront und Administration erforderlich (siehe unten).

Wie die Wiedereingangs-Erkennung funktioniert

DfPreorder erkennt Auffüllungen auf zwei sich ergänzende Arten, die in dieselbe idempotente Routine münden — Ihre Kunden werden also immer benachrichtigt, nie doppelt:

  • In Echtzeit: Ein Subscriber lauscht auf Produkt-Writes und reagiert, sobald sich der Bestand oder der verfügbare Bestand ändert.
  • Geplanter Durchlauf: Eine geplante Aufgabe läuft alle 15 Minuten und holt Bestandsänderungen nach, die per direktem SQL gemacht wurden — typischerweise das Verringern des verfügbaren Bestands bei einer Bestellung oder ein ERP-Import, die kein Anwendungs-Event auslösen.

Das Wartelisten-Formular erscheint auf einer Produktseite, wenn zwei Bedingungen erfüllt sind: Das Produkt ist im Closeout-Modus und sein verfügbarer Bestand ist auf null gefallen.

Installation

  1. Laden Sie das Archiv DfPreorder-v1.0.0.zip aus Ihrem DataFirefly-Konto herunter.
  2. Kopieren Sie den entpackten Ordner DfPreorder nach custom/plugins/, oder installieren Sie das ZIP über Administration → Erweiterungen → Meine Erweiterungen → Erweiterung hochladen.
  3. Installieren und aktivieren Sie das Plugin:
    bin/console plugin:refresh
    bin/console plugin:install --activate DfPreorder
  4. Kompilieren Sie die Storefront- und Administrations-Assets (erforderlicher Schritt — es wird kein dist ausgeliefert):
    ./bin/build-storefront.sh
    ./bin/build-administration.sh
  5. Leeren Sie den Cache:
    bin/console cache:clear

Bei der Installation erstellt das Plugin die Tabelle df_stock_notification, das Zusatzfeld-Set df_preorder an der Produkt-Entität, zwei E-Mail-Vorlagen und die geplante Aufgabe. Bei der Deinstallation ohne Datenerhalt wird alles entfernt.

Worker und geplante Aufgabe

Damit die E-Mails tatsächlich versendet werden, müssen zwei Mechanismen laufen — in der Produktion meist bereits über den Admin-Worker, systemd oder cron gegeben:

  • Der Messenger-Worker, der die asynchrone Wiedereingangs-Nachricht verarbeitet und die E-Mails versendet;
  • Der Aufgabenplaner, der den Sicherheitsnetz-Durchlauf alle 15 Minuten auslöst.
bin/console messenger:consume async --time-limit=60
bin/console scheduled-task:run

Wenn weder der Worker noch der Planer läuft, werden Anmeldungen gespeichert, aber keine E-Mail versendet. Das ist die häufigste Ursache für „das Plugin benachrichtigt niemanden“. Prüfen Sie den Status des Admin-Workers unter Einstellungen → System → Nachrichtenwarteschlange und die geplanten Aufgaben unter Einstellungen → System → Geplante Aufgaben.

Konfiguration

Öffnen Sie Erweiterungen → Meine Erweiterungen → DataFirefly Vorbestellung & Warteliste → ⋯ → Konfigurieren. Alle Optionen lassen sich pro Verkaufskanal über den nativen Selektor oben auf der Seite einstellen.

  • Warteliste aktivieren: Hauptschalter. Zeigt das Formular auf ausverkauften Produktseiten an.
  • Double-Opt-in: Erfordert eine E-Mail-Bestätigung, bevor die Anmeldung aktiv wird (für die DSGVO empfohlen). Standardmäßig aus.
  • Gäste erlauben: Wenn deaktiviert, können sich nur eingeloggte Kunden anmelden.
  • Eintrag nach Benachrichtigung löschen: Datensparsamkeit — die E-Mail-Adresse wird gelöscht, sobald die Benachrichtigung versendet wurde. Wenn aus, bleibt der Eintrag mit Status „notified“ erhalten.
  • Benachrichtigungen pro Durchlauf: maximale Anzahl der pro Lauf versendeten E-Mails (Worker oder Durchlauf). Standardmäßig 100.
  • Vorbestellungs-Badge anzeigen: aktiviert Badge und Versanddatum auf Produkten, die für die Vorbestellung konfiguriert sind.

Die Warteliste im Storefront

Wenn ein Produkt ausverkauft ist (Closeout + verfügbarer Bestand bei null), erscheint das Formular „Benachrichtigung bei Verfügbarkeit“ automatisch unter dem Kaufen-Button. Der Kunde gibt seine E-Mail ein (vorausgefüllt, wenn er eingeloggt ist) und bestätigt.

  • Die Übermittlung erfolgt per AJAX mit vollständigem Fallback ohne JavaScript (Flash-Meldung + Weiterleitung).
  • Ein unsichtbares Honeypot-Feld filtert Bots heraus.
  • Ist das Double-Opt-in aktiviert, wird eine Bestätigungs-E-Mail versendet; die Anmeldung wird erst nach dem Klick auf den Bestätigungslink aktiv.
  • Jede E-Mail kann einen Abmeldelink mit einem Klick enthalten.

Das Formular wird in einer überschreibbaren Vorlage gerendert: views/storefront/component/df-waitlist/waitlist-form.html.twig, eingebunden über das Buy-Widget. Überschreiben Sie es in Ihrem Theme, um Aussehen oder Platzierung zu ändern.

Vorbestellmodus

Das Plugin erstellt eine Zusatzfeld-Gruppe Vorbestellung an der Produkt-Entität. Öffnen Sie ein Produkt unter Kataloge → Produkte, Reiter Spezifikationen → Zusatzfelder, Gruppe Vorbestellung:

  • Vorbestellung aktivieren: Aktivierungsschalter für dieses Produkt.
  • Voraussichtliches Versanddatum: das im Badge angezeigte Datum.
  • Vorbestellungs-Hinweis: Freitext, der unter dem Badge angezeigt wird.

Wenn die Vorbestellung aktiviert und das Badge in der Konfiguration erlaubt ist, erscheint ein bernsteinfarbenes Badge über dem Kaufen-Button mit dem voraussichtlichen Versanddatum. Das Rendering ist in der Buy-Widget-Vorlage isoliert und bleibt überschreibbar.

E-Mails und Übersetzungen

Bei der Installation werden zwei E-Mail-Vorlagen erstellt und in fünf Sprachen übersetzt — Französisch, Englisch, Deutsch, Spanisch und Italienisch:

  • Wieder verfügbar (df_preorder.back_in_stock): Variablen productName, productUrl und das vollständige Objekt product.
  • Anmeldebestätigung (df_preorder.double_opt_in): ergänzt die Variable confirmUrl.

Jeder Kunde wird in der Sprache des Shops zum Zeitpunkt seiner Anmeldung benachrichtigt: Das Plugin baut einen sprachspezifischen Kontext für den Abonnenten auf, um den übersetzten Produktnamen und die richtige Vorlage aufzulösen. Die Produkt-URL wird über die kanonische SEO-URL des jeweiligen Kanals und der Sprache aufgelöst.

Die Vorlagen bleiben unter Einstellungen → E-Mails → E-Mail-Vorlagen vollständig bearbeitbar. Suchen Sie nach „back in stock“ oder „wieder verfügbar“, um sie zu finden.

Administrationsmodul

Das Menü Marketing → Warteliste & Vorbestellung listet alle Anmeldungen auf: E-Mail-Adresse, Produkt, Status (ausstehend / bestätigt / benachrichtigt), Anmeldedatum und Benachrichtigungsdatum. Das Massenlöschen steht zur Verfügung, praktisch zum manuellen Bereinigen alter Anmeldungen.

Store API (Headless / Mobil)

Für Headless-Shops oder mobile Apps ermöglicht ein Store-API-Endpunkt, einen Kunden auf die Warteliste zu setzen:

POST /store-api/df-waitlist/subscribe
Content-Type: application/json
sw-access-key: <Ihr-Zugriffsschlüssel>

{
  "productId": "0189a1b2c3d4...",
  "email": "kunde@example.com"
}

Eine gültige Anfrage liefert eine Erfolgsantwort; eine ungültige Produkt-ID oder E-Mail liefert einen 400-Fehler. Es gelten dieselben Konfigurationsregeln (Double-Opt-in, Gastzulassung usw.).

DSGVO-Konformität

  • E-Mail-Adressen werden ausschließlich für die angeforderte Benachrichtigung erfasst.
  • Das optionale Double-Opt-in erfasst eine ausdrückliche Einwilligung.
  • Das Standardverhalten löscht die personenbezogenen Daten, sobald die Benachrichtigung versendet wurde.
  • In die E-Mail-Vorlagen kann ein Abmeldelink mit einem Klick eingefügt werden.
  • Die Deinstallation mit Datenentfernung löscht die Tabelle, die Vorlagen, die Zusatzfelder und die Konfiguration.

6.5 → 6.7 Kompatibilität und Fehlerbehebung

Das Formular erscheint nicht bei einem ausverkauften Produkt. Prüfen Sie, ob „Warteliste aktivieren“ für den richtigen Verkaufskanal aktiviert ist, ob das Produkt im Closeout-Modus ist und ob sein verfügbarer Bestand null ist. Leeren Sie den Cache nach jeder Konfigurationsänderung.

Anmeldungen werden gespeichert, aber keine E-Mail wird versendet. Der Messenger-Worker und/oder der Planer laufen nicht. Starten Sie sie manuell zum Testen (siehe Abschnitt Worker) und stellen Sie dann sicher, dass sie in der Produktion durchgehend laufen.

Mail-Service-Fehler beim Aktivieren auf Shopware 6.7. Die abstrakte Mail-Service-Klasse wurde in 6.7 durch eine konkrete Klasse ersetzt. Das Plugin behandelt diesen Unterschied automatisch über einen Compiler-Pass, der den passenden Alias erstellt; ein einfaches cache:clear kompiliert den Container neu, falls der Fehler nach einem Update fortbesteht.

Die E-Mail wird in der falschen Sprache versendet. Die verwendete Sprache ist die des Verkaufskanals zum Zeitpunkt der Anmeldung. Prüfen Sie, ob der betreffende Kanal die erwartete Sprache hat und ob die E-Mail-Vorlage eine Übersetzung dafür besitzt.

E-Mails scheinen doppelt versendet zu werden. Das sollte nicht passieren: Die Verarbeitung ist idempotent und markiert (oder löscht) jeden Eintrag nach dem Versand. Falls Sie es beobachten, prüfen Sie, ob Sie nicht mehrere gleichzeitige Worker ohne passende Transport-Konfiguration ausführen.

Was passiert bei der Deinstallation? Mit der Datenlöschoption werden die Tabelle df_stock_notification, die beiden E-Mail-Vorlagen, das Feld-Set df_preorder, die geplante Aufgabe und die Konfiguration entfernt. Ohne sie bleibt alles für eine spätere Neuinstallation erhalten.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren