Odoo Apps Vendor Guidelines
These guidelines have been set up to ensure quality and a good level of service for users.
Application Manifest
The description of the application, as published on odoo.com/apps platform is derived from the manifest file “__manifest__.py” and the content of the directory “/static/description/”
For guidelines on how to write a manifest on Odoo, please consult our developer documentation . A good manifest is essential as any error will unpublish all the modules from your repository.
Mandatory: your module must include a __manifest__.py file with the following information.
- name (str): the name of the app must be explicit and should contain no more than 25 characters. Avoid adjectives, or including the name of your company.
- version (str): the version number should be increased every time an update of the database schema is required. The modules in beta must use a number inferior to 1.0. The version should include the Odoo version and follow major-minor-bugfix semantics (e.g. 10.0.1.1.3). Each release should have a new version number.
-
license (str): any license can be applie to your app, as long as it respects the licenses of its
dependencies, libraries or other derivative works (see here
for compatibility). We recommend the following licences:
- For open source apps: LGPL-3
- For proprietary apps: OPL-1
- depends (list) the list must contains all the dependencies needed to run the module. A non-exisiting dependencies will raise an error during the scan of the repository.
Optional: the __manifest__.py file’s can contain those optional information.
- summary (str): a summary of the main features of your module.
- live_test_url (str) an URL where it is possible to test your module on a demo instance.
- price (float): the price, in EUR or USD, for one-shot purchases of your app. If the price is not set, the application is free (same case if the price is negative). The minimum price for an app is 9 EUR.
- currency (str): the currency for the price. Allowed values are EUR and USD, default is EUR. N.B.: If another currency is set, the scan of your repo will raise an error.
- support (str): the email address to be used for claims or support requests. This information is only available to people buying your app.
N.B.: Some useful information.
- Define a theme: Add the "theme" or "themes" keys in the category.
- Hide a module: Add the "hidden" or "setting" keys in the category.
Guidelines for the app's description page (static/description/index.html
):
- The app's description and screenshots must be in English, regardless of the originating country or language of the app.
- The description of a module may not mention promotions, advertisements or links to another app store or external platform*.
- Information about features must be accurate and cannot be misleading.
- You can link against resources provided in your
static/description
folder - You can use youtube links (please use canonical links), any other external link will be invalidated
- You can use
mailto:
andskype:
prefixes - You cannot insert static tags, static widgets or modals in your description
- You cannot inject harmful style (use bootstrap 4 classes and color, font-*, margin-*, padding-*, border-* attributes) while respecting the previous rule
- You cannot inject JavaScript
Pricing
Customers should be guaranteed to get the best price and service level when buying on the Odoo Apps platform.
- If you sell your app directly from your website, or on others platforms: the price on the Odoo Apps store should always be equal or lower than the one on other platforms.
- If you offer promotions or discounts on other platforms, you must decrease the price on the Odoo Apps store to the same amount, during the same period.
By publishing a module on the Odoo Apps store, you agree to the customer refund policy of Odoo. In case customers experience bugs, malfunctions, or configuration issues with a paid App, the author is responsible for resolving the issue in a timely fashion. Support services are not required for free apps.
If you provide your module for different Odoo versions, use the same module name.
Features
App Completeness: Your App should be as bug-free, stable and complete as possible. If your app is in beta, the version number should be < 1.0.
Accurate Metadata: make sure that your app page has a full description, a thumbnail, screenshots, previews and information allowing customers to know what they are purchasing/downloading.
- Provide a detailed list of the app’s features: your customers should be well aware of what these include. You should not market features that are not actually part of the App. Your app cannot contain undocumented or hidden features inconsistent with the module description.
- If your app requires external services to run, it should be clearly advertised as such.
Functionalities: Your App should not end up breaking the Odoo Enterprise Subscription Agreement. This means, amongst others:
- It should not alter the part of the software that verifies the validity of the Odoo Enterprise Edition usage and collects statistics for that purpose,
- It should not alter the separation between portal and internal functionalities (e.g. While a portal user can create a lead or interact(edit) with a sale order or a purchase order, he cannot modify accounting or HR content since these are internal functionalities),
- ...
The module cannot be a clone of our Enterprise modules - i.e. built with the clear intention to duplicate the functionalities of an Enterprise module. We reserve the right to unpublish such module at any moment.
The app must be functional and cannot serve as a simple advertisement (see the guidelines for the description).
The module should be installable by copying it in the addons folder, and satisfying dependencies. Avoid other installation procedures (move a folder, unzip another one, etc.).
Data and User Protection
Be transparent in how you treat customer and developer data, including the collection, use and dissemination. This includes code, personal, financial, and payment information plus contacts, device data, sensorial data, etc.
- Customer data: if your app collects data to send to another service, the data sent must be clearly explained in your app manifest and store description page, as well as in the application, to get a user opt-in before transmitting data. We recommend including a link to your Data Privacy Policy.
- No vendor Lock-In: your app cannot require an activation key to be executed and the customer has ownership of their data at any given time.
- Licenses and copyright: Unless you contribute to the open-source community and release your module under a permissive license such as LGPL, you need to develop your own code. The code behind an app should be considered as the intellectual property of its developer and any copyright infringement will be penalised. Plagiarism will not be accepted. Basically, you need to be mindful of the licenses and what they allow or prevent you to do.
- Malicious app: an app may not download, install or launch other executable code, contain obfuscated or encrypted code, remove or uninstall data or features without user request, steal data or secretly monitor or harm users or their device or server, or perform any other similarly deceptive actions.
- Unrespectable behavior: modules that harm the image and/or reputation of another author will be removed, as will modules that don’t work or are attributed to another author.
Redeeming your sales
Odoo S.A. takes 30% commission on all sales on Odoo Apps. Your sales will be accounted for in a PO that you can see in your sales dashboard. During each month, we will close the POs that have reached or exceeded 400 euros unredeemed sales. There are two ways you can redeem these sales:
- Manual invoice: send us an invoice every month containing sales lines corresponding to your sales as displayed on the Sales dashboard of Odoo Apps. Your invoice must include the redeem reference that is generated by clicking the Redeem button on your Sales dashboard on Odoo Apps.
- Automatic invoice: at the end of each month, we’ll send you the accumulated amount of your sales during the previous month. This method needs to be enabled in your Preferences dashboard on Odoo Apps. Please note that in some countries it is forbidden to receive money in a bank account without issuing an invoice. Please make sure this option is legal in your country before enabling it.
Please note that we sell apps in the currency of the end user, so you might observe deviations in the amounts due to currency exchange rates.
Also note that we will pay you via international SWIFT transfer which can take days or weeks to be processed (the delay is higher if you are located outside of Europe).
Scoring of Apps
Every app page of the store has been reviewed and scored based on 5 criteria, and depending on the score received, the page will be displayed higher or lower in the default App listing.
Below you'll find the 5 criteria:
- The module has no icon
- The module has no cover image (thumbnail)
- License is not set in the module manifest
- The module has a rating that is quite poor (lower than 3)
- The module has a non-html description (like rst for example), as we'd like to promote beautiful descriptions
The tie breaker between apps with the same score remains the best sellers.
Please take a moment to read the above criteria and review your App pages accordingly. Upon connecting to your App Store Account and visiting the description page of each of your apps, you should see your score, if you didn't reach 5 out of 5, and the elements that require amendments for your ranking to improve.
Additional Rules
The vendors are not allowed to advertise their product in a way that hurts other vendors reputation/business or in ways that circumvent fair use of the store. Non-exhaustively:
- Artificially alter with the rankings,
- Buy an app on purpose to temper with the ratings (upvote their own work or downvote their concurrents),
- Advertise their module on another vendor module's page,
- Use images that hurt the reputation of other vendors,
- ...
As stated above, the list is non-exhaustive and anything that goes against fair business pratices might be considered as an infringement of the guidelines.
Enforcement
Failure to comply with the Odoo Apps Store guidelines will result in :
- Temporary sanctions: you will receive an email listing the issues we’ve observed and your app will be unpublished until the necessary actions are taken. We will review the changes and republish the app if it complies with the guidelines.
- Long term sanctions: If multiple apps fail to comply with the Odoo Apps store guidelines and the author doesn’t take remedial actions, we will unpublish all the apps. In the event that no action is taken by the author or we observe recurrent recidive, we reserve the right to suppress the account.
- Suspension or cancellation of commissions: no commissions will be paid to vendors if one or more of their apps is subject to temporary, or long term sanctions.
Odoo reserves the right to unpublish any App at any point without prior notice.