A downloadable product is used to grant access to a file or page on your site. For example, a site that sells e-books will need to grant access to PDFs for customers who purchased the product. There are several ways to accomplish this.
Customers can access their downloadable files from the Manage Product Download module. It is a good idea to customize your Order Receipt email template to point customers to your download page.
You must mark the order as "Completed" or "Paid" before the customer is able to view their downloads from the Manage Product Download module. See how to automatically mark all incoming orders by visiting the How to force order and payment status topic.
Using link obscurity
The easiest way is to attach a file on your site to the variant. This is a quick and easy way to provide downloadable file. However, anyone who gets hold of the URL, will be able to download your file.
- From the Storefront administration Catalog > Products, create your new product as usual. See How to create a simple product for more information.
- Edit the variant details. Under the Resource tab, assign the Download file to an existing file on your site or upload a new file. Click Save.
Using secure folder
Your site is capable of securing file access by folder. This means you can upload your file to special secure folders and only grant the user access by a special role. Even if the URL is discovered, the user cannot download the file without permission.
- From the persona bar, open the Manage > Roles page, click Create New Role. Give it a name (e.g. "Paid Customers") and click Save.
- From the persona bar, open the Manage > Site Assets page. Start by creating a new folder. Give it a name (e.g. "Private") and choose Folder Type = "Secure" and click Save. Right mouse click the View Properties on the newly created folder. Under the Permissions tab, allow access to your newly created role (e.g. "Paid Customers") and remove access for other non-administrative roles. Click Save.
- Log in as host (superuser) of the site. From the Storefront administration, open the Configuration > Security settings page, select the Allowed roles to include your newly created role. Click Save. You only need to perform this step once. This is a security feature to prevent employees from creating products and granting themselves higher privilege roles on your site.
- From the Storefront administration Catalog > Products page, create your new product as usual. See How to create a simple product for more information.
- Edit the variant details. Under the Resource tab, assign the Download file to an existing file or upload a new file under the secure folder you created (e.g. "Private" folder).
- Under the variant's Action tab, set the Place order action rule to "Basic" and click Add new. Select "Grant role" and choose the newly created role (e.g. "Paid Customers"). Click Save. Now when the customers buy this product, they will be granted the role allowing them the permission to download the file located in the secure folder.
Another approach is to password protect the file. Many file types such as PDF, Word, Excel, etc. have built-in support for password protection that you can enable from the application editor (e.g. if you don't have Adobe Acrobat, you can even add a password to a PDF online here). If password protection is not available for your type of file, you may consider using any Zip software (e.g. 7-zip) to compress the file with a password.
You will only share the password with users who purchased the product. The password can be automatically sent by email as part of the receipt or using a custom mail immediately after checkout. You can even release the password as part of a Rights resource similar to how software license keys work. See Rights for more information.
Since the file is password protected, you can choose any form of way to distribute the file to users without worrying about pirating. This could be a public or private link located anywhere on your site, shared on the cloud service, shared by email attachment, or as part of the downloadable resource as explained above.