Selling digital downloads


Is it possible to sell dowloads such as photographs, PDF’s, video clips and audio files with Commerce? And if so, does this create a customer account where they can return and re-download the file if they need to?

Many Thanks - Mark.

Heya Mark! :slight_smile:

On its own, Commerce doesn’t really care what it is you’re selling. Products can be anything.

For digital products, you’d typically want a way to automate the “delivery”. There are 2 extensions available for that right now that would be of use there.

The first is UserGroupShipment, which allows you to set a per-product usergroup that a customer will be assigned to when their order is paid. This is useful for when you sell access to a private section of the website, for example. Combine that with static resources and resource group ACLs in MODX, and you could build the use case you’re looking for. As that’s an extension I built, the extension is covered by modmore support.

Perhaps more interesting, but out of the scope of modmore support as it’s third party, is the aptly named Digital Product extension by Tony Klapatch. It lets you define digital products as files or resources, too, and integrates with the checkout/emails to include download links.

Compared to the UserGroupShipment extension, it doesn’t look like Digital Product requires you to dable with ACLs or static resources for your use case.

I’ve not yet had the time to test it out myself (it’s fairly new), but Tony has delivered some great extensions in the past, so I’m sure it works great.

As for the accounts, the Commerce checkout has an account step built in before the address information. That works with standard MODX users, and you can configure it to be always required for the digital products use case. Commerce does not know how to create users from a provided address (i.e. a “Create account” checkbox), but that’s something that could be added as a module, and is also on my to-do list for after 1.0.

1 Like

As Mark said, there is my Digital Product module for selling files and resources. It also integrates the features of UserGroupShipment as well since you cannot use both at the same time for the same delivery type.

Right now it supports redirections as well as forcing the download (fetching file via CURL and hiding the URL). You can also implement your own download method snippets(ex, storing the file on S3 / CloudFront signed URLs). You can set the max downloads of a file/resource as well as expiration time.

Here’s more information on it:

Let me know if you need any help with it or have any suggestions :slightly_smiling_face: