Compare commits

...

33 Commits

Author SHA1 Message Date
Xavier Morel
726be95584 [REM] reference: long deprecated SavepointCase 2022-10-26 14:05:16 +02:00
Victor Feyens
e63b92a718 [FIX] developer/cli: remove unsupported cli options
Removed by c0647b5c52

Fixes odoo/odoo#104060

closes odoo/documentation#2863

X-original-commit: 1225c93112
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-26 01:58:48 +02:00
Victor Feyens
ac813f2b5b [FIX] developer/guidelines: do not mention deprecated xml tags
act_window & report xml tags have been deprecated by
6835aeb0de
two years ago, we should avoid mentioning them in the guidelines.

Furthermore, in 17.0 they won't be available anymore.

closes odoo/documentation#2862

X-original-commit: 758463edd4
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-25 21:20:53 +02:00
Zachary Straub (ZST)
6419980663 [IMP] inventory: thd batch updates
closes odoo/documentation#2855

X-original-commit: ac3ec17266
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-25 21:20:45 +02:00
niyasraphy
894e1be9c6 [IMP] report_barcode function: parameter type to barcode_type
ee324e8374

closes odoo/documentation#2847

X-original-commit: 3f34c3874c
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-24 18:59:30 +02:00
Christophe Monniez
59db0ca18c [FIX] install: update installation from the nightly debian repo
As the `apt-key` command will is deprecated and will be removed in the
next Debian release, it's time to update the documentation.

closes odoo/documentation#2846

X-original-commit: 1c2d59b280
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-24 17:07:13 +02:00
Jonathan Castillo (jcs)
ab1a7d0a69 [IMP] *: Remove "SaaS" to keep only the "Odoo Online" appellation
task-3034812

closes odoo/documentation#2839

X-original-commit: 9b69e0d77e
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2022-10-21 20:00:56 +02:00
Jonathan Castillo (jcs)
06d0ff6ca8 [IMP] *: consistency for the use of "Odoo Online" (and SaaS)
task-3034812

X-original-commit: 2c17b6fb4a
Part-of: odoo/documentation#2839
2022-10-21 20:00:55 +02:00
Xavier Morel
219a7cc82f [ADD] reference/orm: grouped method
closes odoo/documentation#2783

Related: odoo/odoo#101522
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-21 13:06:06 +02:00
nbe-odoo
b9217c292a [FIX] website: rst and file organization for plausible.rst
- external links
- notes
- indentation
- media filenames
- images compression
- images alt tags
- light content improvement

closes odoo/documentation#2831

X-original-commit: 87392b7262
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Co-authored-by: Nicolas Bebawi (nbe) <nbe@odoo.com>
Co-authored-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2022-10-20 17:17:18 +02:00
zzk2000
814917793a [FW][FIX] administration/install: Odoo 16 distribution link
closes odoo/documentation#2830

Forward-port-of: odoo/documentation#2817
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-20 17:17:15 +02:00
tsm-odoo
7423cfa8f8 [IMP] install: add $connection_upgrade map documentation
Before this commit, following the install documentation to setup
the odoochat server would fail. This was due to the fact that the
documentation about how to define the `$connection_upgrade` variable
was missing.

This PR fixes this issue.

closes odoo/documentation#2829

X-original-commit: 9ed3575f19
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
Signed-off-by: Stockbauer Matthieu (tsm) <tsm@odoo.com>
2022-10-20 17:17:12 +02:00
Olivier Dony
9d9548da4a [IMP] legal: make PDF links relative
This way we don't need to update the links nor risk a desynchronization
between the version of the PDF and the HTML.

Previously version 15.0 and 16.0 still referenced the 14.0 PDFs
(which are the same at the moment, but still...)
2022-10-19 19:11:49 +02:00
Olivier Dony
c1bc6ddf6e [FIX] legal: enterprise terms FR fall 2022 pricing typo 2022-10-19 19:11:45 +02:00
“Friederike
f42bf525e9 [FIX] legal: enterprise terms DE translation update (v9c) 2022-10-19 19:11:41 +02:00
Elias
ade054b752 [FIX] developer/howtos/rdtraining: Update warning message
Update warning output for missing access rules.
Also reflect up-to-date contents of res.country.state.csv.

closes odoo/documentation#2826

X-original-commit: e21dbd01c9
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-18 13:17:37 +02:00
Victor Feyens
9a5b5b0614 [FIX] *: Odoo 16 requires postgresql 12
Update the minimal version in the installation doc
Make all postgresql docs references target the v12 documentation
Fix some non http links on the way

closes odoo/documentation#2822

X-original-commit: 93b383e95d
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-18 12:19:30 +02:00
Olivier Dony
4fe6fbee12 [CHG] legal: enterprise terms for fall 2022 pricing
- removal of "per app" notion
- addition of "subscription plan" notion
2022-10-13 12:20:27 +02:00
Antoine Vandevenne (anv)
cd549cb386 [IMP] supported_version: release 16.0 and deprecate 13.0
closes odoo/documentation#2814

X-original-commit: 3c61d24b1d
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-12 09:39:45 +02:00
Demesmaeker
d41a66758f [IMP] sale_amazon: support all marketplaces
task-2939972

closes odoo/documentation#2806

X-original-commit: 91f3859a53
Related: odoo/enterprise#32699
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-11 16:57:18 +02:00
Victor Feyens
3a7be7730d [IMP] developer/orm: environment documentation
Move Environment explanation to the class docstring and autogenerate the
doc

Add documentation on some util methods.

closes odoo/documentation#2803

X-original-commit: 7c42ab8eaf
Related: odoo/odoo#102969
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2022-10-10 19:55:40 +02:00
Victor Feyens
c8ab0c1535 [FIX] developer/iap: wrong :class: element
X-original-commit: b7f5b3e04b
Part-of: odoo/documentation#2803
2022-10-10 19:55:40 +02:00
Antoine Vandevenne (anv)
0e567a08de [IMP] reference/payment: auto-document the method _get_removal_values
Task - 3002532

closes odoo/documentation#2802

X-original-commit: 7696235acb
Related: odoo/odoo#102951
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-10 19:03:20 +02:00
Antoine Vandevenne (anv)
9baab389c9 [ADD] reference/standard_modules: API reference for the payment engine
task-2804999

closes odoo/documentation#2797

X-original-commit: 668ac2c650
Related: odoo/odoo#102716
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-09 09:11:46 +02:00
Xavier-Do
46a80f60c5 [ADD] developer/reference: add a reference page on performance
closes odoo/documentation#2794

X-original-commit: 4d8e3f9785
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-10-06 18:01:00 +02:00
Julien Van Roy
aab2d6615a [IMP] accounting/electronic_invoicing: update factur-x usage
Update Factur-X mentions and screenshot.

task-2957808
https://github.com/odoo/odoo/pull/99699

closes odoo/documentation#2789

X-original-commit: 1387c5e8c3
Related: odoo/odoo#102311
Related: odoo/enterprise#32344
Signed-off-by: Julien Van Roy <juvr@odoo.com>
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2022-10-06 10:43:01 +02:00
Denis Ledoux
991b8142fe [IMP] developer/reference: move model view related methods out of orm
The model method `get_views` and `get_view` are moved
from `odoo/models.py` to `odoo/addons/base/models/ir_ui_view.py`.

The documentation is updated accordingly,
to put the documentation related to `get_views` in the
views chapter of the documentation.

closes odoo/documentation#2786

X-original-commit: 0bdf714112
Related: odoo/odoo#102117
Signed-off-by: Denis Ledoux (dle) <dle@odoo.com>
2022-10-04 18:06:37 +02:00
Aleksander
f4bbbcb6c1 [FW][IMP] howtos/rdtraining: give the meaning of "ACL"
closes odoo/documentation#2779

Forward-port-of: odoo/documentation#2774
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-09-30 12:34:44 +02:00
Jonathan Quique (jqu)
768ab1b586 [IMP] email_communication: can't use Odoo STMP with another mail server
Customer may want to use their own SMTP for email marketing, and Odoo default SMTP for everything else. There is no good way to do this. Previously we suggested adding Odoo SMTP as an outgoing email server but we don't want to share credentials anymore.
R&D is working on a solution (e.g. showing the Odoo default email server in the list rather than keeping it as an "hidden feature") but for the time being, if you use an outgoing email server, you give up using the Odoo default SMTP.

closes odoo/documentation#2771

X-original-commit: 7b21e6001b
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-09-29 14:23:59 +02:00
Jonathan Castillo (jcs)
7424e4176c [IMP] website: register domain name menu path
closes odoo/documentation#2766

X-original-commit: 81352e98b2
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2022-09-28 00:20:45 +02:00
Wesley Kao (weka)
8287c88bd4 [IMP] MRP: updated Variants BOM Management rst content
closes odoo/documentation#2764

X-original-commit: b3d5e928aa
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2022-09-27 19:14:46 +02:00
Xavier-Do
53e7277b6a [FIX]: fix odoo_version detection
Right now if the version is not "final (and not alpha)"
documentation will say 16.0beta != 16.0

closes odoo/documentation#2748

X-original-commit: 406f3aac18
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2022-09-26 09:35:48 +02:00
Fabrice Henrion
2c7d61f938 [FIX] accounting: grammar fix in ponto
closes odoo/documentation#2759

X-original-commit: dad110c7cc
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2022-09-23 11:22:40 +02:00
208 changed files with 2853 additions and 2220 deletions

View File

@@ -95,7 +95,7 @@ else:
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 = '.'.join(str(s) for s in odoo_release.version_info[:2]).replace('~', '-') # Change saas~XX.Y to saas-XX.Y
odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version
if release != odoo_version:
_logger.warning(
@@ -187,6 +187,8 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'16.0': "Odoo 16",
'saas-15.3': "Odoo Online",
'saas-15.2': "Odoo Online",
'15.0': "Odoo 15",
'14.0': "Odoo 14",

View File

@@ -97,7 +97,7 @@ Configuration sample
* Allow tcp connection on localhost
* Allow tcp connection from 192.168.1.x network
in ``/etc/postgresql/9.5/main/pg_hba.conf`` set:
in ``/etc/postgresql/<YOUR POSTGRESQL VERSION>/main/pg_hba.conf`` set:
.. code-block:: text
@@ -105,7 +105,7 @@ in ``/etc/postgresql/9.5/main/pg_hba.conf`` set:
host all all 127.0.0.1/32 md5
host all all 192.168.1.0/24 md5
in ``/etc/postgresql/9.5/main/postgresql.conf`` set:
in ``/etc/postgresql/<YOUR POSTGRESQL VERSION>/main/postgresql.conf`` set:
.. code-block:: text
@@ -172,7 +172,7 @@ in Odoo the db_sslmode control the ssl security of the connection
with value chosen out of 'disable', 'allow', 'prefer', 'require', 'verify-ca'
or 'verify-full'
`PostgreSQL Doc <https://www.postgresql.org/docs/current/static/libpq-ssl.html>`_
`PostgreSQL Doc <https://www.postgresql.org/docs/12/static/libpq-ssl.html>`_
.. _builtin_server:
@@ -290,6 +290,10 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
upstream odoochat {
server 127.0.0.1:8072;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# http -> https
server {
@@ -741,8 +745,8 @@ Here are the supported browsers:
.. _socat: http://www.dest-unreach.org/socat/
.. _PostgreSQL connection settings:
.. _listen to network interfaces:
https://www.postgresql.org/docs/9.6/static/runtime-config-connection.html
https://www.postgresql.org/docs/12/static/runtime-config-connection.html
.. _use an SSH tunnel:
https://www.postgresql.org/docs/9.6/static/ssh-tunnels.html
https://www.postgresql.org/docs/12/static/ssh-tunnels.html
.. _WSGI: https://wsgi.readthedocs.org/
.. _POSBox: https://www.odoo.com/page/point-of-sale-hardware#part_2

View File

@@ -33,7 +33,7 @@ Editions
========
There are two different Editions_ of Odoo: the Community and Enterprise versions.
Using the Enterprise version is possible on our SaaS_ and accessing the code is
Using the Enterprise version is possible on `Odoo Online`_ and accessing the code is
restricted to Enterprise customers and partners. The Community version is freely
available to anyone.
@@ -55,17 +55,17 @@ around and try things out with no commitment.
Demo_ instances require no local installation, just a web browser.
SaaS
----
Odoo Online
-----------
Trivial to start with, fully managed and migrated by Odoo S.A., Odoo's SaaS_
Trivial to start with, fully managed and migrated by Odoo S.A., `Odoo Online`_
provides private instances and starts out free. It can be used to discover and
test Odoo and do non-code customizations (i.e. incompatible with custom modules
or the Odoo Apps Store) without having to install it locally.
Can be used for both testing Odoo and long-term production use.
Like demo_ instances, SaaS_ instances require no local installation, a web
Like demo_ instances, `Odoo Online`_ instances require no local installation, a web
browser is sufficient.
@@ -146,13 +146,13 @@ Repository
.. 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**:
be used to install *Odoo Community Edition* by executing the following commands:
.. 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
$ wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
$ echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/16.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
$ sudo apt-get update && sudo apt-get install odoo
You can then use the usual `apt-get upgrade` command to keep your installation up-to-date.
@@ -432,7 +432,7 @@ PostgreSQL
.. group-tab:: Windows
Odoo uses PostgreSQL as database management system. `Download and install PostgreSQL
<https://www.postgresql.org/download/windows/>`_ (supported version: 10.0 and later).
<https://www.postgresql.org/download/windows/>`_ (supported version: 12.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:
@@ -452,7 +452,7 @@ PostgreSQL
.. 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).
install PostgreSQL (supported version: 12.0 and later).
It can be achieved by executing the following:
@@ -475,7 +475,7 @@ PostgreSQL
.. group-tab:: Mac OS
Odoo uses PostgreSQL as database management system. Use `postgres.app
<https://postgresapp.com>`_ to download and install PostgreSQL (supported version: 10.0 and
<https://postgresapp.com>`_ to download and install PostgreSQL (supported version: 12.0 and
later).
.. tip::
@@ -726,24 +726,24 @@ official Odoo `docker image <https://hub.docker.com/_/odoo/>`_ page.
.. _demo: https://demo.odoo.com
.. _docker: https://www.docker.com
.. _download: https://www.odoo.com/page/download
.. _Ubuntu 20.04 (Focal): http://releases.ubuntu.com/20.04/
.. _Ubuntu 20.04 (Focal): https://releases.ubuntu.com/20.04/
.. _EPEL: https://fedoraproject.org/wiki/EPEL
.. _PostgreSQL: http://www.postgresql.org
.. _PostgreSQL: https://www.postgresql.org
.. _the official installer:
.. _install pip:
https://pip.pypa.io/en/latest/installing.html#install-pip
.. _Quilt: http://en.wikipedia.org/wiki/Quilt_(software)
.. _saas: https://www.odoo.com/page/start
.. _Quilt: https://en.wikipedia.org/wiki/Quilt_(software)
.. _Odoo Online: https://www.odoo.com/page/start
.. _the wkhtmltopdf download page: https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5
.. _UAC: http://en.wikipedia.org/wiki/User_Account_Control
.. _wkhtmltopdf: http://wkhtmltopdf.org
.. _UAC: https://en.wikipedia.org/wiki/User_Account_Control
.. _wkhtmltopdf: https://wkhtmltopdf.org
.. _pip: https://pip.pypa.io
.. _macports: https://www.macports.org
.. _homebrew: http://brew.sh
.. _homebrew: https://brew.sh
.. _wheels: https://wheel.readthedocs.org/en/latest/
.. _virtualenv: https://pypi.python.org/pypi/virtualenv
.. _virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/en/latest/
.. _pywin32: http://sourceforge.net/projects/pywin32/files/pywin32/
.. _pywin32: https://sourceforge.net/projects/pywin32/files/pywin32/
.. _community-repository: https://github.com/odoo/odoo
.. _enterprise-repository: https://github.com/odoo/enterprise
.. _Editions: https://www.odoo.com/pricing#pricing_table_features

View File

@@ -11,6 +11,6 @@ Maintain
maintain/update
maintain/enterprise
maintain/hosting_changes
maintain/online
maintain/odoo_online
maintain/on_premise
maintain/supported_versions

View File

@@ -62,11 +62,11 @@ database manager.
- This offer doesn't include any mailbox. However, you can :ref:`configure your MX records
<domain-name/odoo-manage>` to use your own email server or solution such as Google Workspace.
To do so, go to :menuselection:`Website --> Go to website --> Promote --> Domain Name`.
Alternatively, open your `database manager <https://www.odoo.com/my/databases>`_, click on the
:guilabel:`settings` button next to your database, then on :guilabel:`Domain names`.
To do so, go to :menuselection:`Website --> Domain Name`. Alternatively, open your `database manager
<https://www.odoo.com/my/databases>`_, click on the :guilabel:`settings` button next to your
database, then on :guilabel:`Domain names`.
.. image:: domain_names/register-promote.png
.. image:: domain_names/register-menu.png
:align: center
:alt: Clicking on Domain Names from an Odoo website

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1,18 +1,18 @@
=================================
Online (SaaS) database management
=================================
===============================
Odoo Online database management
===============================
To manage a database, sign in to https://www.odoo.com and access the `database management page
<https://www.odoo.com/my/databases>`_ by clicking on the user icon, then on *My Databases*.
.. image:: online/my-databases.png
.. image:: odoo_online/my-databases.png
:align: center
:alt: Clicking on the user icon opens a drop-down menu. "My databases" button is highlighted.
.. note::
Make sure you are connected as the administrator of the database you want to manage.
.. image:: online/dropdown-menu.png
.. image:: odoo_online/dropdown-menu.png
:align: right
:alt: Clicking on the gear icon opens the drop-down menu.
@@ -20,17 +20,17 @@ Open the drop-down menu next to the database you want to manage by clicking on t
Several actions are available:
- :ref:`online/upgrade`
- :ref:`online/duplicate`
- :ref:`online/rename`
- :ref:`online/download`
- :ref:`online/domains`
- :ref:`online/tags`
- :ref:`online/delete`
- :ref:`online/contact-support`
- :ref:`online/users`
- :ref:`odoo_online/upgrade`
- :ref:`odoo_online/duplicate`
- :ref:`odoo_online/rename`
- :ref:`odoo_online/download`
- :ref:`odoo_online/domains`
- :ref:`odoo_online/tags`
- :ref:`odoo_online/delete`
- :ref:`odoo_online/contact-support`
- :ref:`odoo_online/users`
.. _online/upgrade:
.. _odoo_online/upgrade:
Upgrade
=======
@@ -56,7 +56,7 @@ upgrade to the latest version (e.g., 13.0 to 15.1).
- :doc:`../upgrade`
- :doc:`supported_versions`
.. _online/duplicate:
.. _odoo_online/duplicate:
Duplicate
=========
@@ -69,14 +69,14 @@ operations.
orders, etc.) are disabled by default on the duplicated database.
- Duplicate databases expire automatically after 15 days.
.. _online/rename:
.. _odoo_online/rename:
Rename
======
Rename the database and its URL.
.. _online/download:
.. _odoo_online/download:
Download
========
@@ -87,7 +87,7 @@ Download instantly a ZIP file with a backup of the database.
Databases are backed up daily according to the `Odoo Cloud SLA
<https://www.odoo.com/cloud-sla>`_.
.. _online/domains:
.. _odoo_online/domains:
Domains
=======
@@ -97,14 +97,14 @@ Configure custom domains to access the database via another URL.
.. seealso::
- :doc:`domain_names`
.. _online/tags:
.. _odoo_online/tags:
Tags
====
Add tags to sort your databases out. You can search the tags in the search bar.
.. _online/delete:
.. _odoo_online/delete:
Delete
======
@@ -118,7 +118,7 @@ Delete a database instantly.
Read carefully the warning message that pops up and proceed only if you fully understand the
implications of deleting a database:
.. image:: online/delete.png
.. image:: odoo_online/delete.png
:align: center
:alt: A warning message is prompted before deleting a database.
@@ -129,7 +129,7 @@ implications of deleting a database:
needed, please get in touch with `Odoo Support <https://www.odoo.com/help>`_.
- To delete your account, please get in touch with `Odoo Support <https://www.odoo.com/help>`_.
.. _online/contact-support:
.. _odoo_online/contact-support:
Contact Support
===============
@@ -137,7 +137,7 @@ Contact Support
Access the Odoo `support page <https://www.odoo.com/help>`_ with your database's details already
pre-filled.
.. _online/users:
.. _odoo_online/users:
Invite / Remove Users
=====================
@@ -145,7 +145,7 @@ Invite / Remove Users
To invite users, fill out the email address of the new user and click on *Invite*. To add multiple
users, click on *Add more users*.
.. image:: online/invite-users.png
.. image:: odoo_online/invite-users.png
:align: center
:alt: Clicking on "Add more users" adds additional email fields.

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -8,8 +8,9 @@ Supported versions
Odoo provides support and bug fixing **for the 3 last major versions** of Odoo.
.. note::
Odoo releases intermediary versions called **Online versions** on the :doc:`Odoo Online <online>`
hosting every two months. Odoo Online users can then benefit from the latest features of Odoo.
Odoo releases intermediary versions called **Online versions** on the :doc:`Odoo Online
<odoo_online>` hosting every two months. Odoo Online users can then benefit from the latest
features of Odoo.
- Admins of Odoo Online databases are invited to :doc:`upgrade <../upgrade>` them regularly.
- Online versions are *not* released for Odoo.sh and On-Premise installations.
@@ -25,6 +26,8 @@ This matrix shows the support status of every version.
+-----------------+-------------+----------+-------------+----------------+------------------------+
| | Odoo Online | Odoo.sh | On-Premise | Release date | End of support |
+=================+=============+==========+=============+================+========================+
| **Odoo 16.0** | |green| | |green| | |green| | October 2022 | October 2025 (planned) |
+-----------------+-------------+----------+-------------+----------------+------------------------+
| Odoo saas~15.2 | |green| | N/A | N/A | March 2022 | |
+-----------------+-------------+----------+-------------+----------------+------------------------+
| Odoo saas~15.1 | |red| | N/A | N/A | February 2022 | |
@@ -33,7 +36,7 @@ This matrix shows the support status of every version.
+-----------------+-------------+----------+-------------+----------------+------------------------+
| **Odoo 14.0** | |green| | |green| | |green| | October 2020 | October 2023 (planned) |
+-----------------+-------------+----------+-------------+----------------+------------------------+
| **Odoo 13.0** | |green| | |green| | |green| | October 2019 | October 2022 (planned) |
| **Odoo 13.0** | |red| | |red| | |red| | October 2019 | October 2022 |
+-----------------+-------------+----------+-------------+----------------+------------------------+
| Odoo saas~12.3 | |red| | N/A | N/A | August 2019 | |
+-----------------+-------------+----------+-------------+----------------+------------------------+

View File

@@ -131,7 +131,7 @@ Odoo Online databases
.. Warning::
Saas releases (e.g. *saas-**) are not supported on Odoo.sh.
Online versions (e.g. *saas-**) are not supported on Odoo.sh.
Upload the backup
-----------------

View File

@@ -12,7 +12,7 @@ Upgrade
.. toctree::
:titlesonly:
upgrade/online_hosting
upgrade/odoo_online
upgrade/odoo_sh
upgrade/on_premise
upgrade/faq
@@ -22,8 +22,8 @@ An upgrade is switching to a newer version of Odoo (e.g., Odoo 14.0 to Odoo 15.0
An upgrade does not cover:
* Changing :ref:`editions <upgrade-faq/editions-change>` (i.e., Community to Enterprise edition)
* Switching :ref:`hosting type <upgrade-faq/hosting-types-switch>` (i.e., On-Premise to Online or
Odoo.sh)
* Switching :ref:`hosting type <upgrade-faq/hosting-types-switch>` (i.e., On-Premise to Odoo Online
or Odoo.sh)
* Migration from another ERP to Odoo
.. note:: |assistance-contact|
@@ -54,7 +54,7 @@ The upgrade process in a nutshell:
newly upgraded database (this is done automatically on Odoo Online).
.. seealso::
- :doc:`Upgrade process for Odoo Online (SaaS) <upgrade/online_hosting>`
- :doc:`Upgrade process for Odoo Online <upgrade/odoo_online>`
- :doc:`Upgrade process for Odoo.sh <upgrade/odoo_sh>`
- :doc:`Upgrade process for On-Premise <upgrade/on_premise>`
@@ -225,8 +225,8 @@ Service Level Agreement
What is covered by the Enterprise Licence?
------------------------------------------
Databases hosted on Odoos Cloud platforms (Saas and Odoo.sh) or On-Premise (Self-Hosting) enjoy the
following services at all times.
Databases hosted on Odoos Cloud platforms (Odoo Online and Odoo.sh) or On-Premise (Self-Hosting)
enjoy the following services at all times.
The upgrade of:

View File

@@ -108,8 +108,8 @@ community or enterprise edition. It is required to have an enterprise subscripti
.. _upgrade-faq/hosting-types-switch:
Switching the hosting types (Self-Hosting vs. Online Hosting - SaaS vs. Cloud Platform - Odoo.sh)
=================================================================================================
Switching the hosting types (On-premise vs. Odoo Online vs. Odoo.sh)
====================================================================
An upgrade does not cover a change of `Hosting types <https://www.odoo.com/page/hosting-types>`_.
@@ -151,8 +151,8 @@ features and improvements made in each version.
How long is my test available for
=================================
An Odoo Online (SaaS) test database is available for one month by default. We can extend this trial
period upon request. For Odoo.sh or on-premise, there is no restriction.
An Odoo Online test database is available for one month by default. We can extend this trial period
upon request. For Odoo.sh or on-premise, there is no restriction.
How many tests to perform before upgrading to production?
=========================================================

View File

@@ -1,6 +1,6 @@
==================
Odoo Online (SaaS)
==================
===========
Odoo Online
===========
Requesting a test upgrade
=========================
@@ -8,17 +8,17 @@ Requesting a test upgrade
#. Go to your `database manager <https://www.odoo.com/my/databases/>`_
#. Click on your profile icon and select *My Databases*.
.. image:: online_hosting/accessing-my-databases.png
.. image:: odoo_online/accessing-my-databases.png
:alt: Selecting My Databases under my profile
#. Click on the action settings icon next to your main database and select the *Upgrade* option.
.. image:: online_hosting/upgrade-option.png
.. image:: odoo_online/upgrade-option.png
:alt: Selecting the action settings icon
#. In the pop-up message that will appear, select Test Upgrade.
.. image:: online_hosting/select-test-upgrade.png
.. image:: odoo_online/select-test-upgrade.png
:alt: Selecting test upgrade
#. This triggers the automated upgrade process. A confirmation email is then sent to you with the

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -64,8 +64,8 @@ Link your Ponto account with your Odoo database
#. Finish the flow.
.. note::
You have to authorize all the accounts you want to access in Odoo but, Odoo will filter the
accounts based on the institution you selected at the second step.
You have to authorize all the accounts you want to access in Odoo, but Odoo will filter the
accounts based on the institution you selected in the second step.
Update your synchronization credentials
---------------------------------------

View File

@@ -13,7 +13,7 @@ Be careful, you can only change the accounting package as long as you have not c
.. tip::
When you create a new SaaS database, the SKR03 is installed by default.
When you create a new Odoo Online database, the SKR03 is installed by default.
German Accounting Reports
=========================
@@ -224,8 +224,8 @@ accordance with the GoBD guidelines.
Once bookings have been finally posted, they can no longer be changed or deleted via the
application.
- If Odoo is used in the cloud, regular backups are part of the SaaS service. In addition, regular
backups can be downloaded and backed up on external systems.
- If Odoo is used in the cloud, regular backups are part of the Odoo Online service. In addition,
regular backups can be downloaded and backed up on external systems.
.. seealso::
`Odoo Cloud Hosting - Service Level Agreement <https://www.odooo.com/cloud-sla>`_

View File

@@ -17,7 +17,7 @@ then choose the package you want in the **Fiscal Localization** section.
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
.. tip::
When you create a new SaaS database, the PGCE PYMEs 2008 is installed by default.
When you create a new Odoo Online database, the PGCE PYMEs 2008 is installed by default.
Spanish Accounting Reports
==========================

View File

@@ -67,8 +67,8 @@ Starting from the 1st January 2018, new reduced VAT rates will be
applied in Switzerland. The normal 8.0% rate will switch to 7.7% and the
specific rate for the hotel sector will switch from 3.8% to 3.7%.
How to update your taxes in Odoo Enterprise (SaaS or On Premise)?
-----------------------------------------------------------------
How to update your taxes in Odoo Enterprise (Odoo Online or On-premise)?
------------------------------------------------------------------------
If you have the V11.1 version, all the work is already been done, you
don't have to do anything.

View File

@@ -71,8 +71,8 @@ Pricing
:guilabel:`View My Services`.
.. important::
- If you are on Odoo Online (SaaS) and have the Enterprise version, you benefit from free trial
credits to test the feature.
- If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits
to test the feature.
.. seealso::
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_.

View File

@@ -20,8 +20,8 @@ Odoo supports, among others, the following formats.
* - Format Name
- Applicability
* - Factur-X (CII)
- Default format on Odoo (enabled by default)
* - Factur-X (PDF/A-3)
- For French and German companies
* - Peppol BIS Billing 3.0 (UBL)
- For companies whose countries are part of the `EAS list
<https://docs.peppol.eu/poacc/billing/3.0/codelist/eas/>`_
@@ -68,8 +68,9 @@ visible in the attachment section, or embedded in the PDF.
.. note::
- For E-FFF, the xml file only appears after having generated the PDF (:guilabel:`Print` or
:guilabel:`Send & Print` button), since the PDF needs to be embedded inside the xml.
- By default, the :guilabel:`Factur-X` option is enabled. It means that an XML file is
automatically included in the PDF document that is sent.
- Every PDF generated from Odoo contains a :guilabel:`Factur-X` XML file (for interoperability purpose).
For German and French companies, the option :guilabel:`Factur-X (PDF/A-3)` in addition enables
validation checks on the invoice and generates a PDF/A-3 compliant file, required by plaftorms like Chorus Pro.
- The formats available depend on the country registered in your company's :guilabel:`General
Information`.
- Odoo supports the **Peppol BIS Billing 3.0** format that can be used via existing access

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -42,6 +42,6 @@ Pricing
*View my Services*.
.. tip::
- If you are on Odoo Online (SAAS) and have the Enterprise version, you benefit from free trial
credits to test the feature.
- If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits
to test the feature.
- Click `here <https://iap.odoo.com/privacy#header_4>`_ to know about our *Privacy Policy*.

View File

@@ -4,8 +4,8 @@ Documents
**Odoo Documents** allows you to store, view and manage files within Odoo.
You can upload any type of file (max 64MB per file on Odoo Online/SaaS), and organize them in
various workspaces.
You can upload any type of file (max 64MB per file on Odoo Online), and organize them in various
workspaces.
.. seealso::
- `Odoo Documents: product page <https://www.odoo.com/app/documents>`_

View File

@@ -59,6 +59,8 @@ debug mode, add `?debug=0` instead.
:ref:`assets mode <frontend/framework/assets_debug_mode>`, and `?debug=tests` enables
the :ref:`tests mode <frontend/framework/tests_debug_mode>`.
.. _developer-mode/mode-tools:
Locate the mode tools
=====================

View File

@@ -1,240 +1,210 @@
====================================================
Send and Receive Emails in Odoo with an Email Server
Send and receive emails in Odoo with an email server
====================================================
If you are a user of Odoo Online or Odoo.sh...
==============================================
Odoo Online or Odoo.sh users
============================
You have nothing to do! **Odoo sets up its own mail servers for your database.**
Outgoing and incoming emails work out-of-the-box!
Unless you plan to send large batches of mass mailing that could require the
use of an external mail server, simply enjoy your new Odoo database.
Since **Odoo sets up its own mail servers for the database**, outgoing and incoming emails already
work out-of-the-box. So for **Odoo Online** and **Odoo.sh** customers, nothing needs to be done!
Unless an external mail server is required to send large batches of mass mailing, simply use the
standard online Odoo database normally since it has already been preconfigured for email.
Scope of this documentation
===========================
This document is **mainly dedicated to Odoo on-premise users** who don't
benefit from an out-of-the-box solution to send and receive emails in Odoo,
unlike `Odoo Online <https://www.odoo.com/trial>`_ & `Odoo.sh <https://www.odoo.sh>`_.
This document is **mainly dedicated to Odoo on-premise users** who don't benefit from an
out-of-the-box solution to send and receive emails in Odoo, unlike `Odoo Online <https://www.odoo.
com/trial>`_ and `Odoo.sh <https://www.odoo.sh>`_.
The following sections below contain information on how to integrate an external email server with
Odoo.
.. warning::
If no one in your company is used to manage email servers, we strongly recommend that
you opt for those Odoo hosting solutions. Their email system
works instantly and is monitored by professionals.
Nevertheless you can still use your own email servers if you want
to manage your email server's reputation yourself.
If no one in the company is used to managing email servers, Odoo Online and Odoo.sh are strongly
recommended. Those Odoo hosting types' email systems work instantly and are monitored by
professionals. Nevertheless, a company can use their own email server if they want to manage the
email server's reputation themselves.
You will find here some useful
information on how to integrate your own email solution with Odoo.
.. note::
Office 365 email servers don't easily allow the sending of external emails from hosts like Odoo.
Refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-
multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
c805d654b4c4>`_ to make it work.
.. note::
Office 365 email servers don't easily allow to send external emails from hosts like Odoo. Refer
to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4>`_
to make it work.
Manage outbound messages
========================
How to manage outbound messages
===============================
As a system admin, go to :menuselection:`Settings --> General Settings`
and check *External Email Servers*. Then, click *Outgoing Mail Servers* to create one and reference
the SMTP data of your email server. Once all the information has been filled out, click on
*Test Connection*.
As a system admin, go to :menuselection:`Settings --> General Settings --> Discuss` in Odoo, and
enable the :guilabel:`External Email Servers` option. Then, click :guilabel:`Save`. Next, click
:guilabel:`Outgoing Email Servers` and click :guilabel:`Create` to create a new outgoing mail
server record in Odoo. Reference the SMTP data of the external email server. Once all the
information has been filled out, click :guilabel:`Test Connection`.
Here is a typical configuration for a G Suite server.
.. image:: email_servers/outgoing-server.png
:align: center
:align: center
:alt: The typical G Suite configuration on Odoo.
Then set your email domain name in the General Settings.
Then, go back to :menuselection:`Settings --> General Settings --> Discuss` and set the email
domain name in the :guilabel:`Alias Domain` name. Finally, click :guilabel:`Save` to finish setting
up the email server.
.. note::
If you get a ``[AUTHENTICATIONFAILED] Invalid credentials (Failure)`` warning when you *Test
Connection* on a Gmail address, activate the *Less secure app access* option. A direct link can
be `accessed here <https://myaccount.google.com/lesssecureapps?pli=1>`_.
If an `[AUTHENTICATION FAILED] Invalid credentials (Failure)` warning appears when
:guilabel:`Test Connection` is clicked for a Gmail address, activate the :guilabel:`Less secure
app access` option. A direct link can be `accessed here <https://myaccount.google.com/
lesssecureapps?pli=1>`_.
In addition to that, enable the IMAP setting on your Gmail account.
In addition to that, enable the :guilabel:`IMAP setting` on the Gmail account.
Use an Office 365 server
------------------------
Can I use an Office 365 server
------------------------------
You can use an Office 365 server if you run Odoo on-premise.
Office 365 SMTP relays are not compatible with Odoo Online unless you configure
Odoo to :ref:`force the outgoing "From" address <email_communication/default_from>` .
An Office 365 server can be used if the database's hosting type is **Odoo on-premise**. Office 365
SMTP relays are not compatible with Odoo Online or Odoo.sh unless Odoo is configured to
:ref:`force the outgoing "From" address <email_communication/default_from>`.
Please refer to `Microsoft's documentation
<https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4>`_
to configure a SMTP relay for your Odoo's IP address.
Please refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-
a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-
c805d654b4c4>`_ to configure an SMTP relay for the Odoo database's IP address.
How to use a G Suite server
---------------------------
You can use an G Suite server for any Odoo hosting type.
To do so you need to setup the SMTP relay service. The configuration steps are explained in
`Google documentation <https://support.google.com/a/answer/2956491?hl=en>`__.
Use a G Suite server
--------------------
A G Suite server can be used for any Odoo hosting type. To do so, set up the SMTP relay service.
The configuration steps are explained in `Google documentation <https://support.google.com
/a/answer/2956491?hl=en>`__.
Restriction
-----------
Please note that port 25 is blocked for security reasons on our SaaS and Odoo.sh platform. Try using
465, 587, or 2525.
Please note that port 25 is blocked for security reasons on Odoo Online and Odoo.sh platforms. Try
using ports 465, 587, or 2525 instead.
.. _email_communication/default_from:
Use a default "From" email address
----------------------------------
Sometimes, an email's "From" (outgoing) address can belong to a
different domain, and that can be a problem.
Sometimes, an email's "From" (outgoing) address can belong to a different domain, and that can be a
problem.
For example, if a customer with address *mary@customer.example.com* responds to
a message, Odoo will try to redistribute that same email to other subscribers
in the thread. But if the domain *customer.example.com* forbids that kind of
usage for security, the Odoo's redistributed email would get
rejected by some recipients' mail servers.
For example, if a customer with the email address *mary\@customer.example.com* responds to a
message, Odoo will try to redistribute that same email to the other subscribers in the thread.
However, if the domain *customer.example.com* forbids that kind of usage for security, the email
that Odoo is trying to redistribute would get rejected by some recipients' email servers.
To avoid those kind of problems, you should make sure all emails use a "From"
address from your authorized domain.
To avoid that problem, make sure all emails use a "From" address from the same authorized domain.
If your MTA supports `SRS (Sender Rewriting Scheme)
<https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme>`_, you can enable it
to handle these situations. However, that is more complex and requires more
technical knowledge that is not meant to be covered by this documentation.
If the MTA supports `SRS (Sender Rewriting Scheme) <https://en.wikipedia.org/wiki/Sender_Rewriting
_Scheme>`_, SRS can be enabled to handle these situations. However, that is more complex and
requires more technical knowledge that is not meant to be covered by this documentation.
Instead, you can also configure Odoo to do something similar by itself:
Instead, Odoo can be configured to do something similar by itself:
#. Set your domain name in the General Settings.
#. Set the :guilabel:`Alias Domain` name in the :menuselection:`Settings --> General Settings
--> Discuss`.
.. image:: email_servers/alias-domain.png
:align: center
.. image:: email_servers/alias-domain.png
:alt: Setting the domain alias configuration on Odoo.
#. Click on *Outgoing Mail Servers*
#. Turn on :doc:`developer mode </applications/general/developer_mode>`.
#. Go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`.
#. Add one system parameter from the following list:
#. Create a new one.
#. Fill its *From Filter*.
.. image:: email_servers/outgoing_server_from_filter.png
:align: center
* Use a domain (such as ``mycompany.example.com``) to keep the original "From"
address for mails that come from that domain.
* Use an address (such as ``outgoing@mycompany.example.com``) to allow only
that outgoing address.
* Keep it empty to use this server for any email address.
With this configuration in place, if Odoo sends an email that doesn't match any
of the *from filters*, it will alter the email's "From" before sending it to
the MTA.
It will use the default outgoing email address, composed like this:
``{mail.default.from}@{mail.catchall.domain}``.
#. In developer mode, go to :menuselection:`Settings --> Technical -->
Parameters --> System Parameters`.
#. Add these system parameters:
* ``mail.default.from``: local part of default outgoing email address.
* ``mail.catchall.domain``: domain part of default outgoing email address.
* To use the same "From" address for *all* outgoing messages, use the key `mail.force.smtp.from`
and set that address as value (such as `outgoing@mycompany.example.com`).
* To keep the original "From" address for emails that use the same domain, but change it for
emails that use a different domain, use the key `mail.dynamic.smtp.from` and set the value as
the email address that should be used in those cases (such as `outgoing@mycompany.example.com`
).
.. _email_communication/inbound_messages:
How to manage inbound messages
==============================
Manage inbound messages
=======================
Odoo relies on generic email aliases to fetch incoming messages.
* **Reply messages** of messages sent from Odoo are routed to their original
discussion thread (and to the inbox of all its followers) by the
catchall alias (**catchall@**).
* **Bounced messages** are routed to **bounce@** in order to track them in Odoo.
This is especially used in `Odoo Email Marketing <https://www.odoo.com/page/email-marketing>`__
to opt-out invalid recipients.
* **Original messages**: Several business objects have their own alias to
create new records in Odoo from incoming emails:
* **Reply messages** of messages sent from Odoo are routed to their original discussion thread (and
to the inbox of all its followers) by the catchall alias (**catchall@**).
* **Bounced messages** are routed to **bounce@** in order to track them in Odoo. This is especially
used in `Odoo Email Marketing <https://www.odoo.com/page/email-marketing>`__ to opt-out invalid
recipients.
* **Original messages**: Several business objects have their own alias to create new records in
Odoo from incoming emails:
* Sales Channel (to create Leads or Opportunities in `Odoo CRM <https://www.odoo.com/page/crm>`__),
* Support Channel (to create Tickets in `Odoo Helpdesk <https://www.odoo.com/page/helpdesk>`__),
* Projects (to create new Tasks in `Odoo Project <https://www.odoo.com/page/project-management>`__),
* Job Positions (to create Applicants in `Odoo Recruitment <https://www.odoo.com/page/recruitment>`__),
* Projects (to create new Tasks in `Odoo Project <https://www.odoo.com/page
/project-management>`__),
* Job Positions (to create Applicants in `Odoo Recruitment <https://www.odoo.com/page
/recruitment>`__),
* etc.
Depending on your mail server, there might be several methods to fetch emails.
The easiest and most recommended method is to manage one email address per Odoo
alias in your mail server.
Depending on the mail server, there might be several methods to fetch emails. The easiest and most
recommended method is to manage one email address per Odoo alias in the mail server.
* Create the corresponding email addresses in your mail server
(catchall@, bounce@, sales@, etc.).
* Set your domain name in the General Settings.
* Create the corresponding email addresses in the mail server (catchall@, bounce@, sales@, etc.).
* Set the :guilabel:`Alias Domain` name in :menuselection:`Settings --> General Settings -->
Discuss`.
.. image:: email_servers/alias-domain.png
* If the database's hosting type is Odoo on-premise, create an :guilabel:`Incoming Mail Server` in
Odoo for each alias. This can be done from the General Settings as well. Fill out the form
according to the email provider's settings. Leave the :guilabel:`Actions to Perform on Incoming
Mails` field blank. Once all the information has been filled out, click on :guilabel:`TEST &
CONFIRM`.
.. image:: email_servers/incoming-server.png
:align: center
:alt: Incoming mail server configuration on Odoo.
* If the database's hosting type is Odoo Online or Odoo.sh, redirecting incoming messages to Odoo's
domain name instead of the external email server is recommended. That way, incoming messages can
be received without delay. Odoo Online only fetches incoming messages of external servers once
every hour. Redirections for all email addresses should be set to Odoo's domain name in the email
server (e.g. *catchall\@mydomain.ext* to *catchall\@mycompany.odoo.com*).
All the aliases are customizable in Odoo. Object aliases can be edited from their respective
configuration view.
.. tip::
To edit catchall and bounce aliases, first activate the :ref:`developer mode <developer-mode>`.
Then, go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters` to
customize the aliases (*mail.catchall.alias* & *mail.bounce.alias*).
.. image:: email_servers/system-parameters.png
:align: center
:alt: System parameters with catchall configuration in Odoo.
* If you use Odoo on-premise, create an *Incoming Mail Server* in Odoo for each alias.
You can do it from the General Settings as well. Fill out the form according
to your email providers settings.
Leave the *Actions to Perform on Incoming Mails* blank. Once all the
information has been filled out, click on *TEST & CONFIRM*.
By default, inbound messages are fetched every 5 minutes in Odoo on-premise.
.. image:: email_servers/incoming-server.png
:align: center
* If you use Odoo Online or Odoo.sh, We do recommend to redirect incoming messages
to Odoo's domain name rather than exclusively use your own email server.
That way you will receive incoming messages without delay. Indeed, Odoo Online is fetching
incoming messages of external servers once per hour only.
You should set redirections for all the email addresses to Odoo's domain name in your
email server (e.g. *catchall@mydomain.ext* to *catchall@mycompany.odoo.com*).
.. tip:: All the aliases are customizable in Odoo.
Object aliases can be edited from their respective configuration view.
To edit catchall and bounce aliases, you first need to activate the
:ref:`developer mode <developer-mode>`.
Then go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`
to customize the aliases (*mail.catchall.alias* & * mail.bounce.alias*).
.. image:: email_servers/system-parameters.png
:align: center
.. note:: By default inbound messages are fetched every 5 minutes in Odoo on-premise.
You can change this value in :ref:`developer mode <developer-mode>`.
Go to :menuselection:`Settings --> Technical --> Automation -->
Scheduled Actions` and look for *Mail: Fetchmail Service*.
.. note::
This value can be changed in :ref:`developer mode <developer-mode>`. Go to
:menuselection:`Settings --> Technical --> Automation --> Scheduled Actions` and look for
:guilabel:`Mail: Fetchmail Service`.
Set up different dedicated servers for transactional and mass mails
===================================================================
Odoo is subject to a :ref:`daily email limit <email_communication/daily_limit_mail>` to prevent abuse.
However, if needed, you can use a separate Mail Transfer Agent (MTA) servers for transactional
e-mails and mass mailings.
Example: use Odoo's own mail server for transactional e-mails, and Sendgrid, Amazon SES, or Mailgun
for mass mailings. Another alternative is to use Postmark for transactional e-mails, and Amazon SES
or Sendgrid for mass mailings.
In Odoo a separate Mail Transfer Agent (MTA) server can be used for transactional emails and mass
mailings. Example: Use Postmark or SendinBlue for transactional emails, and Amazon SES, Mailgun or
Sendgrid for mass mailings.
.. note::
A default outgoing email server is already configured. You should not create an alternative one
unless you want to use a specific external outgoing email server for technical reasons.
.. tip::
A default outgoing email server is already configured. Do not create an alternative one unless a
specific external outgoing email server is needed for technical reasons.
To do this, you should first activate the :ref:`developer mode <developer-mode>` and then go to
:menuselection:`Settings --> Technical --> Outgoing` e-mail servers. There you have to create two
e-mail MTA server settings. One for transactional e-mails and one for mass mail servers. Be sure to
mark the priority of transactional e-mail servers as low as the mass email servers.
To do this, first activate the :ref:`developer mode <developer-mode>`, and then go to
:menuselection:`Settings --> Technical --> Outgoing` email servers. There, create two email MTA
server settings; one for the transactional emails and one for the mass mailing server. Make sure
to give priority to the transactional server over the mass mailing server by providing a lower
priority number for the transactional MTA server.
Now, go to :menuselection:`Email Marketing --> Settings` and enable *Dedicated Server*.
Now, go to :menuselection:`Email Marketing --> Settings` and enable :guilabel:`Dedicated Server`.
With these settings, Odoo uses the server with the lower priority for transactional emails, and the
server here selected for mass mails.
Note that in this case, you have to set your domain's Sender Policy Framework (SPF) records to
include both transactional and mass mail servers. If your server resides with xxxx.odoo.com, the
available options are Sendinblue and Mailchimp, as your e-mails would be originated from the
xxxx.odoo.com domain.
server here selected for mass mails. Note that in this case, the domain's Sender Policy Framework
(SPF) records must be set to include both transactional and mass mail servers.

View File

@@ -135,7 +135,7 @@ Depending on the platform you are using:
See the Odoo.sh documentation about :ref:`logs <odoosh/logs>`. Use the command ``grep`` and
``zgrep`` (for the compressed ones) to search through the files.
- The **SaaS** users wont have access to their logs. However you can still contact
- **Odoo Online** users wont have access to their logs. However you can still contact
`Odoo Support <https://www.odoo.com/help>`_ , if you have a recurring issue
with the same client or domain.

View File

@@ -16,8 +16,8 @@ Services`.
:align: center
.. tip::
If I am on Odoo Online (SAAS) and have the Enterprise version, I benefit from free credits to
test our IAP features.
If I am on Odoo Online and have the Enterprise version, I benefit from free credits to test our
IAP features.
IAP accounts
============
@@ -57,7 +57,7 @@ IAP services available
Different services are available depending on the hosting type of your Database:
- *Odoo Online (SAAS)*: only the IAP services provided by Odoo can be used (i.e. the SMS, Snailmail,
- *Odoo Online*: only the IAP services provided by Odoo can be used (i.e. the SMS, Snailmail,
Reveal and Partner Autocomplete features);
- *Odoo.sh and Odoo Enterprise (on-premise)*: both the services provided by Odoo and by third-party
apps can be used.

View File

@@ -11,6 +11,7 @@ Warehouse Management
management/products
management/warehouses
management/replenishment_strategies
management/inventory_adjustments
management/delivery
management/incoming
management/misc

View File

@@ -0,0 +1,11 @@
:nosearch:
=====================
Inventory adjustments
=====================
.. toctree::
:titlesonly:
inventory_adjustments/count_products
inventory_adjustments/cycle_counts

View File

@@ -0,0 +1,100 @@
=====================
Inventory adjustments
=====================
In any warehouse management system, the recorded inventory counts in the database might not always
match the actual inventory counts in the warehouse. The discrepancy between the two counts can be
due to theft, damages, human errors, or other factors. As such, inventory adjustments must be made
to reconcile the differences, and ensure that the recorded counts in the database match the actual
counts in the warehouse.
In Odoo, inventory adjustments can be accessed through :menuselection:`Inventory --> Operations -->
Inventory Adjustments`.
The :guilabel:`Inventory Adjustments` page shows all products that are currently in stock. Each
line contains the following information:
- :guilabel:`Product`
- :guilabel:`Lot/Serial Number`
- :guilabel:`On Hand Quantity`
Add a new line
==============
To add an inventory adjustment line, click :guilabel:`Create` and fill in the :guilabel:`Product`
and :guilabel:`Counted Quantity` fields. Then click :guilabel:`Save`.
At this stage, the count is recorded but not yet *applied*. Meaning the quantity on hand is not yet
updated to match the new :guilabel:`Counted Quantity`.
To apply the new :guilabel:`Counted Quantity`, click :guilabel:`Apply` on the line or the
:guilabel:`Apply All` button on the top of the page. If :guilabel:`Apply All` is clicked, a
reference or reason can be entered before clicking :guilabel:`Apply`.
.. image:: count_products/apply-inventory-adjustment.png
:scale: 60%
:align: center
:alt: Apply all option applies the inventory adjustment once a reason is specified.
Count products
==============
Counting products is a recurring activity in a warehouse. Once a count is complete, go to
:menuselection:`Inventory --> Operations --> Inventory Adjustments` to update the
:guilabel:`Counted Quantity` column for each product line.
If a count matches the :guilabel:`On Hand Quantity` recorded in the database, click on
:guilabel:`Set`, which will copy the value in the :guilabel:`On Hand Quantity` field and paste it
in the :guilabel:`Counted Quantity` field. A move with `0.00` :guilabel:`Quantity Done` will be
recorded in the product's inventory adjustment history.
If a count does *not* match the :guilabel:`On Hand Quantity` recorded in the database, record the
count in the :guilabel:`Counted Quantity` field. When :guilabel:`Apply` is clicked, a move with the
difference between the :guilabel:`On Hand Quantity` and :guilabel:`Counted Quantity` will be
recorded in the product's inventory adjustment history.
.. image:: count_products/history-inventory-adjustments.png
:align: center
:alt: Inventory Adjustments History dashboard detailing a list of prior product moves.
.. note::
Sometimes a count occurs, but can not be applied in the database right away. In the time between
the actual count and applying the inventory adjustment, product moves can occur. In that case,
the :guilabel:`On Hand Quantity` in the database can change and will not be consistent with the
counted quantity. As an extra caution measure, Odoo will ask for confirmation before applying
the inventory adjustment.
Plan counts
===========
Each inventory adjustment line contains the following information:
- :guilabel:`Scheduled Date`: the date at which a count should be made.
- :guilabel:`User`: the person in charge of the count.
- :guilabel:`Accounting Date`: the date at which the adjustments will be accounted. The column is
hidden by default, but can be made visible by opening the column options icon.
.. important::
In the Barcode app, users can only view counts assigned to them that are scheduled for today or
earlier.
To plan big counts, select the desired product lines on the :guilabel:`Inventory Adjustments` page.
Then, click :guilabel:`Request a Count` and fill in the following information:
- :guilabel:`Inventory Date`: the planned date of the count.
- :guilabel:`User`: the user responsible for the count.
- :guilabel:`Accounting Date`: the date at which the inventory adjustment will be accounted.
- :guilabel:`Count`: to leave the :guilabel:`On Hand Quantity` of each product line blank, select
:guilabel:`Leave Empty`. To prefill the :guilabel:`On Hand Quantity` of each product line with
the current value recorded in the database, select :guilabel:`Set Current Value`.
Finally, click :guilabel:`Confirm` to request the count.
By default, after an inventory adjustment is applied, the scheduled date for the next count is the
31st of December of the current year. To modify the default scheduled date, go to
:menuselection:`Inventory --> Configuration --> Settings --> Operations` and change the date in the
:guilabel:`Annual Inventory Day and Month` setting.
.. image:: count_products/annual-inventory.png
:align: center
:alt: Adjust the next inventory count date with the Annual Inventory Day and Month setting.

View File

@@ -0,0 +1,41 @@
============
Cycle counts
============
In most companies, the stock is only counted once a year. That's why by default, after making an
inventory adjustment in Odoo, the scheduled date for the next count is set on the 31st of
December. However, for some businesses it's crucial to have an accurate inventory count at all
times.
The goal of cycle counts is to keep critical stock levels accurate by counting more often at key
locations.
Configuration
=============
In Odoo, cycle counts are location-based. The frequency of the counts is defined by the storage
location. To activate storage locations, go to :menuselection:`Inventory --> Configuration -->
Settings --> Warehouse` and activate the :guilabel:`Storage Locations` setting. Next, click
:guilabel:`Save` to apply the setting.
.. image:: cycle_counts/storage-locations-setting.png
:align: center
:alt: Enable Storage Locations in Odoo settings.
Change the inventory frequency
==============================
To change a location's inventory frequency, first, go to the locations by clicking
:menuselection:`Inventory --> Configuration --> Locations`.
Then, click on a location to open the location settings. Next, click on :guilabel:`Edit`. In the
:guilabel:`Inventory Frequency (Days)` field, set the number of days. For example, a location that
needs an inventory count every 30 days would set the :guilabel:`Inventory Frequency (Days)` value
to `30`. Once the value is entered, click :guilabel:`Save` to apply the setting to the location.
Now, once an inventory adjustment is applied to this location, the next scheduled count date will
be automatically set based on the number of days in the :guilabel:`Inventory Frequency (Days)`
setting.
.. image:: cycle_counts/inventory-frequency.png
:align: center
:alt: Edit a location to change the inventory frequency.

View File

@@ -10,3 +10,4 @@ Miscellaneous Operations
misc/owned_stock
misc/batch_transfers
misc/wave_transfers

View File

@@ -0,0 +1,68 @@
======================
Process wave transfers
======================
While a batch transfer is a group of several pickings, a **wave transfer** only contains some parts
of different pickings. Both methods are used to pick orders in a warehouse, and depending on the
situation, one method may be a better fit than the other.
To handle orders of a specific product category, or fetch products that are at the same location,
wave transfers are the ideal method.
In Odoo, wave transfers are actually batch transfers with an extra step: transfers are split before
being grouped in a batch.
Configuration
=============
Before a wave transfer can be created, the :guilabel:`Batch Transfers` and :guilabel:`Wave
Transfers` options must be activated.
First, go to :menuselection:`Inventory --> Configuration --> Settings`. In the
:guilabel:`Operations` section, enable :guilabel:`Batch Transfers` and :guilabel:`Wave Transfers`.
Then, click :guilabel:`Save` to apply the settings.
.. image:: wave_transfers/wave-transfers-setting.png
:align: center
:alt: View of Odoo Inventory app settings to enable the wave transfers option.
Add products to a wave
======================
Now that the settings are activated, start a wave transfer by adding products to a wave.
Wave transfers can only contain product lines from transfers of the same operation type. To view
all the transfers and product lines in a specific operation, first go to the :guilabel:`Inventory`
dashboard and locate the desired operation type's card. Then, open the options menu (the three dots
icon in the corner of the operation type's card) and click :guilabel:`Operations`.
.. image:: wave_transfers/list-of-operations.png
:align: center
:alt: How to get an operation type's list of operations.
On the operations page, select the product lines you want to add in a new or existing wave. Then,
click :guilabel:`Add to Wave`.
.. image:: wave_transfers/select-lines.png
:align: center
:alt: Select lines to add to the wave.
.. tip::
Use the :guilabel:`Filters` in the search bar to group lines with the same product, location,
carrier, etc...
After that, a pop-up box appears.
To add the selected lines to an existing wave transfer, select the :guilabel:`an existing wave
transfer` option and select the existing wave transfer from the drop-down menu.
To create a new wave transfer, select the :guilabel:`a new wave transfer` option. If creating a new
wave transfer, an employee can also be set in the optional :guilabel:`Responsible` field. Once the
desired options are selected, click :guilabel:`Confirm` to add the product lines to a wave.
View wave transfers
===================
To view all wave transfers and their statuses, go to :menuselection:`Inventory --> Operations -->
Wave Transfers`. Wave transfers can also be viewed in the :guilabel:`Barcode` app by going to
:menuselection:`Barcode --> Batch Transfers`.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@@ -1,76 +1,138 @@
==============================================
How to select the right replenishment strategy
==============================================
===============================
Select a replenishment strategy
===============================
Minimum Stock rules and Make to Order have similar consequences but
different rules. They should be used depending on your manufacturing and
delivery strategies.
In Odoo, there are two strategies for replenishing inventory: **Reordering Rules** and the **Make
to Order (MTO)** route. Although these strategies differ slightly, they both have similar
consequences: triggering the automatic creation of a purchase or manufacturing order. The choice of
which strategy to use depends on the business's manufacturing and delivery processes.
Terminology
===========
Minimum stock rule
-------------------
Replenishment report and reordering rules
-----------------------------------------
Minimum Stock rules are used to ensure that you always have the minimum
amount of a product in stock in order to manufacture your products
and/or answer to your customer needs. When the stock level of a product
reaches its minimum the system will automatically generate a procurement
order with the quantity needed to reach the maximum stock level.
The replenishment report is a list of all products that have a negative forecast quantity.
Reordering rules are used to ensure that there's always a minimum amount of a product in stock in
order to manufacture products and/or fulfill sales orders. When the stock level of a product
reaches its minimum, Odoo automatically generates a purchase order with the quantity needed to
reach the maximum stock level.
Reordering rules can be created and managed in the replenishment report or from the product form.
Make to Order
-------------
The Make to Order function will trigger a Purchase Order of the amount
of the Sales Order related to the product. The system will **not** check
the current stock. This means that a draft purchase order will be
generated regardless of the quantity on hand of the product.
Make to Order (MTO) is a procurement route that creates a draft purchase order or manufacturing
order each time a sales order is confirmed, *regardless of the current stock level*.
Unlike products replenished using reordering rules, Odoo automatically links the sales order to the
purchase order (PO) or manufacturing order (MO) generated by the MTO route. Another difference
between reordering rules and MTO is with MTO, Odoo generates a draft :abbr:`PO (Purchase Order)` or
:abbr:`MO (Manufacturing Order)` immediately after the sales order is confirmed. With reordering
rules, Odoo generates a draft :abbr:`PO (Purchase Order)` or :abbr:`MO (Manufacturing Order)` when
the product's forecasted stock falls below the set minimum quantity. In addition, Odoo will
automatically add quantities to the :abbr:`PO (Purchase Order)`/:abbr:`MO (Manufacturing Order)` as
the forecast changes, as long as the :abbr:`PO (Purchase Order)`/:abbr:`MO (Manufacturing Order)`
is not confirmed.
The MTO route is the best replenishment strategy for products that are customized and should be
used for this purpose only.
Configuration
=============
Minimum stock rules
-------------------
Replenishment report and reordering rules
-----------------------------------------
The Minimum Stock Rules configuration is available through your
Inventory module. In the Inventory Control menu select "Reordering Rule"
in the drop down menu. There, click on "Create" to set minimum and
maximum stock values for a given product.
To access the replenishment report, go to :menuselection:`Inventory --> Operations -->
Replenishment`. By default, the replenishment report shows every product that needs to be manually
reordered. If there is no specific rule for a product, Odoo assumes that the :guilabel:`Minimum
Quantity` and :guilabel:`Maximum Quantity` stock are both `0.00`.
.. image:: strategies/strategies01.png
:align: center
.. image:: strategies/replenishment-report.png
:align: center
:alt: The replenishment report shows products that need to be reordered manually.
.. note::
Show tooltips for "minimum quantity", "maximum quantity" and "quantity multiple"
fields
For products that don't have a set reordering rule, Odoo calculates the forecast as sales orders,
deliveries, and receipts are confirmed. For products that have a set reordering rule, Odoo
calculates the forecast normally, but also takes into account the purchase/manufacturing lead
time and security lead time.
Then, click on your product to access the related product form and, on
the "Inventory submenu", do not forget to select a supplier.
Before creating a new reordering rule, make sure the product has a vendor or a bill of materials
configured on the product form. Also, make sure the :guilabel:`Product Type` is set to `Storable
Product` on the product form. By definition, a consumable product does not have its inventory
levels tracked, so Odoo can not account for a consumable product in the stock valuation.
.. image:: strategies/strategies02.png
:align: center
To create a new reordering rule from the replenishment report, go to :menuselection:`Inventory -->
Operations --> Replenishment`, click :guilabel:`Create`, and set the :guilabel:`Product`. If
desired, set a :guilabel:`Min Quantity` and a :guilabel:`Max Quantity`. Finally, click
:guilabel:`Save`.
.. tip::
Don't forget to select the right product type. A consumable
can not be stocked and will thus not be accounted for in the stock valuation.
To create a new reordering rule from the product form, go to :menuselection:`Inventory --> Products
--> Products`, select a product to open its product form, click the :guilabel:`Reordering Rules`
smart button, and click :guilabel:`Create`. Then, fill out the fields and save the new reordering
rule.
Make to Order
--------------
By default, the quantity in the :guilabel:`To Order` field is the quantity required to reach the
set :guilabel:`Max Quantity`. However, the :guilabel:`To Order` quantity can be adjusted by
clicking on the field, changing the value, and clicking :guilabel:`Save`. To replenish a product
manually, click :guilabel:`Order Once`.
The Make to Order configuration is available on your product form
through your :menuselection:`Inventory --> Inventory control --> Products` (or any
other module where products are available).
To automate replenishment, click :guilabel:`Automate Orders`. When this button is clicked, Odoo
will automatically generate a draft :abbr:`PO (Purchase Order)`/:abbr:`MO (Manufacturing Order)`
every time the forecasted stock level falls below the set :guilabel:`Min Quantity` of the
reordering rule.
On the product form, under Inventory, click on "Make To Order".
.. image:: strategies/strategies03.png
:align: center
A reordering rule can be temporarily deactivated for a given period by using the :guilabel:`Snooze`
button.
Choice between the two options
------------------------------
.. image:: strategies/reordering-rule-snooze-settings.png
:align: center
:alt: Snooze feature to temporarily deactivate reordering rules.
The choice between the two options is thus dependent of your inventory
strategy. If you prefer to have a buffer and always have at least a
minimum amount, the minimum stock rule should be used. If you want to
reorder your stocks only if your sale is confirmed it is better to use
the Make to Order.
A :abbr:`PO (Purchase Order)` or :abbr:`MO (Manufacturing Order)` created by a manual replenishment
will have `Replenishment Report` as the source document. A :abbr:`PO (Purchase Order)` or
:abbr:`MO (Manufacturing Order)` created by an automated reordering rule will have the sales
order(s) reference number(s) that triggered the rule as the source document.
.. image:: strategies/rfq-source-document.png
:align: center
:alt: Look at the source panel showing where RFQ/MFG orders originated from.
Make to order
-------------
Since the Make to Order (MTO) route is only recommended for customized products, the route is
hidden by default.
To activate the Make to Order (MTO) route in Odoo:
#. Go to :menuselection:`Inventory --> Configuration --> Settings --> Warehouse`.
#. Activate :guilabel:`Multi-Step Routes` setting and click :guilabel:`Save`.
#. Go to :menuselection:`Inventory --> Configuration --> Routes`.
#. Click on :menuselection:`Filters --> Archived` to show archived routes.
#. Select the checkbox next to :guilabel:`Replenish on Order (MTO)`, and click on
:menuselection:`Action --> Unarchive`.
.. note::
Activating the :guilabel:`Multi-Step Routes` setting also activates :guilabel:`Storage Locations`
setting. If these features aren't applicable to the warehouse, disable these settings after
unarchiving the MTO route.
To set a product's procurement route to MTO, go to :menuselection:`Inventory --> Products -->
Products`, click on a product to open the product form, and click :guilabel:`Edit`. Then, click on
the :guilabel:`Inventory` tab and in the :guilabel:`Routes` options, select :guilabel:`Replenish on
Order (MTO)`. For products purchased directly from a vendor, make sure the :guilabel:`Buy` route is
selected in addition to the MTO route and a vendor is configured in the :guilabel:`Purchase` tab.
For products manufactured in-house, make sure the :guilabel:`Manufacture` route is selected in
addition to the MTO route and a bill of materials is configured for the product. Finally, click
:guilabel:`Save`.
.. image:: strategies/replenish-on-order-product-setting.png
:align: center
:alt: Enable the Replenish on Order (MTO) route on the product settings.

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,107 +1,112 @@
==============================
Use Different Units of Measure
Use different units of measure
==============================
In some cases, handling products in different units of measure is
necessary. For example, if you buy products in a country where the
metric system is of application and sell in a country where the imperial
system is used, you will need to convert the units. Another common use
case is buying products in bigger packs to your supplier and selling
them in units to your customers.
In some cases, handling products in different units of measure is necessary. For example, a
business can buy products from a country that uses the metric system, and then sell those products
in a country that uses the imperial system, so the business needs to convert the units. Another
case for unit conversion is when a business buys products in a big pack from a supplier and then
sells those products in individual units.
You can set up Odoo to work with different units of measure for one
product.
Odoo can be set up to use different units of measure for one product.
Configuration
=============
In the *Inventory* application, go to :menuselection:`Configuration --> Settings`. In
the *Products* section, activate *Units of Measure*, then *Save*.
To use different units of measure in Odoo, first go to :menuselection:`Inventory --> Configuration
--> Settings --> Products` and activate the :guilabel:`Units of Measure` setting. Then, click
:guilabel:`Save`.
.. image:: uom/uom_01.png
:align: center
.. image:: uom/uom-enable-setting.png
:align: center
:alt: Enable Units of Measure in the Inventory settings.
Create New Units of Measure
Units of measure categories
===========================
In the *Inventory* application go to :menuselection:`Configuration --> UoM`. There,
hit *Create*. As an example, we will create a Box of 6 units that we
will use for the Egg product.
After enabling the units of measure setting, view the default units of measure categories in
:menuselection:`Inventory --> Configuration --> Units of Measures --> UoM Categories`. The
category is important for unit conversion, Odoo can only convert a product's units from one unit to
another only if both units belong to the same category.
.. image:: uom/uom_02.png
:align: center
.. image:: uom/uom-categories.png
:align: center
:alt: Set units of measure categories.
The category is important for unit conversion, you will be able to
convert products from one unit to another only if those units belong to
the same category. The box of 6 is 6 times bigger than the reference
unit of measure for the category which is “Units” here.
Each units of measure category has a reference unit. The reference unit is highlighted in blue in
the :guilabel:`Uom` column of the :guilabel:`Units of Measure Categories` page. Odoo uses the
reference unit as a base for any new units.
.. image:: uom/uom_03.png
:align: center
To create a new unit, first select the correct category. For example, to sell a product in a box of
six units, click on the :guilabel:`Unit` category line. Next, click :guilabel:`Edit`. After that,
click :guilabel:`Add a line`. Then, in the :guilabel:`Unit of Measure` field, title the new unit
`Box of 6`. In the :guilabel:`Type` field, select :guilabel:`Bigger than the reference Unit of
Measure`. In the :guilabel:`Ratio` field, enter `6.00000` since a box of six is six times bigger
than the reference unit (`1.00000`). Finally, click :guilabel:`Save`.
Specify Units of Measure on your Products
=========================================
Click on the :guilabel:`Unit` category.
In the :menuselection:`Inventory application --> Master Data --> Products`, open the
product which you would like to change the purchase/sale unit of
measure, and click on *Edit*.
Click :guilabel:`Add a line`. As an example, we will create a Box of 6 units that we will use for
the Egg product. The box of 6 is 6 times bigger than the reference unit of measure for the category
which is “Units” here.
In the *General Information* tab, you can select the *Unit of
Measure* in which the product will be sold, which is also the unit in
which internal transfers will take place. You can also select the
*Purchase Unit of Measure*, which is the unit in which you purchase
the product.
.. image:: uom/convert-products-by-unit.png
:align: center
:alt: Convert products from one unit to another as long as they belong to the same category.
.. image:: uom/uom_04.png
:align: center
Specify a product's units of measure
====================================
Transfer from One Unit to Another
=================================
To set units of measure on a product, first go to :menuselection:`Inventory --> Products -->
Products` and click on a product to open its settings. Then, click on :guilabel:`Edit`.
Buy in the Purchase UoM
-----------------------
In the :guilabel:`General Information` tab, edit the :guilabel:`Unit of Measure` field to specify
the unit of measure that the product is sold in. The specified unit will also be the unit used to
keep track of the product's inventory and internal transfers. Edit the :guilabel:`Purchase UoM`
field to specify the unit of measure that the product is purchased in.
In the *Purchase* application, *Create* a new request for quotation
in which you include the product with the different *Units of Measure*
and *Confirm* it.
Unit conversion
===============
.. image:: uom/uom_05.png
:align: center
Buy products in the Purchase UoM
--------------------------------
On the automatically generated purchase orders, the UoM used is the Box
of 6, meaning the Purchase UoM. You have of course the possibility to
manually modify the UoM if necessary. When you enter the *Receipt*
which is linked to the purchase order, you can observe that the 10 boxes
of 6 units have been converted in 60 units. Indeed, the stock is managed
in units.
When creating a new request for quotation (RFQ) in the Purchase app, Odoo automatically uses the
product's specified purchase unit of measure. However, if needed, the :guilabel:`UoM` can be
manually edited on the RFQ.
.. image:: uom/uom_06.png
:align: center
After the RFQ is confirmed into a purchase order (PO), click on the :guilabel:`Receipt` smart
button at the top right corner of the PO. Odoo automatically converts the purchase unit of measure
into the product's sales/inventory unit of measure, so the :guilabel:`Demand` column of the
delivery receipt shows the converted quantity.
For example, if the product's purchase UoM is `Box of 6` and its sales/inventory unit of measure is
`Units`, the PO shows the quantity in boxes of six, and the delivery receipt shows the quantity in
units.
Replenishment
-------------
When doing a replenishment via the *Replenish* button on the product
form, you have the possibility to use a different unit of measure.
A request for quotation for a product can also be generated directly from the product form using
the :guilabel:`Replenish` button. After clicking :guilabel:`Replenish`, a replenish assistant box
pops up. The purchase unit of measure can be manually edited here if needed. Then, click
:guilabel:`Confirm` to create the RFQ.
.. image:: uom/uom_07.png
:align: center
Next, click the :guilabel:`Units Forecasted` smart button on the product form and scroll down to
:menuselection:`Forecasted Inventory --> Requests for quotation`. Click on the RFQ reference number
to open the draft RFQ. The purchase UoM can also be edited here if needed.
.. image:: uom/uom_08.png
:align: center
Sell in a different UoM
-----------------------
Sell in bigger UoM
------------------
When creating a new quotation in the Sales app, Odoo automatically uses the product's specified
unit of measure. However, if needed, the :guilabel:`UoM` can be manually edited on the quotation.
You can choose the unit of measure on the sale order document and decide
to sell the eggs by the dozen. When doing so, the price is automatically
computed from Units UoM to adapt to the selected *UoM*.
After the quotation is sent to the customer and confirmed into a sales order (SO), click on the
:guilabel:`Delivery` smart button at the top right corner of the SO. Odoo automatically converts
the unit of measure into the product's inventory unit of measure, so the :guilabel:`Demand` column
of the delivery shows the converted quantity.
.. image:: uom/uom_09.png
:align: center
In the delivery order, the *UoM* used in the sale order is converted
to the *UoM* used for stock management, in our use case, the Units.
.. image:: uom/uom_10.png
:align: center
For example, if the product's UoM on the SO was changed to `Box of 6`, but its inventory unit of
measure is `Units`, the SO shows the quantity in boxes of six, and the delivery shows the quantity
in units.

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -2,71 +2,70 @@
When Should you Use Packages, Units of Measure or Special Packaging?
====================================================================
Units of Measure
Units of measure
================
Units of measure specify the unit used to handle a product. In Odoo, you
have the possibility to specify the unit of measure in which you manage
your stock and the one which is used when purchasing the product to your
supplier.
Units of measure specify the unit used to handle a product. In Odoo, you have the possibility to
specify the unit of measure in which you manage your stock and the one which is used when
purchasing the product to your supplier.
.. image:: usage/usage_01.png
:align: center
.. image:: usage/uom-product-setting.png
:align: center
:alt: Specify unit of measure for handling a product vs. when it's purchased.
The *conversion* between the different units of measure is done
automatically. The only condition is that all the units have to be in
the *same category* (Unit, Weight, Volume, Length,...)
Once a product has a :guilabel:`Unit of Measure` and a :guilabel:`Purchase UoM` set on the product
form, Odoo can automatically convert the different units in the product's purchase/sales orders and
the orders' respective delivery orders/receipts. The only condition is that all the units have to
be in the *same category* (Unit, Weight, Volume, Length, etc.).
For example, if I have the following reordering rule for the egg and I
run the scheduler, the quantity added in the automatically generated
purchase order will be in dozens but what will enter the stock will be
units.
.. image:: usage/usage_02.png
:align: center
.. image:: usage/usage_03.png
:align: center
.. image:: usage/usage_04.png
:align: center
For example, a product can have its :guilabel:`Unit of Measure` set to `feet (ft)` and its
:guilabel:`Purchase UoM` set to `centimeters (cm)`. When a purchase order (PO) is created for that
product, it will list the quantity in centimeters. Then, when the PO is confirmed, Odoo
automatically generates a receipt and converts the centimeters to feet. The receipt will list the
quantity in feet.
Packages
========
The package is the physical container in which you put one or several
products from a picking. For example, when you deliver a product, you
can decide to separate the quantity into two different packages. It then
allows you to have a report with the quantity of products for each
package.
A package refers to the physical container that holds one or several products from a picking. For
example, when a product is ready for delivery, its quantities can be separated into two different
packages. In Odoo, the quantity of products in each package can be recorded in the database. Make
sure the :guilabel:`Packages` option is enabled in :menuselection:`Inventory --> Configuration -->
Settings --> Operations`.
To separate a delivery into different packages you will have to set the
done quantity to the desired package quantity then click on "PUT IN
PACK", do this for each package.
On a delivery order, separate the products into different packages by setting the :guilabel:`Done`
quantity to the desired quantity in the first package. Then, click :guilabel:`Put in Pack` to
record the first package. Repeat for each package.
.. image:: usage/usage_05.png
:align: center
.. image:: usage/separate-delivery-into-different-packages.png
:align: center
:alt: Separate delivery into different packages
.. image:: usage/usage_06.png
:align: center
.. image:: usage/delivery-package-details.png
:align: center
:alt: Separate delivery package details
Packaging
=========
Packagings
==========
The packaging is the physical container that protects your product. If
you are selling computers, the packaging contains the computer with the
notice and the power plug.
Packaging refers to a standard container that holds several unit of a product. For example, cans of
soda can be in a 6-pack, 15-pack, or even a pallet for the packaging.
In Odoo, packagings are used for indicative purposes on sale orders.
They can be specified on the product form, in the inventory tab.
In Odoo, packagings are used for indicative purposes on sales/purchase orders and inventory
transfers. The main difference between packagings and units of measure is that packagings are
defined at the product level while UoMs are generic.
.. image:: usage/usage_07.png
:align: center
.. image:: usage/product-packaging-examples.png
:align: center
:alt: Different product packaging examples.
.. image:: usage/usage_08.png
:align: center
.. image:: usage/package-field-on-po.png
:align: center
:alt: Package field on purchase order.
.. note::
Another useful use of the packaging is for product reception. By
scanning the barcode of the packaging, Odoo adds the number of units
contained in the packing on the picking.
Packaging is also useful during product reception. When scanning the barcode of the
packaging, Odoo automatically adds the number of units contained in the packing on the picking.
.. seealso::
:doc:`uom`

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,8 +1,8 @@
:nosearch:
====================
Inventory Adjustment
====================
========================
Replenishment strategies
========================
.. toctree::
:titlesonly:

View File

@@ -2,24 +2,19 @@
Integrating additional costs to products (landed costs)
=======================================================
The landed cost feature in Odoo allows to include additional costs
(shipment, insurance, customs duties, etc.) into the cost of the
product.
.. note::
Landed costs can only be applied to products with a FIFO or AVCO costing
method and an automated inventory valuation (which requires the
accounting application to be installed).
The landed cost feature in Odoo allows the user to include additional costs (shipment, insurance,
customs duties, etc.) into the cost of the product.
Configuration
=============
First, you need to go in :menuselection:`Inventory --> Configuration --> Settings` and
activate the landed costs feature. You can also determine the default
journal in which the landed cost accounting entries will be recorded.
First, go to :menuselection:`Inventory --> Configuration --> Settings --> Valuation` and activate
the :guilabel:`Landed Costs` feature. Odoo also gives the option to set a :guilabel:`Default
Journal` in which the landed costs accounting entries will be recorded.
.. image:: integrating_landed_costs/integrating_landed_costs_01.png
:align: center
.. image:: integrating_landed_costs/landed-costs-setting.png
:align: center
:alt: Activate the landed cost feature in Inventory settings.
Add costs to products
=====================
@@ -27,38 +22,58 @@ Add costs to products
Receive the vendor bill
-----------------------
Lets imagine I receive a bill from custom duties for a shipment. Ill
tick the box *Landed Costs* on the vendor bill line.
After a vendor fulfills a purchase order and sends a bill, click :guilabel:`Create Bill` on the
purchase order to create a vendor bill in Odoo. If the vendor bill includes landed costs, such as
custom duties, tick the box in the :guilabel:`Landed Costs` column on the vendor bill invoice line.
.. image:: integrating_landed_costs/integrating_landed_costs_02.png
:align: center
.. image:: integrating_landed_costs/landed-costs-field-vendor-bill.png
:align: center
:alt: Enable Landed Costs option on vendor bill line.
For charges that are always landed costs, create a landed cost product in Odoo. That way, the
landed cost product can be quickly added to the vendor bill as an invoice line instead of manually
entering the landed cost information every time a vendor bill comes in.
First, create a new product in :menuselection:`Inventory --> Products --> Products --> Create`.
Next, name the landed cost product. Then, set the :guilabel:`Product Type` to :guilabel:`Service`.
A landed cost product must always be a service product type. After that, go to the
:guilabel:`Purchase` tab and check the box next to :guilabel:`Is a Landed Cost`. Finally, click
:guilabel:`Save` to finish creating the landed cost product.
If this product is always a landed cost, you can also define it on the product and avoid having to
tick the box on each vendor bill.
.. image:: integrating_landed_costs/product-is-landed-cost.png
:align: center
:alt: Option to define a product as a landed cost.
Once the landed cost is added to the vendor bill (either by checking the :guilabel:`Landed Cost`
option on the invoice line or adding a landed cost product to the bill), click the
:guilabel:`Create Landed Costs` button at the top of the bill. Odoo automatically creates a landed
cost record with the set landed cost pre-filled in the :guilabel:`Additional Costs` product lines.
From here, decide which picking the additional costs apply to by clicking :guilabel:`Edit` and
selecting the picking reference number from the :guilabel:`Transfers` drop-down menu. Finally,
click :guilabel:`Save`.
.. image:: integrating_landed_costs/warehouse-transfer-landed-costs.png
:align: center
:alt: Use a warehouse transfer to cover a landed cost in the accounting journal.
After setting the picking, click :guilabel:`Compute` on the landed cost record. Then, go to the
:guilabel:`Valuation Adjustments` tab to see the impact of the landed costs. Finally, click
:guilabel:`Validate` to post the landed cost entry to the accounting journal.
The user can access the journal entry that has been created by the landed cost by clicking on the
:guilabel:`Journal Entry`.
.. note::
The landed cost product must be of type service.
The product that the landed cost is applied to must have a product category set to a :abbr:`FIFO
(First In, First Out)` or an :abbr:`AVCO (Average Costing)` method.
If this product is always a landed cost, you can also define it on the
product and avoid having to tick the box on each vendor bill.
.. image:: integrating_landed_costs/integrating_landed_costs_03.png
:align: center
At the top of my vendor bill, Ill see a button *create landed costs*.
I click on this button and a landed cost is automatically created. I can
now decide on which picking those additional costs should apply.
.. image:: integrating_landed_costs/integrating_landed_costs_04.png
:align: center
I can now click on *Compute* and go in the tab *Valuation
Adjustments* to see the impact on my products costs. The last step is
to validate the landed cost.
I can access the journal entry that has been created by the landed cost
by clicking on the journal entry.
.. image:: integrating_landed_costs/integrating_landed_costs_05.png
:align: center
.. image:: integrating_landed_costs/landed-cost-journal-entry.png
:align: center
:alt: Landed cost journal entry
.. note::
You are not forced to start from the vendor bill, you can also go in :menuselection:`Inventory
--> Operations --> Landed Costs` and directly create the landed cost from there.
Landed cost records can also be directly created in :menuselection:`Inventory --> Operations -->
Landed Costs`, it is not necessary to create a landed cost record from the vendor bill.

View File

@@ -8,4 +8,5 @@ Warehouses
:titlesonly:
:glob:
warehouses/difference_warehouse_location
warehouses/warehouses_locations
warehouses/resupply_warehouses

View File

@@ -1,34 +0,0 @@
========================================================
What is the difference between warehouses and locations?
========================================================
In Odoo, a **Warehouse** is the actual building/place in which your items
are stocked. You can setup multiple warehouses and create moves between
warehouses.
A **Location**, is a specific space within your warehouse. It can be
considered as a sublocation of your warehouse, as a shelf, a floor, an
aisle, etc. Therefore, a location is part of one warehouse only and it
is not possible to link one location to multiple warehouses. You can
configure as many locations as you need under one warehouse.
There are 3 types of locations:
- The **Physical Locations** are internal locations that are part of the
warehouses for which you are the owner. They can be the loading and
unloading area of your warehouse, a shelf or a department, etc.
- The **Partner Locations** are spaces within a customer and/or vendor's
warehouse. They work the same way as Physical Locations with the only
difference being that you are not the owner of the warehouse.
- The **Virtual Locations** are places that do not exist, but in which
products can be placed when they are not physically in an inventory yet
(or anymore). They come in handy when you want to place lost products
out of your stock (in the **Inventory loss**), or when you want to take into
account products that are on their way to your warehouse (**Procurements**).
In Odoo, locations are structured hierarchically. You can structure your
locations as a tree, dependent on a parent-child relationship. This
gives you more detailed levels of analysis of your stock operations and
the organization of your warehouses.

View File

@@ -0,0 +1,70 @@
===============================
Resupply from another warehouse
===============================
A common use case for multiple warehouses is to have one central warehouse that resupplies multiple
shops, and in this case, each shop is considered a local warehouse. When a shop wants to replenish
a product, the product is ordered to the central warehouse. Odoo allows the user to easily set
which warehouse(s) can resupply another warehouse.
Configuration
=============
To resupply from another warehouse, first go to :menuselection:`Inventory --> Configuration -->
Settings --> Warehouse` and activate :guilabel:`Multi-Step Routes`. Then, click :guilabel:`Save` to
apply the setting.
.. image:: resupply_warehouses/virtual-warehouses-settings.png
:align: center
:alt: Enable Multi-Step Routes in Inventory settings.
View all the configured warehouses by going to :menuselection:`Inventory --> Configuration -->
Warehouses`.
Create a new warehouse by clicking :guilabel:`Create`. Then, give the warehouse a name and a
:guilabel:`Short Name`. Finally, click :guilabel:`Save` to finish creating the warehouse.
After that, go back to the :guilabel:`Warehouses` page and open the warehouse that will be
resupplied by the second warehouse. Then, click :guilabel:`Edit`. In the :guilabel:`Warehouse
Configuration` tab, locate the :guilabel:`Resupply From` field, and check the box next to the
second warehouse's name. If the warehouse can be resupplied by more than one warehouse, make sure
to check those warehouses' boxes too. Finally, click :guilabel:`Save` to apply the setting. Now,
Odoo knows which warehouses can resupply this warehouse.
.. image:: resupply_warehouses/resupply-from-second-warehouse.png
:align: center
:alt: Supply one warehouse with another in the Warehouse Configuration tab.
Set route on a product
======================
After configuring which warehouse(s) to resupply from, a new route is now available on all product
forms. The new route appears as :guilabel:`Supply Product from [Warehouse Name]` under the
:guilabel:`Inventory` tab on a product form. Use the :guilabel:`Supply Product from [Warehouse
Name]` route with a reordering rule or the make to order (MTO) route to replenish stock by moving
the product from one warehouse to another.
.. image:: resupply_warehouses/product-resupply-route-settings.png
:align: center
:alt: Route setting which enables a product to resupplied from a second warehouse.
When a product's reordering rule is triggered and the product has the :guilabel:`Supply Product
from [Warehouse Name]` route set, Odoo automatically creates two pickings. One picking is a
*delivery order* from the second warehouse, which contains all the necessary products, and the
second picking is a *receipt* with the same products for the main warehouse. The product move from
the second warehouse to the main warehouse is fully tracked in Odoo.
On the picking/transfer records created by Odoo, the :guilabel:`Source Document` is the product's
reordering rule. The location between the delivery order and the receipt is a transit location.
.. image:: resupply_warehouses/resupply-receipts-from-reordering-rule.png
:align: center
:alt: A reordering rule automatically creates two receipts for stock between warehouses.
.. image:: resupply_warehouses/second-warehouse-delivery-order.png
:align: center
:alt: A warehouse order for resupplying one warehouse's stock with another.
.. image:: resupply_warehouses/second-warehouse-stock-receipt.png
:align: center
:alt: A receipt for stock received to one warehouse from another.

View File

@@ -0,0 +1,93 @@
===============================
Manage Warehouses and Locations
===============================
Terminology
===========
Warehouse
---------
In Odoo, a **Warehouse** is the actual building/place in which a company's items are stocked.
Multiple warehouses can be set up in Odoo and the user can create moves between warehouses.
Location
--------
A **Location** is a specific space within the warehouse. It can be a sublocation of the warehouse
(a shelf, a floor, an aisle, and so on). Therefore, a location is part of one warehouse only and it
is not possible to link one location to multiple warehouses. In Odoo, as many locations can be
configured as needed under one warehouse.
There are three types of locations:
- The **Physical Locations** are internal locations that are part of the warehouses that the
company owns. They can be the loading and unloading areas of the warehouse, a shelf, a department,
etc.
- The **Partner Locations** are spaces within a customer and/or vendor's warehouse. They work the
same way as physical locations, with the only difference being that they are not owned by the
user's company.
- The **Virtual Locations** are places that do not exist, but in which products can be placed when
they are not physically in an inventory yet (or anymore). They come in handy when recording lost
products (**Inventory Loss**), or accounting for products that are on their way to the warehouse
(**Procurements**).
In Odoo, locations are structured hierarchically. Locations can be structured as a tree, dependent
on a parent-child relationship. This gives more detailed levels of analysis of the stock operations
and the organization of the warehouses.
Configuration
=============
To activate locations, go to :menuselection:`Configuration --> Settings` and enable
:guilabel:`Storage Locations`. Then, click :guilabel:`Save`.
.. image:: warehouses_locations/storage-location-warehouse-setting.png
:align: center
:alt: Enable the storage location feature in Odoo Inventory settings.
.. important::
To manage several routes within the warehouses, also enable :guilabel:`Multi-Step Routes` and
check :doc:`../../routes/concepts/use_routes`.
Create a new warehouse
======================
To create a warehouse, go to :menuselection:`Configuration --> Warehouse Management --> Warehouses`
and click on :guilabel:`Create`.
Then, fill out a :guilabel:`Warehouse Name` and a :guilabel:`Short Name`. The short name is five
characters maximum.
.. image:: warehouses_locations/create-new-warehouse.png
:align: center
:alt: Short name field of a warehouse on Odoo Inventory.
.. important::
The :guilabel:`Short Name` appears on transfer orders and other warehouse documents. Odoo
recommends using an understandable one like "WH/[first letters of location]".
Now, go back to the :guilabel:`Inventory` dashboard. There, new operations related to the newly
created warehouse have been automatically generated.
.. image:: warehouses_locations/new-transfer-types.png
:align: center
:alt: Inventory app dashboard displaying new transfer types for the recently created warehouse.
.. note::
Adding a second warehouse will automatically activate the :guilabel:`Locations` setting.
Create a new location
=====================
To create a location, go to :menuselection:`Configuration --> Warehouse Management --> Locations`
and click on :guilabel:`Create`.
Then, fill out a :guilabel:`Location Name` and a :guilabel:`Parent Location` and click
:guilabel:`Save`.
.. image:: warehouses_locations/create-new-location.png
:align: center
:alt: Create a new warehouse location in Odoo Inventory.

Some files were not shown because too many files have changed in this diff Show More