magento:downloadplus:installation

Installation, Upgrade & Release Notes

We have choosen the manual approach for installation of this Magento Extension, to give everyone also the freedom to look inside of the package before installation. Also if the extensions is active in a production environment, any automated update may interfere with the store functionality.

Magento 1.3 - 1.9

  • Magento 1.3.x and all prerequisites coming with it.
  • Your Magento installation is required to be faultless and fully functional.
  • We strongly recommend to perform the first install on a non-productive system, to perform your settings and any customization there first. And then to install the extension on your production system with transfering your settings and customization.



Magento 2.3

  • Magento 2.3.x and all prerequisites coming with it.
  • Your Magento installation is required to be faultless and fully functional.
  • We strongly recommend to perform the first install on a non-productive system, to perform your settings and any customization there first. And then to install the extension on your production system with transfering your settings and customization.



  1. Take your Magento Shop offline in case you are installing on your Production System. In case during installation your Magento Store is activated the installation may become incomplete and error messages or malfunctions may result.

  2. If you are using Caching in your Magento Store, login into your Magento Administration and disable your Cache: System » Cache Management » All Cache » Disable.
  3. Unpack the contents of the package into the home directory of your Magento installation on your server.
  4. DownloadPlus is creating database tables, so in your Store Administrator go to: Configuration » System » Advanced and check if the DownloadPlus Module is shown. Enable it if disabled. Save your Configuration in any case.
  5. If you are using Caching in your Magento Store, in your Magento Administration refresh your Cache: System » Cache Management » All Cache » Refresh. If previously having the Cache disabled for installation, you may now enable it again.
  6. Read through here for the initial configuration of your Magento Store to work with DownloadPlus.



DownloadPlus requires an active CRON job on the Magento Store to automatically process internal Jobs, please see the Magento Documentation here for how to configure the required CRON job...



  1. Take your Magento Shop offline in case you are updating on your Production System. In case during installation your Magento Store is activated the update may become incomplete and error messages or malfunctions may result.

  2. Backup your Magento installation, or at least backup the folder app/code/local/Pisc/Downloadplus for saving any current installed version of DownloadPlus.
  3. Delete the folder app/code/local/Pisc/Downloadplus to ensure correct updating of store resources required by the extension.
  4. Unpack the contents of the package into the home directory of your Magento installation on your server.
  5. Alternatively you may just unpack the files in app/code/local/Pisc/Downloadplus and app/etc/modules for the main extension files, and update any template related files later manually.
  6. If you are using Caching in your Magento Store, login into your Magento Administration and refresh your Cache: System » Cache Management » All Cache » Refresh.



To uninstall DownloadPlus from your Store follow this procedure:

  1. You may want to take your Store offline, be aware that removing DownloadPlus from a Store in operation may generate errors.
  2. Remove the extension definition file /app/etc/modules/Pisc_Downloadplus.xml
  3. Update your Stores Cache using the Administrator and System » Cache Management » All Cache » Refresh
  4. Remove the directory app/code/local/Pisc/Downloadplus
  5. Open your Magento Database using a MySQL Database Frontend (like PhpMyAdmin) and remove the database tables shown below.
  6. Remove the Version entry for DownloadPlus in the Magento Database by opening the table core_resource and removing the row entry for downloadplus_setup.
    This table name may carry the table prefix defined for your Magento installation.
  7. Remove the related layout file from your Frontend template directory in app/design/frontend/…/layout/downloadplus.xml.
  8. Remove the related templates from your Frontend template directory in app/design/frontend/…/template/downloadplus.
  9. Remove the related layout file from your Administrator template directory in app/design/adminhtml/…/layout/downloadplus.xml.
  10. Remove the related templates from your Administrator template directory in app/design/adminhtml/…/template/downloadplus.
  11. If having modified your template files to include any template parts of DownloadPlus, remove these customizations from your template files.



5.1 Custom Administrator URL

Refrain from using the following Configuration Option in System » Configuration » Admin » Admin Base URL and set this Option to NO. This configuration option is known to create difficulties with the whole Administrator Backend.

To use a Custom Administrator URL use the app/etc/local.xml configuration file to define a different Frontend Router Name for the Administrator:

app/etc/local.xml

<admin>
   <routers>
       <adminhtml>
           <args>
               <frontName><![CDATA[some-custom-admin-url]]></frontName>-->
           </args>
       </adminhtml>
   </routers>
</admin>



5.2 Manually create Database Tables

In the rare event that Magento was unable to create the Database Tables for DownloadPlus by the automated setup itself, here are the SQL Commands to create these Database Tables manually.

Before creating these tables, look into the table names of the tables already existing in your Magento Database. These may carry a Table Prefix (for example: mage_).
In case such Table Prefix is used in your Magento Database, prefix the table names with the same Table Prefix (in our example: euvat_customer_exclude will get mage_euvat_customer_exclude).


Database Table 'downloadplus_log'

CREATE TABLE IF NOT EXISTS 'downloadplus_log' (
  `log_id` INT(11) NOT NULL AUTO_INCREMENT,
  `item_id` INT(11) DEFAULT NULL,
  `sample_id` INT(11) DEFAULT NULL,
  `ip` VARCHAR(15) DEFAULT NULL,
  `timestamp` INT(11) DEFAULT NULL,
  `store_id` SMALLINT(11) NOT NULL,
  PRIMARY KEY (`log_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Downloadable Items Log table';


Database Table 'downloadplus_download_detail'

CREATE TABLE IF NOT EXISTS 'downloadplus_download_detail' (
  `detail_id` INT(11) NOT NULL AUTO_INCREMENT,
  `store_id` SMALLINT(6) DEFAULT NULL,
  `product_id` INT(10) UNSIGNED DEFAULT NULL,
  `link_id` INT(11) DEFAULT NULL,
  `link_sample_id` INT(11) DEFAULT NULL,
  `sample_id` INT(11) DEFAULT NULL,
  `link_customer_item_id` INT(11) DEFAULT NULL,
  `link_product_item_id` INT(11) DEFAULT NULL,
  `file` VARCHAR(255) NOT NULL,
  `active` tinyint(4) NOT NULL DEFAULT '0',
  `version` VARCHAR(255) NOT NULL,
  `detail` text NOT NULL,
  PRIMARY KEY (`detail_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Downloadplus Download Details Table';


Datbase Table 'downloadplus_link_customer_item'

CREATE TABLE IF NOT EXISTS 'downloadplus_link_customer_item' (
  `item_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `purchased_id` INT(10) UNSIGNED DEFAULT NULL,
  `order_item_id` INT(10) UNSIGNED DEFAULT NULL,
  `product_id` INT(10) UNSIGNED DEFAULT NULL,
  `link_hash` VARCHAR(255) NOT NULL DEFAULT '',
  `number_of_downloads_bought` INT(10) UNSIGNED NOT NULL DEFAULT '0',
  `number_of_downloads_used` INT(10) UNSIGNED NOT NULL DEFAULT '0',
  `link_id` INT(20) UNSIGNED NOT NULL DEFAULT '0',
  `link_title` VARCHAR(255) NOT NULL DEFAULT '',
  `is_shareable` SMALLINT(1) UNSIGNED NOT NULL DEFAULT '0',
  `link_url` VARCHAR(255) NOT NULL DEFAULT '',
  `link_file` VARCHAR(255) NOT NULL DEFAULT '',
  `link_type` VARCHAR(255) NOT NULL DEFAULT '',
  `status` VARCHAR(50) NOT NULL DEFAULT '',
  `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`item_id`),
  KEY `DOWNLOADPLUS_CUSTOMER_LINK_PURCHASED_ID` (`purchased_id`),
  KEY `DOWNLOADPLUS_CUSTOMER_ORDER_ITEM_ID` (`order_item_id`),
  KEY `DOWNLOADPLUS_CUSTOMER_LINK_HASH` (`link_hash`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Downloadplus additional Customer Download Items';
 
ALTER TABLE 'downloadplus_link_customer_item'
  ADD CONSTRAINT `FK_DOWNLOADPLUS_CUSTOMER_LINK_PURCHASED_ID` FOREIGN KEY (`purchased_id`) REFERENCES {$this->getTable('downloadable_link_purchased')} (`purchased_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `FK_DOWNLOADPLUS_CUSTOMER_ORDER_ITEM_ID` FOREIGN KEY (`order_item_id`) REFERENCES {$this->getTable('sales_flat_order_item')} (`item_id`) ON DELETE CASCADE ON UPDATE CASCADE;


Database Table 'downloadplus_link_product_item'

CREATE TABLE IF NOT EXISTS 'downloadplus_link_product_item' (
  link_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  product_id INT(10) UNSIGNED NOT NULL DEFAULT '0',
  link_title VARCHAR(255) NOT NULL DEFAULT '',
  link_url VARCHAR(255) NOT NULL DEFAULT '',
  link_file VARCHAR(255) NOT NULL DEFAULT '',
  link_type VARCHAR(20) NOT NULL DEFAULT '',
  sort_order INT(10) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY (link_id),
  KEY DOWNLODABLE_SAMPLE_PRODUCT (product_id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Downloadplus additional Product Download Items';
 
ALTER TABLE 'downloadplus_link_product_item'
  ADD CONSTRAINT FK_DOWNLODPLUS_PRODUCT_LINK FOREIGN KEY (product_id) REFERENCES {$this->getTable('catalog_product_entity')} (entity_id) ON DELETE CASCADE ON UPDATE CASCADE;


Database Table 'downloadplus_link_purchased_item_serialnumber'

CREATE TABLE IF NOT EXISTS 'downloadplus_link_purchased_item_serialnumber' (
  `serial_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `purchased_id` INT(10) UNSIGNED DEFAULT NULL,
  `order_item_id` INT(10) UNSIGNED DEFAULT NULL,
  `product_id` INT(10) UNSIGNED DEFAULT NULL,
  `link_id` INT(20) UNSIGNED DEFAULT NULL,
  `serial_title` VARCHAR(255) NOT NULL DEFAULT '',
  `serial_number` text NOT NULL DEFAULT '',
  `serial_hash` VARCHAR(255) DEFAULT NULL,
  `status` VARCHAR(50) NOT NULL DEFAULT '',
  `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`serial_id`),
  KEY `DOWNLOADPLUS_CUSTOMER_LINK_PURCHASED_ID` (`purchased_id`),
  KEY `DOWNLOADPLUS_CUSTOMER_ORDER_ITEM_ID` (`order_item_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Downloadplus Serial Number for Downloadable Purchased Items';


Database Table 'downloadplus_product_serialnumber'

CREATE TABLE IF NOT EXISTS 'downloadplus_product_serialnumber' (
  `serial_hash` VARCHAR(255) NOT NULL,
  `product_id` INT(10) UNSIGNED NOT NULL,
  `serial_number` text NOT NULL,
  `serial_number_pool` VARCHAR(255) DEFAULT NULL,
  `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`serial_hash`),
  KEY `DOWNLOADPLUS_PRODUCT_SERIALNUMBER_PRODUCT_ID` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='DownloadPlus pool of Serialnumbers for Products';
");


Database Table 'downloadplus_link_extension'

CREATE TABLE IF NOT EXISTS 'downloadplus_link_extension' (
  id INT(11) NOT NULL AUTO_INCREMENT,
  link_id INT(11) NOT NULL,
  expiry tinyint(4) DEFAULT NULL,
  expire_on VARCHAR(50) DEFAULT NULL,
  serial_number_pool VARCHAR(255) DEFAULT NULL,
  attributes text,
  PRIMARY KEY (id),
  UNIQUE KEY link_id (link_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Data extension for downloadable links';


Database Table 'downloadplus_link_purchased_item_extension'

CREATE TABLE IF NOT EXISTS 'downloadplus_link_purchased_item_extension' (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `item_id` INT(11) NOT NULL,
  `expires_on` DATE DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `item_id` (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Data extension for purchased downloadable items';



  • Enable the Maintenance Mode of your Magento Store using the Magento CLI command: magento maintenance:enable
  • Upload the content of the installation package to the home directory of your Magento Store
  • If having a fresh installation enable the extension using the Magento CLI command: magento module:enable Pisc_Downloadplus
  • Verify that the extension is now enabled using the Magento CLI command: magento module:status - The resulting list should show: Pisc_Downloadplus
  • To install the extensions database schema and data resources (or when having uploaded a newer release and to do an update of these) use the Magento CLI command: magento setup:upgrade
  • Flush all Magento Caches using the Magento CLI command: magento cache:flush
  • Update the Dependency Injection configuration using the Magento CLI command: magento setup:di:compile
  • Disable the Maintenance Mode of your Magento Store using the Magento CLI command: magento maintenance:disable



Follow the same steps as for installation of the extension (see above).

Transferring Data

Before migrating any store data from a Magento 1.9 (or lower version) store, please first:

  • Update the Downloadplus extension to the most recent release available in your account with out license store.
  • Run the Magento Store to have all related database tables updated by the extension.



  1. Have your Magento 2 store completed, have DownloadPlus in the latest releases installed on your Magento 2 store.
  2. Migrate all other store data to your Magento 2 store (see also: https://devdocs.magento.com/guides/v2.3/migration/migration-tool.html
  3. You may directly dump and import all database tables starting with downloadable_ and downloadplus_ from your Magento 1 database to the new Magento 2 database: Dump/Export the Magento 1 data in the form TABLE DROP+CREATE (with Auto Increment) and DATA INSERT to exactly recreate the tables with its data. All these tables did not receive any changes on side of Magento 2.
  4. Reset the DownloadPlus Schema Version by editing its configuration entry in the database table setup_module and reset the Schema Version to 2.0.0:

Perform an upgrade process of the Magento 2 store on the CLI: magento setup:upgrade to have the transferred data upgraded to the current DownloadPlus release.

Transferring Downloadable Files

The location of the downloadable files in Magento 2 has changed, so transfer downloadable files from these Magento 1 directories to the respective Magento 2 directories:

Magento 1 Magento 2
media/downloadable pub/media/downloadble



Get Updates

Updates to all of your purchased Commercial Unlimited Licenses are available for Download in your Store Account: