Abandoned Cart

Markiert inaktive Payload-Warenkörbe als verlassen, verschickt eine zeitgesteuerte Wiederherstellungs-Mail-Sequenz und schreibt zurückgewonnene Bestellungen zu.

Community 1 4/Wo. MIT v1.0.1

Installation

pnpm add payload-abandoned-cart

Über

Das Plugin erweitert `@payloadcms/plugin-ecommerce` um Felder und Endpunkte, ohne bestehende Collections zu ersetzen. Es trägt nach Ablauf einer konfigurierbaren Inaktivitätszeit (`idleMinutes`, Standard 60) einen Zeitstempel `abandonedAt` in den Warenkorb ein und verschickt eine zeitgesteuerte Sequenz von Wiederherstellungs-E-Mails. Wenn ein Kunde über einen Wiederherstellungs-Link zurückkehrt, validiert der Endpunkt `GET /abandoned-cart/recover` ein ablaufendes Token und leitet zur Storefront weiter, dabei wird das Cart-Secret übergeben, sodass auch Gäste ihren Warenkorb wieder aufnehmen können. Die Attribution der Bestellung erfolgt über `afterChange`-Hooks, die mit `req.context` die Brücke zwischen Warenkorb und Bestellung innerhalb einer Anfrage schlagen. Die eigentliche Arbeit übernimmt `POST /abandoned-cart/sweep`: Markieren und Versenden passieren in einem Durchlauf, sodass sich der Endpunkt mit einem Bearer-Secret per Cron ansteuern lässt. Die Funktionen `markAbandonedCarts`, `sendRecoveryEmails`, `runAbandonedCartSweep` und `recoverCart` werden ebenfalls exportiert, falls die Logik aus eigenem Code oder einem eigenen Scheduler heraus aufgerufen werden soll. Es gibt keine Scheduler-Abhängigkeit und keine eigene Mail-Bibliothek, alle Nachrichten laufen über `payload.sendEmail` und nutzen den bereits konfigurierten E-Mail-Adapter des Hosts. Die Wiederherstellungs-Sequenz besteht aus Steps, deren `delayMinutes` ab `abandonedAt` und nicht ab der jeweils vorherigen Nachricht berechnet werden. Das hält den Zeitplan lesbar, auch wenn Steps hinzukommen oder entfallen. Ein Template ist entweder ein Paar von Strings mit `{{placeholder}}`-Tokens oder eine Funktion, die ein Context-Objekt mit `cartID`, `itemCount`, `subtotalFormatted`, `recoveryURL`, `step` und weiteren Feldern erhält. Standardmäßig werden zwei Nachrichten verschickt, nach 60 und nach 1440 Minuten. Token-Lebensdauer (`tokenTtlHours`, Standard 336), Attribution-Fenster (`attributionWindowHours`, Standard 168), `markLimit` (Standard 200) und `sendLimit` (Standard 100) sind konfigurierbar. Die Option `disabled` stoppt Markieren, Versenden und Attribuieren, behält aber alle Felder, sodass die Datenbankstruktur erhalten bleibt. Das Plugin muss nach `ecommercePlugin` geladen werden, da es die Collections erweitert, die jenes Plugin definiert. Zum Versand wird eine E-Mail-Adresse benötigt: Zuerst wird `customerEmail` auf dem Warenkorb gelesen, andernfalls wird auf den Kundendatensatz zurückgegriffen. Für Gäste muss die Storefront die Adresse zu Beginn des Checkouts erfassen. Die Attribution setzt voraus, dass das E-Commerce-Plugin die Bestellung erstellt und den Warenkorb in derselben Anfrage als gekauft markiert, da die Bestellung keinen Verweis auf den Warenkorb trägt. Wenn der Orders-Slug fehlt, werden zurückgewonnene Verkäufe zwar auf dem Warenkorb, aber nicht auf einer Bestellung markiert.

Paketinformationen

Paketname
payload-abandoned-cart
Neueste Version
1.0.1
Entpackte Größe
53 kB
Lizenz
MIT
Wöchentliche Downloads
4
Zuletzt veröffentlicht
21. Aug. 2026

Mehr von Poseidonas

Profil ansehen

Ähnliche Plugins

Mehr in Commerce