Sell digital files (PDF, ZIP, video, software) from your Contensio site. Stripe Checkout handles payments, download links are delivered by email, and each purchase can optionally include an auto-generated license key.
- Products - create digital products with title, description, cover image, and price
- Files per product - attach multiple files (external URL or local private storage)
- Stripe Checkout - redirect buyers to Stripe-hosted checkout; webhook confirms payment
- Free products - skip Stripe entirely for price = 0 products
- License keys - optional auto-generated XXXX-XXXX-XXXX-XXXX key per purchase
- Download limits - configurable per-product download attempt limit (0 = unlimited)
- Secure tokens - time-limited download tokens sent by email; expire after a configurable TTL
- Order management - admin dashboard with revenue stats, order list, and detail view
- Download log - per-order history of every file download (file, IP, timestamp)
- Enable the plugin in the admin Plugins panel.
- Go to Digital Downloads > Settings and enter your Stripe API keys.
- Create a Stripe webhook pointing to
https://yoursite.com/digital-downloads/webhookand add the webhook secret to settings. Subscribe the webhook to thecheckout.session.completedevent. - Create your first product under Digital Products.
In any Blade template or page partial:
@include('contensio-digital-downloads::partials.buy-button', ['slug' => 'my-ebook'])Or pass the model directly:
@include('contensio-digital-downloads::partials.buy-button', ['product' => $product])Each file attached to a product uses one of two storage types:
- URL - the download controller redirects to the URL. Suitable for CDN-hosted or S3 files that have their own access control.
- Local - the file is stored on the
privatestorage disk and streamed through PHP on download. Suitable for files that must not be publicly accessible.
AGPL-3.0-or-later. See LICENSE file.