Sales Reports

Sales-Reporting-Plugin: Summiert Umsatz, Einheiten und Bestellungen nach Periode, Produkt und Kunde aus einer Payload-Bestellcollection.

Community 1 4/Wo. MIT v1.0.1

Installation

pnpm add payload-sales-reports

Über

Das Plugin liest eine Bestellcollection, etwa die aus @payloadcms/plugin-ecommerce oder eine gleichwertige eigene Collection, und erzeugt Verkaufssummen nach Periode, Produkt und Kunde. Es fügt keine Collection, kein Feld und keinen Hook hinzu, sodass das Datenbankschema unberührt bleibt. Alle Werte werden zur Abfragezeit durch seitenweises Auslesen der Bestellungen berechnet. Die Daten stehen über drei schreibgeschützte GET-Endpunkte unter der Payload-API-Route zur Verfügung: /sales-reports/summary, /sales-reports/by-product und /sales-reports/by-customer. Die gleichen Funktionen lassen sich auch ohne HTTP direkt als async-Funktionen aufrufen: salesReport, salesByPeriod, salesByProduct und salesByCustomer. Die Konfiguration ist gering. timeZone legt die IANA-Zeitzon fest, an der die Periodengrenzen geschnitten werden. isAdmin sichert jeden Endpunkt und prüft standardmäßig, ob 'admin' in req.user.roles enthalten ist. Die Option akzeptiert auch eine Funktion, falls die Users-Collection anders aufgebaut ist. statuses steuert, welche Bestellstatus als Verkauf zählen, und ist standardmäßig auf ['processing', 'completed'] gesetzt. pageSize bestimmt, wie viele Bestellungen pro Abfrage gelesen werden (Standard 500). maxOrders begrenzt die Anzahl der Bestellungen, die ein einzelner Report maximal liest, bevor er abbricht und truncated: true meldet. Die gesamte Bestelltabelle liegt nie im Speicher. Beträge werden als Ganzzahlen in kleinster Einheit zurückgegeben, entsprechend der Schreibweise des E-Commerce-Plugins (Math.round(value * 10 ** decimals)). Währungen werden nie summiert: Jede Zeile trägt ihre eigene currency. totals ist eine Liste mit einem Eintrag pro Währung, und der Parameter currency=EUR schränkt eine Antwort ein. Produktumsätze werden nur dann ausgewiesen, wenn die Bestellpositionen ein Amount-Feld haben. Eine Standardinstallation von createOrdersCollection setzt dieses Feld nicht, daher liefert byProduct immer die Felder units und orders und gibt revenueByProductAvailable: false zurück, sofern keine Positionsbeträge vorhanden sind. Eine Admin-Ansicht ist optional: Wer { Component, path } über adminView übergibt, registriert eine selbst geschriebene Ansicht, die im eigenen Projekt verbleibt und mit der genutzten Payload-Version läuft. Das Plugin liest nur Daten und führt keine Schreibvorgänge aus. Ungültige Optionswerte werden nicht übernommen, sondern durch Standardwerte ersetzt.

Paketinformationen

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

Mehr von Poseidonas

Profil ansehen

Ähnliche Plugins

Mehr in Commerce