Invoices

Lückenlos nummerierte Rechnungen und Gutschriften für Payload-Ecommerce-Bestellungen mit eingefrorenen Preis-Snapshots und PDF-Erzeugung ohne Laufzeitabhängigkeiten.

Community 1 4/Wo. MIT v1.0.1

Installation

pnpm add payload-invoices

Über

Das Plugin stellt sequenziell nummerierte Rechnungen und Gutschriften für Bestellungen aus, die mit @payloadcms/plugin-ecommerce erstellt wurden. Es bindet sich an eine beliebige Bestellsammlung (Standard-Slug `orders`) und fügt zwei eigene Sammlungen hinzu: `invoices` für die Rechnungsdokumente und `invoice-counters` für die Zähler pro Serie und Jahr, die der Nummerierung zugrunde liegen. Die Kernfunktion ist eine lückenlose Nummerierung. Eine Nummer wird über einen Compare-and-Set-Schreibvorgang auf einem einzelnen Zählerdokument reserviert. Dieser Schreibvorgang erfolgt innerhalb der Transaktion des Aufrufers. Schlägt das Speichern der Rechnung fehl, wird der Zähler mit zurückgesetzt, sodass kein Dokument entsteht, das eine Lücke hinterlässt. Ein eindeutiger Index auf der Nummer verhindert Duplikate. Voraussetzung dafür ist PostgreSQL oder MongoDB mit Replica Set, damit Payload jede Anfrage in einer Transaktion ausführt. Das gilt nur für Dokumente, die das Plugin selbst schreibt. Jede Rechnung speichert einen eingefrorenen Snapshot. Zeilenpreise werden zum Zeitpunkt der Ausstellung in der Währung der Bestellung vom Produkt oder der Variante gelesen und im Dokument fixiert. Spätere Preisänderungen können eine vergangene Rechnung nicht mehr verändern. Alle Beträge sind durchgehend Ganzzahlen in kleinsten Währungseinheiten. Das Plugin lehnt gebrochene Beträge ab, anstatt sie zu runden. Stimmen die aufgelösten Zeilen nicht mit dem abgerechneten Betrag überein, kann das Plugin je nach Konfiguration eine markierte Ausgleichszeile einfügen oder einen Fehler werfen. Das PDF wird von einem rund 200 Zeilen umfassenden Encoder erzeugt, der im Paket enthalten ist. Er hat keine Laufzeitabhängigkeiten und importiert Payload zur Laufzeit nicht. Das Standardnummernformat ist `SERIES-YEAR-00001` und wird jährlich zurückgesetzt. Gutschriften erhalten eine eigene Serie. Die Ausstellung erfolgt durch Aufruf von `issueInvoice` oder `issueCreditNote` oder automatisch über einen `afterChange`-Hook, der an Bestellstatus gebunden ist. Das PDF zu einem Dokument wird unter `GET /api/invoices/:id/pdf` bereitgestellt. Admin-UI-Komponenten sind nicht enthalten, was das Plugin über kleinere Payload-Releases stabil hält.

Paketinformationen

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

Mehr von Poseidonas

Profil ansehen

Ähnliche Plugins

Mehr in Commerce