Submit your Apps & Themes
It is possible to sell your own module on our Apps platform. You can start selling your modules very easily by adding a
price and a
currency keys in your module manifest like
'price': 49.99, and
'currency': 'EUR', for example. Supported currencies are EUR and USD. We require that the modules sold on our Apps platform is the lowest (or the same) price on the web, have a proper description, complete with screenshots of the functionalities and an overall nice presentation page. Please refer to the following section for more informations on how to achieve this goal. We reserve the rights to unpublish modules which do not conform to these criterias until they receive a proper presentation page.
Don't be afraid to value your work as it should be ! If people need the feature of your module, they will pay for it. In any case it will make them gain development time so you should not undervalue your work. We think 100 euros is a good starting point.
Starting from version 8.0, the module icon needs to be located at
static/description/icon.png in the module folder. The main screenshot location is defined in the
images key of the manifest, like
'images': ['images/main_screenshot.png'], for example. The rich-text HTML description comes from the
static/description/index.html file in the module folder. It is recommended to start with this official template.
To have a big screenshot in your theme, you need to have more than one picture in
'images': ['images/main_1.png', 'images/main_2.png', 'images/main_screenshot.png'], and the first picture with a name ending with '_screenshot' will be selected and displayed as big screenshot.
The purpose of this screenshot format is to show a full demo page and not your company logo larger.
Like Theme Clean
The license is defined in the
license key of the manifest (
__manifest__.py as of Odoo 10,
__openerp__.py for older series), like
'license': 'AGPL-3', for example. Possible values are
Other OSI approved licence,
Other proprietary. The license file is loaded from the
LICENSE file at the root of your module or, if there is none, at the root of your repository. The license file will only be displayed if the license is not a well known open source one, that is:
Other OSI approved licence,
Other proprietary. If no license information is provided in the manifest, we will use LGPL-3 as default value for free modules, and OEEL-1 for paid modules.
Like Odoo VOIP
The documentation is automatically loaded from the
doc/index.rst file in the module folder. It needs to be a valid, pure rst file.
We do not currently review every module published, but we do take action when users report abusive behavior. You will usually know when you cross the line, but here are some examples of things that would cause your modules to be removed from the store:
- R1. Stealing data from the users, copying other developers' work without permission and without giving proper credit (according to the license terms), cheating on the ratings system, are all examples of abusive behavior that will get your modules removed;
- R2. Modules that download code in any form, or modules that install or launch other executable code will be removed. This includes obfuscated/encrypted code.
- R3. Modules that include undocumented or hidden features inconsistent with the module description will be removed.
- R5. Modules that harm the image and/or reputation of another author will be removed, such as a module that doesn't work and is attributed to another author.
- R6. Modules for which you don't provide support to customer who bought it, such as a customer asking for help configuring the module or who encounters a bug when using it.
You will get 70% of your modules revenues on our Apps platform. You can either opt-in for automatic monthly payments or manually send us an invoice. To opt-in for automatic monthly payments, please go to your Preferences in your Apps Dashboard, and fill in the form accordingly with all the required information. Please note that we will pay you the sales of the previous month at the end of each month. If you prefer to send us an invoice, or if the accounting laws of your country require you to do it, send an invoice to firstname.lastname@example.org with your sales grouped by modules, with the number of units sold and the price. You can find these informations in your Sales Dashboard. If your module price has changed at some point, please make separate entries for each different price. Considering the time needed to process those invoices, please consider we will only process invoices with a minimum total amount of 400 EUR, and won't process more than one invoice per user per month. In addition, please be patient when we process your invoice, we receive a lot of them and have limited resources to process them. It may take some time, but we will process your invoice eventually.
To publish your modules on our platform, we need to be allowed to read from your repository. If you are on Github, you can simply authorize our online-odoo user on your repository. If you are on Bitbucket, you can authorize our OdooApps user. If you use another service, you will need to authorize our public SSH key instead. Don't forget to use the SSH url of your repository when registering it to allow us to identify using ssh. For example for GitHub, it would be something like
We intentionally keep deleted modules for safekeeping. If you really want that we remove your modules from Odoo Apps, please issue your request to email@example.com. We will however continue to keep those modules if people have already bought them, or if another module depends on it.
Please contact firstname.lastname@example.org with the urls of both the old Bzr repository and the new Git one, we will take care of everything!