PHPackages                             i-lateral/silverstripe-commerce-downloadableproduct - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. i-lateral/silverstripe-commerce-downloadableproduct

ActiveSilverstripe-module[File &amp; Storage](/categories/file-storage)

i-lateral/silverstripe-commerce-downloadableproduct
===================================================

Allow adding a file to a product that can be downloaded by users who buy it.

0963[1 PRs](https://github.com/i-lateral/silverstripe-commerce-downloadableproduct/pulls)PHP

Since May 3Pushed 8y ago3 watchersCompare

[ Source](https://github.com/i-lateral/silverstripe-commerce-downloadableproduct)[ Packagist](https://packagist.org/packages/i-lateral/silverstripe-commerce-downloadableproduct)[ RSS](/packages/i-lateral-silverstripe-commerce-downloadableproduct/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Silverstripe Commerce
=====================

[](#silverstripe-commerce)

Downloadable Product Module
---------------------------

[](#downloadable-product-module)

Add downloadable product type to the Silverstripe Commerce module that allows users to attach a file to a product that can only be downloaded when the user is logged in and has bought it.

Dependancies
------------

[](#dependancies)

- SilverStripe Framework 3.1.x
- Silverstripe Commerce

Installation
------------

[](#installation)

Install this module either by downloading and adding to:

```
[silverstripe-root]/commerce-downloadableproducts

```

Then run: dev/build/?flush=all

Or alternativly add use composer:

```
i-lateral/silverstripe-commerce-downloadableproduct

```

Usage
-----

[](#usage)

By default this module adds a "Downloadable Product" postage amount and sets up the mechanisams needed to buy and download products.

You will also need to do some additional tasks to ensure that users get the best experience and you keep your files secure.

**NOTE:** You will need to perform the following additional steps manually in order to gain the most from this module.

### Restrict the downloads folder (using Apache or IIS 7)

[](#restrict-the-downloads-folder-using-apache-or-iis-7)

The file downloads section of your Silverstripe install will need to be restricted (otherwise users could share the download links). You can do this in your .htaccess or web.config by adding the following:

```
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule assets/downloadable/* $frameworkDir/main.php?url=%1 [QSA]

```

Or alternativley, if you use web.config, add the following:

```

```

**NOTE:** The IIS script above **should** work, but has not been tested, some tweaking may be required.

### Add download link to orders pannel and emails

[](#add-download-link-to-orders-pannel-and-emails)

When you have access to a product in either the orders panel or an email then you can call $DownloadLink to render the download URL into the template. For example, in the order paid email you can add something,ike this:

```
OrderNotificationEmail_Customer.ss

            {$Title}
             (Download)
            ($StockID)
            $CustomisationHTML

        {$Quantity}
        {$Price.Nice}

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 82.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/c7d4998767cb41bf0048a65158559384fbab33751b26c996d6367019c68c4f8b?d=identicon)[DFT](/maintainers/DFT)

---

Top Contributors

[![mlewis-everley](https://avatars.githubusercontent.com/u/687143?v=4)](https://github.com/mlewis-everley "mlewis-everley (14 commits)")[![Makreig](https://avatars.githubusercontent.com/u/6011781?v=4)](https://github.com/Makreig "Makreig (3 commits)")

### Embed Badge

![Health badge](/badges/i-lateral-silverstripe-commerce-downloadableproduct/health.svg)

```
[![Health](https://phpackages.com/badges/i-lateral-silverstripe-commerce-downloadableproduct/health.svg)](https://phpackages.com/packages/i-lateral-silverstripe-commerce-downloadableproduct)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15161.6M2.6k](/packages/illuminate-filesystem)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)[madnest/madzipper

Easier zip file handling for Laravel applications.

1382.3M6](/packages/madnest-madzipper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
