This is the documentation for the Spiral Paid Download Plugin for Virtuemart. This extension is implemented as a custom plugin field for Virtuemart - you can find general information about how custom plugin fields work here.



Custom plugins, like all Virtuemart plugins, are also Joomla plugins, and to use them you must first upload and install them using the Joomla installer, then enable them in the plugin manager.

Create a Custom Plugin Field

Now you need to switch to the Virtuemart and go to products->custom fields, then click the 'New' to start creating a new plugin field which you will later attach to your products.

You will see a list of parameters. You need to set the Custom Field Type parameter to 'plugin'. You should then see a select box appear at the bottom of the list labelled 'Select a plugin'. You should see the spiral download plugin listed, if not, you have forgotten to enable it.

Select the spiral download plugin, then you should see the parameters for the plugin appear. You can set these as you require:-


Going back to the top of the parameters list, you should also set a title for the plugin, this is the name of the field that will be displayed in the product editor and on the product page, so make it informative, eg 'product download'. You will also need to set 'Cart Attribute' to yes.

You should leave 'Default' alone, this value is important to the correct functioning of the plugin, and once you have saved the parameters it should be set automatically to the system name of the plugin. You can leave the other parameters alone for now, though you can add a description if you want. Click 'Save and close' when you are finished. Note that you only need to create the custom field once, you will be able to attach it to as many products as you want to have downloads for, with a different downloadable file for each product.

Synchronise Download Media

Products for download are stored in the Virtuemart 'safe' path. If you have not set this already then you can do so by going into the Virtuemart configuration, and clicking on the templates tab. The safe path is listed under 'Media Files Settings'. It should be an absolute path, not one relative to your Joomla root. It is best to use one that is outside your domain directory and which is not accessible by http:, to prevent direct downloads.

Once you have set the safe path you upload your downloadable files to this folder. You will need to synchronise them to Virtuemart, so that Virtuemart knows they are there. Go to shop->media files, and click the 'synchronise media to Virtuemart button.

Attach Download Field to Your Product

The final step is to attach the product download field to some actual products. Note that you can attach this field to as many products as you want. Open up a product in the Virtuemart product editor, and click on the custom fields tab. Under the 'custom field type' heading you should see the product download field listed, select this. You should see the parameters for the custom field appear.

The first thing to do is to set the file that will be downloadable. If you have synchronized the download media you should see it listed in the select file box. You can give a title and description for the file which will be shown to the user. You can ignore the 'price' box, that is a general Virtuemart parameter, it is not used by the plugin, the actual price will be the normal product price set on the product information page.

If you want you can make a free download available by checking the free download box, however our free download custom plugin is a better choice to use for this purpose, it offers more and better features. You can also override the global parameters for the number and time period for which the dowload is available. Now save the product - your download field is now set up.


You can have as many download fields per product as you want. To add more, just open up the product in the product editor and follow the procedure as described above. You can add a download field to as many products as you want, again follow the same procedure for each product.

Downloads are made available when the order status is set to confirmed or shipped. When an order confirmation email is sent out to a customer it will include a download link. The customer will also be able to view it by viewing their order in their Virtuemart account.

You can edit the customer's order in the Virtuemart administration if you need to change the number of downloads available or the time limit. To do this open up the order in the Virtuemart admin, and click the edit downloads link.

Unfortunately it is not possible to add additional downloadable files to an order. This is really a limitation of the Virtuemart order system and the way that custom plugins work. What you can do is to create an additional order for a customer. Our master user plugin works with the Virtuemart user system. You can use it to log in the front end of your site as the customer, and place the order for the additional product. Then you can confirm the order in the Virtuemart administration.

Download Restrictions

Download restrictions are applied to the field, not the file, so you can replace the file (for example if a new version is released) simply by editing the field to attach a new file.

There are three ways of restricting downloads: by number, or by time limit - or both. To turn one of these restrictions off you can set the corresponding parameter to 0 in the product field. Numbers of downloads are restricted per field, so if you add additional download fields to a product, each will allow the same number of downloads. The time limit for downloads is measured from the time the order was placed. If you choose to restrict by both time and number whichever limit is reached first will prevent the download. Note that you can allow additional downloads for a customer by editing the order.

Before allowing a download the plugin will check the product and order information to see if the user is entitled, so it is not possible to obtain additional files by manipulating the id in the download link.