Sales Reports

Плагин отчётности по продажам: суммирует выручку, количество товаров и заказы по периоду, продукту и клиенту из коллекции заказов Payload.

Сообщество 1 4/нед MIT v1.0.1

Установка

pnpm add payload-sales-reports

Описание

Плагин читает коллекцию заказов (из `@payloadcms/plugin-ecommerce` или любую аналогичную) и формирует итоги по продажам с группировкой по периоду, продукту и клиенту. Данные доступны через обычные async-функции и через три GET-эндпоинта только для чтения в рамках API-маршрута Payload: `/sales-reports/summary`, `/sales-reports/by-product` и `/sales-reports/by-product` и `/sales-reports/by-customer`. Плагин не добавляет коллекцию, поле, хук или индекс, поэтому схема базы данных остаётся нетронутой, а все расчёты выполняются постраничным чтением заказов во время запроса. Конфигурация компактная. `timeZone` задаёт часовую зону IANA для разбиения периодов. `isAdmin` проверяет доступ ко всем эндпоинтам и по умолчанию ищет `'admin'` в `req.user.roles`, но принимает функцию, чтобы можно было использовать коллекцию пользователей с другой структурой. `statuses` определяет, какие статусы заказа считаются продажей; по умолчанию это `['processing', 'completed']`. `limit` ограничивает число строк в отчётах `byProduct` и `byCustomer`, `pageSize` контролирует, сколько заказов читается за один запрос, а `maxOrders` ограничивает максимальное число заказов, которое отчёт обработает до остановки с флагом `truncated: true`. Заказы читаются страницами, поэтому вся таблица заказов никогда не находится в памяти целиком. Суммы возвращаются целыми числами в минорных единицах, как и в ecommerce-плагине (`Math.round(value * 10 ** currency.decimals)`). Плагин не суммирует разные валюты: каждая строка несёт свою `currency`, `totals` представляет собой список с одной записью на валюту, а параметр `currency=EUR` сужает ответ. Выручка по продуктам доступна только если строки заказа содержат поле суммы, которое стандартная установка `createOrdersCollection` не задаёт, поэтому `byProduct` всегда возвращает `units` и `orders` и сообщает `revenueByProductAvailable: false`, если суммы по строкам отсутствуют. React-компонент в комплекте не идёт. Административный экран опционален: передайте `{ Component, path }` через `adminView`, чтобы зарегистрировать собственное представление, которое вы пишете в своём проекте рядом с используемой версией Payload. Плагин только читает данные и ничего не записывает. Недопустимые значения параметров сбрасываются к значениям по умолчанию вместо применения.

О пакете

Имя пакета
payload-sales-reports
Последняя версия
1.0.1
Размер
35 кБ
Лицензия
MIT
Загрузок в неделю
4
Последняя публикация
21 авг. 2026 г.

Ещё от Poseidonas

Профиль автора

Barcodes

Добавляет штрихкоды Code 128, EAN-13 и QR в коллекции товаров Payload с печатью этикеток и опциональными кнопками в админке.

AI Manager

Плагин Payload для автогенерации товарных описаний, заголовков, атрибутов и переводов через Claude, ChatGPT, Gemini или Kimi с пропуском уже сгенерированного контента.

EU VAT

Рассчитывает НДС ЕС для магазинов на Payload и записывает разбивку по каждому заказу: ставки, реверсивный заряд, проверку VIES и отчёт OSS.

Stock Reservation

Проверяет наличие варианта и цену до оплаты, резервирует остатки до подтверждения и закрывает пробелы чекаута в официальном плагине Payload ecommerce.

Stock Alerts

Отправляет письмо при падении остатков товара или варианта ниже порога, с поддержкой бэкордера и публичным полем статуса.

Shipping Rates

Добавляет зоны доставки, расчет стоимости и endpoint для quoted в магазинах на @payloadcms/plugin-ecommerce.