Notice: You are browsing the documentation for PrestaShop 9, which is currently in development.
You might want to read the documentation for the current version, PrestaShop 8. Read the current version of this page
PrestaShop comes with some native modules managed by Composer package manager. The source code of these modules is hosted on the GitHub PrestaShop organization.
When a new release of one of these modules is published, PrestaShop does not use Composer to allow users to upgrade the to a higher version. It uses the Distribution API.
From the back-office, shop administrators can install, uninstall and upgrade modules. For the modules managed by the PrestaShop organization, this API
This API provides:
The above data is provided as JSON documents.
The API also manages the download links of PrestaShop releases and modules.
Every hour the data of the API is refreshed. The API parses all of the GitHub releases data to find out
For example, if a version 7.0.1 of module Blockreassurance is released at 6:47PM, then the Distribution API will acknowledge this new version at 7PM.
Using the parsed GitHub data, the API computes the information it must provide and output them into persisted JSON documents. This is the files that PrestaShop instances can fetch to find the data they need.
The README of the API explains in details how the API can be used, how it is run and hosted.
PrestaShop embeds the Distribution API Client module that allows it to connect to Distribution API. It is a simple gateway.
Removing the module would sever the link to PrestaShop Distribution API, however users can also replace the module by another one that would provide an equivalent service. This effectively allows users to create their own Distribution API (if for example they wish to also manage their own modules lifecycle by a custom API).
The module is mostly used by the back-office page “Module Manager” where shop administrator can install, uninstall and upgrade modules. PrestaShop back-office does rely on the module (that does connect to the Distribution API) to fetch the needed data to power the page.