The implementation is straight forward for the free extensions, it consists of two steps:
- Defining an update server.
- Providing an updates xml file.
For detailed instructions, you can refer to Joomla! Update System
The implementation for PAID extensions is a bit complicated, because the automatic update needs a kind of authentication to make sure that the user has a valid license or a kind of valid subscription before downloading the updated extension.
To identify the user updating his/her system, Joomla! has an additional parameter extra_query in #__update_sites. This parameter will be added to the declared download URL, providing the opportunity to accept or reject the download.
To make it easy and efficient to fill in the extra_query in #__update_sites, I developed the Download ID custom form field.
With this custom form field, you can easily add a field where your clients will fill with their license or validation key to be used in the automatic update process.
Although the custom field is developed to be used with Akeeba Subscriptions and Release System packages, it can be used with any other packages you like.
The field looks like this when added the the manifest xml file:
<field name="dlid" type="downloadid" label="Download ID" description="Download ID description" default="" extension="Some Module" key="dlid" />
The Download ID field has two important additional attributes, extension and key where:
extension: must be the same as the name attribute of <server>, this is very important to set the update the correct record in the update_sites table.
key: has a default value of "dlid" which is used with Akeeba Subs & Release System combination, of course you can give it any other value if needed with any other subs and release managers.
For detailed instructions and downloads: Download ID custom form field