Downloads
Продажа цифровых товаров через магазин на Payload: платный заказ открывает доступ к файлам по подписанным ссылкам с ограниченным сроком действия, которые перестают работать пос
Установка
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.
Похожие плагины
Ещё в категории «Коммерция»Product Reviews
Плагин добавляет в Payload v3 коллекцию reviews с оценкой от 1 до 5, модерацией статусов и данными aggregateRating для Google.
Stripe
Связывает коллекции Payload с ресурсами Stripe, обрабатывает webhook-события и проксирует вызовы API.
Tpay E-commerce Payment Adapter
Платёжный адаптер Tpay для @payloadcms/plugin-ecommerce: BLIK, банковские переводы и карты с проверкой вебхуков и учётом склада.
Google Merchant Center Ecommerce Integration
Синхронизируйте продукты из Payload CMS с Google Merchant Center.