PS PrestaShop Anfänger

dfsavecart — Warenkorb-Speicherung mit Magic Link

Installation, Konfiguration und Nutzung des Magic-Link-Warenkorb-Moduls für PrestaShop 8 und 9.

Aktualisiert Modulversion 1.0.0

Überblick

dfsavecart fügt der Warenkorb-Seite Ihres PrestaShop-8- oder -9-Shops eine Funktion „Für später aufbewahren“ hinzu. Der Besucher, eingeloggt oder als Gast, gibt seine E-Mail-Adresse ein und erhält einen sicheren Link („Magic Link“), der seinen exakten Warenkorb wiederherstellt — gleiche Produkte, gleiche Mengen — auf jedem Gerät, jederzeit innerhalb der konfigurierten Gültigkeitsdauer.

Das Modul ist nicht intrusiv: Es beeinflusst weder den Bestellprozess noch den Checkout oder andere Module. Es arbeitet mit dem nativen E-Mail-System von PrestaShop (und damit mit Ihrem bestehenden SMTP).

Voraussetzungen

  • PrestaShop 8.0.x bis 9.x
  • PHP 8.1 oder höher
  • MySQL 5.7+ oder MariaDB 10.3+
  • Funktionierender E-Mail-Versand (Erweiterte Einstellungen > E-Mail — testen Sie den Versand vor der Modulinstallation)

Installation

  1. Laden Sie die Datei dfsavecart.zip aus Ihrem DataFirefly-Konto herunter.
  2. Gehen Sie im PrestaShop-Backoffice zu Module > Modul-Manager.
  3. Klicken Sie auf Modul hochladen und wählen Sie das ZIP aus.
  4. PrestaShop installiert das Modul automatisch: Die Tabelle ps_df_savecart wird erstellt und die Hooks registriert.
  5. Klicken Sie auf Konfigurieren, um zu den Einstellungen zu gelangen.

Es werden keine Klassen- oder Controller-Overrides installiert: Die Deinstallation ist sauber und rückstandsfrei (Tabelle und Konfigurationsschlüssel werden entfernt).

Konfiguration

Alle Einstellungen befinden sich auf einer einzigen Seite: Module > Modul-Manager > dfsavecart > Konfigurieren.

Haupteinstellungen

  • Modul aktivieren — Hauptschalter. Deaktiviert verschwindet der Block aus dem Frontoffice, ohne zu deinstallieren.
  • Button-PositionWarenkorb-Fuß (empfohlen, Hook displayShoppingCartFooter), Im Warenkorb (Hook displayShoppingCart) oder Beides. Die Wahl hängt von Ihrem Theme ab: Prüfen Sie die Darstellung auf der Warenkorb-Seite nach der Änderung.
  • Gültigkeitsdauer des Links — von 1 bis 365 Tagen, 30 Standard. Danach läuft der Link ab und der Eintrag wird bereinigt.

Sicherheit und Anti-Spam

  • Limit pro E-Mail / Tag — maximale Anzahl von Versendungen für dieselbe Adresse in gleitenden 24 h (10 Standard). 0 zum Deaktivieren. Der Zähler basiert auf einem gesalzenen Hash der E-Mail: Die Adresse wird für diese Funktion nicht im Klartext gespeichert.
  • Einmal-Link — wenn aktiviert, wird der Link nach der ersten Wiederherstellung ungültig. Nützlich für vertrauliche Warenkörbe (B2B, Angebote).

Wiederherstellungsverhalten

  • Aktuellen Warenkorb vor der Wiederherstellung leeren — standardmäßig aktiviert. Wenn deaktiviert, werden die Produkte des Links zum laufenden Warenkorb hinzugefügt (kumulativ).

DSGVO und E-Mail

  • DSGVO-Einwilligung anfordern — zeigt vor dem Versand ein Pflicht-Kästchen an (standardmäßig aktiviert, empfohlen).
  • BCC an den Händler senden — fügt die Kontakt-E-Mail des Shops bei jedem Versand als BCC hinzu, für interne Nachverfolgung.
  • E-Mail-Betreff (pro Sprache) — für jede aktive Shop-Sprache anpassbar. Verfügbare Variablen: {shop_name} und {firstname}.

Funktionsweise für den Kunden

  1. Der Kunde legt Produkte in seinen Warenkorb und öffnet die Warenkorb-Seite.
  2. Er sieht den Block „Diesen Warenkorb für später aufbewahren“ mit einem E-Mail-Feld (vorausgefüllt, wenn eingeloggt).
  3. Er gibt seine E-Mail ein, setzt das Einwilligungshäkchen falls verlangt, und klickt auf Link senden.
  4. Er erhält eine E-Mail mit einer Warenkorb-Zusammenfassung (Produkte, Mengen, geschätzter Gesamtbetrag), dem Ablaufdatum und einem Button Warenkorb wiederherstellen.
  5. Ein Klick auf den Button stellt den exakten Warenkorb wieder her und leitet zur Warenkorb-Seite weiter, mit einer Bestätigungsmeldung.

Sonderfälle bei der Wiederherstellung

  • Deaktiviertes oder gelöschtes Produkt — die Zeile wird übersprungen und der Kunde per Meldung über die nicht verfügbaren Produkte informiert.
  • Unzureichender Bestand — die Menge wird auf das verfügbare Maximum angepasst, mit einer Meldung über die Anpassung.
  • Abgelaufener oder bereits verwendeter Link (Einmal-Modus) — eine schlichte Fehlerseite wird angezeigt, mit Links zum aktuellen Warenkorb und zur Startseite.
  • Sprache und Währung — die des ursprünglichen Warenkorbs werden wiederhergestellt.

E-Mails

HTML- und Text-Vorlagen werden in Französisch, Englisch, Spanisch und Deutsch in modules/dfsavecart/mails/{iso}/savecart.html und savecart.txt mitgeliefert. Verwendet wird die Sprache des Warenkorbs zum Zeitpunkt der Speicherung.

Verfügbare Variablen in den Vorlagen: {firstname}, {shop_name}, {restore_link}, {cart_items_html}, {cart_items_txt}, {cart_total}, {expiry_date}.

Um Vorlagen dauerhaft anzupassen, duplizieren Sie sie in den mails-Ordner Ihres Themes, statt die des Moduls zu bearbeiten: Diese würden beim Update überschrieben.

Sicherheit

  • 256-Bit-Token — erzeugt von random_bytes(32), dem kryptografisch sicheren Generator von PHP. 64 Hexadezimalzeichen in der URL.
  • Hash-Speicherung — nur der SHA-256-Fingerabdruck des Tokens wird in der Datenbank gespeichert. Bei einer Kompromittierung der Datenbank kann kein Link rekonstruiert werden.
  • CSRF — der AJAX-Speicher-Endpoint prüft das PrestaShop-Sitzungstoken.
  • Strikte Validierung — das Token-Format wird serverseitig geprüft ([a-f0-9]{64}), bevor eine Datenbankabfrage erfolgt.

DSGVO

  • Konfigurierbare ausdrückliche Einwilligung vor dem E-Mail-Versand.
  • Für das Anti-Spam-Limit wird die E-Mail nicht im Klartext aufbewahrt: Es wird nur ein gesalzener Hash (mit dem geheimen Schlüssel des Shops) verwendet.
  • Abgelaufene Datensätze werden automatisch gelöscht (Bereinigung) — siehe nächster Abschnitt.
  • Es werden keine Daten an Drittanbieter übermittelt: Alles bleibt in Ihrer PrestaShop-Datenbank.
  • Bei einem Löschantrag eines Kunden löschen Sie dessen Zeilen in der Tabelle ps_df_savecart (Spalte email).

Drei Optionen, von der einfachsten zur am stärksten automatisierten:

  1. Manueller Button — auf der Konfigurationsseite des Moduls, „Abgelaufene Einträge bereinigen“.
  2. CronJobs-Modul — installieren Sie das kostenlose CronJobs-Modul von PrestaShop: Der Hook actionCronJob des Moduls wird automatisch aufgerufen und löst die Bereinigung aus.
  3. System-Crontab — planen Sie einen regelmäßigen Aufruf des Shop-Crons entsprechend Ihrer Serverkonfiguration.

Statistiken

Die Konfigurationsseite zeigt vier Echtzeit-Zähler: gesamt gespeichert, aktiv (nicht abgelaufen), abgelaufen (Bereinigung ausstehend) und wiederhergestellt (mindestens einmal verwendete Links). Das Verhältnis wiederhergestellt / gesamt ergibt die Conversion-Rate der Funktion.

Multishop

Das Modul ist Multishop-kompatibel: Jede Speicherung merkt sich die ID des Ursprungs-Shops, die bei der Wiederherstellung verwendet wird. Die Konfiguration folgt dem Standard-Shop-Kontext von PrestaShop.

Fehlerbehebung

Die E-Mail kommt nicht an

  • Prüfen Sie den globalen E-Mail-Versand des Shops: Erweiterte Einstellungen > E-Mail > Versand testen.
  • Prüfen Sie den Spam-Ordner des Empfängers.
  • Prüfen Sie die Logs: Erweiterte Einstellungen > Logs (Modulfehler haben das Präfix [dfsavecart]).

Der Block erscheint nicht auf der Warenkorb-Seite

  • Prüfen Sie, ob das Modul in seiner Konfiguration aktiviert ist.
  • Prüfen Sie, ob der Warenkorb mindestens ein Produkt enthält (der Block ist bei leerem Warenkorb ausgeblendet).
  • Prüfen Sie die gewählte Position: Manche Themes implementieren den Hook displayShoppingCartFooter nicht — wechseln Sie dann auf „Im Warenkorb“ oder „Beides“.
  • Leeren Sie den Cache: Erweiterte Einstellungen > Leistung > Cache leeren.

Meldung „Ungültiges Sicherheitstoken“

  • Die Warenkorb-Seite war zu lange geöffnet und die Sitzung ist abgelaufen: Aktualisieren Sie die Seite und versuchen Sie es erneut.

Meldung „Zu viele Anfragen für diese Adresse“

  • Das tägliche Anti-Spam-Limit für diese E-Mail wurde erreicht. Erhöhen Sie das Limit in der Konfiguration oder warten Sie 24 h.

Deinstallation

Die Deinstallation entfernt die Tabelle ps_df_savecart (alle gespeicherten Warenkörbe gehen verloren) und sämtliche Konfigurationsschlüssel. Es bleiben keine Rückstände in der Datenbank oder auf der Festplatte.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren