Downloads

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

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

Установка

pnpm add payload-downloads

Описание

Плагин добавляет продажу цифровых товаров в магазин на Payload. Товар или вариант может содержать один или несколько файлов. После оплаты заказа покупатель получает подписанную ссылку, которая истекает, считает количество скачиваний и перестает работать при возврате заказа. Доступ выдаётся и отзывается через хук `afterChange` на коллекции заказов. Плагин добавляет коллекцию `download-grants` с одной записью на каждый заказ и файл, а также чекбокс `downloadable` и поле `downloadFiles` типа upload с `hasMany` в коллекциях товаров и вариантов. Добавляются два эндпоинта: `GET /api/downloads` для авторизованного покупателя и `GET /api/downloads/file` для отдачи байтов. Плагин работает с `@payloadcms/plugin-ecommerce` и с любой коллекцией заказов. Подписанные ссылки строятся на `node:crypto` HMAC-SHA256 и не требуют внешних зависимостей. Ключ выводится из секрета Payload, а не используется напрямую. В подписанное сообщение входят данные о гранте, заказе, файле и времени истечения, поэтому подпись нельзя перенести на другой файл, заказ или грант. Проверка выполняется через `timingSafeEqual`. Файл отдаётся через плагин, и путь к файлу, URL или ключ корзины никогда не попадает клиенту. Перед отдачей первого байта плагин перезагружает грант и отказывает, если грант отозван, истёк или превышен лимит. Это значит, что возврат заказа останавливает уже выданные ссылки. В настройках задаются лимит скачиваний, срок истечения в днях, TTL ссылки, статусы для выдачи и отзыва, слаги коллекций и флаг включения вариантов. Локальное хранилище работает без дополнительных настроек. Для облачных хранилищ требуется коллбэк `fileResolver`, потому что у Payload нет стабильного публичного API для чтения байтов из upload-документа, когда ими управляет адаптер хранилища. Админ-компонентов нет, что сохраняет совместимость плагина при минорных обновлениях Payload. Серверные хелперы вроде `downloadLinksForOrder`, `grantAccess` и `revokeAccess` экспортируются для использования в письмах о заказах и кастомных сценариях.

О пакете

Имя пакета
payload-downloads
Последняя версия
1.0.1
Размер
47 кБ
Лицензия
MIT
Загрузок в неделю
1
Последняя публикация
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.