How do I add downloads to products? make products downloadable?

NOTE: CHECK OUT THE IMPORTANT FACTS ABOUT DOWNLOAD SETTINGS, near the bottom of this article ... 

Downloads are handled as product attributes.
So, FIRST you should familiarize yourself with: setting up attributes.

NOTE: Download files must be loaded (usually by FTP) to your store's  /download directory before trying to link those files to products/attributes .

Click here for a Video Tutorial covering many of the points in this article

To add a Download Attribute to a product

  1. Go to Option Names ... and create an Option Name that is either Radiobutton or Dropdown ...
    Call it something like:  Download
  2. Go to Option Values Manager and add what you want to call it ... 
    example: Zip File
    If you have multiple choices you could have these as the Option Names you create:
    - MS Word Zip
    - Note Pad Zip
    - etc.
  3. Go to Attributes Controller and find the Product ...
    Add the Attribute as:
    1. Option Name: Download
      Option Value: MS Word Zip
      Sort Order: 10
      Filename: (enter name of file you uploaded to the  /download folder)
    2. Option Name: Download
      Option Value: Note Pad Zip
      Sort Order: 20
      Filename: (enter name of file you uploaded to the  /download folder)

Now when shopping, the customer can choose the format.  Depending on your downloads you will want to adjust how you configure things.

If using Radio buttons and have multiple selections, be sure to set one as a default.


To make multiple downloads on the same product


For each download item, you need an Option Name 
For each Option Name, you need one or many Option Values depending on the choices needed ...

Let's use an example:
If you have 5 downloads on one Product you need 5 Option Names and 1 Option Value per name:

Option Names:
Download 1 Option Type: Radiobutton,  Sort Order 10
Download 2 Option Type: Radiobutton,  Sort Order 20
Download 3 Option Type: Radiobutton,  Sort Order 30
Download 4 Option Type: Radiobutton,  Sort Order 40
Download 5 Option Type: Radiobutton,  Sort Order 50

Option Values
Now ... for each Option Name you make an Option Value ...

The most common reason for having multiple downloads on a product is that the download is big so it is broken into parts for easier access and safer downloading.
In such a case, you just need 1 Option Value per Option Name ... this means you just have 5 downloads to go to the Product

If you have many multiple downloads, say each Product has 5 downloads you can pattern this so the names make sense when read on the screen

Example for 5 Downloads it would read:
Download 1 of 5
Download 2 of 5
Download 3 of 5
Download 4 of 5
Download 5 of 5

For 3 Downloads it would read:
Download 1 of 3
Download 2 of 3
Download 3 of 3


Make the Option Values as needed:
Option Values:
Option Name pick from dropdown Download 1
Option Value Name: of 1
Option Value Sort Order: 10

Option Name pick from dropdown Download 1
Option Value Name: of 2
Option Value Sort Order: 20

Option Name pick from dropdown Download 1
Option Value Name: of 3
Option Value Sort Order: 30

Option Name pick from dropdown Download 1
Option Value Name: of 4
Option Value Sort Order: 40

Option Name pick from dropdown Download 1
Option Value Name: of 5
Option Value Sort Order: 50

Then make a set for Download 2, 3, 4, 5

Note: when making these, only make patterns that match
Download 3 of 1 doesn't make sense so don't make an Option Name: of 1 for the Option Name: Download 3


Adding to Products via Attributes Controller
Now you can make the Attribute read correctly based on how many downloads ...
Note: You may find a better pattern of text so you don't get lost in making the Attributes ...

In Attributes Controller:

Option Name: Download 1
Option Value: of 5 [Download 1]
Download filename of file already uploaded to the /download folder.
Number of Days and Downloads

Option Name: Download 2
Option Value: of 5 [Download 2]
Download filename of file already uploaded to the /download folder.
Number of Days and Downloads

Option Name: Download 3
Option Value: of 5 [Download 3]
Download filename of file already uploaded to the /download folder.
Number of Days and Downloads

Option Name: Download 4
Option Value: of 5 [Download 4]
Download filename of file already uploaded to the /download folder.
Number of Days and Downloads

Option Name: Download 5
Option Value: of 5 [Download 5]
Download filename of file already uploaded to the /download folder.
Number of Days and Downloads

Don't worry on the Sort Order as you set the defaults when these were made ...

When done adding the Downloads ... just click on the Update Sort order button and all will sort nicely ...


==========================

Another way of looking at it:

1. Options Names Manager ...

Add an Option Name: Downloads (could have called this anything)
Option Type: Radiobutton or Dropdown

2. Option Values Manager ...
Add an Option Value:
Option Name: Downloads (from dropdown)
Option Value: PDF
Default Sort Order: 10

3. Attributes Controller ...

Find Product ...
Pick from Option Name dropdown: Downloads
Pick from Option Value dropdown: PDF [DOWNLOAD]
Enter the filename: test.zip or whatever
Enter the number of days
Enter the number of download attempts
Set as Default 
Set Sort Order (if needed or after adding you can run the Update Sort Orders)

Click Insert ...

If the file is already uploaded to the /download folder (and it needs to be), then you should see a green dot next to the filename ...

Now just test and make sure from add to cart to checkout to download that all is working for you.



Additional Notes about Downloads and Shipping Costs

Downloads know there are no shipping costs automatically due to the fact that you added a Download filename to the Attribute. 
Thus, Downloads should NOT be marked as Always Free Shipping, and should NOT be marked as Virtual Products.



File Permissions for Downloads

Files for download (ie: all the files in the "download" folder) should be marked as read-only. Setting to 644 should be sufficient.
The "download" folder itself is typically set to 755, which is the normal default permissions setting for folders.
If you are using download-by-redirect, then your "pub" folder needs to be read-write, typically 777 (or 755 on some hosts).



Important Facts about Download Settings

  1. Downloads are NOT Virtual Products so use:
    Product is Virtual: No, Shipping Address Required

  2. Downloads are NOT Always Free Shipping so use:
    Always Free Shipping: No, Normal Shipping Rules

  3. Downloads in an order by itself will never see the checkout_shipping page ... if you do then your Product is setup wrong for Downloads

  4. If not on a Windows server, meaning Linux/Unix, /pub should be writable (usually 777 or 755 depending on the host server) and Redirect should be ON
    If you cannot use Redirect ON, ask your hosting site why they cannot follow the symbolic link between the /download and /pub directories

  5. If on a Windows server, /pub does NOT need to be writable/777 since you do not use this directory because symlinks typically don't work on Windows servers, and Redirect is OFF since Redirect requires symlink support.

  6. Download filenames should not use special characters, spaces, etc

  7. Download files should be zipped for best results and best compatibility for most customers and most browsers.

  8. Download files should be loaded to the /download directory

  9. On the Admin->Catalog->Attributes Controller you should see a green dot next to the filename of the Download itself


ALSO:  See the Related Article below about Download Delivery Methods Explained
  • 2 Users Found This Useful
Was this answer helpful?

Related Articles

How can I find out what version of Zen Cart or PHP or MySQL I'm using?

To find out what version of Zen Cart or PHP or MySQL you are currently using, you can simply go...

Getting a BLANK PAGE? Here's the answer ...

If you're getting a blank page when trying to browse to a certain page on your store, or after...

What's New in the Upcoming v2.0 release?

Database Abstraction Layer and Sql CacheThe abstraction layer has been re-factored to include a...

Image Preparation - How-to

I've seen several posts where people obviously aren't quite sure about the best way to set up...

Some tips to modify stylesheet

1. Download Web Developer extension for FireFox here2. Install & restart FireFox. You should...