Compare commits
89 Commits
master-che
...
saas-15.2-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0dbf42b385 | ||
|
|
9f27b04063 | ||
|
|
6210353661 | ||
|
|
e02de5c5ac | ||
|
|
f3fd6990c1 | ||
|
|
27220bcdec | ||
|
|
d2d6c10c12 | ||
|
|
0cab975494 | ||
|
|
9cf700b1ee | ||
|
|
1a466a95a3 | ||
|
|
75cf0a88dc | ||
|
|
beaa5afd9f | ||
|
|
5e0f64edcd | ||
|
|
0ef18f4d90 | ||
|
|
9db567159d | ||
|
|
e00b5e35c7 | ||
|
|
16afaf6fa7 | ||
|
|
a514c905c0 | ||
|
|
496a28400b | ||
|
|
382e296e13 | ||
|
|
3feb4678b4 | ||
|
|
28dde5dcbe | ||
|
|
992ead9e0a | ||
|
|
9122af05cd | ||
|
|
e9e8963682 | ||
|
|
6913280063 | ||
|
|
def5b7c245 | ||
|
|
d2650ca3c9 | ||
|
|
3d1bb598a7 | ||
|
|
b4a37f1004 | ||
|
|
0e0fb430ad | ||
|
|
1c67fb351c | ||
|
|
4e5c5cfb86 | ||
|
|
09c8973603 | ||
|
|
4f7bb49805 | ||
|
|
823e773fbb | ||
|
|
10ffb09278 | ||
|
|
0e818066ff | ||
|
|
631bb2d23e | ||
|
|
fe6a601398 | ||
|
|
c62169e08f | ||
|
|
c923dd3d0e | ||
|
|
2b293d5cb5 | ||
|
|
85b5e51db4 | ||
|
|
0744cb58a0 | ||
|
|
8e3e05959f | ||
|
|
7a8fd93aeb | ||
|
|
ddff6b5af8 | ||
|
|
b43a80ded5 | ||
|
|
fe41dec3e9 | ||
|
|
a458ae05e1 | ||
|
|
c179ceadb6 | ||
|
|
a0fab7bd7c | ||
|
|
d19fe91014 | ||
|
|
923a60532c | ||
|
|
3e83d1113f | ||
|
|
65be544b0c | ||
|
|
693d09d98a | ||
|
|
a655c82e21 | ||
|
|
b2149964a1 | ||
|
|
7f6dfcf665 | ||
|
|
db4f98d44e | ||
|
|
2c8f6d11c7 | ||
|
|
e2be114583 | ||
|
|
6348f5df3d | ||
|
|
4ad3584f06 | ||
|
|
479252f211 | ||
|
|
486dabe6bf | ||
|
|
e68027e79d | ||
|
|
759d99aa1a | ||
|
|
f163a968a3 | ||
|
|
1c7c9eab28 | ||
|
|
a3a8098fed | ||
|
|
0086b51de9 | ||
|
|
afee8f919b | ||
|
|
d366d7b739 | ||
|
|
3febaffd75 | ||
|
|
620c40967e | ||
|
|
7e2b194743 | ||
|
|
b77132847a | ||
|
|
a0fe598958 | ||
|
|
ef92af7d6c | ||
|
|
108e607528 | ||
|
|
5f55abc561 | ||
|
|
946e51e863 | ||
|
|
65cc3e71e2 | ||
|
|
e5e75aa596 | ||
|
|
4fafae4d8b | ||
|
|
0116d7dbc7 |
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# Include RST files in language statistics on GitHub.
|
||||
*.rst linguist-detectable
|
||||
3
.gitignore
vendored
@@ -1,6 +1,7 @@
|
||||
*.pyc
|
||||
.*
|
||||
*.mo
|
||||
.*
|
||||
!.gitattributes
|
||||
|
||||
# Sphinx build files
|
||||
_build/
|
||||
|
||||
4
Makefile
@@ -19,12 +19,14 @@ SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSIO
|
||||
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
|
||||
-D is_remote_build=$(IS_REMOTE_BUILD) \
|
||||
-A google_analytics_key=$(GOOGLE_ANALYTICS_KEY) \
|
||||
-A plausible_script=$(PLAUSIBLE_SCRIPT) \
|
||||
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
|
||||
-j $(WORKERS)
|
||||
SOURCE_DIR = content
|
||||
|
||||
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
||||
ifdef VERSIONS
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-15.2
|
||||
endif
|
||||
ifneq ($(CURRENT_LANG),en)
|
||||
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
||||
|
||||
14
README.md
@@ -4,11 +4,11 @@
|
||||
|
||||
### Requirements
|
||||
|
||||
- [Git](https://www.odoo.com/documentation/master/contributing/documentation.html#install-git)
|
||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/master/contributing/documentation.html#python)
|
||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/master/requirements.txt).
|
||||
- [Make](https://www.odoo.com/documentation/master/contributing/documentation.html#make)
|
||||
- A local copy of the [odoo/odoo repository in master](https://github.com/odoo/odoo/tree/master) (Optional)
|
||||
- [Git](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#install-git)
|
||||
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#python)
|
||||
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/saas-15.2/requirements.txt).
|
||||
- [Make](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#make)
|
||||
- A local copy of the [odoo/odoo repository in saas-15.2](https://github.com/odoo/odoo/tree/saas-15.2) (Optional)
|
||||
|
||||
### Instructions
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
2. Open the file `documentation/_build/html/index.html` in your web browser to display the render.
|
||||
|
||||
3. See [this guide](https://www.odoo.com/documentation/master/contributing/documentation.html#preview-your-changes)
|
||||
3. See [this guide](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html#preview-your-changes)
|
||||
for more detailed instructions.
|
||||
|
||||
Optional: to fully build the developer documentation with inline docstrings for documented Python
|
||||
@@ -34,7 +34,7 @@ be shown.
|
||||
## Contribute to the documentation
|
||||
|
||||
For contributions to the content of the documentation, please refer to the
|
||||
[Introduction Guide](https://www.odoo.com/documentation/master/contributing/documentation.html).
|
||||
[Introduction Guide](https://www.odoo.com/documentation/saas-15.2/contributing/documentation.html).
|
||||
|
||||
To **report a content issue**, **request new content** or **ask a question**, use the
|
||||
[repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual.
|
||||
|
||||
78
conf.py
@@ -1,9 +1,12 @@
|
||||
import re
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import docutils
|
||||
from pygments.lexers import JsonLexer, XmlLexer
|
||||
from sphinx.ext import graphviz
|
||||
from sphinx.util import logging
|
||||
import sphinx
|
||||
|
||||
@@ -19,7 +22,7 @@ copyright = 'Odoo S.A.'
|
||||
# `version` if the version info for the project being documented, acts as replacement for |version|,
|
||||
# also used in various other places throughout the built documents.
|
||||
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
|
||||
version = release = 'master'
|
||||
version = release = 'saas-15.2'
|
||||
|
||||
# The minimal Sphinx version required to build the documentation.
|
||||
needs_sphinx = '3.0.0'
|
||||
@@ -53,6 +56,11 @@ add_function_parentheses = True
|
||||
|
||||
#=== Extensions configuration ===#
|
||||
|
||||
source_read_replace_vals = {
|
||||
'GITHUB_PATH': f'https://github.com/odoo/odoo/blob/{version}',
|
||||
'GITHUB_ENT_PATH': f'https://github.com/odoo/enterprise/blob/{version}',
|
||||
}
|
||||
|
||||
# Add extensions directory to PYTHONPATH
|
||||
extension_dir = Path('extensions')
|
||||
sys.path.insert(0, str(extension_dir.absolute()))
|
||||
@@ -74,11 +82,15 @@ if not odoo_sources_dirs:
|
||||
{'dir_list': '\n'.join([f'\t- {d.resolve()}' for d in odoo_sources_candidate_dirs])},
|
||||
)
|
||||
else:
|
||||
odoo_dir = odoo_sources_dirs[0].resolve()
|
||||
sys.path.insert(0, str(odoo_dir))
|
||||
if (3, 6) < sys.version_info < (3, 7):
|
||||
# Running odoo needs python 3.7 min but monkey patch version_info to be compatible with 3.6
|
||||
# Running odoo needs python 3.7 min but monkey patch version_info to be compatible with 3.6.
|
||||
sys.version_info = (3, 7, 0)
|
||||
odoo_dir = odoo_sources_dirs[0].resolve()
|
||||
source_read_replace_vals['ODOO_RELPATH'] = '/../' + str(odoo_sources_dirs[0])
|
||||
source_read_replace_vals['ODOO_ABSPATH'] = str(odoo_dir)
|
||||
sys.path.insert(0, str(odoo_dir))
|
||||
import odoo.addons
|
||||
odoo.addons.__path__.append(str(odoo_dir) + '/addons')
|
||||
from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option
|
||||
odoo_version = odoo_release.version.replace('~', '-') # Change saas~XX.Y to saas-XX.Y
|
||||
odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version
|
||||
@@ -98,12 +110,18 @@ else:
|
||||
)
|
||||
odoo_dir_in_path = True
|
||||
|
||||
# Mapping between odoo models related to master data and the declaration of the
|
||||
# data. This is used to point users to available xml_ids when giving values for
|
||||
# a field with the autodoc_field extension.
|
||||
model_references = {
|
||||
'account.account.type': 'addons/account/data/data_account_type.xml',
|
||||
'res.country': 'odoo/addons/base/data/res_country_data.xml',
|
||||
'res.currency': 'odoo/addons/base/data/res_currency_data.xml',
|
||||
}
|
||||
|
||||
# The Sphinx extensions to use, as module names.
|
||||
# They can be extensions coming with Sphinx (named 'sphinx.ext.*') or custom ones.
|
||||
extensions = [
|
||||
# Parse Python docstrings (autodoc, automodule, autoattribute directives)
|
||||
'sphinx.ext.autodoc' if odoo_dir_in_path else 'autodoc_placeholder',
|
||||
|
||||
# Link sources in other projects (used to build the reference doc)
|
||||
'sphinx.ext.intersphinx',
|
||||
|
||||
@@ -133,7 +151,15 @@ if odoo_dir_in_path:
|
||||
extensions += [
|
||||
'sphinx.ext.linkcode',
|
||||
'github_link',
|
||||
# Parse Python docstrings (autodoc, automodule, autoattribute directives)
|
||||
'sphinx.ext.autodoc',
|
||||
'autodoc_field',
|
||||
]
|
||||
else:
|
||||
extensions += [
|
||||
'autodoc_placeholder',
|
||||
]
|
||||
extensions.append('sphinx.ext.graphviz' if shutil.which('dot') else 'graphviz_placeholder')
|
||||
|
||||
todo_include_todos = False
|
||||
|
||||
@@ -266,6 +292,22 @@ latex_logo = 'static/img/odoo_logo.png'
|
||||
# If true, show URL addresses after external links.
|
||||
latex_show_urls = 'True'
|
||||
|
||||
# https://github.com/sphinx-doc/sphinx/issues/4054#issuecomment-329097229
|
||||
def source_read_replace(app, docname, source):
|
||||
"""Substitute parts of strings with computed values.
|
||||
|
||||
Since the RST substitution is not working everywhere, i.e. in directives'
|
||||
options, we need to be able to input those values when reading the sources.
|
||||
This is using the config `source_read_replace_vals`, mapping a name to its
|
||||
replacement. This will look for the name surrounded by curly braces in the source.
|
||||
|
||||
Meant to be connected to the `source-read` event.
|
||||
"""
|
||||
result = source[0]
|
||||
for key in app.config.source_read_replace_vals:
|
||||
result = result.replace(f"{{{key}}}", app.config.source_read_replace_vals[key])
|
||||
source[0] = result
|
||||
|
||||
|
||||
def setup(app):
|
||||
# Generate all alternate URLs for each document
|
||||
@@ -274,12 +316,34 @@ def setup(app):
|
||||
app.add_config_value('versions', None, 'env')
|
||||
app.add_config_value('languages', None, 'env')
|
||||
app.add_config_value('is_remote_build', None, 'env') # Whether the build is remotely deployed
|
||||
app.add_config_value('source_read_replace_vals', {}, 'env')
|
||||
app.connect('source-read', source_read_replace)
|
||||
|
||||
app.add_lexer('json', JsonLexer)
|
||||
app.add_lexer('xml', XmlLexer)
|
||||
|
||||
app.connect('html-page-context', _generate_alternate_urls)
|
||||
|
||||
# Add a `condition` option on directives to ignore them based on config values
|
||||
app.add_config_value('odoo_dir_in_path', None, 'env')
|
||||
def context_eval(expr):
|
||||
return eval(expr, {confval.name: confval.value for confval in app.config})
|
||||
|
||||
def patch(to_patch):
|
||||
to_patch.option_spec['condition'] = context_eval
|
||||
original_run = to_patch.run
|
||||
def new_run(self):
|
||||
if not self.options.get('condition', True):
|
||||
return []
|
||||
return original_run(self)
|
||||
to_patch.run = new_run
|
||||
|
||||
for to_patch in (
|
||||
sphinx.directives.code.LiteralInclude,
|
||||
docutils.parsers.rst.directives.tables.CSVTable,
|
||||
):
|
||||
patch(to_patch)
|
||||
|
||||
|
||||
def _generate_alternate_urls(app, pagename, templatename, context, doctree):
|
||||
""" Add keys of required alternate URLs for the current document in the rendering context.
|
||||
|
||||
@@ -82,7 +82,7 @@ These packages automatically set up all dependencies (for the Community version)
|
||||
but may be difficult to keep up-to-date.
|
||||
|
||||
Official Community packages with all relevant dependency requirements are
|
||||
available on our nightly_ server. Both Community and Enterprise packages can
|
||||
available on our nightly_ server. Both Communtiy and Enterprise packages can
|
||||
be downloaded from our download_ page (you must to be logged in as a paying
|
||||
customer or partner to download the Enterprise packages).
|
||||
|
||||
@@ -93,8 +93,7 @@ Windows
|
||||
the download_ page (any edition).
|
||||
#. Execute the downloaded file.
|
||||
|
||||
.. warning::
|
||||
| On Windows 8 and later you may see a warning titled "Windows protected your PC".
|
||||
.. warning:: | On Windows 8 and later you may see a warning titled "Windows protected your PC".
|
||||
| Click on **More Info** and then on **Run anyway**.
|
||||
|
||||
#. Accept the UAC_ prompt.
|
||||
@@ -105,101 +104,62 @@ Odoo will automatically be started at the end of the installation.
|
||||
Linux
|
||||
-----
|
||||
|
||||
Debian/Ubuntu
|
||||
'''''''''''''
|
||||
|
||||
Odoo 15.0 'deb' package currently supports `Debian 11 (Bullseye)`_, `Ubuntu 20.04 (Focal)`_ or above.
|
||||
|
||||
Prepare
|
||||
~~~~~~~
|
||||
^^^^^^^
|
||||
|
||||
.. tabs::
|
||||
Odoo needs a `PostgreSQL`_ server to run properly. The default configuration for
|
||||
the Odoo 'deb' package is to use the PostgreSQL server on the same host as your
|
||||
Odoo instance. Execute the following command in order to install the PostgreSQL server:
|
||||
|
||||
.. group-tab:: Debian/Ubuntu
|
||||
|
||||
Odoo needs a `PostgreSQL`_ server to run properly. The default configuration for
|
||||
the Odoo 'deb' package is to use the PostgreSQL server on the same host as your
|
||||
Odoo instance. Execute the following command in order to install the PostgreSQL server:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo apt install postgresql -y
|
||||
|
||||
.. group-tab:: Fedora
|
||||
|
||||
Odoo needs a `PostgreSQL`_ server to run properly. Make sure that the `sudo` command is
|
||||
available and well configured and, only then, execute the following command in order to
|
||||
install the PostgreSQL server:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dnf install -y postgresql-server
|
||||
$ sudo postgresql-setup --initdb --unit postgresql
|
||||
$ sudo systemctl enable postgresql
|
||||
$ sudo systemctl start postgresql
|
||||
|
||||
.. warning::
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in version `0.12.5
|
||||
<the wkhtmltopdf download page_>`_ for it to support headers and footers. See our `wiki
|
||||
<https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more details on the various versions.
|
||||
.. warning:: `wkhtmltopdf` is not installed through **pip** and must be installed manually in
|
||||
version `0.12.5 <the wkhtmltopdf download page_>`_ for it to support headers and
|
||||
footers. See our `wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more
|
||||
details on the various versions.
|
||||
|
||||
Repository
|
||||
~~~~~~~~~~
|
||||
^^^^^^^^^^
|
||||
|
||||
.. tabs::
|
||||
Odoo S.A. provides a repository that can be used with Debian and Ubuntu distributions. It can be
|
||||
used to install *Odoo Community Edition* by executing the following commands **as root**:
|
||||
|
||||
.. group-tab:: Debian/Ubuntu
|
||||
|
||||
Odoo S.A. provides a repository that can be used with Debian and Ubuntu distributions. It can
|
||||
be used to install *Odoo Community Edition* by executing the following commands **as root**:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
# wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
|
||||
# echo "deb http://nightly.odoo.com/15.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
|
||||
# apt-get update && apt-get install odoo
|
||||
|
||||
You can then use the usual `apt-get upgrade` command to keep your installation up-to-date.
|
||||
You can then use the usual `apt-get upgrade` command to keep your installation up-to-date.
|
||||
|
||||
.. group-tab:: Fedora
|
||||
At this moment, there is no nightly repository for the Enterprise Edition.
|
||||
|
||||
Odoo S.A. provides a repository that can be used with the Fedora distributions. It can be used
|
||||
to install *Odoo Community Edition* by executing the following commands:
|
||||
Deb Package
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
Instead of using the repository as described above, the 'deb' packages for both the *Community* and
|
||||
*Enterprise* editions can be downloaded from the `official download page <download_>`_.
|
||||
|
||||
$ sudo dnf config-manager --add-repo=https://nightly.odoo.com/15.0/nightly/rpm/odoo.repo
|
||||
$ sudo dnf install -y odoo
|
||||
$ sudo systemctl enable odoo
|
||||
$ sudo systemctl start odoo
|
||||
Next, execute the following commands **as root**:
|
||||
|
||||
.. note::
|
||||
At this moment, there is no nightly repository for the Enterprise Edition.
|
||||
|
||||
Distribution package
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Debian/Ubuntu
|
||||
|
||||
Instead of using the repository as described above, the 'deb' packages for both the
|
||||
*Community* and *Enterprise* editions can be downloaded from the `official download page
|
||||
<download_>`_.
|
||||
|
||||
.. note::
|
||||
Odoo 15.0 'deb' package currently supports `Debian 11 (Bullseye)`_, `Ubuntu 20.04 (Focal)`_
|
||||
or above.
|
||||
|
||||
Next, execute the following commands **as root**:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
# dpkg -i <path_to_installation_package> # this probably fails with missing dependencies
|
||||
# apt-get install -f # should install the missing dependencies
|
||||
# dpkg -i <path_to_installation_package>
|
||||
|
||||
This will install Odoo as a service, create the necessary PostgreSQL_ user
|
||||
and automatically start the server.
|
||||
This will install Odoo as a service, create the necessary PostgreSQL_ user
|
||||
and automatically start the server.
|
||||
|
||||
.. warning::
|
||||
- The `python3-xlwt` Debian package does not exists in Debian Buster nor Ubuntu 18.04. This
|
||||
python module is needed to export into xls format.
|
||||
.. warning:: The `python3-xlwt` Debian package does not exists in Debian Buster nor Ubuntu 18.04.
|
||||
This python module is needed to export into xls format.
|
||||
|
||||
If you need the feature, you can install it manually with:
|
||||
|
||||
@@ -207,9 +167,9 @@ Distribution package
|
||||
|
||||
$ sudo pip3 install xlwt
|
||||
|
||||
- The `num2words` python package does not exists in Debian Buster nor Ubuntu 18.04. Textual
|
||||
amounts will not be rendered by Odoo and this could cause problems with the `l10n_mx_edi`
|
||||
module.
|
||||
.. warning:: The `num2words` python package does not exists in Debian Buster nor Ubuntu 18.04.
|
||||
Textual amounts will not be rendered by Odoo and this could cause problems with the
|
||||
`l10n_mx_edi` module.
|
||||
|
||||
If you need this feature, you can install manually with:
|
||||
|
||||
@@ -217,26 +177,61 @@ Distribution package
|
||||
|
||||
$ sudo pip3 install num2words
|
||||
|
||||
.. group-tab:: Fedora
|
||||
Fedora
|
||||
''''''
|
||||
|
||||
Instead of using the repository as described above, the 'rpm' packages for both the
|
||||
*Community* and *Enterprise* editions can be downloaded from the `official download page
|
||||
<download_>`_.
|
||||
Odoo 15.0 'rpm' package supports Fedora 34.
|
||||
|
||||
.. note::
|
||||
Odoo 15.0 'rpm' package supports Fedora 34.
|
||||
Prepare
|
||||
^^^^^^^
|
||||
Odoo needs a `PostgreSQL`_ server to run properly. Make sure that the `sudo` command is available
|
||||
and well configured and, only then, execute the following command in order to install the PostgreSQL
|
||||
server:
|
||||
|
||||
Once downloaded, the package can be installed using the 'dnf' package manager:
|
||||
.. code-block:: console
|
||||
|
||||
.. code-block:: console
|
||||
$ sudo dnf install -y postgresql-server
|
||||
$ sudo postgresql-setup --initdb --unit postgresql
|
||||
$ sudo systemctl enable postgresql
|
||||
$ sudo systemctl start postgresql
|
||||
|
||||
.. warning:: `wkhtmltopdf` is not installed through **pip** and must be installed manually in
|
||||
version `0.12.5 <the wkhtmltopdf download page_>`_ for it to support headers and
|
||||
footers. See our `wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more
|
||||
details on the various versions.
|
||||
|
||||
Repository
|
||||
^^^^^^^^^^
|
||||
|
||||
Odoo S.A. provides a repository that can be used with the Fedora distributions.
|
||||
It can be used to install *Odoo Community Edition* by executing the following
|
||||
commands:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dnf config-manager --add-repo=https://nightly.odoo.com/15.0/nightly/rpm/odoo.repo
|
||||
$ sudo dnf install -y odoo
|
||||
$ sudo systemctl enable odoo
|
||||
$ sudo systemctl start odoo
|
||||
|
||||
RPM package
|
||||
^^^^^^^^^^^
|
||||
|
||||
Instead of using the repository as described above, the 'rpm' packages for both the *Community* and
|
||||
*Enterprise* editions can be downloaded from the `official download page <download_>`_.
|
||||
|
||||
Once downloaded, the package can be installed using the 'dnf' package manager:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dnf localinstall odoo_15.0.latest.noarch.rpm
|
||||
$ sudo systemctl enable odoo
|
||||
$ sudo systemctl start odoo
|
||||
|
||||
|
||||
.. _setup/install/source:
|
||||
|
||||
Source install
|
||||
Source Install
|
||||
==============
|
||||
|
||||
The source "installation" is really about not installing Odoo, and running it directly from source
|
||||
@@ -253,13 +248,16 @@ packaged installations, and allows overriding settings using
|
||||
Finally it provides greater control over the system's set up, and allows to more easily keep
|
||||
(and run) multiple versions of Odoo side-by-side.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
Fetch the sources
|
||||
-----------------
|
||||
'''''''''''''''''
|
||||
|
||||
There are two ways to obtain the source code of Odoo: as a zip **archive** or through **git**.
|
||||
|
||||
Archive
|
||||
~~~~~~~
|
||||
^^^^^^^
|
||||
|
||||
Community Edition:
|
||||
|
||||
@@ -273,80 +271,44 @@ Enterprise Edition:
|
||||
* `GitHub repository <enterprise-repository_>`_
|
||||
|
||||
Git
|
||||
~~~
|
||||
^^^
|
||||
|
||||
The following requires `git <https://git-scm.com/>`_ to be installed on your machine and that you
|
||||
have basic knowledge of git commands.
|
||||
The following requires git_ to be installed on your machine and that you have basic knowledge of
|
||||
git commands.
|
||||
|
||||
Community Edition:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Windows
|
||||
|
||||
.. code-block:: doscon
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> git clone https://github.com/odoo/odoo.git
|
||||
|
||||
.. group-tab:: Linux
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/odoo.git
|
||||
|
||||
.. group-tab:: Mac OS
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/odoo.git
|
||||
|
||||
Enterprise Edition: (see :ref:`setup/install/editions` to get access)
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Windows
|
||||
|
||||
.. code-block:: doscon
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> git clone https://github.com/odoo/enterprise.git
|
||||
|
||||
.. group-tab:: Linux
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/enterprise.git
|
||||
|
||||
.. group-tab:: Mac OS
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/enterprise.git
|
||||
|
||||
.. note::
|
||||
**The Enterprise git repository does not contain the full Odoo source code**. It is only a
|
||||
collection of extra add-ons. The main server code is in the Community version. Running the
|
||||
Enterprise version actually means running the server from the Community version with the
|
||||
addons-path option set to the folder with the Enterprise version. You need to clone both the
|
||||
Community and Enterprise repository to have a working Odoo Enterprise installation.
|
||||
.. note:: **The Enterprise git repository does not contain the full Odoo source code**. It is only
|
||||
a collection of extra add-ons. The main server code is in the Community version. Running
|
||||
the Enterprise version actually means running the server from the Community version with
|
||||
the addons-path option set to the folder with the Enterprise version. You need to clone
|
||||
both the Community and Enterprise repository to have a working Odoo Enterprise
|
||||
installation.
|
||||
|
||||
Prepare
|
||||
-------
|
||||
'''''''
|
||||
|
||||
Python
|
||||
~~~~~~
|
||||
^^^^^^
|
||||
|
||||
.. tabs::
|
||||
Odoo requires Python 3.7 or later to run. Visit `Python's download page <https://www.python.org/downloads/windows/>`_
|
||||
to download and install the latest version of Python 3 on your machine.
|
||||
|
||||
.. group-tab:: Windows
|
||||
During installation, check **Add Python 3 to PATH**, then click **Customize Installation** and make
|
||||
sure that **pip** is checked.
|
||||
|
||||
Odoo requires Python 3.7 or later to run. Visit `Python's download page <https://www.python.org/downloads/windows/>`_
|
||||
to download and install the latest version of Python 3 on your machine.
|
||||
|
||||
During installation, check **Add Python 3 to PATH**, then click **Customize Installation** and make
|
||||
sure that **pip** is checked.
|
||||
|
||||
.. note::
|
||||
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
.. note:: If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
versions are not compatible with Odoo.
|
||||
|
||||
.. code-block:: doscon
|
||||
@@ -359,32 +321,157 @@ Python
|
||||
|
||||
C:\> pip --version
|
||||
|
||||
.. group-tab:: Linux
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Odoo requires Python 3.7 or later to run. Use your package manager to download and install Python 3
|
||||
on your machine if it is not already done.
|
||||
Odoo uses PostgreSQL as database management system. `Download and install PostgreSQL <https://www.postgresql.org/download/windows/>`_
|
||||
(supported version: 10.0 and later).
|
||||
|
||||
.. note::
|
||||
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
versions are not compatible with Odoo.
|
||||
By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need to
|
||||
create a new PostgreSQL user:
|
||||
|
||||
.. code-block:: console
|
||||
#. Add PostgreSQL's `bin` directory (by default: `C:\\Program Files\\PostgreSQL\\<version>\\bin`) to
|
||||
your `PATH`.
|
||||
#. Create a postgres user with a password using the pg admin gui:
|
||||
|
||||
$ python3 --version
|
||||
1. Open **pgAdmin**.
|
||||
2. Double-click the server to create a connection.
|
||||
3. Select :menuselection:`Object --> Create --> Login/Group Role`.
|
||||
4. Enter the username in the **Role Name** field (e.g. `odoo`).
|
||||
5. Open the **Definition** tab and enter the password (e.g. ``odoo``), then click **Save**.
|
||||
6. Open the **Privileges** tab and switch **Can login?** to `Yes` and **Create database?** to
|
||||
`Yes`.
|
||||
|
||||
Verify also that pip_ is installed for this version.
|
||||
Dependencies
|
||||
^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
Before installing the dependencies, you must download and install the
|
||||
`Build Tools for Visual Studio <https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019>`_.
|
||||
When prompted, select **C++ build tools** in the **Workloads** tab and install them.
|
||||
|
||||
$ pip3 --version
|
||||
Odoo dependencies are listed in the `requirements.txt` file located at the root of the Odoo
|
||||
community directory.
|
||||
|
||||
.. group-tab:: Mac OS
|
||||
.. tip:: It can be preferable to not mix python modules packages between different instances of Odoo
|
||||
or with your system. You can use virtualenv_ to create isolated Python environments.
|
||||
|
||||
Odoo requires Python 3.7 or later to run. Use your preferred package manager (homebrew_, macports_)
|
||||
to download and install Python 3 on your machine if it is not already done.
|
||||
Navigate to the path of your Odoo Community installation (`CommunityPath`) and run **pip**
|
||||
on the requirements file in a terminal **with Administrator privileges**:
|
||||
|
||||
.. note::
|
||||
If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> cd \CommunityPath
|
||||
C:\> pip install setuptools wheel
|
||||
C:\> pip install -r requirements.txt
|
||||
|
||||
.. warning:: `wkhtmltopdf` is not installed through **pip** and must be installed manually in
|
||||
version `0.12.5 <the wkhtmltopdf download page_>`_ for it to support headers and
|
||||
footers. See our `wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more
|
||||
details on the various versions.
|
||||
|
||||
For languages with right-to-left interface (such as Arabic or Hebrew), the package `rtlcss` is
|
||||
needed:
|
||||
|
||||
#. Download and install `nodejs <https://nodejs.org/en/download/>`_.
|
||||
#. Install `rtlcss`:
|
||||
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> npm install -g rtlcss
|
||||
|
||||
#. Edit the System Environment's variable `PATH` to add the folder where `rtlcss.cmd` is located
|
||||
(typically: `C:\\Users\\<user>\\AppData\\Roaming\\npm\\`).
|
||||
|
||||
Running Odoo
|
||||
''''''''''''
|
||||
|
||||
Once all dependencies are set up, Odoo can be launched by running `odoo-bin`, the
|
||||
command-line interface of the server. It is located at the root of the Odoo Community directory.
|
||||
|
||||
To configure the server, you can either specify :ref:`command-line arguments <reference/cmdline/server>` or a
|
||||
:ref:`configuration file <reference/cmdline/config>`.
|
||||
|
||||
.. tip:: For the Enterprise edition, you must add the path to the `enterprise` addons to the
|
||||
`addons-path` argument. Note that it must come before the other paths in `addons-path` for
|
||||
addons to be loaded correctly.
|
||||
|
||||
Common necessary configurations are:
|
||||
|
||||
* PostgreSQL user and password.
|
||||
* Custom addon paths beyond the defaults, to load your own modules.
|
||||
|
||||
A typical way to run the server would be:
|
||||
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> cd CommunityPath/
|
||||
C:\> python odoo-bin -r dbuser -w dbpassword --addons-path=addons -d mydb
|
||||
|
||||
Where `CommunityPath` is the path of the Odoo Community installation, `dbuser` is the
|
||||
PostgreSQL login, `dbpassword` is the PostgreSQL password
|
||||
and `mydb` is the default database to serve on `localhost:8069`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`The exhaustive list of arguments for odoo-bin </developer/misc/other/cmdline>`.
|
||||
|
||||
Linux
|
||||
-----
|
||||
|
||||
Fetch the sources
|
||||
'''''''''''''''''
|
||||
|
||||
There are two ways to obtain the source code of Odoo: as a zip **archive** or through **git**.
|
||||
|
||||
Archive
|
||||
^^^^^^^
|
||||
|
||||
Community Edition:
|
||||
|
||||
* `Official download page <download_>`_
|
||||
* `GitHub repository <community-repository_>`_
|
||||
* `Nightly server <nightly_>`_
|
||||
|
||||
Enterprise Edition:
|
||||
|
||||
* `Official download page <download_>`_
|
||||
* `GitHub repository <enterprise-repository_>`_
|
||||
|
||||
Git
|
||||
^^^
|
||||
|
||||
The following requires git_ to be installed on your machine and that you have basic knowledge of
|
||||
git commands.
|
||||
|
||||
Community Edition:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/odoo.git
|
||||
|
||||
|
||||
Enterprise Edition: (see :ref:`setup/install/editions` to get access)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/enterprise.git
|
||||
|
||||
.. note:: **The Enterprise git repository does not contain the full Odoo source code**. It is only
|
||||
a collection of extra add-ons. The main server code is in the Community version. Running
|
||||
the Enterprise version actually means running the server from the Community version with
|
||||
the addons-path option set to the folder with the Enterprise version. You need to clone
|
||||
both the Community and Enterprise repository to have a working Odoo Enterprise
|
||||
installation.
|
||||
|
||||
Prepare
|
||||
'''''''
|
||||
|
||||
Python
|
||||
^^^^^^
|
||||
|
||||
Odoo requires Python 3.7 or later to run. Use your package manager to download and install Python 3
|
||||
on your machine if it is not already done.
|
||||
|
||||
.. note:: If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
versions are not compatible with Odoo.
|
||||
|
||||
.. code-block:: console
|
||||
@@ -398,169 +485,90 @@ Python
|
||||
$ pip3 --version
|
||||
|
||||
PostgreSQL
|
||||
~~~~~~~~~~
|
||||
^^^^^^^^^^
|
||||
|
||||
.. tabs::
|
||||
Odoo uses PostgreSQL as database management system. Use your package manager to download and install
|
||||
PostgreSQL (supported version: 10.0 and later).
|
||||
|
||||
.. group-tab:: Windows
|
||||
On Debian/Unbuntu, it can be achieved by executing the following:
|
||||
|
||||
Odoo uses PostgreSQL as database management system. `Download and install PostgreSQL
|
||||
<https://www.postgresql.org/download/windows/>`_ (supported version: 10.0 and later).
|
||||
|
||||
By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need
|
||||
to create a new PostgreSQL user:
|
||||
|
||||
#. Add PostgreSQL's `bin` directory (by default:
|
||||
:file:`C:\\Program Files\\PostgreSQL\\<version>\\bin`) to your `PATH`.
|
||||
#. Create a postgres user with a password using the pg admin gui:
|
||||
|
||||
1. Open **pgAdmin**.
|
||||
2. Double-click the server to create a connection.
|
||||
3. Select :menuselection:`Object --> Create --> Login/Group Role`.
|
||||
4. Enter the username in the **Role Name** field (e.g. `odoo`).
|
||||
5. Open the **Definition** tab and enter the password (e.g. `odoo`), then click **Save**.
|
||||
6. Open the **Privileges** tab and switch **Can login?** to `Yes` and **Create database?**
|
||||
to `Yes`.
|
||||
|
||||
.. group-tab:: Linux
|
||||
|
||||
Odoo uses PostgreSQL as database management system. Use your package manager to download and
|
||||
install PostgreSQL (supported version: 10.0 and later).
|
||||
|
||||
It can be achieved by executing the following:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo apt install postgresql postgresql-client
|
||||
|
||||
By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need
|
||||
to create a new PostgreSQL user:
|
||||
By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need to
|
||||
create a new PostgreSQL user:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo -u postgres createuser -s $USER
|
||||
$ createdb $USER
|
||||
|
||||
.. note::
|
||||
Because your PostgreSQL user has the same name as your Unix login, you will be able to
|
||||
.. note:: Because your PostgreSQL user has the same name as your Unix login, you will be able to
|
||||
connect to the database without password.
|
||||
|
||||
.. group-tab:: Mac OS
|
||||
.. _install/python-dependencies:
|
||||
|
||||
Odoo uses PostgreSQL as database management system. Use `postgres.app
|
||||
<https://postgresapp.com>`_ to download and install PostgreSQL (supported version: 10.0 and
|
||||
later).
|
||||
Python Dependencies
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need
|
||||
to create a new PostgreSQL user:
|
||||
Debian/Ubuntu
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. code-block:: console
|
||||
Using your **distribution packages** is the preferred way of installing dependencies.
|
||||
|
||||
$ sudo -u postgres createuser -s $USER
|
||||
$ createdb $USER
|
||||
For Debian-based systems, these packages are listed in the `debian/control
|
||||
<https://github.com/odoo/odoo/blob/master/debian/control>`_ file of the Odoo sources.
|
||||
|
||||
.. note::
|
||||
Because your PostgreSQL user has the same name as your Unix login, you will be able to
|
||||
connect to the database without password.
|
||||
On Debian/Ubuntu, the following commands should install the required packages:
|
||||
|
||||
.. _install/dependencies:
|
||||
|
||||
Dependencies
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Windows
|
||||
|
||||
Before installing the dependencies, you must download and install the `Build Tools for Visual
|
||||
Studio <https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019>`_.
|
||||
When prompted, select **C++ build tools** in the **Workloads** tab and install them.
|
||||
|
||||
Odoo dependencies are listed in the `requirements.txt` file located at the root of the Odoo
|
||||
community directory.
|
||||
|
||||
.. tip::
|
||||
It can be preferable to not mix python modules packages between different instances of Odoo
|
||||
or with your system. You can use virtualenv_ to create isolated Python environments.
|
||||
|
||||
Navigate to the path of your Odoo Community installation (`CommunityPath`) and run **pip** on
|
||||
the requirements file in a terminal **with Administrator privileges**:
|
||||
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> cd \CommunityPath
|
||||
C:\> pip install setuptools wheel
|
||||
C:\> pip install -r requirements.txt
|
||||
|
||||
For languages with right-to-left interface (such as Arabic or Hebrew), the package `rtlcss`
|
||||
is needed:
|
||||
|
||||
#. Download and install `nodejs <https://nodejs.org/en/download/>`_.
|
||||
#. Install `rtlcss`:
|
||||
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> npm install -g rtlcss
|
||||
|
||||
#. Edit the System Environment's variable `PATH` to add the folder where `rtlcss.cmd` is
|
||||
located (typically: :file:`C:\\Users\\<user>\\AppData\\Roaming\\npm\\`).
|
||||
|
||||
.. group-tab:: Linux
|
||||
|
||||
Using your **distribution packages** is the preferred way of installing dependencies.
|
||||
Alternatively, you can install the python dependencies with **pip**.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Debian/Ubuntu
|
||||
|
||||
For Debian-based systems, the packages are listed in the `debian/control
|
||||
<https://github.com/odoo/odoo/blob/master/debian/control>`_ file of the Odoo sources.
|
||||
|
||||
On Debian/Ubuntu, the following commands should install the required packages:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
|
||||
|
||||
.. tab:: Install with pip
|
||||
Install with pip
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
As some of the python packages need a compilation step, they require system libraries to
|
||||
be installed.
|
||||
Alternatively, you can use **pip** to install python dependencies. As some of the packages need a
|
||||
compilation step, they require system libraries to be installed.
|
||||
|
||||
On Debian/Ubuntu-based systems, the following command should install these required
|
||||
libraries:
|
||||
On Debian/Ubuntu-based systems, the following command should install these required libraries:
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev
|
||||
|
||||
Odoo dependencies are listed in the :file:`requirements.txt` file located at the root of
|
||||
the Odoo community directory.
|
||||
Odoo dependencies are listed in the :file:`requirements.txt` file located at the root of the Odoo
|
||||
community directory.
|
||||
|
||||
.. note::
|
||||
| The python packages in :file:`requirements.txt` are based on their stable/LTS
|
||||
Debian/Ubuntu corresponding version at the moment of the Odoo release.
|
||||
| E.g., for Odoo 15.0, the `python3-babel` package version is 2.8.0 in Debian
|
||||
Bullseye and 2.6.0 in Ubuntu Focal. The lowest version is then chosen in the
|
||||
:file:`requirements.txt`.
|
||||
.. note::
|
||||
The python packages in :file:`requirements.txt` are based on their stable/LTS Debian/Ubuntu
|
||||
corresponding version at the moment of the Odoo release.
|
||||
|
||||
.. tip::
|
||||
It can be preferable to not mix python modules packages between different instances
|
||||
of Odoo or with your system. You can use virtualenv_ to create isolated Python
|
||||
environments.
|
||||
E.g., for Odoo 15.0, the `python3-babel` package version is 2.8.0 in Debian Bullseye and 2.6.0
|
||||
in Ubuntu Focal. The lowest version is then chosen in the :file:`requirements.txt`.
|
||||
|
||||
Navigate to the path of your Odoo Community installation (:file:`CommunityPath`) and run
|
||||
**pip** on the requirements file to install the requirements for the current user.
|
||||
Navigate to the path of your Odoo Community installation (:file:`CommunityPath`) and run **pip** on
|
||||
the requirements file to install the requirements for the current user.
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ pip install -r requirements.txt
|
||||
|
||||
For languages with right-to-left interface (such as Arabic or Hebrew), the package `rtlcss` is
|
||||
needed:
|
||||
.. tip::
|
||||
It can be preferable not to mix python modules packages between different instances of Odoo or
|
||||
with your system. You can use virtualenv_ to create isolated Python environments.
|
||||
|
||||
Other Dependencies
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- `wkhtmltopdf` must be installed manually in version `0.12.5
|
||||
<https://github.com/wkhtmltopdf/wkhtmltopdf/releases/0.12.5/>`_ to support headers and footers.
|
||||
See our `wiki about wkhtmltopdf <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more details
|
||||
on the various versions.
|
||||
- Languages with a right-to-left interface (such as Arabic or Hebrew) require the `rtlcss` package:
|
||||
|
||||
#. Download and install **nodejs** and **npm** with your package manager.
|
||||
#. Install `rtlcss`:
|
||||
@@ -569,26 +577,145 @@ Dependencies
|
||||
|
||||
$ sudo npm install -g rtlcss
|
||||
|
||||
.. group-tab:: Mac OS
|
||||
Running Odoo
|
||||
''''''''''''
|
||||
|
||||
Odoo dependencies are listed in the `requirements.txt` file located at the root of the Odoo
|
||||
community directory.
|
||||
Once all dependencies are set up, Odoo can be launched by running `odoo-bin`, the
|
||||
command-line interface of the server. It is located at the root of the Odoo Community directory.
|
||||
|
||||
.. tip::
|
||||
It can be preferable to not mix python modules packages between different instances of Odoo
|
||||
or with your system. You can use virtualenv_ to create isolated Python environments.
|
||||
To configure the server, you can either specify :ref:`command-line arguments <reference/cmdline/server>` or a
|
||||
:ref:`configuration file <reference/cmdline/config>`.
|
||||
|
||||
Navigate to the path of your Odoo Community installation (`CommunityPath`) and run **pip** on
|
||||
the requirements file:
|
||||
.. tip:: For the Enterprise edition, you must add the path to the `enterprise` addons to the
|
||||
`addons-path` argument. Note that it must come before the other paths in `addons-path` for
|
||||
addons to be loaded correctly.
|
||||
|
||||
Common necessary configurations are:
|
||||
|
||||
* PostgreSQL user and password. Odoo has no defaults beyond
|
||||
`psycopg2's defaults <http://initd.org/psycopg/docs/module.html>`_: connects over a UNIX socket on
|
||||
port `5432` with the current user and no password.
|
||||
* Custom addon paths beyond the defaults, to load your own modules.
|
||||
|
||||
A typical way to run the server would be:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ python3 odoo-bin --addons-path=addons -d mydb
|
||||
|
||||
Where `CommunityPath` is the path of the Odoo Community installation
|
||||
and `mydb` is the default database to serve on `localhost:8069`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`The exhaustive list of arguments for odoo-bin </developer/misc/other/cmdline>`.
|
||||
|
||||
Mac OS
|
||||
------
|
||||
|
||||
Fetch the sources
|
||||
'''''''''''''''''
|
||||
|
||||
There are two ways to obtain the source code of Odoo: as a zip **archive** or through **git**.
|
||||
|
||||
Archive
|
||||
^^^^^^^
|
||||
|
||||
Community Edition:
|
||||
|
||||
* `Official download page <download_>`_
|
||||
* `GitHub repository <community-repository_>`_
|
||||
* `Nightly server <nightly_>`_
|
||||
|
||||
Enterprise Edition:
|
||||
|
||||
* `Official download page <download_>`_
|
||||
* `GitHub repository <enterprise-repository_>`_
|
||||
|
||||
Git
|
||||
^^^
|
||||
|
||||
The following requires git_ to be installed on your machine and that you have basic knowledge of
|
||||
git commands.
|
||||
|
||||
Community Edition:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/odoo.git
|
||||
|
||||
|
||||
Enterprise Edition: (see :ref:`setup/install/editions` to get access)
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/odoo/enterprise.git
|
||||
|
||||
.. note:: **The Enterprise git repository does not contain the full Odoo source code**. It is only
|
||||
a collection of extra add-ons. The main server code is in the Community version. Running
|
||||
the Enterprise version actually means running the server from the Community version with
|
||||
the addons-path option set to the folder with the Enterprise version. You need to clone
|
||||
both the Community and Enterprise repository to have a working Odoo Enterprise
|
||||
installation.
|
||||
|
||||
Prepare
|
||||
'''''''
|
||||
|
||||
Python
|
||||
^^^^^^
|
||||
|
||||
Odoo requires Python 3.7 or later to run. Use your preferred package manager (homebrew_, macports_)
|
||||
to download and install Python 3 on your machine if it is not already done.
|
||||
|
||||
.. note:: If Python 3 is already installed, make sure that the version is 3.7 or above, as previous
|
||||
versions are not compatible with Odoo.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ python3 --version
|
||||
|
||||
Verify also that pip_ is installed for this version.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ pip3 --version
|
||||
|
||||
PostgreSQL
|
||||
^^^^^^^^^^
|
||||
|
||||
Odoo uses PostgreSQL as database management system. Use `postgres.app <https://postgresapp.com>`_
|
||||
to download and install PostgreSQL (supported version: 10.0 and later).
|
||||
|
||||
By default, the only user is `postgres` but Odoo forbids connecting as `postgres`, so you need to
|
||||
create a new PostgreSQL user:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo -u postgres createuser -s $USER
|
||||
$ createdb $USER
|
||||
|
||||
.. note:: Because your PostgreSQL user has the same name as your Unix login, you will be able to
|
||||
connect to the database without password.
|
||||
|
||||
Dependencies
|
||||
^^^^^^^^^^^^
|
||||
|
||||
Odoo dependencies are listed in the `requirements.txt` file located at the root of the Odoo
|
||||
community directory.
|
||||
|
||||
.. tip:: It can be preferable to not mix python modules packages between different instances of Odoo
|
||||
or with your system. You can use virtualenv_ to create isolated Python environments.
|
||||
|
||||
Navigate to the path of your Odoo Community installation (`CommunityPath`) and run **pip**
|
||||
on the requirements file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ pip3 install setuptools wheel
|
||||
$ pip3 install -r requirements.txt
|
||||
|
||||
.. warning::
|
||||
Non-Python dependencies need to be installed with a package manager:
|
||||
.. warning:: Non-Python dependencies need to be installed with a package manager:
|
||||
|
||||
#. Download and install the **Command Line Tools**:
|
||||
|
||||
@@ -599,74 +726,50 @@ Dependencies
|
||||
#. Download and install the package manager of your choice (homebrew_, macports_).
|
||||
#. Install non-python dependencies.
|
||||
|
||||
For languages with right-to-left interface (such as Arabic or Hebrew), the package `rtlcss` is
|
||||
needed:
|
||||
.. warning:: `wkhtmltopdf` is not installed through **pip** and must be installed manually in
|
||||
version `0.12.5 <the wkhtmltopdf download page_>`_ for it to support headers and
|
||||
footers. See our `wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more
|
||||
details on the various versions.
|
||||
|
||||
#. Download and install **nodejs** with your preferred package manager (homebrew_, macports_).
|
||||
#. Install `rtlcss`:
|
||||
For languages with right-to-left interface (such as Arabic or Hebrew), the package `rtlcss` is
|
||||
needed:
|
||||
|
||||
#. Download and install **nodejs** with your preferred package manager (homebrew_, macports_).
|
||||
#. Install `rtlcss`:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo npm install -g rtlcss
|
||||
|
||||
.. important::
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in version `0.12.5
|
||||
<the wkhtmltopdf download page_>`_ for it to support headers and footers. See our `wiki
|
||||
<https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for more details on the various versions.
|
||||
|
||||
Running Odoo
|
||||
------------
|
||||
''''''''''''
|
||||
|
||||
Once all dependencies are set up, Odoo can be launched by running `odoo-bin`, the
|
||||
command-line interface of the server. It is located at the root of the Odoo Community directory.
|
||||
|
||||
To configure the server, you can either specify :ref:`command-line arguments
|
||||
<reference/cmdline/server>` or a :ref:`configuration file <reference/cmdline/config>`.
|
||||
To configure the server, you can either specify :ref:`command-line arguments <reference/cmdline/server>` or a
|
||||
:ref:`configuration file <reference/cmdline/config>`.
|
||||
|
||||
.. tip::
|
||||
For the Enterprise edition, you must add the path to the `enterprise` addons to the `addons-path`
|
||||
argument. Note that it must come before the other paths in `addons-path` for addons to be loaded
|
||||
correctly.
|
||||
.. tip:: For the Enterprise edition, you must add the path to the `enterprise` addons to the
|
||||
`addons-path` argument. Note that it must come before the other paths in `addons-path` for
|
||||
addons to be loaded correctly.
|
||||
|
||||
Common necessary configurations are:
|
||||
|
||||
- PostgreSQL user and password.
|
||||
- Custom addon paths beyond the defaults, to load your own modules.
|
||||
* PostgreSQL user and password. Odoo has no defaults beyond
|
||||
`psycopg2's defaults <http://initd.org/psycopg/docs/module.html>`_: connects over a UNIX socket on
|
||||
port `5432` with the current user and no password.
|
||||
* Custom addon paths beyond the defaults, to load your own modules.
|
||||
|
||||
A typical way to run the server would be:
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Windows
|
||||
|
||||
.. code-block:: doscon
|
||||
|
||||
C:\> cd CommunityPath/
|
||||
C:\> python odoo-bin -r dbuser -w dbpassword --addons-path=addons -d mydb
|
||||
|
||||
Where `CommunityPath` is the path of the Odoo Community installation, `dbuser` is the
|
||||
PostgreSQL login, `dbpassword` is the PostgreSQL password and `mydb` is the default database
|
||||
to serve on `localhost:8069`.
|
||||
|
||||
.. group-tab:: Linux
|
||||
|
||||
.. code-block:: console
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ python3 odoo-bin --addons-path=addons -d mydb
|
||||
|
||||
Where `CommunityPath` is the path of the Odoo Community installation and `mydb` is the default
|
||||
database to serve on `localhost:8069`.
|
||||
|
||||
.. group-tab:: Mac OS
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ python3 odoo-bin --addons-path=addons -d mydb
|
||||
|
||||
Where `CommunityPath` is the path of the Odoo Community installation and `mydb` is the default
|
||||
database to serve on `localhost:8069`.
|
||||
Where `CommunityPath` is the path of the Odoo Community installation
|
||||
and `mydb` is the default database to serve on `localhost:8069`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`The exhaustive list of arguments for odoo-bin </developer/misc/other/cmdline>`.
|
||||
@@ -703,6 +806,7 @@ official Odoo `docker image <https://hub.docker.com/_/odoo/>`_ page.
|
||||
.. _pywin32: http://sourceforge.net/projects/pywin32/files/pywin32/
|
||||
.. _community-repository: https://github.com/odoo/odoo
|
||||
.. _enterprise-repository: https://github.com/odoo/enterprise
|
||||
.. _git: https://git-scm.com/
|
||||
.. _Editions: https://www.odoo.com/pricing#pricing_table_features
|
||||
.. _nightly: https://nightly.odoo.com/
|
||||
.. _extra: https://nightly.odoo.com/extra/
|
||||
|
||||
@@ -21,6 +21,11 @@ You can use a custom domain name to access your Odoo database and websites:
|
||||
databases for one year. Visitors can then access your website with an address such as
|
||||
``www.example.com`` rather than the default ``example.odoo.com``.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Register a Free Domain Name
|
||||
<https://www.odoo.com/slides/slide/register-a-free-domain-name-1663>`_
|
||||
- `Odoo Quick Tips: Get a free domain name! <https://www.youtube.com/watch?v=eAfgeNOHLP4>`_
|
||||
|
||||
.. _domain-name/about:
|
||||
|
||||
About domain names
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
:nosearch:
|
||||
|
||||
===========
|
||||
Bank & Cash
|
||||
===========
|
||||
=============
|
||||
Bank and cash
|
||||
=============
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
==========
|
||||
Bank Feeds
|
||||
Bank feeds
|
||||
==========
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
===============
|
||||
Bank Statements
|
||||
Bank statements
|
||||
===============
|
||||
|
||||
Importing your bank statements in Odoo Accounting allows you to keep track of the financial
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
======================================
|
||||
Bank Synchronization: Automatic Import
|
||||
Bank synchronization: Automatic import
|
||||
======================================
|
||||
|
||||
Odoo can synchronize directly with your bank institution to get all bank statements imported
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
===================
|
||||
Bank Reconciliation
|
||||
Bank reconciliation
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -8,5 +8,6 @@ Setup
|
||||
:titlesonly:
|
||||
|
||||
setup/bank_accounts
|
||||
setup/outstanding_accounts
|
||||
setup/manage_cash_register
|
||||
setup/foreign_currency
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
====================
|
||||
Outstanding accounts
|
||||
====================
|
||||
|
||||
By default, payments are registered through transitory accounts named **outstanding accounts**,
|
||||
before being recorded in your bank account.
|
||||
|
||||
- An **outstanding payments account** is where outgoing payments are posted until they are linked
|
||||
with a withdrawal from your bank statement.
|
||||
- An **outstanding receipts account** is where incoming payments are posted until they are linked
|
||||
with a deposit from your bank statement.
|
||||
|
||||
These accounts should be of :ref:`type <chart-of-account/type>` :guilabel:`Current Assets`.
|
||||
|
||||
.. note::
|
||||
The movement from an outstanding account to a bank account is done automatically when you
|
||||
reconcile the bank account with a bank statement.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Default accounts configuration
|
||||
------------------------------
|
||||
|
||||
The outstanding accounts are defined by default. If necessary, you can update them by going to
|
||||
:menuselection:`Accounting --> Configuration --> Settings --> Default Accounts` and update your
|
||||
:guilabel:`Outstanding Receipts Account` and :guilabel:`Outstanding Payments Account`.
|
||||
|
||||
Bank and cash journals configuration
|
||||
------------------------------------
|
||||
|
||||
You can also set specific outstanding accounts for any journal with the :ref:`type
|
||||
<chart-of-account/type>` :guilabel:`Bank` or :guilabel:`Cash`.
|
||||
|
||||
From your :guilabel:`Accounting Dashboard`, click on the menu selection ⋮ of the journal you want to
|
||||
configure, and click on :guilabel:`Configuration`, then open the :guilabel:`Incoming/Outgoing
|
||||
Payments` tab. To display the outstanding accounts column, click on the toggle button and check the
|
||||
:guilabel:`Outstanding Receipts/Payments accounts`, then update the account.
|
||||
|
||||
.. image:: outstanding_accounts/toggle-button.png
|
||||
:align: center
|
||||
:alt: Select the toggle button and click on outstanding Accounts
|
||||
|
||||
.. note::
|
||||
If you do not specify an outstanding payments account or an outstanding receipts account for a
|
||||
specific journal, Odoo uses the default outstanding accounts.
|
||||
|
After Width: | Height: | Size: 9.0 KiB |
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
====================
|
||||
Fiscal Localizations
|
||||
Fiscal localizations
|
||||
====================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -555,6 +555,14 @@ be *In Payment* since the payment will be effectively validated when it is bank
|
||||
associated with the invoice, it must be valid so that the stamped payment complement can be
|
||||
created.
|
||||
|
||||
.. warning::
|
||||
- When making a payment in MXN for an invoice in USD, the payment must be created using the
|
||||
:guilabel:`Register Payment` button **on the invoice view** and not separately as a payment.
|
||||
Otherwise, the payment CFDI is not correctly generated.
|
||||
- As such, a payment in MXN cannot be used to pay multiple invoices in USD. Rather, the payment
|
||||
should be separated into multiple payments created using the :guilabel:`Register Payment`
|
||||
button on the corresponding invoices.
|
||||
|
||||
Register PUE Payments
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
============================
|
||||
Fiscal Localization Packages
|
||||
Fiscal localization packages
|
||||
============================
|
||||
|
||||
**Fiscal Localization Packages** are country-specific modules that install pre-configured taxes,
|
||||
|
||||
@@ -6,7 +6,7 @@ Odoo Accounting can be used in many countries out of the box by installing the a
|
||||
Here is a list of all :doc:`Fiscal Localization Packages <fiscal_localization_packages>` that are
|
||||
available on Odoo.
|
||||
|
||||
Fiscal Localization Packages available
|
||||
Fiscal localization packages available
|
||||
======================================
|
||||
|
||||
- Algeria - Accounting
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
===============
|
||||
Getting Started
|
||||
Getting started
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
=====================
|
||||
Initial Configuration
|
||||
Initial configuration
|
||||
=====================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -46,6 +46,8 @@ Code and Name
|
||||
|
||||
Each account is identified by its **Code** and **Name**, which also indicates the account's purpose.
|
||||
|
||||
.. _chart-of-account/type:
|
||||
|
||||
Type
|
||||
----
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
:nosearch:
|
||||
|
||||
===========
|
||||
========
|
||||
Analytic
|
||||
===========
|
||||
========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
================
|
||||
Account Payables
|
||||
Account payables
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
===============
|
||||
Vendor Payments
|
||||
Vendor payments
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=============
|
||||
Pay by Checks
|
||||
Pay by checks
|
||||
=============
|
||||
|
||||
Once you decide to pay a supplier bill, you can select to pay by check.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
============
|
||||
Vendor Bills
|
||||
Vendor bills
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
===================================
|
||||
Non-current Assets and Fixed Assets
|
||||
Non-current assets and fixed assets
|
||||
===================================
|
||||
|
||||
**Non-current Assets**, also known as **long-term assets**, are investments that are expected to be
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=================================
|
||||
Deferred Expenses and Prepayments
|
||||
Deferred expenses and prepayments
|
||||
=================================
|
||||
|
||||
**Deferred expenses** and **prepayments** (also known as **prepaid expense**), are both costs that
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
===================
|
||||
Manage vendor Bills
|
||||
Manage vendor bills
|
||||
===================
|
||||
|
||||
The **Purchase** application allows you to manage your purchase orders,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
==============================================================
|
||||
Digitize Vendor Bills with Optical Character Recognition (OCR)
|
||||
Digitize vendor bills with optical character recognition (OCR)
|
||||
==============================================================
|
||||
|
||||
Encoding bills manually can be a time-consuming task. Having a solution that allows you to digitize
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=================
|
||||
Purchase Receipts
|
||||
Purchase receipts
|
||||
=================
|
||||
|
||||
**Purchase Receipts** are not invoices but rather confirmations of received payments, such as a
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
===================
|
||||
Account Receivables
|
||||
Account receivables
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
=================
|
||||
Customer Invoices
|
||||
Customer invoices
|
||||
=================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=============
|
||||
Cash Rounding
|
||||
Cash rounding
|
||||
=============
|
||||
|
||||
**Cash rounding** is required when the lowest physical denomination
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
========================
|
||||
Credit Notes and Refunds
|
||||
Credit notes and refunds
|
||||
========================
|
||||
A **credit note**, or **credit memo**, is a document issued
|
||||
to a customer that notifies them that they have been credited
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=================
|
||||
Deferred Revenues
|
||||
Deferred revenues
|
||||
=================
|
||||
|
||||
**Deferred revenues**, or **unearned revenue**, are payments made in advance by customers for
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
===================================
|
||||
Payment Terms and Installment Plans
|
||||
Payment terms and installment plans
|
||||
===================================
|
||||
|
||||
**Payment Terms** specify all the conditions under which a sale is paid, mostly to ensure customers
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
======================================
|
||||
Send your Invoices by Post (Snailmail)
|
||||
Send your invoices by post (Snailmail)
|
||||
======================================
|
||||
|
||||
Direct mail is a great way to capture individuals’ attention at a time where inboxes are always
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
=================
|
||||
Customer Payments
|
||||
Customer payments
|
||||
=================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
==================================================
|
||||
Batch Payments: Batch Deposits (checks, cash etc.)
|
||||
Batch payments: Batch deposits (checks, cash etc.)
|
||||
==================================================
|
||||
|
||||
A **Batch Deposit** groups multiple payments in a single batch. This allows you to deposit several
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=======================================
|
||||
Batch Payments: SEPA Direct Debit (SDD)
|
||||
Batch payments: SEPA Direct Debit (SDD)
|
||||
=======================================
|
||||
|
||||
SEPA, the Single Euro Payments Area, is a payment-integration initiative of the European Union for
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
======================
|
||||
Invoice Online Payment
|
||||
Invoice online payment
|
||||
======================
|
||||
|
||||
To make it more convenient for your customers to pay the invoices you issue, you can activate the
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
:nosearch:
|
||||
|
||||
===========
|
||||
=========
|
||||
Reporting
|
||||
===========
|
||||
=========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
============================
|
||||
Tax Return (VAT Declaration)
|
||||
Tax return (VAT declaration)
|
||||
============================
|
||||
|
||||
Companies that are registered for **VAT (Value Added Tax)** must file a **Tax return** on a monthly
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:nosearch:
|
||||
|
||||
===========
|
||||
Fiscal Year
|
||||
Fiscal year
|
||||
===========
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -11,6 +11,7 @@ Taxes
|
||||
taxes/default_taxes
|
||||
taxes/fiscal_positions
|
||||
taxes/eu_distance_selling
|
||||
taxes/avatax
|
||||
taxes/taxcloud
|
||||
taxes/retention
|
||||
taxes/B2B_B2C
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
==================
|
||||
Avatax integration
|
||||
==================
|
||||
|
||||
Avatax is a tax calculation provider that can be integrated in Odoo.
|
||||
|
||||
.. _avatax/credentials:
|
||||
|
||||
Credential configuration
|
||||
========================
|
||||
|
||||
To integrate Avatax with Odoo, go to :menuselection:`Accounting --> Configuration --> Settings -->
|
||||
Taxes` and add your Avatax credentials in the :guilabel:`Avatax` section.
|
||||
|
||||
.. tip::
|
||||
If you do not yet have credentials, click on :guilabel:`How to Get Credentials`.
|
||||
|
||||
.. image:: avatax/avatax-configuration-settings.png
|
||||
:align: center
|
||||
:alt: Configure Avatax settings
|
||||
|
||||
.. _avatax/tax-mapping:
|
||||
|
||||
Tax mapping
|
||||
===========
|
||||
|
||||
The Avatax integration is available on Sale Orders and Invoices with the included Avatax fiscal
|
||||
position.
|
||||
|
||||
Before using the integration, specify an :guilabel:`Avatax Category` on the product categories.
|
||||
|
||||
.. image:: avatax/avatax-category.png
|
||||
:align: center
|
||||
:alt: Specify Avatax Category on products
|
||||
|
||||
Avatax Categories may be overridden or set on individual products as well.
|
||||
|
||||
.. image:: avatax/override-avatax-product-category.png
|
||||
:align: center
|
||||
:alt: Override product categories as needed
|
||||
|
||||
.. _avatax/address-mapping:
|
||||
|
||||
Address validation
|
||||
==================
|
||||
|
||||
Manually validate customer addresses by clicking the :guilabel:`Validate address` link in the
|
||||
customer form view.
|
||||
|
||||
.. image:: avatax/validate-customer-address.png
|
||||
:align: center
|
||||
:alt: Validate customer addresses
|
||||
|
||||
If preferred, choose to keep the newly validated address or the original address in the wizard that
|
||||
pops up.
|
||||
|
||||
.. image:: avatax/choose-customer-address.png
|
||||
:align: center
|
||||
:alt: Address validation wizard
|
||||
|
||||
.. _avatax/tax-calculation:
|
||||
|
||||
Tax calculation
|
||||
===============
|
||||
|
||||
Automatically calculate taxes on Odoo quotations and invoices with Avatax by confirming the
|
||||
documents. Alternatively, calculate the taxes manually by clicking the :guilabel:`Compute taxes
|
||||
using Avatax` button while these documents are in draft mode.
|
||||
|
||||
Use the :guilabel:`Avalara Code` field that's available on customers, quotations, and invoices to
|
||||
cross-reference data in Odoo and Avatax.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`fiscal_positions`
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -1,5 +1,5 @@
|
||||
=============
|
||||
Default Taxes
|
||||
Default taxes
|
||||
=============
|
||||
|
||||
**Default Taxes** define which :doc:`taxes <taxes>` are automatically selected when there is no
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
===================================
|
||||
EU intra-community Distance Selling
|
||||
EU intra-community distance selling
|
||||
===================================
|
||||
|
||||
**Distance sales within the European Union** include cross-border sales of goods and services to a
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
==========================================
|
||||
Fiscal Positions (tax and account mapping)
|
||||
Fiscal positions (tax and account mapping)
|
||||
==========================================
|
||||
|
||||
Default taxes and accounts are set on products and customers to create new transactions on the fly.
|
||||
|
||||
@@ -56,7 +56,7 @@ Online payment acquirers
|
||||
| | Payment flow | Save cards | Capture amount | Refund |
|
||||
| | | | manually | from Odoo |
|
||||
+===============================+======================+============+=================+===========+
|
||||
| :doc:`Adyen | Payment from Odoo | |V| | |V| | |V| |
|
||||
| :doc:`Adyen | Payment from Odoo | |V| | | |V| |
|
||||
| <payment_acquirers/adyen>` | | | | |
|
||||
+-------------------------------+----------------------+------------+-----------------+-----------+
|
||||
| :doc:`Alipay | Redirection to the | | | |
|
||||
@@ -86,7 +86,7 @@ Online payment acquirers
|
||||
| :doc:`SIPS | Redirection to the | | | |
|
||||
| <payment_acquirers/sips>` | acquirer website | | | |
|
||||
+-------------------------------+----------------------+------------+-----------------+-----------+
|
||||
| :doc:`Stripe | Redirection to the | |V| | |V| | |
|
||||
| :doc:`Stripe | Redirection to the | |V| | | |
|
||||
| <payment_acquirers/stripe>` | acquirer website | | | |
|
||||
+-------------------------------+----------------------+------------+-----------------+-----------+
|
||||
|
||||
|
||||
@@ -99,31 +99,5 @@ where payments will be made (the URLs of the servers hosting your Odoo instances
|
||||
:align: center
|
||||
:alt: Allows payments originated from a specific domain.
|
||||
|
||||
Place a hold on a card
|
||||
----------------------
|
||||
|
||||
Adyen allows you to capture an amount manually instead of having an immediate capture.
|
||||
|
||||
To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the
|
||||
:ref:`payment acquirers documentation <payment_acquirers/capture_amount>`.
|
||||
|
||||
Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settings`, and set the
|
||||
**Capture Delay** to **manual**.
|
||||
|
||||
.. image:: media/adyen_capture_delay.png
|
||||
:align: center
|
||||
:alt: Capture Delay settings in Adyen
|
||||
|
||||
.. caution::
|
||||
- If you configure Odoo to capture amounts manually, make sure to set the **Capture Delay** to
|
||||
**manual** on Adyen. Otherwise, the transaction will be blocked in the authorized state in
|
||||
Odoo.
|
||||
- Odoo doesn't support the partial capture yet. Be aware that if you make a partial capture from
|
||||
Adyen's interface, Odoo will manage it as if it was a full capture.
|
||||
|
||||
.. note::
|
||||
After **7 days**, if the transaction hasn't been captured yet, the customer has the right to
|
||||
**revoke** it.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../payment_acquirers`
|
||||
|
||||
@@ -28,8 +28,13 @@ To retrieve them, log into your Authorize.Net account, go to :menuselection:`Acc
|
||||
Key**.
|
||||
|
||||
.. important::
|
||||
If you are trying Authorize.Net as a test, with a *sandbox account*, change the **State** to
|
||||
*Test Mode*. We recommend doing this on a test Odoo database, rather than on your main database.
|
||||
If you are trying Authorize.Net as a test, with a *sandbox account*, change the :guilabel:`State`
|
||||
to :guilabel:`Test Mode`. We recommend doing this on a test Odoo database, rather than on your
|
||||
main database.
|
||||
|
||||
If you set :guilabel:`Test Mode` on Odoo and use an authorize.net account instead of a
|
||||
sandbox.authorize.net account, it results in the following error: *The merchant login ID or
|
||||
password is invalid or the account is inactive*.
|
||||
|
||||
Configuration tab
|
||||
-----------------
|
||||
|
||||
@@ -27,7 +27,7 @@ The method to acquire your credentials depends on your hosting type:
|
||||
.. tip::
|
||||
To use your own API keys, :ref:`activate the Developer mode <developer-mode>` and
|
||||
:ref:`enable Stripe manually <payment_acquirers/add_new>`. You can then :ref:`Fill in your
|
||||
credentials <stripe/api-keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
|
||||
credentials <stripe/api_keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
|
||||
payment acquirer.
|
||||
|
||||
.. group-tab:: Odoo.sh or On-premise
|
||||
@@ -37,7 +37,7 @@ The method to acquire your credentials depends on your hosting type:
|
||||
#. Fill in the requested information and submit the form.
|
||||
#. Confirm your email address when Stripe sends you a confirmation email.
|
||||
#. At the end of the process, you are redirected to the payment acquirer **Stripe** on Odoo.
|
||||
#. :ref:`Fill in your credentials <stripe/api-keys>`.
|
||||
#. :ref:`Fill in your credentials <stripe/api_keys>`.
|
||||
#. :ref:`Generate a webhook <stripe/webhook>`.
|
||||
#. Enable the payment acquirer.
|
||||
#. You are all set and can continue to :ref:`stripe/local-payment-methods`.
|
||||
@@ -51,7 +51,7 @@ The method to acquire your credentials depends on your hosting type:
|
||||
If you are testing Stripe (in **test mode**), change the **State** to *Test Mode*. We recommend
|
||||
doing this on a test Odoo database rather than on your main database.
|
||||
|
||||
.. _stripe/api-keys:
|
||||
.. _stripe/api_keys:
|
||||
|
||||
Fill in your credentials
|
||||
------------------------
|
||||
@@ -59,8 +59,8 @@ Fill in your credentials
|
||||
In case your **API Credentials** are required to connect with your Stripe account, these are the
|
||||
credentials that must be completed:
|
||||
|
||||
- :ref:`Publishable Key <stripe/api-keys>`: The key solely used to identify the account with Stripe.
|
||||
- :ref:`Secret Key <stripe/api-keys>`: The key to sign the merchant account with Stripe.
|
||||
- :ref:`Publishable Key <stripe/api_keys>`: The key solely used to identify the account with Stripe.
|
||||
- :ref:`Secret Key <stripe/api_keys>`: The key to sign the merchant account with Stripe.
|
||||
- :ref:`Webhook Signing Secret <stripe/webhook>`: When you enable your webhook on your Stripe
|
||||
account, this signing secret must be set to authenticate the messages sent from Stripe to Odoo.
|
||||
|
||||
@@ -77,67 +77,28 @@ In case your **Webhook Signing Secret** is required to connect with your Stripe
|
||||
create a webhook either automatically or manually.
|
||||
|
||||
.. tabs::
|
||||
.. tab:: Manage the webhook automatically
|
||||
.. tab:: Create the webhook automatically
|
||||
|
||||
Make sure your :ref:`Publishable and Secret keys <stripe/api-keys>` are filled in, then click
|
||||
on the :guilabel:`Generate your Webhook` button.
|
||||
Make sure your :ref:`Publishable and Secret keys <stripe/api_keys>` are filled in, then click
|
||||
on the *Generate your Webhook* button.
|
||||
|
||||
.. tip::
|
||||
To update the webhook, click once again on the :guilabel:`Generate your Webhook` button.
|
||||
|
||||
.. tab:: Manage the webhook manually
|
||||
.. tab:: Create the webhook manually
|
||||
|
||||
Visit the `webhooks page on Stripe <https://dashboard.stripe.com/webhooks>`_, or log into your
|
||||
Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on
|
||||
:guilabel:`Add endpoint` in your :guilabel:`Hosted endpoints` and insert the following data
|
||||
into the pop-up form:
|
||||
Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on **Add
|
||||
endpoint** in your **Hosted endpoints** and insert the following data into the pop-up form:
|
||||
|
||||
- | In the :guilabel:`Endpoint URL`, enter your Odoo database's URL followed by
|
||||
- | In the **Endpoint URL**, enter your Odoo database's URL followed by
|
||||
| `/payment/stripe/webhook`.
|
||||
| For example: `https://yourcompany.odoo.com/payment/stripe/webhook`
|
||||
- At the bottom of the form, you can select events to listen to. Click on :guilabel:`Select
|
||||
events`. Then:
|
||||
|
||||
- In the :guilabel:`Payment Intent` section, select
|
||||
:guilabel:`payment_intent.amount_capturable_updated` and
|
||||
:guilabel:`payment_intent.succeeded`.
|
||||
- In the :guilabel:`Setup Intent` section, select :guilabel:`setup_intent.succeeded`.
|
||||
- At the end of the form, you can **Select events** to listen to. Click on it and, in the
|
||||
**Checkout** section, select **checkout.session.completed**.
|
||||
|
||||
.. note::
|
||||
It is possible to select other events, but they are currently not processed by Odoo.
|
||||
|
||||
When you click on :guilabel:`Add endpoint`, your Webhook is configured. Click on
|
||||
:guilabel:`reveal` to display your signing secret.
|
||||
|
||||
.. tip::
|
||||
To update an existing webhook, click on it. Then, click on the three dots at the right side
|
||||
of the **Webhook URL** and on :guilabel:`Update details`.
|
||||
|
||||
Configuration tab
|
||||
-----------------
|
||||
|
||||
.. _stripe/manual-capture:
|
||||
|
||||
Place a hold on a card
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Stripe allows you to **capture an amount manually** instead of having an immediate capture. This
|
||||
feature earmarks an amount on the customer's account for a determined period of time that depends on
|
||||
the payment method used.
|
||||
|
||||
To set it up, enable the :guilabel:`Capture Amount Manually` option on Odoo, as explained in the
|
||||
:ref:`payment acquirers documentation <payment_acquirers/capture_amount>`.
|
||||
|
||||
.. warning::
|
||||
When the manual capture feature is activated, your customers are not able to proceed with any
|
||||
payment if unsupported payment methods are selected.
|
||||
|
||||
.. caution::
|
||||
Odoo doesn't support the partial capture yet. Be aware that a partial capture from Stripe's
|
||||
interface is still managed as a full capture by Odoo.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../payment_acquirers`
|
||||
When you click on **Add endpoint**, your Webhook is configured. You can then click on
|
||||
**reveal** to display your signing secret.
|
||||
|
||||
.. _stripe/local-payment-methods:
|
||||
|
||||
|
||||
@@ -38,12 +38,10 @@ are:
|
||||
customer. Then, the default scheduled date on the delivery order
|
||||
is **SO delivery date - Security Lead Time**.
|
||||
|
||||
- **Purchase Security Lead Time**: additional time to mitigate the risk
|
||||
of a vendor delay. The receipt will be scheduled that many days
|
||||
earlier to cope with unexpected vendor delays. In case of a
|
||||
*Replenish to Order*, the **Delivery order scheduled date -
|
||||
Security lead time** for purchase will be the default
|
||||
*Receipt* scheduled date.
|
||||
- **Purchase Security Lead Time**: margin of error for vendor lead times.
|
||||
When the system generates Purchase Orders for procuring products,
|
||||
they will be scheduled that many days earlier to cope with unexpected
|
||||
vendor delays.
|
||||
|
||||
- **Purchase Delivery Lead Time**: this is the expected time between a
|
||||
PO being confirmed and the receipt of the ordered products. The
|
||||
|
||||
@@ -75,6 +75,21 @@ Connect your database
|
||||
Only a limited amount of *Company Insights* (*Lead Enrichment*) requests are available as a
|
||||
trial. This feature requires :ref:`prepaid credits <mail_plugins/pricing>`.
|
||||
|
||||
.. tip::
|
||||
If, after a short while, the panel is still empty, it is possible that your browser cookie
|
||||
settings prevented it from loading.
|
||||
Note that these settings also change if you are in "Incognito" mode on your
|
||||
browser.
|
||||
|
||||
To fix this issue, configure your browser to always allow cookies on Odoo's plugin page.
|
||||
|
||||
For Google Chrome, you can do so by following the guide at:
|
||||
`https://support.google.com/chrome/answer/95647 <https://support.google.com/chrome/answer/95647#:~:text=Allow%20or%20block%20cookies%20for%20a%20specific%20site>`_
|
||||
and adding `download.odoo.com` to the list of `Sites that can always use cookies`.
|
||||
|
||||
Once done, the Outlook panel needs to be opened again.
|
||||
|
||||
|
||||
#. Enter your Odoo database URL and click on *Login*.
|
||||
|
||||
.. image:: outlook/enter-database-url.png
|
||||
|
||||
@@ -8,7 +8,6 @@ Acquire leads
|
||||
:titlesonly:
|
||||
|
||||
acquire_leads/convert
|
||||
acquire_leads/generate_from_email
|
||||
acquire_leads/generate_from_website
|
||||
acquire_leads/generate_leads
|
||||
acquire_leads/send_quotes
|
||||
acquire_leads/lead_mining
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
========================================
|
||||
Generate leads/opportunities from emails
|
||||
========================================
|
||||
|
||||
Automating the lead/opportunity generation will considerably improve
|
||||
your efficiency. By default, any email sent to
|
||||
*sales@database\_domain.ext* will create an opportunity in the
|
||||
pipeline of the default sales channel.
|
||||
|
||||
Configure email aliases
|
||||
=======================
|
||||
|
||||
Each sales teams can have its own email alias, to generate
|
||||
leads/opportunities automatically assigned to it. It is useful if you
|
||||
manage several sales teams with specific business processes. You will
|
||||
find the configuration of sales teams under
|
||||
:menuselection:`Configuration --> Sales Teams`.
|
||||
|
||||
.. image:: media/generate_from_email01.png
|
||||
:align: center
|
||||
@@ -1,78 +0,0 @@
|
||||
===========================================================
|
||||
Generate leads/opportunities from your website contact page
|
||||
===========================================================
|
||||
|
||||
Automating the lead/opportunity generation will considerably improve
|
||||
your efficiency. Any visitor using the contact form on your website will
|
||||
create a lead/opportunity in the pipeline.
|
||||
|
||||
Use the contact us on your website
|
||||
==================================
|
||||
|
||||
You should first go to your website app.
|
||||
|
||||
|image0|\ |image1|
|
||||
|
||||
With the CRM app installed, you benefit from a ready-to-use contact form
|
||||
on your Odoo website that will generate leads/opportunities
|
||||
automatically.
|
||||
|
||||
.. image:: media/generate_from_website03.png
|
||||
:align: center
|
||||
|
||||
To change to a specific sales channel, go to :menuselection:`Website
|
||||
--> Configuration --> Settings` under *Communication* you will find the
|
||||
Contact Form info and where to change the *Sales Channel* or
|
||||
*Salesperson*.
|
||||
|
||||
.. image:: media/generate_from_website04.png
|
||||
:align: center
|
||||
|
||||
Create a custom contact form
|
||||
============================
|
||||
|
||||
You may want to know more from your visitor when they use the contact form to
|
||||
you will need to build a custom contact form on your
|
||||
website. These contact forms can generate multiple types of records in
|
||||
the system (emails, leads/opportunities, project tasks, helpdesk
|
||||
tickets, etc.)
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
You will need to install the free *Form Builder* module, only
|
||||
available in Odoo Enterprise.
|
||||
|
||||
.. image:: media/generate_from_website05.png
|
||||
:align: center
|
||||
|
||||
Create a custom contact form
|
||||
----------------------------
|
||||
|
||||
First, go to the page where you want to put your contact form. In edit mode, drag
|
||||
the form builder onto the page, and you will be able to add all the fields
|
||||
you wish.
|
||||
|
||||
.. image:: media/generate_from_website06.png
|
||||
:align: center
|
||||
|
||||
By default, any new contact form will send an email. You can switch to
|
||||
lead/opportunity generation in *Change Form Parameters*.
|
||||
|
||||
.. note::
|
||||
If the same visitor uses the contact form twice, the second
|
||||
entry will be added to the first lead/opportunity in the chatter.
|
||||
|
||||
Generate leads instead of opportunities
|
||||
=======================================
|
||||
|
||||
When using a contact form, you should use a qualification step
|
||||
before assigning the form to the right sales people. To do so, activate *Leads*
|
||||
in CRM settings and refer to :doc:`convert`.
|
||||
|
||||
.. |image0| image:: ./media/generate_from_website01.png
|
||||
:width: 1.04401in
|
||||
:height: 1.16146in
|
||||
.. |image1| image:: ./media/generate_from_website02.png
|
||||
:width: 1.43229in
|
||||
:height: 1.16244in
|
||||
104
content/applications/sales/crm/acquire_leads/generate_leads.rst
Normal file
@@ -0,0 +1,104 @@
|
||||
============================
|
||||
Generate leads/opportunities
|
||||
============================
|
||||
|
||||
Two key ways to generate new leads or opportunities for your business are through email aliases and
|
||||
website contact forms. Odoo automatically creates leads in your CRM whenever someone sends a
|
||||
message to a Sales Team email alias or fills out a contact form on your website.
|
||||
|
||||
Configure email aliases
|
||||
=======================
|
||||
|
||||
Each Sales Team can use its own unique email alias to generate leads/opportunities. Any email sent
|
||||
to a Sales Team's email alias will automatically create a lead (if leads are activated in your CRM
|
||||
settings) or an opportunity in the pipeline for that particular team. Configure custom email
|
||||
aliases on the configuration page for each Sales Team by navigating to :menuselection:`CRM -->
|
||||
Configuration --> Sales Teams`.
|
||||
|
||||
.. image:: generate_leads/sales-team-config.png
|
||||
:align: center
|
||||
:alt: Configuring Sales Teams
|
||||
|
||||
Use Contact Forms on your website
|
||||
=================================
|
||||
|
||||
By default, your website's *Contact Us* page displays Odoo's ready-to-use Contact Form. Whenever
|
||||
someone submits this form, a lead or an opportunity is generated in your database.
|
||||
|
||||
.. image:: generate_leads/default-contact-us-page.png
|
||||
:align: center
|
||||
:alt: Default Contact Us page
|
||||
|
||||
The Contact Form can be activated or deactivated at any time by going to :menuselection:`Website
|
||||
--> Go to Website --> Customize --> Contact Form`.
|
||||
|
||||
.. image:: generate_leads/contact-form-toggle.png
|
||||
:align: center
|
||||
:alt: Contact Form toggle
|
||||
|
||||
When the Form is deactivated, the *Contact Us* page simply displays a button to email your company
|
||||
directly. Any email sent this way will generate a lead/opportunity.
|
||||
|
||||
.. image:: generate_leads/default-contact-us-page-no-form.png
|
||||
:align: center
|
||||
:alt: Contact Us Page using email
|
||||
|
||||
Choose which Sales Team or salesperson is automatically assigned to the leads/opportunities created
|
||||
from the Contact Form by going to :menuselection:`Website --> Configuration --> Settings -->
|
||||
Communication`.
|
||||
|
||||
.. image:: generate_leads/contact-form-settings.png
|
||||
:align: center
|
||||
:alt: Contact Form settings
|
||||
|
||||
Customize Contact Forms
|
||||
=======================
|
||||
|
||||
Contact Forms can be customized for the specific information your team needs, using the free *Form
|
||||
Builder* module.
|
||||
|
||||
The *Form Builder* module is installed automatically when a Form element is added to a web page via
|
||||
the Website Builder. It can also be installed manually from the :guilabel:`Apps` page.
|
||||
|
||||
.. image:: generate_leads/form-building-block.png
|
||||
:align: center
|
||||
:alt: Form Builder building blocks
|
||||
|
||||
.. tip::
|
||||
Forms can be created from scratch to serve a wide variety of purposes. However, Odoo's default
|
||||
*Contact Us* page is designed to fit most users' needs. Start with the default form and modify
|
||||
from there.
|
||||
|
||||
Edit Contact Form fields
|
||||
------------------------
|
||||
|
||||
In Edit mode on your website, click on any field to start editing it. The following information can
|
||||
be edited for each field on the Contact Form:
|
||||
|
||||
- :guilabel:`Type`: Choose a custom field option or an existing field. Examples include phone, file
|
||||
upload, language, etc.
|
||||
- :guilabel:`Input Type`: Determine the type of entry customers should input. Available options are
|
||||
text,email, telephone, and URL.
|
||||
- :guilabel:`Input Placeholder`: Type in an example to guide users how to input information where
|
||||
formatting is important, such as a phone number or email address.
|
||||
- :guilabel:`Label Name`: Type in the display name to show users what information is needed from
|
||||
them.
|
||||
- :guilabel:`Label Position`: Choose the way the label is aligned with the rest of the form. The
|
||||
label can be hidden, above the field, to the far left of the field, or right adjusted and closer
|
||||
to the field.
|
||||
- :guilabel:`Required`: Toggle this option for information that you absolutely need entered.
|
||||
- :guilabel:`Hidden`: Toggle this option to hide the field without deleting it.
|
||||
- :guilabel:`Shown on Mobile`: Toggle this option to show the field to users on mobile devices.
|
||||
|
||||
.. image:: generate_leads/editable-field-options.png
|
||||
:align: center
|
||||
:alt: Editable field options
|
||||
|
||||
By default, when a Form is submitted, it sends you an email with the customer's inputted
|
||||
information. To have it automatically generate a lead/opportunity instead, edit the Form and select
|
||||
:guilabel:`Create an Opportunity` as the Action.
|
||||
|
||||
.. tip::
|
||||
If leads are activated in your CRM settings, selecting :guilabel:`Create an Opportunity`
|
||||
generates a lead instead. To learn more about activating leads in the CRM settings, head over to
|
||||
:doc:`convert`.
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 18 KiB |
@@ -31,7 +31,7 @@ From there, click on the **Generate Leads** button, a window where you will be a
|
||||
:align: center
|
||||
|
||||
|
||||
When choosing to target Companied and their contacts you can choose the contacts you are getting based on Role or Seniority.
|
||||
When choosing to target Companies and their contacts you can choose the contacts you are getting based on Role or Seniority.
|
||||
When getting contact information make sure to be aware of the latest EU regulation, get more information about General Data Protection Regulation on
|
||||
`Odoo GDPR <http://odoo.com/gdpr>`__,
|
||||
|
||||
@@ -49,10 +49,10 @@ You can also add tags to track your generated leads.
|
||||
Pricing
|
||||
==================
|
||||
This is an In-App Purchase feature, each generated lead will cost you one credit.
|
||||
If you choose to get contact information each contact will also cost us one additional credit.
|
||||
If you choose to get contact information each contact will also cost you one additional credit.
|
||||
Here is the pricing for this `feature <https://iap.odoo.com/iap/in-app-services/167?>`__,
|
||||
To buy credits you can either go to :menuselection:`CRM --> Configuration --> Settings --> Buy
|
||||
Credits`; or go to :menuselection:`Settings --> In-App Purchases --> View my Services`.
|
||||
Credits`; or go to :menuselection:`Settings --> Contacts --> Odoo IAP --> View my Services`.
|
||||
|
||||
.. image:: media/LM6.png
|
||||
:align: center
|
||||
|
||||
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 19 KiB |
@@ -1,47 +1,65 @@
|
||||
===========================
|
||||
Manage multiple sales teams
|
||||
===========================
|
||||
====================
|
||||
Multiple sales teams
|
||||
====================
|
||||
|
||||
In Odoo, you can manage several sales teams, departments or channels
|
||||
with specific sales processes. To do so, we use the concept of *Sales
|
||||
Channel*.
|
||||
Odoo lets you manage several sales teams, departments, or channels, each with their own unique
|
||||
sales processes, using *Sales Teams*.
|
||||
|
||||
Create a new sales channel
|
||||
==========================
|
||||
|
||||
To create a new *Sales Channel*, go to :menuselection:`Configuration --> Sales Channels`.
|
||||
|
||||
There you can set an email alias to it. Every message sent to that email
|
||||
address will create a lead/opportunity.
|
||||
|
||||
.. image:: media/multi_sales_team01.png
|
||||
:align: center
|
||||
|
||||
Add members to your sales channel
|
||||
---------------------------------
|
||||
|
||||
You can add members to any channel; that way those members will see the
|
||||
pipeline structure of the sales channel when opening it. Any
|
||||
lead/opportunity assigned to them will link to the sales channel.
|
||||
Therefore, you can only be a member of one channel.
|
||||
|
||||
This will ease the process review of the team manager.
|
||||
|
||||
.. image:: media/multi_sales_team02.png
|
||||
:align: center
|
||||
|
||||
If you now filter on this specific channel in your pipeline, you will
|
||||
find all of its opportunities.
|
||||
|
||||
.. image:: media/multi_sales_team03.png
|
||||
:align: center
|
||||
|
||||
Sales channel dashboard
|
||||
Create a new Sales Team
|
||||
=======================
|
||||
|
||||
To see the operations and results of any sales channel at a glance, the
|
||||
sales manager also has access to the *Sales Channel Dashboard* under
|
||||
*Reporting*.
|
||||
To create a new Sales Team, go to :menuselection:`CRM --> Configuration --> Sales Teams` then
|
||||
click **Create**.
|
||||
|
||||
On the creation page, set an *Email Alias* to automatically generate a lead/opportunity for this
|
||||
Sales Team every time a message is sent to that unique email address. You can also choose whether
|
||||
to accept emails from *Everyone*, *Authenticated Partners*, or *Followers Only*.
|
||||
|
||||
Set a *Domain* to assign leads/opportunities to this Sales Team based on specific filters, such as
|
||||
country, language, or campaign. Set an *Invoicing Target* if this team has specific monthly revenue
|
||||
goals.
|
||||
|
||||
.. image:: multiple_sales_teams/sales-team-creation.png
|
||||
:align: center
|
||||
:alt: Creating a Sales Team
|
||||
|
||||
Add members to a Sales Team
|
||||
---------------------------
|
||||
|
||||
To add team members, click **Add** under the Assignment tab when editing the Sales Team's
|
||||
configuration page. Select a salesperson from the dropdown menu or create new salesperson. Set a
|
||||
maximum number of leads that can be assigned to this salesperson in a 30-day period to ensure that
|
||||
they do not overwork.
|
||||
|
||||
.. image:: multiple_sales_teams/add-a-salesperson.png
|
||||
:align: center
|
||||
:alt: Adding a Salesperson
|
||||
|
||||
One person can be added as a team member or Team Leader to multiple Sales Teams, allowing them to access all of the pipelines that they need to.
|
||||
|
||||
Sales Team dashboard
|
||||
====================
|
||||
|
||||
To view the Sales Team dashboard, go to :menuselection:`CRM --> Configuration --> Sales Teams`. Any
|
||||
teams you are a part of will appear as dashboard tiles.
|
||||
|
||||
Each tile gives an overview of the Sales Team's open opportunities, quotations, sales orders, and
|
||||
expected revenue, as well as a bar graph of new opportunities per week and an invoicing progress
|
||||
bar.
|
||||
|
||||
.. image:: multiple_sales_teams/sales-team-overview.png
|
||||
:align: center
|
||||
:alt: Sales Team Overview
|
||||
|
||||
Click on the three dots in the corner of a tile to open a navigational menu that lets you quickly
|
||||
view documents or reports, create new quotations or opportunities, pick a color for this team, or
|
||||
access its configuration page.
|
||||
|
||||
.. image:: multiple_sales_teams/team-overview-three-dot-menu.png
|
||||
:align: center
|
||||
:alt: Three Dot Menu
|
||||
|
||||
Click on the **Pipeline** button to go directly to that team's CRM pipeline.
|
||||
|
||||
|
||||
It is shared with the whole ecosystem so every revenue stream is
|
||||
included in it: Sales, eCommerce, PoS, etc.
|
||||
|
||||
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
@@ -2,77 +2,72 @@
|
||||
Assign leads based on scoring
|
||||
=============================
|
||||
|
||||
With *Leads Scoring* you can automatically rank your leads based on
|
||||
selected criteria.
|
||||
*Lead Scoring* lets you rank and prioritize leads based on selected criteria. A higher score
|
||||
indicates that a lead is more likely to bring value to your company.
|
||||
|
||||
For example you could score customers from your country higher or the
|
||||
ones that visited specific pages on your website.
|
||||
For example, if customers from Canada tend to be more likely to purchase your products, you can
|
||||
assign them a higher score than customers from other countries.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To use scoring, install the free module *Lead Scoring* under your
|
||||
*Apps* page (only available in Odoo Enterprise).
|
||||
To use scoring, go to :menuselection:`Apps`, remove the :guilabel:`Apps` filter, search for
|
||||
:guilabel:`Lead Scoring` and then install the module.
|
||||
|
||||
.. image:: media/lead_scoring01.png
|
||||
.. image:: lead_scoring/lead-scoring-module.png
|
||||
:align: center
|
||||
:alt: Lead Scoring module installation
|
||||
|
||||
Create scoring rules
|
||||
====================
|
||||
|
||||
You now have a new tab in your *CRM* app called *Leads Management*
|
||||
where you can manage your scoring rules.
|
||||
To manage scoring rules, go to :menuselection:`CRM --> Leads --> Scoring Rules`.
|
||||
|
||||
Here's an example for a Canadian lead, you can modify for whatever
|
||||
criteria you wish to score your leads on. You can add as many criteria
|
||||
as you wish.
|
||||
Customize your rules to fit the needs of your business, and add as many criteria as you want.
|
||||
|
||||
.. image:: media/lead_scoring02.png
|
||||
.. image:: lead_scoring/scoring-example.png
|
||||
:align: center
|
||||
:alt: Score Rule example
|
||||
|
||||
Every hour every lead without a score will be automatically scanned and
|
||||
assigned their right score according to your scoring rules.
|
||||
Every hour, Odoo automatically assigns scores to new leads according to your configured rules.
|
||||
|
||||
.. image:: media/lead_scoring03.png
|
||||
.. image:: lead_scoring/scoring-section-on-lead.png
|
||||
:align: center
|
||||
:alt: Scoring section on a lead
|
||||
|
||||
Assign leads
|
||||
============
|
||||
|
||||
Once the scores computed, leads can be assigned to specific teams using
|
||||
the same domain mechanism. To do so go to :menuselection:`CRM --> Leads Management --> Team Assignation`
|
||||
and apply a specific domain on each team. This domain can include scores.
|
||||
Odoo can also assign leads to specific teams based on configured rules. To configure assignment
|
||||
rules, go to the individual Sales Team's configuration page via :menuselection:`CRM --> Leads -->
|
||||
Team Assignment` or :menuselection:`CRM --> Configuration --> Sales Teams`, and apply a specific
|
||||
Domain to each team. The Domain can include lead scores.
|
||||
|
||||
.. image:: media/lead_scoring04.png
|
||||
.. image:: lead_scoring/team-assignation.png
|
||||
:align: center
|
||||
:alt: Team Assignments using domains
|
||||
|
||||
Further on, you can assign to a specific vendor in the team with an even
|
||||
more refined domain.
|
||||
Assign leads to specific salespeople using further refined Domains at :menuselection:`CRM --> Leads
|
||||
--> Leads Assignment`.
|
||||
|
||||
To do so go to :menuselection:`CRM --> Leads Management --> Leads Assignation`.
|
||||
|
||||
.. image:: media/lead_scoring05.png
|
||||
.. image:: lead_scoring/lead-assignment-filters.png
|
||||
:align: center
|
||||
:alt: Lead Assignments
|
||||
|
||||
Odoo automatically assigns new leads to teams/salespeople once per day.
|
||||
|
||||
Evaluate and use the unassigned leads
|
||||
=====================================
|
||||
|
||||
Not all leads will fall into your set Domains and get assigned automatically by Odoo.
|
||||
|
||||
To view your unassigned leads, go to :menuselection:`CRM --> Leads --> Leads` and select the
|
||||
Unassigned filter.
|
||||
|
||||
.. image:: lead_scoring/unassigned-filter.png
|
||||
:align: center
|
||||
:alt: Filtering for unassigned leads
|
||||
|
||||
.. note::
|
||||
The team & leads assignation will assign the unassigned leads
|
||||
once a day.
|
||||
|
||||
Evaluate & use the unassigned leads
|
||||
===================================
|
||||
|
||||
Once your scoring rules are in place you will most likely still have
|
||||
some unassigned leads. Some of them could still lead to an opportunity
|
||||
so it is useful to do something with them.
|
||||
|
||||
In your leads page you can place a filter to find your unassigned leads.
|
||||
|
||||
.. image:: media/lead_scoring06.png
|
||||
:align: center
|
||||
|
||||
Why not using :menuselection:`Email Marketing` or
|
||||
:menuselection:`Marketing Automation` apps to send a mass email to
|
||||
them? You can also easily find such unassigned leads from there.
|
||||
|
||||
.. image:: media/lead_scoring07.png
|
||||
:align: center
|
||||
You can also find unassigned leads and create re-engagement campaigns using the :guilabel:`Email
|
||||
Marketing` or :guilabel:`Marketing Automation` apps.
|
||||
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |