PS PrestaShop Anfänger

DataFirefly Price Alert — Dokumentation

Installation, Konfiguration, Alarmmodi, Cron, Conversion-Tracking und Fehlerbehebung des Preissenkungs-Alarm-Moduls für PrestaShop 8 und 9.

Aktualisiert Modulversion 1.0.3

Übersicht

DataFirefly Price Alert fügt Ihrem PrestaShop-8- oder -9-Shop einen Preissenkungs-Alarm hinzu. Besucher melden sich auf der Produktseite an (mit oder ohne Kundenkonto), wählen zwischen zwei Modi — jede Senkung oder Zielpreis — und erhalten eine E-Mail, sobald der Preis fällt. Jede Bestellung eines benachrichtigten Abonnenten wird automatisch als Konversion zugeordnet, mit dem wiedergewonnenen Umsatz sichtbar im Admin-Dashboard.

Installation

  1. Gehen Sie im Backoffice zu Module → Modul-Manager → Modul hochladen.
  2. Laden Sie die Datei dfpricealert-x.x.x.zip hoch.
  3. Klicken Sie auf Installieren. Das Modul erstellt zwei Tabellen (df_pricealert_subscriber und df_pricealert_event), registriert seine Hooks und fügt den Tab Price Alerts unter Katalog hinzu.

Keine Composer-Abhängigkeit erforderlich: das Modul bringt einen eigenständigen PSR-4-Autoloader mit. Mindestens PHP 8.0.

Konfiguration

Gehen Sie zu Module → DataFirefly Price Alert → Konfigurieren. Verfügbare Einstellungen:

  • Double Opt-in (DSGVO) — standardmäßig aktiv. Der Abonnent erhält eine Bestätigungs-E-Mail und der Alarm wird erst nach dem Klick aktiv. Für die DSGVO-Konformität dringend empfohlen.
  • Standard-Alarmmodus — der im Formular vorausgewählte Modus: jede Senkung oder Zielpreis. Der Kunde kann jederzeit wechseln.
  • FormularpositiondisplayProductActions (unter dem Kaufen-Button) oder displayProductAdditionalInfo (Zusatzinformations-Bereich).
  • Mindest-Preisrückgang in Prozent — im Modus jede Senkung: Senkungen unter N % ignorieren. 0 = jede Senkung löst aus.
  • Händler-Alarm-Schwellenwert — erhalten Sie eine E-Mail, wenn ein Produkt N aktive Abonnenten erreicht. 0 deaktiviert.
  • Händler-E-Mail — Empfänger des obigen Alarms (Standard: Shop-E-Mail).
  • Aufbewahrung (Tage) — Auto-Bereinigung abgemeldeter/benachrichtigter Abonnenten älter als N Tage. 180 Standard, 0 deaktiviert.

Funktionsweise auf Kundenseite

Anmeldung

Das Formular ist auf der Produktseite immer sichtbar. Der Kunde gibt seine E-Mail ein und wählt:

  • Jede Preissenkung — er wird bei der ersten Reduktion unter den bei der Anmeldung angezeigten Preis benachrichtigt (vorbehaltlich des konfigurierten Mindestschwellenwerts).
  • Wenn er erreicht — er gibt einen Zielpreis ein, zwingend unter dem aktuellen Preis. Der Alarm wird nur ausgelöst, wenn der Preis auf dieses Niveau oder darunter fällt.

Hat das Produkt Varianten, wird die gewählte Variante automatisch erfasst — und aktualisiert, wenn der Kunde vor dem Absenden die Variante wechselt.

Bestätigung (Double Opt-in)

Bei aktivem Double Opt-in erhält der Abonnent eine Bestätigungs-E-Mail. Der Alarm bleibt im Status pending bis zum Klick, dann wechselt er zu active. Ohne Double Opt-in ist der Alarm sofort aktiv.

Benachrichtigung

Wird eine berechtigte Senkung erkannt, erhält der Abonnent eine E-Mail mit dem durchgestrichenen alten Preis, dem neuen Preis, dem Rabatt-Prozentsatz, der Ersparnis und einem direkten Link zum Produkt. Sein Status wechselt zu notified — er erhält keine weitere E-Mail für dieselbe Anmeldung.

Senkungserkennung: die drei Trigger

Das Modul erkennt Preissenkungen über drei komplementäre Kanäle:

  1. Hook actionObjectProductUpdateAfter — feuert bei jedem Produkt-Speichern im Backoffice. Deckt manuelle Preisänderungen mit null Latenz ab.
  2. Hook actionUpdateProductAttribute — feuert bei Varianten-Bearbeitungen. Deckt Preisänderungen pro Variante ab.
  3. CLI-Befehl bin/scan-prices.php — in den Cron einbinden. Unverzichtbar für geplante Specific Prices, die zu einem Datum aktiv werden, ohne einen Hook auszulösen.

Cron einrichten

*/30 * * * * php /pfad/zu/ihrem/shop/modules/dfpricealert/bin/scan-prices.php --shop=1 >> /var/log/dfpricealert.log 2>&1

Der Parameter --shop ist optional (sonst Standard-Shop). Der Befehl gibt die Anzahl der versandten Alarme und die Ausführungszeit aus.

Empfohlene Konfiguration: Hooks aktiv lassen (null Latenz bei manuellen Änderungen) und den Cron alle 30 Minuten hinzufügen, um geplante Aktionen abzudecken.

Conversion-Tracking

Im Hook actionOrderStatusPostUpdate durchläuft das Modul jede Bestellzeile und sucht einen Abonnenten im Status notified, der zum Tripel (Kunden-E-Mail, Produkt-ID, Varianten-ID) passt. Bei Treffer wechselt der Abonnent zu purchased und die id_order wird gespeichert.

Der Abgleich akzeptiert sowohl die exakte Variante als auch eine generische Anmeldung (Variante 0) — Produkte ohne Varianten und „Hauptprodukt“-Anmeldungen werden daher korrekt zugeordnet. Das Tracking funktioniert auch im Gast-Checkout, da der Abgleich per E-Mail erfolgt.

Admin-Dashboard

Der Tab Katalog → Price Alerts zeigt:

  • 6 KPIs — aktive Abonnenten, benachrichtigt, konvertiert, Konversionsrate, durchschnittlich akzeptierter Rückgang, wiedergewonnener Umsatz.
  • Heiße Produkte — Top 10 der Produkte nach Anzahl aktiver Abonnenten, mit durchschnittlichem Anmeldepreis. Ihre Prioritätsliste für eine gezielte Promotion.
  • Abonnentenliste — filterbar nach Status, E-Mail und Produkt, paginiert mit 25 Zeilen.
  • Aktionen — alle Produkte sofort scannen, alte Einträge bereinigen, vollständige Liste als CSV exportieren.

Lebenszyklus eines Abonnenten

Jede Anmeldung durchläuft folgende Status:

  • pending — angemeldet, wartet auf Bestätigung (Double Opt-in).
  • active — Alarm aktiv, von den Scans überwacht.
  • notified — Senkungs-E-Mail versandt. Endstatus außer bei Kauf.
  • purchased — Bestellung nach Benachrichtigung erkannt, Konversion zugeordnet.
  • unsubscribed — abgemeldet über den Link in jeder E-Mail.

Jeder Übergang wird in der Tabelle df_pricealert_event protokolliert (vollständiger Audit-Trail).

E-Mails

Drei Vorlagen, jeweils in FR/EN/ES/DE im HTML- + Textformat enthalten:

  • confirm — Double-Opt-in-Bestätigung mit Aktivierungs-Button.
  • alert — Senkungs-Benachrichtigung: alter Preis durchgestrichen, neuer Preis hervorgehoben, Ersparnis in Euro und Prozent, Button zum Produkt.
  • merchant — Händler-Benachrichtigung, wenn ein Produkt den Schwellenwert aktiver Abonnenten überschreitet.

Die E-Mail wird in der Sprache des Abonnenten versandt (Seitensprache bei der Anmeldung), mit automatischem Fallback auf Englisch, wenn die Sprache nicht verfügbar ist. Die Vorlagen sind in modules/dfpricealert/mails/<iso>/ anpassbar.

DSGVO

  • E-Mail-Double-Opt-in vor Aktivierung (standardmäßig aktiv).
  • Kryptografische 32-Byte-Tokens (random_bytes), eindeutig pro Abonnent, für Bestätigung und Abmeldung.
  • Ein-Klick-Abmeldelink in jeder E-Mail.
  • Konfigurierbare Auto-Bereinigung alter Daten (Datenminimierung).
  • Keine Daten an Drittanbieter — alles bleibt auf Ihrem Server.

Fehlerbehebung

Alarme werden nicht versandt

  • Prüfen Sie, dass der Abonnent im Status active ist (nicht pending — Double Opt-in erfordert die Bestätigung).
  • Prüfen Sie den Mindest-Schwellenwert: eine Senkung von 3 % bei einem Schwellenwert von 5 % löst nicht aus.
  • Im Zielpreis-Modus muss der Preis das Ziel erreichen oder unterschreiten — nicht nur fallen.
  • Bei geplanten Specific Prices: prüfen Sie, ob der Cron läuft (Log konsultieren).
  • Testen Sie den PrestaShop-E-Mail-Versand allgemein (Erweiterte Einstellungen → E-Mail → Test).

Fehler bei der Anmeldung

Das Modul protokolliert alle Fehler unter Erweiterte Einstellungen → Logs mit dem Präfix [dfpricealert]. Das Formular zeigt Serverfehler zudem detailliert direkt unter dem Button an (HTTP-Status und Auszug der Antwort), was die Diagnose beschleunigt.

Das Formular erscheint nicht

  • Prüfen Sie die konfigurierte Position: manche Themes implementieren displayProductAdditionalInfo nicht — wechseln Sie zu displayProductActions.
  • Leeren Sie den PrestaShop-Cache (Erweiterte Einstellungen → Leistung).

Deinstallation

Die Deinstallation entfernt die beiden Tabellen des Moduls (Abonnenten und Events inklusive), die Hooks, den Admin-Tab und alle Konfigurationsschlüssel. Exportieren Sie vorher das CSV, wenn Sie die Historie behalten möchten.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren