diff --git a/_extensions/odoo/layout.html b/_extensions/odoo/layout.html
index 9b4028883..4dd56e5a9 100644
--- a/_extensions/odoo/layout.html
+++ b/_extensions/odoo/layout.html
@@ -1,4 +1,6 @@
{% extends "basic/layout.html" %}
+{% set html5_doctype = True %}
+
{%- block scripts %}
{{ super() }}
@@ -16,14 +18,9 @@
{% set classes = classes + ['has_code_col'] %}
{% endif %}
-{%- block doctype -%}
-
-{%- endblock -%}
-{%- block htmltitle -%}
-
-
- {{ super() }}
-{%- endblock -%}
+{% if 'classes' in meta %}
+ {% set classes = classes + meta['classes'].split() %}
+{% endif %}
{%- block linktags -%}
{% for code, url in language_codes %}
diff --git a/_extensions/odoo/translator.py b/_extensions/odoo/translator.py
index beac304ff..b2579ec4c 100644
--- a/_extensions/odoo/translator.py
+++ b/_extensions/odoo/translator.py
@@ -32,10 +32,6 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
html_subtitle = 'html_subtitle'
# tags
- meta = [
- '',
- ''
- ]
def __init__(self, builder, document):
# order of parameter swapped between Sphinx 1.x and 2.x, check if
@@ -45,6 +41,11 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
super(BootstrapTranslator, self).__init__(document)
self.builder = builder
+ self.meta = [
+ '', '',
+ '\n ',
+ '\n '
+ ]
self.body = []
self.fragment = self.body
self.html_body = self.body
@@ -74,6 +75,9 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
0xa0: u' '
})
+ def add_meta(self, meta):
+ self.meta.append('\n ' + meta)
+
def starttag(self, node, tagname, **attributes):
tagname = tagname.lower()
@@ -130,6 +134,14 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
def depart_document(self, node):
pass
+ def visit_meta(self, node):
+ if node.hasattr('lang'):
+ node['xml:lang'] = node['lang']
+ meta = self.starttag(node, 'meta', **node.non_default_attributes())
+ self.add_meta(meta)
+ def depart_meta(self, node):
+ pass
+
def visit_section(self, node):
# close "parent" or preceding section, unless this is the opening of
# the first section
diff --git a/_static/banners/discuss.png b/_static/banners/discuss.png
index 7da2eb305..99190a907 100644
Binary files a/_static/banners/discuss.png and b/_static/banners/discuss.png differ
diff --git a/_static/banners/studio.png b/_static/banners/studio.png
new file mode 100644
index 000000000..aeed50387
Binary files /dev/null and b/_static/banners/studio.png differ
diff --git a/_static/icons/pdf_missing.svg b/_static/icons/pdf_missing.svg
new file mode 100644
index 000000000..1a5e599c2
--- /dev/null
+++ b/_static/icons/pdf_missing.svg
@@ -0,0 +1,73 @@
+
+
+
+
diff --git a/_static/icons/txt_missing.svg b/_static/icons/txt_missing.svg
new file mode 100644
index 000000000..4c71c0497
--- /dev/null
+++ b/_static/icons/txt_missing.svg
@@ -0,0 +1,59 @@
+
+
+
+
diff --git a/_static/latex/odoo.sty b/_static/latex/odoo.sty
index d334203f9..41f4eb2e2 100644
--- a/_static/latex/odoo.sty
+++ b/_static/latex/odoo.sty
@@ -82,7 +82,7 @@
\renewcommand{\footrulewidth}{0.1pt}
\renewcommand{\maketitle}{%
- \noindent\rule{\textwidth}{1pt}\par
+ \vspace*{-2.5cm}
\begin{flushright}
\sphinxlogo
\py@HeaderFamily
@@ -95,6 +95,21 @@
}
+% For sphinx 1.8.3+, the command is \sphinxmaketitle and the
+% layout is slightly different on the titlepage
+\providecommand\sphinxmaketitle{}
+\renewcommand{\sphinxmaketitle}{%
+ \vspace*{-2.5cm}
+ \begin{flushright}
+ \sphinxlogo
+ \py@HeaderFamily
+ {\hspace{-0.5cm} \huge \@title }\par
+ \end{flushright}
+ \@thanks
+ \setcounter{footnote}{0}
+ \let\thanks\relax\let\maketitle\relax
+}
+
\newcommand{\makeodootitleold}{%
\begin{titlepage}
\titlepagedecoration
diff --git a/_static/legal.css b/_static/legal.css
new file mode 100644
index 000000000..a82b7baef
--- /dev/null
+++ b/_static/legal.css
@@ -0,0 +1,18 @@
+
+section#terms-and-conditions table td {
+ /* make sure icons and links aren't wrapped */
+ white-space: nowrap;
+}
+
+section#terms-and-conditions table th {
+ text-align: center;
+}
+
+section#terms-and-conditions table img.img-responsive {
+ margin: 0px;
+}
+
+section#terms-and-conditions table td:nth-child(2),
+section#terms-and-conditions table th:nth-child(2) {
+ background-color: #f3f3f3;
+}
diff --git a/accounting/fiscal_localizations/localizations.rst b/accounting/fiscal_localizations/localizations.rst
index 3140813be..c496e7f0e 100644
--- a/accounting/fiscal_localizations/localizations.rst
+++ b/accounting/fiscal_localizations/localizations.rst
@@ -10,6 +10,7 @@ Localizations
localizations/colombia_ES
localizations/france
localizations/germany
+ localizations/indonesia
localizations/italy_IT
localizations/mexico
localizations/netherlands
diff --git a/accounting/fiscal_localizations/localizations/colombia_ES.rst b/accounting/fiscal_localizations/localizations/colombia_ES.rst
index 89ec8113d..df6484a70 100644
--- a/accounting/fiscal_localizations/localizations/colombia_ES.rst
+++ b/accounting/fiscal_localizations/localizations/colombia_ES.rst
@@ -85,7 +85,7 @@ Contacto (Tercero)
~~~~~~~~~~~~~~~~~~
Identificación
-^^^^^^^^^^^^^^
+**************
Como parte de la Localización Colombiana, los tipos de documentos
definidos por la DIAN ahora están disponibles en el formulario de
@@ -102,7 +102,7 @@ terceros.
Estructura Fiscal (RUT)
-^^^^^^^^^^^^^^^^^^^^^^^
+***********************
Los Códigos de tipo de Obligación aplicables a los terceros (sección 53
en el documento de RUT), son incluidos como parte del módulo de
@@ -291,3 +291,305 @@ Casos de Uso adicionales
El proceso para las Notas de Crédito y Débito (Proveedores) es
exactamente el mismo que en las Facturas. Su flujo de trabajo funcional
se mantiene igual.
+
+Consideraciones del Anexo 1.7
+=============================
+
+Contexto
+--------
+
+Contexto Normativo
+~~~~~~~~~~~~~~~~~~
+
+| Soporte Normativo:
+| Resolución DIAN Número 000042 ( 5 de Mayo de 2020) Por la cual se desarrollan:
+
+- Los sistemas de facturación,
+- Los proveedores tecnológicos,
+- El registro de la factura electrónica de venta como título valor,
+- Se expide el anexo técnico de factura electrónica de venta y
+- Se dictan otras disposiciones en materia de sistemas de facturación.
+
+Anexo 1.7: Principales Cambios
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- Cambios en la definición de Consumidor Final.
+- Informar bienes cubiertos para los 3 dias sin IVA.
+- Actualización de descripción de Impuestos.
+- Se agrega concepto para IVA Excluido.
+- Informar la fecha efectiva de entrega de los bienes.
+- Adecuaciones en la representación Gráfica (PDF).
+
+Calendario
+~~~~~~~~~~
+
+Se tiene varias fechas límites para la salida a producción bajo las condiciones del Anexo 1.7 las
+cuales dependen de los siguientes factores:
+
+#. Calendario de implementación de acuerdo con la actividad económica principal en el RUT:
+
+ .. image:: media/colombia-es-calendario-rut.png
+ :align: center
+
+#. Calendario de implementación, para otros sujetos obligados:
+
+ .. image:: media/colombia-es-calendario-otros-obligados.png
+ :align: center
+
+#. Calendario de implementación permanente:
+
+ .. image:: media/colombia-es-calendario-permanente.png
+ :align: center
+
+Requerimientos en Odoo
+----------------------
+
+Con la finalidad de facilitar el proceso de preparación de las bases de Odoo estándar V12 y v13,
+únicamente será necesario que los administradores actualicen algunos módulos y creen los datos
+maestros relacionados a los nuevos procesos.
+
+Actualización de listado de Apps
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Utilizando el modo desarrollador, acceder al módulo de Aplicaciones y seleccionar el menú
+*Actualizar Lista*.
+
+.. image:: media/colombia-es-actualizar-lista.png
+ :align: center
+
+Actualización de Módulos
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Una vez actualizado Buscar *Colombia*, los siguientes módulos serán desplegados, se requieren
+actualizar dos módulos.
+
+#. Colombia - Contabilidad - l10n_co
+#. Electronic invoicing for Colombia with Carvajal UBL 2.1 - l10n_co_edi_ubl_2_1
+
+.. image:: media/colombia-es-modulos.png
+ :align: center
+
+En cada módulo o ícono hay que desplegar el menú opciones utilizando los 3 puntos de la esquina
+superior derecha y seleccionamos *Actualizar*.
+
+Primero lo hacemos con en el módulo l10n_co:
+
+.. image:: media/colombia-es-actualizar-contabilidad.png
+ :align: center
+
+Posteriormente lo hacemos con el módulo l10n_co_edi_ubl_2_1:
+
+.. image:: media/colombia-es-actualizar-electronic-invoicing.png
+ :align: center
+
+Creación de Datos Maestros
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Las bases de datos existentes a Junio 2020 tanto en V12 como V13, deberán crear algunos datos
+maestros necesarios para operar correctamente con los cambios del Anexo 1.7.
+
+Consumidor Final
+****************
+
+La figura del consumidor final será utilizada para aquellas ventas sobre las cuales no es posible
+identificar toda la información fiscal y demográfica del cliente por lo que la factura se genera a
+nombre de este registro genérico.
+
+Es importante coordinar y definir los casos de uso en los que dependiendo de su empresa se tendrá
+permitido utilizar este registro genérico.
+
+Dentro de Odoo se tendrá que crear un contacto con las siguientes características, es importante que
+se defina de esta manera debido a que son los parámetros definidos por la DIAN.
+
+- **Tipo de contacto:** Individuo
+- **Nombre:** Consumidor Final
+- **Tipo de documento:** Cedula de Ciudadania
+- **Numero de Identificacion:** 222222222222
+
+.. image:: media/colombia-es-consumidor-final-nuevo-contacto.png
+ :align: center
+
+Dentro de la pestaña Ventas y Compras, en la sección Información Fiscal, del campo Obligaciones y
+Responsabilidades colocaremos el valor: **R-99-PN**.
+
+.. image:: media/colombia-es-consumidor-final-r-99-pn.png
+ :align: center
+
+IVA Excluido - Bienes Cubiertos
+*******************************
+
+Para reportar las transacciones realizadas mediante Bienes Cubiertos para los tres días sin IVA,
+será necesario crear un nuevo Impuesto al cual se le debe de asociar un grupo de impuestos
+específico que será utilizado por Odoo para agregar la sección requerida en el XML de factura
+electrónica.
+
+Para el crear el impuesto accederemos a Contabilidad dentro del menú :menuselection:`Configuración
+--> Impuestos`:
+
+.. image:: media/colombia-es-menu-impuestos.png
+ :align: center
+
+Procedemos a crear un nuevo Impuesto con importe 0% considerando los siguientes parámetros:
+
+.. image:: media/colombia-es-nuevo-impuesto.png
+ :align: center
+
+El nombre del Impuesto puede ser definido a preferencia del usuario, sin embargo el campo clave es
+**Grupo de Impuestos** dentro de Opciones avanzadas, el cual debe ser: *bienes cubiertos* y el campo
+**Tipo de Valor**: *IVA*.
+
+.. image:: media/colombia-es-nuevo-impuesto-opciones-avanzadas.png
+ :align: center
+
+Actualización de descripción de Departamentos
+*********************************************
+
+Es necesario actualizar la descripción de algunos departamentos, para lo cual accederemos a módulo
+de Contactos y dentro del menú de :menuselection:`Configuración --> Provincias`.
+
+.. image:: media/colombia-es-menu-provincias.png
+ :align: center
+
+Posteriormente, podemos agregar por País para identificar claramente las provincias (Departamentos)
+de Colombia:
+
+.. image:: media/colombia-es-provincias-agrupar.png
+ :align: center
+
+Una vez agrupados buscar los siguientes departamentos para actualizarlos con el valor indicado en la
+columna **Nombre actualizado**:
+
++------------------------------+---------------------+--------------------------+
+| Nombre de provincia | Código de Provincia | Nombre actualizado |
++==============================+=====================+==========================+
+| D.C. | DC | Bogotá |
++------------------------------+---------------------+--------------------------+
+| Quindio | QUI | Quindío |
++------------------------------+---------------------+--------------------------+
+| Archipiélago de San Andrés, | SAP | San Andrés y Providencia |
+| Providencia y Santa Catalina | | |
++------------------------------+---------------------+--------------------------+
+
+Ejemplo:
+
+.. image:: media/colombia-es-provincias-ejemplo.png
+ :align: center
+
+Verificación de Código postal
+*****************************
+
+Dentro del Anexo 1.7 se comienza a validar que el código postal de las direcciones para contactos
+colombianos corresponda a las tablas oficiales definidas por la DIAN, por lo que se debe verificar
+que este campo está debidamente diligenciado de acuerdo a los definidos en la sigueinte fuente:
+`Codigos_Postales_Nacionales.csv
+`_
+
+Consideraciones Operativas
+--------------------------
+
+Consumidor Final
+~~~~~~~~~~~~~~~~
+
+Una vez que resgistro de Consumidor final ha sido creado este deberá ser utilizado a demanda,
+generalmente será utilizado en las transacciones de facturación del punto de punto de venta.
+
+- El proceso de validación de la Factura será realizado de forma convencional en Odoo y la factura
+ será generada de la misma manera. Al detectar que el número de identificación corresponde a
+ consumidor Final, el XML que se envía a Carvajal será generado con las consideraciones y secciones
+ correspondientes.
+- Contablemente todos los registros de Consumidor final quedarán asociados al identificador generico:
+
+.. image:: media/colombia-es-consumidor-final-asociado.png
+ :align: center
+
+IVA Excluido - Bienes Cubiertos
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+El 21 mayo del 2020 fue publicado el El Decreto 682 el cual establece Excepción especial en el
+Impuesto sobre las ventas. El principal objetivo de este decreto es reactivar la economía en
+Colombia por las bajas ventas generadas a causa del COVID.
+
+Fechas
+******
+
+Días de excención del impuesto sobre las ventas – IVA para bienes cubiertos (3 días SIN IVA).
+
+- **Primer día**: 19 de junio de 2020
+- **Segundo día**: 3 de Julio de 2020
+- **Tercer día**: 19 de Julio de 2020
+
+Condiciones
+***********
+
+Debido a que estas transacciones serán generadas de forma excepcional y que se tiene una combinación
+de varios factores y condiciones, los productores debera ser actualizados de forma manual en Odoo
+asignados temporalmente el impuesto de venta *IVA exento - Bienes cubierto* en cada empresa según
+corresponda.
+
+A continuación se mencionan algunas de las principales condiciones, sin embargo, cabe mencionar que
+las empresas deben de verificar todos los detalles en el `Decreto 682
+`_.
+
+- Tipo de productos y precio Máximo:
+
+ +-----------------------------+---------------------------------------+
+ | Tipo de Productos | Precio Máximo |
+ +=============================+=======================================+
+ | Electrodomesticos | 40 UVT: $1,4 millones. |
+ +-----------------------------+---------------------------------------+
+ | Vestuario y complementos | | 3 UVT: $106.000 |
+ | | | En el caso de los complementos es: |
+ | | | 10 UVT- $356.000 |
+ +-----------------------------+---------------------------------------+
+ | Elementos deportivos | 10 UVT- $356.000 |
+ +-----------------------------+---------------------------------------+
+ | Juguetes y Utiles Escolares | 5 UVT - $178.035 |
+ +-----------------------------+---------------------------------------+
+ | Utiles Escolares | 5 UVT - $178.035 |
+ +-----------------------------+---------------------------------------+
+ | Bienes o servicios para | 80 UVT - $2.848.560 |
+ | el sector agropecuario | |
+ +-----------------------------+---------------------------------------+
+
+- Métodos de Pago:
+
+ - El pago debe realizarse por medios electrónico por ejemplo tarjetas de crédito/débito o bien mecanismos de pago online.
+
+- Limite de unidades:
+
+ - Cada cliente puede adquirir únicamente 3 unidades como máximo de cada producto.
+
+Medidas en Odoo
+***************
+
+- **Preparación de datos**
+
+ - Crear el Impuesto para Bienes cubiertos de acuerdo a lo indicado en este punto: Datos maestros.
+ - Identificar los productos y transacciones a los cuales les aplicará la Exclusión de IVA de
+ acuerdo a las condiciones establecidas en el decreto 682. En caso de ser un porcentaje
+ significativo de productos, se recomienda actualizar el impuesto de forma temporal en Odoo.
+ - Exportar un listado con los productos que serán afectados incluyendo el campo IVA Venta el cual
+ será sustituido temporalmente por el IVA de Bienes Cubiertos.
+ - Al finalizar las operaciones del día anterior a las fechas establecidas de día sin IVA, se debe
+ hacer la actualización temporal a IVA de Bienes Cubiertos.
+
+ .. image:: media/columbia-es-producto-iva-bienes-cubiertos.png
+ :align: center
+
+- **Durante el día SIN IVA**
+
+ - Por defecto los productos previamente considerados con IVA de Bienes cubiertos serán generados
+ con este parámetro tanto en Órdenes de venta como facturas creadas durante ese mismo día.
+
+ .. image:: media/columbia-es-factura-iva-bienes-cubiertos.png
+ :align: center
+
+ - Las órdenes de venta generadas con este impuesto deberán ser facturas el mismo día.
+ - En caso de que alguna de las condiciones no sea cumplida (ejemplo el pago es realizado en
+ efectivo) el impuesto deberá ser actualizado manualmente al momento de facturar.
+
+- **Posterior al día SIN IVA**
+
+ - Los productos que fueron actualizados deberá ser reconfigurados a su IVA original.
+ - En caso de que se detecte alguna Orden de venta facturar en la cual se incluya IVA de Bienes
+ Cubiertos, se deberá realizar actualización manual correspondiente al IVA convencional.
\ No newline at end of file
diff --git a/accounting/fiscal_localizations/localizations/indonesia.rst b/accounting/fiscal_localizations/localizations/indonesia.rst
new file mode 100644
index 000000000..811cde5ff
--- /dev/null
+++ b/accounting/fiscal_localizations/localizations/indonesia.rst
@@ -0,0 +1,128 @@
+=========
+Indonesia
+=========
+
+.. _localization_indonesia/e-faktur:
+
+E-Faktur Module
+===============
+
+The **E-Faktur Module** is installed by default with the Indonesian localization module. It allows
+one to generate a CSV file for one tax invoice or for a batch of tax invoices to upload to the
+**Tax Office e-Faktur** application.
+
+.. _localization_indonesia/npwp_nik:
+
+NPWP/NIK settings
+-----------------
+
+- | **Your Company**
+ | This information is used in the FAPR line in the effect file format. You need to set a VAT
+ number on the related partner of your Odoo company. If you don't, it won't be possible to create
+ an e-Faktur from an invoice.
+- | **Your Clients**
+ | You need to set the checkbox *ID PKP* to generate e-fakturs for a customer. You can use the VAT
+ field on the customer's contact to set the NPWP needed to generate the e-Faktur file. If your
+ customer does not have an NPWP, just enter the NIK in the same VAT field.
+
+ .. image:: media/indonesia-partner-nik.png
+ :align: center
+
+.. _localization_indonesia/e-faktur_usage:
+
+Usage
+-----
+
+.. _localization_indonesia/tax_invoice_sn:
+
+Generate Tax Invoice Serial Number
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#. Go to :menuselection:`Accounting --> Customers --> e-Faktur`. In order to be able to export
+ customer invoices as e-Faktur for the Indonesian government, you need to put here the ranges of
+ numbers you were assigned by the government. When you validate an invoice, a number will be
+ assigned based on these ranges. Afterwards, you can filter the invoices still to export in the
+ invoices list and click on *Action*, then on *Download e-Faktur*.
+#. After receiving new serial numbers from the Indonesian Revenue Department, you can create a set
+ of tax invoice serial numbers group through this list view. You only have to specify the Min and
+ Max of each serial numbers' group and Odoo will format the number automatically to a 13-digits
+ number, as requested by the Indonesia Tax Revenue Department.
+#. There is a counter to inform you how many unused numbers are left in that group.
+
+ .. image:: media/indonesia-sn-count.png
+ :align: center
+
+.. _localization_indonesia/csv:
+
+Generate e-faktur csv for a single invoice or a batch invoices
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#. Create an invoice from :menuselection:`Accounting --> Customers --> Invoices`. If the invoice
+ customer's country is Indonesia and the customer is set as *ID PKP*, Odoo will allow you to
+ create an e-Faktur.
+#. Set a Kode Transaksi for the e-Faktur. There are constraints related to the Kode transaksi and
+ the type of VAT applied to invoice lines.
+
+ .. image:: media/indonesia-kode-transaksi.png
+ :align: center
+
+#. Odoo will automatically pick the next available serial number from the e-Faktur number table (see
+ the :ref:`section above `) and generate the e-faktur
+ number as a concatenation of Kode Transaksi and serial number. You can see this from the invoice
+ form view under the page *Extra Info* in the box *Electronic Tax*.
+
+ .. image:: media/indonesia-e-faktur-sn.png
+ :align: center
+
+#. Once the invoice is posted, you can generate and download the e-Faktur from the *Action* menu
+ item *Download e-faktur*. The checkbox *CSV created* will be set.
+
+ .. image:: media/indonesia-csv-created.png
+ :align: center
+
+#. You can select multiple invoices in list view and generate a batch e-Faktur .csv.
+
+.. _localization_indonesia/kode_transaksi_fp:
+
+Kode Transaksi FP (Transaction Code)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following codes are available when generating an e-Faktur.
+- 01 Kepada Pihak yang Bukan Pemungut PPN (Customer Biasa)
+- 02 Kepada Pemungut Bendaharawan (Dinas Kepemerintahan)
+- 03 Kepada Pemungut Selain Bendaharawan (BUMN)
+- 04 DPP Nilai Lain (PPN 1%)
+- 06 Penyerahan Lainnya (Turis Asing)
+- 07 Penyerahan yang PPN-nya Tidak Dipungut (Kawasan Ekonomi Khusus/ Batam)
+- 08 Penyerahan yang PPN-nya Dibebaskan (Impor Barang Tertentu)
+- 09 Penyerahan Aktiva (Pasal 16D UU PPN)
+
+.. _localization_indonesia/replace_invoice:
+
+Correct an invoice that has been posted and downloaded: Replace Invoice feature
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#. Cancel the original wrong invoice in Odoo. For instance, we will change the Kode Transakski from 01
+ to 03 for the INV/2020/0001.
+#. Create a new invoice and set the canceled invoice in the *Replace Invoice* field. In this field,
+ we can only select invoices in *Cancel* state from the same customer.
+#. As you validate, Odoo will automatically use the same e-Faktur serial number as the canceled and
+ replaced invoice replacing the third digit of the original serial number with *1* (as requested
+ to upload a replacement invoice in the e-Faktur app).
+
+.. image:: media/indonesia-replace-invoice.png
+ :align: center
+
+
+.. _localization_indonesia/reset_e-faktur:
+
+Correct an invoice that has been posted but not downloaded yet: Reset e-Faktur
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#. Reset the invoice to draft and cancel it.
+#. Click on the button *Reset e-Faktur* on the invoice form view.
+#. The serial number will be unassigned, and we will be able to reset the invoice to draft, edit it
+ and re-assign a new serial number.
+
+.. image:: media/indonesia-e-faktur-reset.png
+ :align: center
\ No newline at end of file
diff --git a/accounting/fiscal_localizations/localizations/italy_IT.rst b/accounting/fiscal_localizations/localizations/italy_IT.rst
index 703263644..eea2626c2 100644
--- a/accounting/fiscal_localizations/localizations/italy_IT.rst
+++ b/accounting/fiscal_localizations/localizations/italy_IT.rst
@@ -25,7 +25,7 @@ elettronica sono i seguenti:
di posta elettronica certificata sono fornite dal tuo fornitore o dal
Ministero. Lo stesso server deve essere configurato come server che
gestisce tutta la corrispondenza mail in Odoo, per saperne di più si
- puo’ consultare la relativa :doc:`guida <../../../discuss/email_servers>`.
+ puo’ consultare la relativa :doc:`guida <../../../discuss/advanced/email_servers>`.
- Indirizzo PEC dell’ Azienda, tale indirizzo deve essere lo stesso
registrato presso l’Agenzia delle Entrate per l’utilizzo dei servizi
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-contabilidad.png b/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-contabilidad.png
new file mode 100644
index 000000000..ef85d7c87
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-contabilidad.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-electronic-invoicing.png b/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-electronic-invoicing.png
new file mode 100644
index 000000000..adc78f37c
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-electronic-invoicing.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-lista.png b/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-lista.png
new file mode 100644
index 000000000..fdbaf6110
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-actualizar-lista.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-otros-obligados.png b/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-otros-obligados.png
new file mode 100644
index 000000000..7f28f3e63
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-otros-obligados.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-permanente.png b/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-permanente.png
new file mode 100644
index 000000000..1632ce434
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-permanente.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-rut.png b/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-rut.png
new file mode 100644
index 000000000..10e9cb576
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-calendario-rut.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-asociado.png b/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-asociado.png
new file mode 100644
index 000000000..6bf0fb20e
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-asociado.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-nuevo-contacto.png b/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-nuevo-contacto.png
new file mode 100644
index 000000000..c1546f6e6
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-nuevo-contacto.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-r-99-pn.png b/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-r-99-pn.png
new file mode 100644
index 000000000..b689e6820
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-consumidor-final-r-99-pn.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-menu-impuestos.png b/accounting/fiscal_localizations/localizations/media/colombia-es-menu-impuestos.png
new file mode 100644
index 000000000..675a4053a
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-menu-impuestos.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-menu-provincias.png b/accounting/fiscal_localizations/localizations/media/colombia-es-menu-provincias.png
new file mode 100644
index 000000000..9a935ff89
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-menu-provincias.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-modulos.png b/accounting/fiscal_localizations/localizations/media/colombia-es-modulos.png
new file mode 100644
index 000000000..6e30b3946
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-modulos.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-nuevo-impuesto-opciones-avanzadas.png b/accounting/fiscal_localizations/localizations/media/colombia-es-nuevo-impuesto-opciones-avanzadas.png
new file mode 100644
index 000000000..22d0b742e
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-nuevo-impuesto-opciones-avanzadas.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-nuevo-impuesto.png b/accounting/fiscal_localizations/localizations/media/colombia-es-nuevo-impuesto.png
new file mode 100644
index 000000000..cbb7226ad
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-nuevo-impuesto.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-provincias-agrupar.png b/accounting/fiscal_localizations/localizations/media/colombia-es-provincias-agrupar.png
new file mode 100644
index 000000000..fdaed2acb
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-provincias-agrupar.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/colombia-es-provincias-ejemplo.png b/accounting/fiscal_localizations/localizations/media/colombia-es-provincias-ejemplo.png
new file mode 100644
index 000000000..8eba73681
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/colombia-es-provincias-ejemplo.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/columbia-es-factura-iva-bienes-cubiertos.png b/accounting/fiscal_localizations/localizations/media/columbia-es-factura-iva-bienes-cubiertos.png
new file mode 100644
index 000000000..a3db79d0f
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/columbia-es-factura-iva-bienes-cubiertos.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/columbia-es-producto-iva-bienes-cubiertos.png b/accounting/fiscal_localizations/localizations/media/columbia-es-producto-iva-bienes-cubiertos.png
new file mode 100644
index 000000000..665c54284
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/columbia-es-producto-iva-bienes-cubiertos.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-csv-created.png b/accounting/fiscal_localizations/localizations/media/indonesia-csv-created.png
new file mode 100644
index 000000000..949bdd4da
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-csv-created.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-e-faktur-reset.png b/accounting/fiscal_localizations/localizations/media/indonesia-e-faktur-reset.png
new file mode 100644
index 000000000..2cf5450fc
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-e-faktur-reset.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-e-faktur-sn.png b/accounting/fiscal_localizations/localizations/media/indonesia-e-faktur-sn.png
new file mode 100644
index 000000000..af76116ff
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-e-faktur-sn.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-kode-transaksi.png b/accounting/fiscal_localizations/localizations/media/indonesia-kode-transaksi.png
new file mode 100644
index 000000000..0a44e9614
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-kode-transaksi.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-partner-nik.png b/accounting/fiscal_localizations/localizations/media/indonesia-partner-nik.png
new file mode 100644
index 000000000..7717ac608
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-partner-nik.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-replace-invoice.png b/accounting/fiscal_localizations/localizations/media/indonesia-replace-invoice.png
new file mode 100644
index 000000000..7067aeca2
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-replace-invoice.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/indonesia-sn-count.png b/accounting/fiscal_localizations/localizations/media/indonesia-sn-count.png
new file mode 100644
index 000000000..433323d1e
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/indonesia-sn-count.png differ
diff --git a/accounting/fiscal_localizations/localizations/media/switzerland-isr-reference.png b/accounting/fiscal_localizations/localizations/media/switzerland-isr-reference.png
new file mode 100644
index 000000000..c58938dc1
Binary files /dev/null and b/accounting/fiscal_localizations/localizations/media/switzerland-isr-reference.png differ
diff --git a/accounting/fiscal_localizations/localizations/switzerland.rst b/accounting/fiscal_localizations/localizations/switzerland.rst
index ac6864063..da5e6b6c9 100644
--- a/accounting/fiscal_localizations/localizations/switzerland.rst
+++ b/accounting/fiscal_localizations/localizations/switzerland.rst
@@ -28,12 +28,27 @@ Then you open a pdf with the ISR.
There exists two layouts for ISR: one with, and one without the bank
coordinates. To choose which one to use, there is an option to print the
bank information on the ISR. To activate it, go in
-:menuselection:`Accounting --> Configuration --> Settings --> Accounting Reports`
-and tick this box :
+:menuselection:`Accounting --> Configuration --> Settings --> Customer Invoices`
+and enable **Print bank on ISR**:
.. image:: media/switzerland03.png
:align: center
+ISR reference on invoices
+-------------------------
+
+To ease the reconciliation process, you can add your ISR reference as **Payment Reference** on your
+invoices.
+
+To do so, you need to configure the Journal you usually use to issue invoices. Go to
+:menuselection:`Accounting --> Configuration --> Journals`, open the Journal you want to modify (By
+default, the Journal is named *Customer Invoices*), click en *Edit*, and open the *Advanced
+Settings* tab. In the **Communication Standard** field, select *Switzerland*, and click on *Save*.
+
+.. image:: media/switzerland-isr-reference.png
+ :align: center
+ :alt: Configure your Journal to display your ISR as payment reference on your invoices in Odoo
+
Currency Rate Live Update
=========================
diff --git a/accounting/fiscality/taxes.rst b/accounting/fiscality/taxes.rst
index 6be07a3b7..6a4e6f301 100644
--- a/accounting/fiscality/taxes.rst
+++ b/accounting/fiscality/taxes.rst
@@ -7,9 +7,10 @@ Taxes
taxes/create
taxes/default_taxes
- taxes/application
+ taxes/fiscal_positions
taxes/taxcloud
taxes/tax_included
taxes/retention
taxes/B2B_B2C
- taxes/cash_basis_taxes
\ No newline at end of file
+ taxes/cash_basis_taxes
+ taxes/vat_validation
\ No newline at end of file
diff --git a/accounting/fiscality/taxes/application.rst b/accounting/fiscality/taxes/application.rst
deleted file mode 100644
index 4863a809b..000000000
--- a/accounting/fiscality/taxes/application.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-=================================================
-Adapt taxes to my customer status or localization
-=================================================
-
-Most often sales tax rates depend on your customer status or localization.
-To map taxes, Odoo brings the so-called *Fiscal Positions*.
-
-Create tax mapping
-==================
-
-A fiscal position is just a set of rules that maps default taxes (as defined
-on product form) into other taxes. In the screenshot below, foreign customers
-get a 0% tax instead of the default 15%, for both sales and purchases.
-
-.. image:: media/application02.png
- :align: center
-
-The main fiscal positions are automatically created according to your
-localization. But you may have to create fiscal positions for specific use cases.
-To define fiscal positions, go to
-:menuselection:`Invoicing/Accounting --> Configuration --> Fiscal Positions`.
-
-.. note::
- If you use Odoo Accounting, you can also map the Income/Expense accounts according to the fiscal
- position. For example, in some countries, revenues from sales are not posted in
- the same account than revenues from sales in foreign countries.
-
-Adapt taxes to your customer status
-===================================
-
-If a customer falls into a specific taxation rule, you need to apply a tax-mapping.
-To do so, create a fiscal position and assign it to your customers.
-
-.. image:: media/application01.png
- :align: center
-
-Odoo will use this specific fiscal position for any order/invoice recorded for the customer.
-
-.. note::
- If you set the fiscal position in the sales order or invoice manually, it will only
- apply to this document and not to future orders/invoices of the same customer.
-
-Adapt taxes to your customer address (destination-based)
-========================================================
-
-Depending on your localization, sales taxes may be origin-based or destination-based.
-Most states or countries require you to collect taxes at the rate of the destination
-(i.e. your buyer’s address) while some others require to collect them at the rate effective
-at the point of origin (i.e. your office or warehouse).
-
-If you are under the destination-based rule, create one fiscal position per tax-mapping to apply.
-
-* Check the box *Detect Automatically*.
-* Select a country group, country, state or city to trigger the tax-mapping.
-
-.. image:: media/application04.png
- :align: center
-
-This way if no fiscal position is set on the customer, Odoo will choose the fiscal position matching the
-shipping address on creating an order.
-
-.. note::
- For eCommerce orders, the tax of the visitor's cart will automatically
- update and apply the new tax after the visitor has logged in or filled
- in his shipping address.
-
-Specific use cases
-==================
-
-If, for some fiscal positions, you want to remove a tax, instead of
-replacing by another, just keep the *Tax to Apply* field empty.
-
-.. image:: media/application03.png
- :align: center
-
-If, for some fiscal positions, you want to replace a tax by two other
-taxes, just create two lines having the same *Tax on Product*.
-
-.. note::
- The fiscal positions are not applied on assets and deferred revenues.
-
-.. seealso::
-
- * :doc:`create`
- * :doc:`taxcloud`
- * :doc:`tax_included`
- * :doc:`B2B_B2C`
diff --git a/accounting/fiscality/taxes/create.rst b/accounting/fiscality/taxes/create.rst
index 3e4ec3125..5d76cbf65 100644
--- a/accounting/fiscality/taxes/create.rst
+++ b/accounting/fiscality/taxes/create.rst
@@ -66,5 +66,5 @@ Advanced configuration
.. seealso::
- * :doc:`application`
+ * :doc:`fiscal_positions`
* :doc:`tax_included`
diff --git a/accounting/fiscality/taxes/default_taxes.rst b/accounting/fiscality/taxes/default_taxes.rst
index c495104be..dd56aa67f 100644
--- a/accounting/fiscality/taxes/default_taxes.rst
+++ b/accounting/fiscality/taxes/default_taxes.rst
@@ -1,31 +1,40 @@
-=================
-Set default taxes
-=================
+=============
+Default Taxes
+=============
-Taxes applied in your country are installed automatically for most localizations.
+**Default Taxes** define which :doc:`taxes ` are automatically selected when there is no
+other indication about which tax to use. For example, Odoo prefills the **Taxes** field with the
+Default Taxes when you create a new product or add a new line on an invoice.
-Default taxes set in orders and invoices come from each product's Invoicing tab.
-Such taxes are used when you sell to companies that are in the same country/state than you.
-
-.. image:: media/application05.png
+.. image:: media/default-taxes-invoice-line.png
:align: center
+ :alt: Odoo fills out the Tax field automatically according to the Default Taxes
-To change the default taxes set for any new product created go to
-:menuselection:`Invoicing/Accounting --> Configuration --> Settings`.
+.. important::
+ :doc:`Fiscal Positions ` take the Default Tax into account. Therefore, if a
+ Fiscal Position is applied to an invoice, Odoo applies the related tax instead of the Default
+ Taxes, as mapped in the Fiscal Position.
-.. image:: media/create04.png
+Configuration
+=============
+
+**Default Taxes** are automatically set up according to the country selected at the creation of your
+database, or when you set up a :doc:`Fiscal Localization Package
+<../../fiscal_localizations/overview/fiscal_localization_packages>` for your company.
+
+To change your **Default Taxes**, go to :menuselection:`Accounting --> Configuration --> Settings
+--> Taxes --> Default Taxes`, select the appropriate taxes for your default **Sales Tax** and
+**Purchase Tax**, and click on *Save*.
+
+.. image:: media/default-taxes-configuration.png
:align: center
+ :alt: Define which taxes to use by default on Odoo
-.. tip::
- If you work in a multi-companies environment, the sales and
- purchase taxes may have a different value according to the
- company you work for. You can login into two different companies
- and change this field for each company.
+.. note::
+ Databases with multiple companies: the Default Taxes values are company-specific.
.. seealso::
- * :doc:`create`
- * :doc:`application`
- * :doc:`taxcloud`
- * :doc:`B2B_B2C`
- * :doc:`tax_included`
+ - :doc:`create`
+ - :doc:`fiscal_positions`
+ - :doc:`../../fiscal_localizations/overview/fiscal_localization_packages`
diff --git a/accounting/fiscality/taxes/fiscal_positions.rst b/accounting/fiscality/taxes/fiscal_positions.rst
new file mode 100644
index 000000000..31926664a
--- /dev/null
+++ b/accounting/fiscality/taxes/fiscal_positions.rst
@@ -0,0 +1,111 @@
+==========================================
+Fiscal Positions (tax and account mapping)
+==========================================
+
+Default taxes and accounts are set on products and customers to create new transactions on the fly.
+However, you might have to use different taxes and record the transactions on different accounts,
+according to your customers' and providers' localizations and business types.
+
+**Fiscal Positions** allow you to create *sets of rules* to automatically adapt the taxes and the
+accounts used for a transaction.
+
+.. image:: media/fiscal-positions-intra-community.png
+ :align: center
+ :alt: Example: Belgian to Intra-Community tax mapping with Fiscal Positions in Odoo Accounting
+
+They can be applied in various ways:
+
+- :ref:`automatically applied, based on some rules `
+- :ref:`manually applied on a transaction `
+- :ref:`assigned to a partner, on its contact form `
+
+.. note::
+ A few Fiscal Positions are already preconfigured on your database, as part of your :doc:`Fiscal
+ Localization Package <../../fiscal_localizations/overview/fiscal_localization_packages>`.
+
+Configuration
+=============
+
+Tax and Account Mapping
+-----------------------
+
+To edit or create a Fiscal Position, go to :menuselection:`Accounting --> Configuration --> Fiscal
+Positions`, and open the entry you want to modify or click on *Create*.
+
+The mapping of taxes and accounts is based on the default taxes and accounts defined in the
+products' forms.
+
+- To map to another tax or account, fill out the right column (**Tax to Apply**/**Account to Use
+ Instead**).
+- To remove a tax, rather than replacing it with another, leave the field **Tax to Apply** empty.
+- To replace a tax with multiple other taxes, add multiple lines with the same **Tax on Product**.
+
+.. note::
+ The mapping only works with *active* taxes. Therefore, make sure they are active by going to
+ :menuselection:`Accounting --> Configuration --> Taxes`.
+
+.. _fiscal_positions/automatic:
+
+Automatic application
+---------------------
+
+You can configure your Fiscal Positions to be applied automatically, following a set of conditions.
+
+To do so, open the Fiscal Position you want to modify and click on **Detect Automatically**. You can
+configure a few conditions:
+
+- **VAT Required**: The VAT number *must* be indicated in the customer's contact form.
+- **Country Group** / **Country**: The Fiscal Position is applied to these countries.
+
+.. image:: media/fiscal-positions-automatic.png
+ :align: center
+ :alt: Example of settings to apply a Fiscal Position automatically
+
+.. note::
+ Taxes on **eCommerce orders** are automatically updated once the visitor has logged in or filled
+ out their billing details.
+
+.. important::
+ The Fiscal Positions' **sequence** - the order in which they are arranged - defines which
+ Fiscal Position to apply if the conditions are met in multiple Fiscal Positions.
+
+ For example, if the first Fiscal Position targets *country A*, and the second Fiscal Position
+ targets a *Country Group* that also comprises *country A*, only the first Fiscal Position will be
+ applied to customers from *country A*.
+
+.. _fiscal_positions/application:
+
+Application
+===========
+
+.. _fiscal_positions/partner:
+
+Assign a Fiscal Position to a partner
+--------------------------------------
+
+You can manually define which Fiscal Position must be used by default for a specific partner.
+
+To do so, open the partner's contact form, go to the **Sales & Purchase** tab, edit the **Fiscal
+Position** field, and click on *Save*.
+
+.. image:: media/fiscal-positions-partner.png
+ :align: center
+ :alt: Selection of a Fiscal Position on a Sales Order / Invoice / Bill in Odoo Accounting
+
+.. _fiscal_positions/transaction:
+
+Choose Fiscal Positions manually on Sales Orders, Invoices, and Bills
+---------------------------------------------------------------------
+
+To manually select which Fiscal Position to use for a new Sales Order, Invoice, or Bill, go to the
+**Other Info** tab and select the right **Fiscal Position** *before* adding product lines.
+
+.. image:: media/fiscal-positions-transaction.png
+ :align: center
+ :alt: Selection of a Fiscal Position on a Sales Order / Invoice / Bill in Odoo Accounting
+
+.. seealso::
+
+ * :doc:`create`
+ * :doc:`taxcloud`
+ * :doc:`B2B_B2C`
\ No newline at end of file
diff --git a/accounting/fiscality/taxes/media/application01.png b/accounting/fiscality/taxes/media/application01.png
deleted file mode 100644
index 793331820..000000000
Binary files a/accounting/fiscality/taxes/media/application01.png and /dev/null differ
diff --git a/accounting/fiscality/taxes/media/application02.png b/accounting/fiscality/taxes/media/application02.png
deleted file mode 100644
index 302c015f8..000000000
Binary files a/accounting/fiscality/taxes/media/application02.png and /dev/null differ
diff --git a/accounting/fiscality/taxes/media/application03.png b/accounting/fiscality/taxes/media/application03.png
deleted file mode 100644
index 84fe5b89c..000000000
Binary files a/accounting/fiscality/taxes/media/application03.png and /dev/null differ
diff --git a/accounting/fiscality/taxes/media/application04.png b/accounting/fiscality/taxes/media/application04.png
deleted file mode 100644
index cef369bed..000000000
Binary files a/accounting/fiscality/taxes/media/application04.png and /dev/null differ
diff --git a/accounting/fiscality/taxes/media/application05.png b/accounting/fiscality/taxes/media/application05.png
deleted file mode 100644
index ace4923f5..000000000
Binary files a/accounting/fiscality/taxes/media/application05.png and /dev/null differ
diff --git a/accounting/fiscality/taxes/media/create04.png b/accounting/fiscality/taxes/media/create04.png
deleted file mode 100644
index 481af7266..000000000
Binary files a/accounting/fiscality/taxes/media/create04.png and /dev/null differ
diff --git a/accounting/fiscality/taxes/media/default-taxes-configuration.png b/accounting/fiscality/taxes/media/default-taxes-configuration.png
new file mode 100644
index 000000000..bfb5076be
Binary files /dev/null and b/accounting/fiscality/taxes/media/default-taxes-configuration.png differ
diff --git a/accounting/fiscality/taxes/media/default-taxes-invoice-line.png b/accounting/fiscality/taxes/media/default-taxes-invoice-line.png
new file mode 100644
index 000000000..904f085aa
Binary files /dev/null and b/accounting/fiscality/taxes/media/default-taxes-invoice-line.png differ
diff --git a/accounting/fiscality/taxes/media/fiscal-positions-automatic.png b/accounting/fiscality/taxes/media/fiscal-positions-automatic.png
new file mode 100644
index 000000000..95ae975b9
Binary files /dev/null and b/accounting/fiscality/taxes/media/fiscal-positions-automatic.png differ
diff --git a/accounting/fiscality/taxes/media/fiscal-positions-intra-community.png b/accounting/fiscality/taxes/media/fiscal-positions-intra-community.png
new file mode 100644
index 000000000..c0ccf0ee5
Binary files /dev/null and b/accounting/fiscality/taxes/media/fiscal-positions-intra-community.png differ
diff --git a/accounting/fiscality/taxes/media/fiscal-positions-partner.png b/accounting/fiscality/taxes/media/fiscal-positions-partner.png
new file mode 100644
index 000000000..a4db2967d
Binary files /dev/null and b/accounting/fiscality/taxes/media/fiscal-positions-partner.png differ
diff --git a/accounting/fiscality/taxes/media/fiscal-positions-transaction.png b/accounting/fiscality/taxes/media/fiscal-positions-transaction.png
new file mode 100644
index 000000000..1668f5014
Binary files /dev/null and b/accounting/fiscality/taxes/media/fiscal-positions-transaction.png differ
diff --git a/accounting/fiscality/taxes/media/vat-validation-configuration.png b/accounting/fiscality/taxes/media/vat-validation-configuration.png
new file mode 100644
index 000000000..dec8da403
Binary files /dev/null and b/accounting/fiscality/taxes/media/vat-validation-configuration.png differ
diff --git a/accounting/fiscality/taxes/media/vat-validation-contact-form.png b/accounting/fiscality/taxes/media/vat-validation-contact-form.png
new file mode 100644
index 000000000..ac9c09aaf
Binary files /dev/null and b/accounting/fiscality/taxes/media/vat-validation-contact-form.png differ
diff --git a/accounting/fiscality/taxes/media/vat-validation-error.png b/accounting/fiscality/taxes/media/vat-validation-error.png
new file mode 100644
index 000000000..b5514a9e3
Binary files /dev/null and b/accounting/fiscality/taxes/media/vat-validation-error.png differ
diff --git a/accounting/fiscality/taxes/taxcloud.rst b/accounting/fiscality/taxes/taxcloud.rst
index 8c2055cc5..914c0f0bf 100644
--- a/accounting/fiscality/taxes/taxcloud.rst
+++ b/accounting/fiscality/taxes/taxcloud.rst
@@ -47,7 +47,7 @@ How it works
============
Salestax is calculated in Odoo based on fiscal positions
-(see :doc:`application`).
+(see :doc:`fiscal_positions`).
A Fiscal Position for the United States is created when installing *TaxCloud*.
Everything works out-of-the-box.
@@ -90,4 +90,4 @@ price is the equivalent of a 7% tax on half the price), but this might be surpri
point of view.
.. seealso::
- - :doc:`application`
+ - :doc:`fiscal_positions`
diff --git a/accounting/fiscality/taxes/vat_validation.rst b/accounting/fiscality/taxes/vat_validation.rst
new file mode 100644
index 000000000..bfed0c4d9
--- /dev/null
+++ b/accounting/fiscality/taxes/vat_validation.rst
@@ -0,0 +1,43 @@
+===========================
+VIES VAT numbers validation
+===========================
+
+**VAT Information Exchange System** - abbreviated **VIES** - is a tool provided by the European
+Commission that allows you to check the validity of VAT numbers of companies registered in the
+European Union.
+
+Odoo provides a feature to **Verify VAT Numbers** when you save a contact. This helps you make sure
+that your contacts provided you with a valid VAT number without leaving Odoo interface.
+
+Configuration
+=============
+
+To enable this feature, go to :menuselection:`Accounting --> Configuration --> Settings --> Taxes`,
+enable the **Verify VAT Numbers** feature, and click on *Save*.
+
+.. image:: media/vat-validation-configuration.png
+ :align: center
+ :alt: Enable "Verify VAT Numbers" in Odoo Accounting
+
+VAT Number validation
+=====================
+
+Whenever you create or modify a contact, make sure to fill out the **Country** and **VAT** fields.
+
+.. image:: media/vat-validation-contact-form.png
+ :align: center
+ :alt: Fill out the contact form with the country and VAT number before clicking on *Save*
+
+When you click on *Save*, Odoo runs a VIES VAT number check, and displays an error message if the
+VAT number is invalid.
+
+.. image:: media/vat-validation-error.png
+ :align: center
+ :alt: Odoo displays an error message instead of saving when the VAT number is invalid
+
+.. important::
+ This tool checks the VAT number's validity but does not check the other fields' validity.
+
+.. seealso::
+
+ - `European Commission: VIES search engine `__
\ No newline at end of file
diff --git a/accounting/receivables/customer_payments.rst b/accounting/receivables/customer_payments.rst
index 5fcd33cc4..3a42d664f 100644
--- a/accounting/receivables/customer_payments.rst
+++ b/accounting/receivables/customer_payments.rst
@@ -6,7 +6,7 @@ Customer Payments
:titlesonly:
customer_payments/recording
- customer_payments/credit_cards
+ customer_payments/online_payment
customer_payments/check
customer_payments/batch_sdd
customer_payments/followup
diff --git a/accounting/receivables/customer_payments/credit_cards.rst b/accounting/receivables/customer_payments/credit_cards.rst
deleted file mode 100644
index 4ab6cabb4..000000000
--- a/accounting/receivables/customer_payments/credit_cards.rst
+++ /dev/null
@@ -1,167 +0,0 @@
-=========================================
-Register credit card payments on invoices
-=========================================
-
-There are two ways to handle payments received by credit cards. Odoo
-support both approaches so that you can use the one that better fits
-your habits.
-
-1. **Undeposited Funds** (mostly used in european countries): once you
- receive the credit card payment authorization, you record a
- payment by credit card on the invoice (using a Credit card
- journal and posted on the Undeposited Fund account). Then, once
- the credit card payments arrives in your bank account, move money
- from Undeposited Funds to your bank account.
-
-2. **One journal entry only** (mostly used in the U.S.): once your
- receive the credit card payment, you record a payment on your
- bank, paid by credit card, without going through the Undeposited
- Funds. Once you process your bank statement, you do the matching
- with your bank feed and the credit card payment, without creating
- a dedicated journal entry .
-
-We recommend the first approach as it is more accurate (your bank
-account balance is accurate, taking into accounts credit cards that have
-not been cashed yet). Both approaches require the same effort.
-
-If you use eCommerce and an automated payment gateway, you will only
-need to take care of the bank reconciliation part as paid invoice will
-be automatically recorded in the right journal. You will use the second
-approach.
-
-Even if the first method is cleaner, Odoo support the second approach
-because some accountants are used to it (*QuickBooks* and *Peachtree*
-users).
-
-Option 1: Undeposited Funds
-===========================
-
-Configuration
--------------
-
-On the Accounting module, go to :menuselection:`Configuration --> Journals --> Create`
-
-Create a Journal called 'Credit card payments' with the following data:
-
-- **Journal Name**: Credit card
-- **Default debit account**: Credit cards
-- **Default credit account**: Credit cards
-
-The account type should be "Credit Card". Once it's done, don't forget to set the "Credit cards" account as "Allow
-Reconciliation".
-
-.. image:: ./media/credit01.png
- :align: center
-
-From credit card payments to bank statements
---------------------------------------------
-
-The first way to handle credit cards is to create a credit card journal.
-Thus, credit cards become a payment method in itself and you will record
-two transactions.
-
-Once you receive a customer credit card payment, go to the related
-invoice and click on Register Payment. Fill in the information about the
-payment:
-
-- **Payment method**: Credit card
-
-- **Memo**: write the invoice reference
-
-.. image:: ./media/credit02.png
- :align: center
-
-This operation will produce the following journal entry:
-
-+----------------------+-------------------+----------+----------+
-| Account | Statement Match | Debit | Credit |
-+======================+===================+==========+==========+
-| Account Receivable | | | 100.00 |
-+----------------------+-------------------+----------+----------+
-| Credit Cards | | 100.00 | |
-+----------------------+-------------------+----------+----------+
-
-The invoice is marked as paid as soon as you record the credit card
-payment.
-
-Then, once you get the bank statements, you will match this statement
-with the credit card that is in the 'Credit card' account.
-
-+----------------+-------------------+----------+----------+
-| Account | Statement Match | Debit | Credit |
-+================+===================+==========+==========+
-| Credit cards | X | | 100.00 |
-+----------------+-------------------+----------+----------+
-| Bank | | 100.00 | |
-+----------------+-------------------+----------+----------+
-
-If you use this approach to manage credit cards payments, you get the
-list of credit cards payments that have not been cashed in the "Credit
-card" account (accessible, for example, from the general ledger).
-
-.. note::
- Both methods will produce the same data in your accounting at the end of the
- process. But, if you have credit cards that have not been cashed, this one
- is cleaner because those credit cards have not been reported yet on your bank
- account.
-
-Option 2: One journal entry only
-================================
-
-Configuration
--------------
-
-There is nothing to configure if you plan to manage your credit cards
-using this method.
-
-From credit card payments to bank statements
---------------------------------------------
-
-Once you receive a customer credit card payment, go to the related
-invoice and click on Register Payment. Fill in the information about the
-payment:
-
-- **Payment method**: the bank that will be used for the deposit
-
-- **Memo**: write the credit card transaction number
-
-.. image:: ./media/credit03.png
- :align: center
-
-The invoice is marked as paid as soon as the credit card payment has
-been recorded. Once you receive the bank statements, you will do the
-matching with the statement and this actual payment (technically: point
-this payment and relate it to the statement line).
-
-With this approach, you will get the following journal entry in your
-books:
-
-+----------------------+-------------------+----------+----------+
-| Account | Statement Match | Debit | Credit |
-+======================+===================+==========+==========+
-| Account Receivable | X | | 100.00 |
-+----------------------+-------------------+----------+----------+
-| Bank | | 100.00 | |
-+----------------------+-------------------+----------+----------+
-
-.. tip::
- You may also record the payment directly without going on the customer
- invoice, using the top menu :menuselection:`Sales --> Payments`. This method may be more
- convenient if you have a lot of credit cards to record in a batch but you
- will have to reconcile entries afterwards (matching payments with invoices).
-
-If you use this approach to manage received credit cards, you can use
-the report "Bank Reconciliation Report" to verify which credit cards
-have been received or paid by the bank (this report is available from
-the "More" option from the Accounting dashboard on the related bank
-account).
-
-.. image:: ./media/credit04.png
- :align: center
-
-.. seealso::
-
- * :doc:`recording`
- * :doc:`../../bank/feeds/paypal`
- * :doc:`check`
- * :doc:`followup`
diff --git a/accounting/receivables/customer_payments/media/credit01.png b/accounting/receivables/customer_payments/media/credit01.png
deleted file mode 100644
index d4abff71b..000000000
Binary files a/accounting/receivables/customer_payments/media/credit01.png and /dev/null differ
diff --git a/accounting/receivables/customer_payments/media/credit02.png b/accounting/receivables/customer_payments/media/credit02.png
deleted file mode 100644
index 0bdf526de..000000000
Binary files a/accounting/receivables/customer_payments/media/credit02.png and /dev/null differ
diff --git a/accounting/receivables/customer_payments/media/credit03.png b/accounting/receivables/customer_payments/media/credit03.png
deleted file mode 100644
index 622ed2838..000000000
Binary files a/accounting/receivables/customer_payments/media/credit03.png and /dev/null differ
diff --git a/accounting/receivables/customer_payments/media/credit04.png b/accounting/receivables/customer_payments/media/credit04.png
deleted file mode 100644
index 1b862a71a..000000000
Binary files a/accounting/receivables/customer_payments/media/credit04.png and /dev/null differ
diff --git a/accounting/receivables/customer_payments/media/online-payment-acquirers.png b/accounting/receivables/customer_payments/media/online-payment-acquirers.png
new file mode 100644
index 000000000..200a4e164
Binary files /dev/null and b/accounting/receivables/customer_payments/media/online-payment-acquirers.png differ
diff --git a/accounting/receivables/customer_payments/media/online-payment-pay-now.png b/accounting/receivables/customer_payments/media/online-payment-pay-now.png
new file mode 100644
index 000000000..16bc53afb
Binary files /dev/null and b/accounting/receivables/customer_payments/media/online-payment-pay-now.png differ
diff --git a/accounting/receivables/customer_payments/media/online-payment-view-invoice.png b/accounting/receivables/customer_payments/media/online-payment-view-invoice.png
new file mode 100644
index 000000000..e11d7aa5e
Binary files /dev/null and b/accounting/receivables/customer_payments/media/online-payment-view-invoice.png differ
diff --git a/accounting/receivables/customer_payments/online_payment.rst b/accounting/receivables/customer_payments/online_payment.rst
new file mode 100644
index 000000000..e3285beee
--- /dev/null
+++ b/accounting/receivables/customer_payments/online_payment.rst
@@ -0,0 +1,45 @@
+======================
+Invoice Online Payment
+======================
+
+To make it more convenient for your customers to pay the invoices you issue, you can activate the
+**Invoice Online Payment** feature, which adds a *Pay Now* button on their **Customer Portal**. This
+allows your customers to see their invoices online and pay directly with their favorite payment
+method, making the payment process much easier.
+
+.. image:: media/online-payment-acquirers.png
+ :align: center
+ :alt: Payment acquirer choice after having clicked on "Pay Now"
+
+Configuration
+=============
+
+Make sure your :ref:`Payment Acquirers are correctly configured `.
+
+.. note::
+ By default, ":doc:`Wire Transfer <../../../general/payment_acquirers/wire_transfer>`" is the only
+ Payment Acquirer activated, but you still have to fill out the payment details.
+
+To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration -->
+Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*.
+
+Customer Portal
+===============
+
+After issuing the invoice, click on *Send & Print* and send the invoice by email to the customer.
+They will receive an email with a link that redirects them to the invoice on their **Customer
+Portal**.
+
+.. image:: media/online-payment-view-invoice.png
+ :align: center
+ :alt: Email with a link to view the invoice online on the Customer Portal.
+
+They can choose which Payment Acquirer to use by clicking on *Pay Now*.
+
+.. image:: media/online-payment-pay-now.png
+ :align: center
+ :alt: "Pay now" button on an invoice in the Customer Portal.
+
+.. seealso::
+
+ - :doc:`../../../general/payment_acquirers/payment_acquirers`
diff --git a/accounting/receivables/customer_payments/recording.rst b/accounting/receivables/customer_payments/recording.rst
index 5a45b3b5b..b8b3c0be9 100644
--- a/accounting/receivables/customer_payments/recording.rst
+++ b/accounting/receivables/customer_payments/recording.rst
@@ -121,7 +121,7 @@ payments.
.. seealso::
- - :doc:`credit_cards`
+ - :doc:`online_payment`
- :doc:`../../bank/feeds/paypal`
- :doc:`check`
- :doc:`followup`
diff --git a/applications.rst b/applications.rst
index 2c3a86ba6..cfc573f63 100644
--- a/applications.rst
+++ b/applications.rst
@@ -77,4 +77,5 @@ Applications
events
survey
expense/expense
- mobile/firebase
\ No newline at end of file
+ studio
+ mobile/firebase
diff --git a/conf.py b/conf.py
index 928195b1c..eee8efbfb 100644
--- a/conf.py
+++ b/conf.py
@@ -231,7 +231,7 @@ latex_documents = [
('legal/terms/i18n/partnership_tex_fr', 'odoo_partnership_agreement_fr.tex', 'Odoo Partnership Agreement (FR)', '', 'howto'),
('legal/terms/i18n/terms_of_sale_fr', 'terms_of_sale_fr.tex', u'Conditions Générales de Vente Odoo', '', 'howto'),
- #('legal/terms/i18n/enterprise_tex_nl', 'odoo_enterprise_agreement_nl.tex', 'Odoo Enterprise Subscription Agreement (NL)', '', 'howto'),
+ ('legal/terms/i18n/enterprise_tex_nl', 'odoo_enterprise_agreement_nl.tex', 'Odoo Enterprise Subscription Agreement (NL)', '', 'howto'),
#('legal/terms/i18n/partnership_tex_nl', 'odoo_partnership_agreement_nl.tex', 'Odoo Partnership Agreement (NL)', '', 'howto'),
('legal/terms/i18n/enterprise_tex_de', 'odoo_enterprise_agreement_de.tex', 'Odoo Enterprise Subscription Agreement (DE)', '', 'howto'),
@@ -322,6 +322,7 @@ LANGUAGES = {
def setup(app):
app.add_stylesheet('accounting.css')
+ app.add_stylesheet('legal.css')
app.add_javascript('prefixfree.min.js')
app.add_javascript('atom.js')
app.add_javascript('immutable.js')
diff --git a/crm/acquire_leads/lead_mining.rst b/crm/acquire_leads/lead_mining.rst
index 28a053bb9..49f833812 100644
--- a/crm/acquire_leads/lead_mining.rst
+++ b/crm/acquire_leads/lead_mining.rst
@@ -52,7 +52,7 @@ This is an In-App Purchase feature, each generated lead will cost you one credit
If you choose to get contact information each contact will also cost us one additional credit.
Here is the pricing for this `feature `__,
To buy credits you can either go to :menuselection:`CRM --> Configuration --> Settings --> Buy
-Credits`; or go to `Settings --> In-App Purchases --> View my Services`.
+Credits`; or go to :menuselection: `Settings --> In-App Purchases --> View my Services`.
.. image:: media/LM6.png
:align: center
diff --git a/crm/optimize.rst b/crm/optimize.rst
index b1f3848da..e76f760d1 100644
--- a/crm/optimize.rst
+++ b/crm/optimize.rst
@@ -9,3 +9,4 @@ Optimize your Day-to-Day work
optimize/onsip
optimize/setup
optimize/partner_autocomplete
+ optimize/gamification
diff --git a/crm/optimize/gamification.rst b/crm/optimize/gamification.rst
new file mode 100644
index 000000000..245f11bc6
--- /dev/null
+++ b/crm/optimize/gamification.rst
@@ -0,0 +1,86 @@
+==========================================
+How to motivate and reward my salespeople?
+==========================================
+
+Challenging your employees to reach specific targets with goals and rewards is an excellent way to
+reinforce good habits and improve your salespeople productivity. The Gamification module gives you
+simple and creative ways to motivate and evaluate your employees with real-time recognition and
+badges inspired by game mechanics.
+
+Configuration
+=============
+
+Install the *Gamification* module, or the *CRM gamification* one, which adds some useful data
+(goals and challenges) that can be used on *CRM/Sale*.
+
+.. image:: media/gamification_module_install.png
+ :align: center
+ :alt: View of the gamification module being installed in Odoo
+
+Create a challenge
+==================
+
+Now, create your first challenge by going to :menuselection:`Settings --> Gamification Tools
+--> Challenges`.
+
+.. note::
+ As the gamification tool is a one-time technical setup, you need to activate the technical
+ features in order to access the configuration. To do so, go to *Settings* and *Activate the
+ developer mode*.
+
+.. image:: media/gamification_tools_menu.png
+ :align: center
+ :alt: View if the gamification tools menu in Odoo Settings
+
+A challenge is a mission that you send to your sales team. It can include one or several goals, set
+for a specific period of time. Configure your challenge as follows:
+
+#. Assign the salespeople to be challenged;
+#. Assign a responsible;
+#. Set up the periodicity along with the start and the end date;
+#. Select your goals;
+#. Set up your rewards (badges).
+
+.. note::
+ Badges are granted when a challenge is finished. This is either at the end of a running period
+ (eg: end of the month for a monthly challenge), at the end date of a challenge (if no periodicity
+ is set), or when the challenge is manually closed.
+
+In the example below, 2 employees are being challenged with a *Monthly Sales Target*. The challenge
+is based on 2 goals: the total amount invoiced and number of new leads generated. At the end of the
+month, the winner will be granted with a badge.
+
+.. image:: media/challenges.png
+ :align: center
+ :alt: View of the challenge form and a challenge being created for Odoo Sales
+
+Set up goals
+------------
+
+| The users can be evaluated using goals and numerical objectives to reach.
+| **Goals** are assigned through *challenges* that evaluate (see image above) and compare members of
+ a team throughout time.
+| You can create a new goal on the fly from a *Challenge* by clicking on *Add new item*, under
+ *Goals*. Select the business object according to your company's needs. Examples: number of new
+ leads, time to qualify a lead, total amount invoiced in a specific week, month or any other time
+ frame based on your management preferences, etc.
+
+.. image:: media/goal_definitions.png
+ :align: center
+ :alt: View of the goal definition form and a goal definition being created for Odoo Sales
+
+.. note::
+ Goals may include your database setup as well (e.g. set your company data and a timezone,
+ create new users, etc.).
+
+Set up rewards
+--------------
+
+For non-numerical achievements, **Badges** can be granted to users. From a simple thank you to an
+exceptional achievement, a badge is an easy way to express gratitude to a user for their good work.
+To create and grant badges to your employees based on their performance, go to
+:menuselection:`Settings --> Gamification Tools --> Badges`.
+
+.. image:: media/badges.png
+ :align: center
+ :alt: View of the badges page in Odoo
diff --git a/crm/optimize/media/badges.png b/crm/optimize/media/badges.png
new file mode 100644
index 000000000..e22aa786b
Binary files /dev/null and b/crm/optimize/media/badges.png differ
diff --git a/crm/optimize/media/challenges.png b/crm/optimize/media/challenges.png
new file mode 100644
index 000000000..e3bd84751
Binary files /dev/null and b/crm/optimize/media/challenges.png differ
diff --git a/crm/optimize/media/gamification_module_install.png b/crm/optimize/media/gamification_module_install.png
new file mode 100644
index 000000000..d1a785ffc
Binary files /dev/null and b/crm/optimize/media/gamification_module_install.png differ
diff --git a/crm/optimize/media/gamification_tools_menu.png b/crm/optimize/media/gamification_tools_menu.png
new file mode 100644
index 000000000..d578d70e9
Binary files /dev/null and b/crm/optimize/media/gamification_tools_menu.png differ
diff --git a/crm/optimize/media/goal_definitions.png b/crm/optimize/media/goal_definitions.png
new file mode 100644
index 000000000..ab008b13e
Binary files /dev/null and b/crm/optimize/media/goal_definitions.png differ
diff --git a/crm/pipeline.rst b/crm/pipeline.rst
index 5e99465bb..feabdf4eb 100644
--- a/crm/pipeline.rst
+++ b/crm/pipeline.rst
@@ -5,6 +5,6 @@ Organize the pipeline
.. toctree::
:titlesonly:
- ../discuss/plan_activities
+ ../discuss/overview/plan_activities
pipeline/lost_opportunities
pipeline/multi_sales_team
diff --git a/discuss.rst b/discuss.rst
index e977c732d..f98f7d809 100644
--- a/discuss.rst
+++ b/discuss.rst
@@ -8,11 +8,4 @@ Discuss
:titlesonly:
discuss/overview
- discuss/tracking
- discuss/monitoring
- discuss/mentions
- discuss/team_communication
- discuss/plan_activities
- discuss/mail_twitter
- discuss/email_servers
discuss/advanced
\ No newline at end of file
diff --git a/discuss/advanced.rst b/discuss/advanced.rst
index ad2b0b857..dec501260 100644
--- a/discuss/advanced.rst
+++ b/discuss/advanced.rst
@@ -6,4 +6,5 @@ Advanced
:titlesonly:
:glob:
- advanced/emailtemplate
\ No newline at end of file
+ advanced/email_servers
+ advanced/email_template
diff --git a/discuss/email_servers.rst b/discuss/advanced/email_servers.rst
similarity index 97%
rename from discuss/email_servers.rst
rename to discuss/advanced/email_servers.rst
index d7e6cc711..472484dc0 100644
--- a/discuss/email_servers.rst
+++ b/discuss/advanced/email_servers.rst
@@ -1,5 +1,5 @@
============================================================
-How to use my mail server to send and receive emails in Odoo
+How to Use my Mail Server to Send and Receive Emails in Odoo
============================================================
If you are a user of Odoo Online or Odoo.sh...
@@ -105,6 +105,10 @@ you should add a DNS "odoo._domainkey" CNAME record to
For example, for "foo.com" they should have a record "odoo._domainkey.foo.com"
that is a CNAME with the value "odoo._domainkey.odoo.com".
+Restriction
+-----------
+Please note that the port 25 is blocked for security reasons. Try using 587, 465 or 2525.
+
How to manage inbound messages
==============================
diff --git a/discuss/advanced/emailtemplate.rst b/discuss/advanced/email_template.rst
similarity index 100%
rename from discuss/advanced/emailtemplate.rst
rename to discuss/advanced/email_template.rst
diff --git a/discuss/media/alias_domain.png b/discuss/advanced/media/alias_domain.png
similarity index 100%
rename from discuss/media/alias_domain.png
rename to discuss/advanced/media/alias_domain.png
diff --git a/discuss/media/incoming_server.png b/discuss/advanced/media/incoming_server.png
similarity index 100%
rename from discuss/media/incoming_server.png
rename to discuss/advanced/media/incoming_server.png
diff --git a/discuss/media/outgoing_server.png b/discuss/advanced/media/outgoing_server.png
similarity index 100%
rename from discuss/media/outgoing_server.png
rename to discuss/advanced/media/outgoing_server.png
diff --git a/discuss/media/system_parameters.png b/discuss/advanced/media/system_parameters.png
similarity index 100%
rename from discuss/media/system_parameters.png
rename to discuss/advanced/media/system_parameters.png
diff --git a/discuss/mail_twitter.rst b/discuss/mail_twitter.rst
deleted file mode 100644
index b736326bf..000000000
--- a/discuss/mail_twitter.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-====================================
-How to follow Twitter feed from Odoo
-====================================
-
-.. image:: media/twitter_user-image.png
- :align: center
-
-You can follow specific hashtags on Twitter and see the tweets within the
-Odoo Discuss channels of your choice. The tweets are retrieved periodically from Twitter.
-An authenticated user can retweet the messages.
-
-Setting up the App on Twitter's side
-====================================
-
-Twitter uses an "App" on its side which is opens a gate to which Odoo asks for
-tweets, and through which a user can retweet.
-To set up this app, go to http://apps.twitter.com/app/new and put in the values:
-
-- Name: this is the name of the application on Twitter
-
-- Website: this is the external url of your Odoo database, with "/web" added.
- For example, if your Odoo instance is hosted at "http://www.example.com", you
- should put "http://www.example.com/web" in this field.
-
-- Callback URL: this is the address on which Twitter will respond. Following the
- previous example you should write "http://www.example.com/web/twitter/callback".
-
-Do not forget to accept the terms **Developer agreement** of use and click on
-**Create your Twitter application** at the bottom of the page.
-
-
-Getting the API key and secret
-==============================
-
-When on the App dashboard, switch to the **Keys and Access Tokens** tab.
-
-.. image:: media/api_key.png
- :align: center
-
-And copy those values in Odoo in :menuselection:`Settings--> General Settings--> Twitter discuss integration`
-and click on **Save** to save the settings.
\ No newline at end of file
diff --git a/discuss/media/api_key.png b/discuss/media/api_key.png
deleted file mode 100644
index cc0cc7bf9..000000000
Binary files a/discuss/media/api_key.png and /dev/null differ
diff --git a/discuss/media/discuss01.png b/discuss/media/discuss01.png
deleted file mode 100644
index 3166d7dab..000000000
Binary files a/discuss/media/discuss01.png and /dev/null differ
diff --git a/discuss/media/discuss02.png b/discuss/media/discuss02.png
deleted file mode 100644
index c4afca7e5..000000000
Binary files a/discuss/media/discuss02.png and /dev/null differ
diff --git a/discuss/media/discuss03.png b/discuss/media/discuss03.png
deleted file mode 100644
index 1ec3bc0dc..000000000
Binary files a/discuss/media/discuss03.png and /dev/null differ
diff --git a/discuss/media/discuss04.png b/discuss/media/discuss04.png
deleted file mode 100644
index dccda623f..000000000
Binary files a/discuss/media/discuss04.png and /dev/null differ
diff --git a/discuss/media/discuss05.png b/discuss/media/discuss05.png
deleted file mode 100644
index c2dad39af..000000000
Binary files a/discuss/media/discuss05.png and /dev/null differ
diff --git a/discuss/media/discuss06.png b/discuss/media/discuss06.png
deleted file mode 100644
index 643d6bf8a..000000000
Binary files a/discuss/media/discuss06.png and /dev/null differ
diff --git a/discuss/media/discuss07.png b/discuss/media/discuss07.png
deleted file mode 100644
index 23b637d87..000000000
Binary files a/discuss/media/discuss07.png and /dev/null differ
diff --git a/discuss/media/discuss08.png b/discuss/media/discuss08.png
deleted file mode 100644
index dd342049c..000000000
Binary files a/discuss/media/discuss08.png and /dev/null differ
diff --git a/discuss/media/discuss09.png b/discuss/media/discuss09.png
deleted file mode 100644
index 25a233516..000000000
Binary files a/discuss/media/discuss09.png and /dev/null differ
diff --git a/discuss/media/discuss10.png b/discuss/media/discuss10.png
deleted file mode 100644
index 29cd1835f..000000000
Binary files a/discuss/media/discuss10.png and /dev/null differ
diff --git a/discuss/media/inbox.png b/discuss/media/inbox.png
deleted file mode 100644
index 67ac258ba..000000000
Binary files a/discuss/media/inbox.png and /dev/null differ
diff --git a/discuss/media/plan_activities01.png b/discuss/media/plan_activities01.png
deleted file mode 100644
index f6f13245d..000000000
Binary files a/discuss/media/plan_activities01.png and /dev/null differ
diff --git a/discuss/media/plan_activities02.png b/discuss/media/plan_activities02.png
deleted file mode 100644
index b711a6b4d..000000000
Binary files a/discuss/media/plan_activities02.png and /dev/null differ
diff --git a/discuss/media/plan_activities03.png b/discuss/media/plan_activities03.png
deleted file mode 100644
index 2f4af768b..000000000
Binary files a/discuss/media/plan_activities03.png and /dev/null differ
diff --git a/discuss/media/plan_activities04.png b/discuss/media/plan_activities04.png
deleted file mode 100644
index 6e4832889..000000000
Binary files a/discuss/media/plan_activities04.png and /dev/null differ
diff --git a/discuss/media/sales_channel_follow.png b/discuss/media/sales_channel_follow.png
deleted file mode 100644
index ec482d2e4..000000000
Binary files a/discuss/media/sales_channel_follow.png and /dev/null differ
diff --git a/discuss/media/twitter_user-image.png b/discuss/media/twitter_user-image.png
deleted file mode 100644
index 77caeb49e..000000000
Binary files a/discuss/media/twitter_user-image.png and /dev/null differ
diff --git a/discuss/mentions.rst b/discuss/mentions.rst
deleted file mode 100644
index 2b2606f07..000000000
--- a/discuss/mentions.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-===================================================
-How to grab attention of other users in my messages
-===================================================
-
-You can **mention** a user in a channel or chatter by typing
-**@user-name**. Mentioning a user in the chatter will set them as a
-follower of the item (if they are not already) and send a message to
-their inbox. The item containing the mention will also be bolded in the
-list view. Mentioning a user in a channel will send a message to their
-inbox. You cannot mention a user in a channel who is not subscribed to
-the channel. Typing **#channel-name** will provide a link to the
-mentioned channel in either a chatter or another channel.
-
-Direct messaging a user
-=======================
-
-**Direct messages** are private messages viewable only by the sender
-and recipient. You can send direct messages to other users from
-within the Discuss module by creating a new conversation or
-selecting an existing one from the sidebar. Direct messages can be
-sent from anywhere in Odoo using the speech bubble icon in the top
-bar. The online status of other users is displayed to the left of
-their name. A **green dot** indicates that a user is Online, an
-**orange dot** that they are Idle, and a **grey dot** that they are
-offline.
-
-Desktop notifications from Discuss
-==================================
-
-You can choose to see **desktop notifications** when you receive a
-new direct message. The notification shows you the sender and a
-brief preview of the message contents. These can be configured or
-disabled by clicking on the gear icon in the corner of the
-notification..
-
-.. image:: media/discuss06.png
- :align: center
-
diff --git a/discuss/monitoring.rst b/discuss/monitoring.rst
deleted file mode 100644
index de37047a4..000000000
--- a/discuss/monitoring.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-====================================================
-How to be responsive at work thanks to my Odoo inbox
-====================================================
-
-Use the **Inbox** in Discuss app to monitor updates and progress
-on everything you do in Odoo.
-Notifications and messages from everything you follow or in
-which you are mentioned appear in your inbox.
-
-.. image:: media/discuss04.png
- :align: center
-
-You can keep an eye on your **Inbox** from any screen.
-
-.. image:: media/inbox.png
- :align: center
-
-Marking an item with a check marks the message as **read** and removes it
-from your inbox. If you would like to save an item for future reference
-or action, mark it with a star to add it to the **Starred** box. You can
-star any message or notification in Discuss or any of the item-specific
-chatters throughout Odoo to keep tabs on it here.
-
-.. image:: media/discuss05.png
- :align: center
-
-
diff --git a/discuss/overview.rst b/discuss/overview.rst
index 92ad91ded..36b841482 100644
--- a/discuss/overview.rst
+++ b/discuss/overview.rst
@@ -1,15 +1,11 @@
-====================
-Why use Odoo Discuss
-====================
+========
+Overview
+========
-Odoo Discuss is an easy to use messaging app for teams that brings all
-your organization's communication into one place and seamlessly
-integrates with the Odoo platform. Discuss lets you send and receive
-messages from wherever you are in Odoo as well as manage your messages
-and notifications easily from within the app. Discuss allows you to
-create **channels** for team chats, conversations about projects,
-meeting coordination, and more in one simple and searchable
-interface.
+.. toctree::
+ :titlesonly:
+
+ overview/get_started
+ overview/team_communication
+ overview/plan_activities
-.. image:: media/discuss01.png
- :align: center
diff --git a/discuss/overview/get_started.rst b/discuss/overview/get_started.rst
new file mode 100644
index 000000000..c11174c7c
--- /dev/null
+++ b/discuss/overview/get_started.rst
@@ -0,0 +1,99 @@
+========================
+Get Started with Discuss
+========================
+
+Discuss allows you to bring all of your company’s communication together through messages, notes,
+and chat. Share information, projects, files, prioritize tasks, and stay connected with colleagues
+and partners throughout applications. Forge better relationships, increase productivity and
+transparency by promoting a convenient way of communicating.
+
+Choose your notifications preference
+====================================
+
+Access your *Preferences* and choose how you would like your
+:doc:`Chatter <../../project/tasks/collaborate>` notifications to be handled.
+
+.. image:: media/change_preferences.png
+ :align: center
+ :alt: View of the preferences page for Odoo Discuss
+
+| By default, the field is set as *Handle by Emails* making messages, notes, and notifications where
+ you were mentioned or that you follow, to be sent through email. By choosing *Handle in Odoo*,
+ they are shown in the *Inbox*.
+| Messages can then be *Marked as Todo*, *Replied*, or *Marked as Read*.
+
+.. image:: media/inbox_actions.png
+ :align: center
+ :alt: View of an inbox message and its action options in Odoo Discuss
+
+The messages tagged as *Mark as Todo* are also shown in *Starred*, while the ones *Marked as Read*
+are moved to *History*.
+
+.. image:: media/starred_messages.png
+ :align: center
+ :alt: View of messages marked as todo in Odoo Discuss
+
+Start Chatting
+==============
+
+The first time you log in to your account, OdooBot sends you a message asking for permission to
+receive desktop notifications to chats. If accepted, you receive push notifications to the messages
+sent to you despite of where you are in Odoo.
+
+.. image:: media/odoobot_push.png
+ :align: center
+ :alt: View of the messages under the messaging menu emphasizing the request for push
+ notifications for Odoo Discuss
+
+.. tip::
+ To stop receiving desktop notifications, reset the notifications settings of your browser.
+
+To start a chat, click on *New Message* on the *Messaging Menu*, or go to *Discuss* and send a
+*Direct Message*.
+
+.. image:: media/channels_direct_messages.png
+ :align: center
+ :height: 400
+ :alt: View of discuss’s panel emphasizing the titles channels and direct messages in Odoo Discuss
+
+You can also create :doc:`public and private channels `.
+
+Mentions in the chat and on the Chatter
+---------------------------------------
+
+| To mention a user within a chat or the :doc:`chatter <../../project/tasks/collaborate>` type
+ *@user-name*; to refer to a channel, type *#channel-name*.
+| A notification is sent to the user mentioned either to his *Inbox* or through email, depending
+ on his settings.
+
+.. image:: media/chat_windows.png
+ :align: center
+ :alt: View of a couple of chat window messages for Odoo Discuss
+
+.. tip::
+ When a user is mentioned, the search list (list of names) suggests values first based on the
+ task’s :doc:`followers <../../project/tasks/collaborate>`, and secondly on *Employees*. If the
+ record being searched does not match with either a follower or employee, the scope of the search
+ becomes all partners.
+
+Chat status
+-----------
+
+It is helpful to see what colleagues are up to and how quickly they can respond to messages by
+checking their *Status*. The status is shown on the left side of a contact’s names on Discuss’
+sidebar and on the *Messaging menu*.
+
+- Green = online
+- Orange = away
+- White = offline
+- Airplane = out of the office
+
+.. image:: media/status.png
+ :align: center
+ :height: 300
+ :alt: View of the contacts’ status for Odoo Discuss
+
+.. seealso::
+ - :doc:`../../project/tasks/collaborate`
+ - :doc:`team_communication`
+ - :doc:`../advanced/email_servers`
diff --git a/discuss/overview/media/activities_menu.png b/discuss/overview/media/activities_menu.png
new file mode 100644
index 000000000..ec44122f5
Binary files /dev/null and b/discuss/overview/media/activities_menu.png differ
diff --git a/discuss/overview/media/ban_list.png b/discuss/overview/media/ban_list.png
new file mode 100644
index 000000000..6885221cc
Binary files /dev/null and b/discuss/overview/media/ban_list.png differ
diff --git a/discuss/overview/media/change_preferences.png b/discuss/overview/media/change_preferences.png
new file mode 100644
index 000000000..6f6d2ec5c
Binary files /dev/null and b/discuss/overview/media/change_preferences.png differ
diff --git a/discuss/overview/media/channel_settings.png b/discuss/overview/media/channel_settings.png
new file mode 100644
index 000000000..a8f332767
Binary files /dev/null and b/discuss/overview/media/channel_settings.png differ
diff --git a/discuss/overview/media/channels_direct_messages.png b/discuss/overview/media/channels_direct_messages.png
new file mode 100644
index 000000000..ea1d08603
Binary files /dev/null and b/discuss/overview/media/channels_direct_messages.png differ
diff --git a/discuss/overview/media/chat_windows.png b/discuss/overview/media/chat_windows.png
new file mode 100644
index 000000000..e3b7c352a
Binary files /dev/null and b/discuss/overview/media/chat_windows.png differ
diff --git a/discuss/overview/media/create_channel.png b/discuss/overview/media/create_channel.png
new file mode 100644
index 000000000..8e44f8959
Binary files /dev/null and b/discuss/overview/media/create_channel.png differ
diff --git a/discuss/overview/media/filter.png b/discuss/overview/media/filter.png
new file mode 100644
index 000000000..cdf66951a
Binary files /dev/null and b/discuss/overview/media/filter.png differ
diff --git a/discuss/overview/media/inbox_actions.png b/discuss/overview/media/inbox_actions.png
new file mode 100644
index 000000000..30600b85d
Binary files /dev/null and b/discuss/overview/media/inbox_actions.png differ
diff --git a/discuss/overview/media/invite_channel.png b/discuss/overview/media/invite_channel.png
new file mode 100644
index 000000000..d0aba52cc
Binary files /dev/null and b/discuss/overview/media/invite_channel.png differ
diff --git a/discuss/overview/media/moderate_messages.png b/discuss/overview/media/moderate_messages.png
new file mode 100644
index 000000000..99a739873
Binary files /dev/null and b/discuss/overview/media/moderate_messages.png differ
diff --git a/discuss/overview/media/moderation_settings.png b/discuss/overview/media/moderation_settings.png
new file mode 100644
index 000000000..3365353ef
Binary files /dev/null and b/discuss/overview/media/moderation_settings.png differ
diff --git a/discuss/overview/media/odoobot_push.png b/discuss/overview/media/odoobot_push.png
new file mode 100644
index 000000000..d4bebf142
Binary files /dev/null and b/discuss/overview/media/odoobot_push.png differ
diff --git a/discuss/overview/media/pending_moderation.png b/discuss/overview/media/pending_moderation.png
new file mode 100644
index 000000000..e1754d61b
Binary files /dev/null and b/discuss/overview/media/pending_moderation.png differ
diff --git a/discuss/overview/media/quick_search.png b/discuss/overview/media/quick_search.png
new file mode 100644
index 000000000..901cf5844
Binary files /dev/null and b/discuss/overview/media/quick_search.png differ
diff --git a/discuss/overview/media/recommended_activities.png b/discuss/overview/media/recommended_activities.png
new file mode 100644
index 000000000..b1b0caea3
Binary files /dev/null and b/discuss/overview/media/recommended_activities.png differ
diff --git a/discuss/overview/media/schedule_activity.png b/discuss/overview/media/schedule_activity.png
new file mode 100644
index 000000000..3e929aaa4
Binary files /dev/null and b/discuss/overview/media/schedule_activity.png differ
diff --git a/discuss/overview/media/schedule_recommended_activity.png b/discuss/overview/media/schedule_recommended_activity.png
new file mode 100644
index 000000000..3cc955c0e
Binary files /dev/null and b/discuss/overview/media/schedule_recommended_activity.png differ
diff --git a/discuss/overview/media/settings_activities_types.png b/discuss/overview/media/settings_activities_types.png
new file mode 100644
index 000000000..aa478686a
Binary files /dev/null and b/discuss/overview/media/settings_activities_types.png differ
diff --git a/discuss/overview/media/starred_messages.png b/discuss/overview/media/starred_messages.png
new file mode 100644
index 000000000..5435f1289
Binary files /dev/null and b/discuss/overview/media/starred_messages.png differ
diff --git a/discuss/overview/media/status.png b/discuss/overview/media/status.png
new file mode 100644
index 000000000..c9e32ac0c
Binary files /dev/null and b/discuss/overview/media/status.png differ
diff --git a/discuss/overview/plan_activities.rst b/discuss/overview/plan_activities.rst
new file mode 100644
index 000000000..62a89a88d
--- /dev/null
+++ b/discuss/overview/plan_activities.rst
@@ -0,0 +1,65 @@
+====================================
+Get Organized by Planning Activities
+====================================
+
+When you plan activities you minimize the risk of uncertainties, as you provide clear directions
+for the course of your next action. In addition to that, you do not leave space for wasteful
+activities and reduce the chance of having overlapping actions between team members.
+
+Where do I see my schedule activities?
+======================================
+
+Access and manage your activities wherever you are in Odoo by the *Activities* menu.
+
+.. image:: media/activities_menu.png
+ :align: center
+ :height: 300
+ :alt: View of crm leads page emphasizing the activities menu for Odoo Discuss
+
+Plan activities
+===============
+
+Activities can be planned and managed from the :doc:`Chatter <../../project/tasks/collaborate>`
+by clicking on *Schedule activity*, or through Kanban views.
+
+.. image:: media/schedule_activity.png
+ :align: center
+ :height: 300
+ :alt: View of crm leads and the option to schedule an activity for Odoo Discuss
+
+Set your activity types
+-----------------------
+
+A number of activities types are available by default in Odoo (call, email, meeting, etc.). However,
+you can set new ones going to :menuselection:`Settings --> Activity types`.
+
+.. image:: media/settings_activities_types.png
+ :align: center
+ :height: 300
+ :alt: View of the settings page emphasizing the menu activity types for Odoo Discuss
+
+.. tip::
+ If you need to create an activity type with n available calendar available, make sure to create
+ it with an *Action to Perform* set as *Meeting*.
+
+Recommend next activities
+-------------------------
+
+Odoo helps you to plan a flow of activities by allowing you to set *Recommended Next Activities*.
+
+.. image:: media/recommended_activities.png
+ :align: center
+ :alt: View of an activity type form emphasizing the field recommended next activities for Odoo
+ Discuss
+
+Once the respective activity is completed, select *Done & Schedule Next* and next steps are
+suggested to you.
+
+.. image:: media/schedule_recommended_activity.png
+ :align: center
+ :alt: View of an activity being schedule emphasizing the recommended activities field being
+ shown for Odoo Discuss
+
+.. seealso::
+ - :doc:`get_started`
+ - :doc:`team_communication`
\ No newline at end of file
diff --git a/discuss/overview/team_communication.rst b/discuss/overview/team_communication.rst
new file mode 100644
index 000000000..9c7c4a74b
--- /dev/null
+++ b/discuss/overview/team_communication.rst
@@ -0,0 +1,116 @@
+======================================
+Efficiently Communicate Using Channels
+======================================
+
+You can use channels to organize discussions between individual teams, departments, projects, or any
+other group that requires regular communication. This way, you keep everyone in the loop updated
+with the latest developments.
+
+Public and Private channels
+===========================
+
+A *Public* channel can be seen by everyone, while a *Private* one is only visible to users invited
+to it.
+
+.. image:: media/create_channel.png
+ :align: center
+ :height: 370
+ :alt: View of discuss’s sidebar and a channel being created in Odo Discuss
+
+.. tip::
+ A public channel is best used when many employees need to access information (such as company
+ announcements), whereas a private channel could be used whenever information should be limited
+ to specific groups (such as a specific department).
+
+Configuration options
+---------------------
+
+You can configure a channel’s name, description, email alias, and privacy by clicking on the
+*Channel Settings* icon on the sidebar.
+
+.. image:: media/channel_settings.png
+ :align: center
+ :alt: View of a channel’s settings form in Odoo Discuss
+
+Privacy and Members
+~~~~~~~~~~~~~~~~~~~
+
+| Changing *Who can follow the group’s activities?* allows you to control which groups can have
+ access to the channel. Note that allowing *Everyone* to follow a private channel lets other users
+ view and join it, as they would a public one.
+| If you choose *Invited people only*, go to the *Members* tab to add your members, or, go to
+ Discuss’ main page, select the channel and click on *Invite*.
+
+.. image:: media/invite_channel.png
+ :align: center
+ :height: 380
+ :alt: View of Discuss’ sidebar emphasizing the option to invite members in Odoo Discuss
+
+For *Selected group of users*, the option *Auto Subscribe Groups* automatically add its members
+as followers. In other words, while *Authorized Groups* limits which users can access the channel,
+*Auto Subscribe Groups* automatically adds the user as a member as long as they are part of the
+group.
+
+Use a channel as a mailing list
+-------------------------------
+
+| Choosing to *Send messages by email* configures the channel to behave as a mailing list.
+| Enabling this option allows you to *Moderate this channel*, meaning that messages will need to be
+ approved before being sent.
+
+.. image:: media/pending_moderation.png
+ :align: center
+ :alt: View of a message with a pending moderation status in Odoo Discuss
+
+| Under the *Moderation* tab choose as many moderators as you need, and if you would like them to
+ receive an *Automatic notification*.
+| Mark *Send guidelines to new subscribers* to automatically send instructions to newcomers.
+
+.. image:: media/moderation_settings.png
+ :align: center
+ :alt: View of a channel’s settings form emphasizing the tab moderation in Odoo Discuss
+
+Moderators can: *Accept*, *Reject*, *Discard*, *Always Allow* or *Ban* messages.
+
+.. image:: media/moderate_messages.png
+ :align: center
+ :alt: View of a message to be moderated in Odoo Discuss
+
+.. note::
+ Members of a mailing channel receive messages through email regardless of their
+ :doc:`notification preference `.
+
+Once a channel is moderated, the menu *Ban List* allows you to add email addresses per moderated
+channel to auto-ban them from sending messages.
+
+.. image:: media/ban_list.png
+ :align: center
+ :alt: View of a channel’s setting form emphasizing the ban Lists menu in Odoo Discuss
+
+Quick search bar
+================
+
+Once at least 20 channels, direct message and live chat conversations (if the module is installed
+on your database) are pinned in the sidebar, a *Quick search…* bar is displayed. It is a clever
+way to filter conversations and quickly find the one you need.
+
+.. image:: media/quick_search.png
+ :align: center
+ :height: 430
+ :alt: View of the Discuss’ sidebar emphasizing the quick search bar in Odoo Discuss
+
+Finding channels
+----------------
+
+| Click on *Channels* (on the sidebar), browse through the list of public channels, and join or
+ leave them from a single screen.
+| Apply filters criteria and save it for later use. The search function accepts wildcards by using
+ the underscore character *(_)* to represent a single character.
+
+.. image:: media/filter.png
+ :align: center
+ :alt: View of a channel being searched through filters in Odoo Discuss
+
+.. seealso::
+ - :doc:`get_started`
+ - :doc:`plan_activities`
\ No newline at end of file
diff --git a/discuss/plan_activities.rst b/discuss/plan_activities.rst
deleted file mode 100644
index 8f5b3d535..000000000
--- a/discuss/plan_activities.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-====================================
-Get organized by planning activities
-====================================
-
-Planning activities is the perfect way to keep on track with your work.
-Get reminded of what needs to be done and schedule the next activities
-to undertake.
-
-Your activities are available wherever you are in Odoo. It is easy to
-manage your priorities.
-
-.. image:: media/plan_activities01.png
- :align: center
-
-Activities can be planned and managed from the chatters or in the kanban
-views. Here is an example for opportunities :
-
-.. image:: media/plan_activities02.png
- :align: center
-
-Set your activity types
-=======================
-
-A number of generic activities types are available by default in Odoo
-(e.g. call, email, meeting, etc.). If you would like to set new ones, go
-to :menuselection:`Settings --> General settings --> Activity types`.
-
-Schedule meetings
-=================
-
-Activities are planned for specific days. If you need to set hours, go
-with the *Meeting* activity type. When scheduling one, the calendar
-will simply open to let you select a time slot.
-
-.. tip::
- If you need to use other activity types with a calendar
- planning, make sure their *Category* is set as *Meeting*.
-
-Schedule a chain of activities to follow
-========================================
-
-Odoo helps you easily plan your usual flow of activities. Go to
-:menuselection:`Configuration --> Activity Types` and set the common
-following steps as *Recommended next activities*.
-
-.. image:: media/plan_activities03.png
- :align: center
-
-Now, when an activity is completed, you can select *Done & schedule
-next*. The next steps will automatically be suggested to you.
-
-.. image:: media/plan_activities04.png
- :align: center
-
-Have fun getting better organized by planning activities !
diff --git a/discuss/team_communication.rst b/discuss/team_communication.rst
deleted file mode 100644
index 7f2c4d6e1..000000000
--- a/discuss/team_communication.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-=====================================================
-How to efficiently communicate in team using channels
-=====================================================
-
-You can use **channels** to organize discussions between individual
-teams, departments, projects, or any other group that requires regular
-communication. By having conversations that everyone in the channel can
-see, it's easy to keep the whole team in the loop with the latest
-developments.
-
-Creating a channel
-==================
-
-In Discuss there are two types of channels - **public** and
-**private**.
-
-A **public channel** can only be created by an administrator with
-write privileges and can be seen by everyone in the organization. By
-contrast, a **private channel** can be created by any user and by
-default is only visible to users who have been invited to this
-channel.
-
-.. note::
- A public channel is best used when many employees need to
- access information (such as interdepartmental communication or
- company announcements), whereas a private channel should be used
- whenever information should be limited to specific users/employees
- (such as department specific or sensitive information).
-
-Configuring a channel
-=====================
-
-You can configure a channel's name, description, access rights,
-automatic subscription, and emailing from
-:menuselection:`#channel-name --> Settings`.
-Changing channel access rights allows
-you to control which groups can view each channel. You can make a
-channel visible by all users, invited users, or users within a
-selected user group. Note that allowing "Everyone" to follow a
-private channel will let other users view and join it as they would
-a public channel.
-
-.. image:: media/discuss02.png
- :align: center
-
-How to set up a mailing list
-============================
-
-A channel can be configured to behave as a mailing list. From within
-:menuselection:`#channel-name --> Settings`, define the email you would like to use.
-Users can then post to the channel and choose to receive
-notifications using the defined email address. An envelope icon will
-appear next to the channel name in the list to indicate that a
-channel will send messages by email.
-
-Locating a channel
-==================
-
-If you do not see a channel on your dashboard, you can search the
-list of **public channels** to locate the correct channel or create
-a new channel by clicking the plus icon.
-
-.. image:: media/discuss03.png
- :align: center
-
-You can also click the **CHANNELS** heading to browse a list of all
-public channels. This allows the user to manually **join** and
-**leave** public channels from a single screen.
-
-.. note::
- It is always wise to search for a channel before creating a new
- one to ensure that duplicate entries are not created for the same topic.
-
-
-Using filters to navigate within Discuss
-========================================
-
-The topbar search provides access to the same comprehensive search
-function present in the rest of Odoo. You can apply multiple **filter
-criteria** and **save filters** for later use. The search function
-accepts wildcards by using the underscore character "\ **\_**\ " to
-represent a **single character wildcard.**
\ No newline at end of file
diff --git a/discuss/tracking.rst b/discuss/tracking.rst
deleted file mode 100644
index 9a7e98412..000000000
--- a/discuss/tracking.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-======================================================================
-How to follow a discussion thread and define what I want to hear about
-======================================================================
-
-How to follow a discussion thread
-=================================
-You can keep track of virtually any business object in Odoo
-(an opportunity, a quotation, a task, etc.), by **following** it.
-
-.. image:: media/discuss07.png
- :align: center
-
-How to choose the events to follow
-==================================
-You can choose which types of events you want to be notified about.
-The example below shows the options available when
-following a **task** in the **Project** app.
-
-.. image:: media/discuss08.png
- :align: center
-
-How to add other followers
-==========================
-You can invite other users and add channels as followers. Adding a
-channel as a follower will send messages posted in the chatter to the
-channel with a link back to the original document.
-
-.. image:: media/discuss09.png
- :align: center
-.. image:: media/discuss10.png
- :align: center
-
-How to be a default follower
-============================
-You are automatically set as a default follower of any item
-you create. In some applications like CRM and Project, you can
-be a default follower of any new record created to get notified
-of specific events (e.g. a new task created, an opportunity won).
-
-To do so, start following the parent business object
-(e.g. the sales channel in CRM, the project in Project).
-Then, choose the events you want to hear about.
-
-.. image:: media/sales_channel_follow.png
- :align: center
\ No newline at end of file
diff --git a/ecommerce/shopper_experience.rst b/ecommerce/shopper_experience.rst
index c20d12956..ec7aab789 100644
--- a/ecommerce/shopper_experience.rst
+++ b/ecommerce/shopper_experience.rst
@@ -5,10 +5,6 @@ Get paid
.. toctree::
:titlesonly:
- shopper_experience/payment
- shopper_experience/paypal
- shopper_experience/authorize
- shopper_experience/wire_transfer
shopper_experience/payment_acquirer
shopper_experience/portal
diff --git a/ecommerce/shopper_experience/authorize.rst b/ecommerce/shopper_experience/authorize.rst
deleted file mode 100644
index 615bd8cf9..000000000
--- a/ecommerce/shopper_experience/authorize.rst
+++ /dev/null
@@ -1,81 +0,0 @@
-==================================
-How to get paid with Authorize.Net
-==================================
-
-Authorize.Net is one of the most popular eCommerce payment platforms in North America.
-Unlike most of the other payment acquirers compatible with Odoo,
-Authorize.Net can be used as `payment gateway `__ only.
-That way you can use the `payment processor or merchant `__ that you like.
-
-
-Create an Authorize.Net account
-===============================
-
-* Create an `Authorize.Net account `__
- by clicking 'Get Started'.
-* In the pricing page, press *Sign up now* if you want to use Authorize.net as
- both payment gateway and merchant. If you want to use your own merchant, press
- the related option.
-
- .. image:: media/authorize01.png
- :align: center
-
-* Go through the registration steps.
-* The account is set as a test account by default. You can use this test
- account to process a test transaction from Odoo.
-* Once ready, switch to **Production** mode.
-
-
-Set up Odoo
-===========
-* Activate Authorize.Net in Odoo from :menuselection:`Website or Sales or Accounting
- --> Settings --> Payment Acquirers`.
-* Enter both your **Login ID**
- your **API Transaction Key** and your **API Signature Key**.
-
- .. image:: media/authorize02.png
- :align: center
-
- To get those credentials from Authorize.Net, you can follow the direction
- in the Authorize.net Help
- `API Credentials and Keys `__
- entry and access the menu :menuselection:`Account --> Settings --> API Credentials & Keys`
- in the Authorize.net dashboard. Note that you need *both* a Transaction key and and Signature key.
-
-* Once both keys are set up, you can then generate a Client Key by clicking the
- "Generate Client Key" button. Note that these 3 keys are necessary for the
- setup to work correctly.
-
-
-Go live
-=======
-Your configuration is now ready!
-You can make Authorize.Net visible on your merchant interface
-and activate the **Enabled** state.
-
-.. image:: media/paypal_live.png
- :align: center
-
-.. note:: Credentials provided by Authorize.net are different for both
- test and production mode. Don't forget to update them in Odoo when you
- switch from testing to production or vice-versa.
-
-
-Assess Authorize.Net as payment solution
-========================================
-You can test and assess Authorize.Net for free by creating a `developer account `__.
-
-Once the account created you receive sandbox credentials.
-Enter them in Odoo as explained here above and make sure
-you are still in *Test* mode.
-
-You can also log in to `Authorize.Net sandbox platform `__
-to configure your sandbox account.
-
-To perform ficticious transactions you can use fake card numbers
-provided in the `Authorize.Net Testing Guide `__.
-
-.. seealso::
-
- * :doc:`payment`
- * :doc:`payment_acquirer`
diff --git a/ecommerce/shopper_experience/media/authorize01.png b/ecommerce/shopper_experience/media/authorize01.png
deleted file mode 100644
index 13bd3eb50..000000000
Binary files a/ecommerce/shopper_experience/media/authorize01.png and /dev/null differ
diff --git a/ecommerce/shopper_experience/media/authorize02.png b/ecommerce/shopper_experience/media/authorize02.png
deleted file mode 100644
index 3e8accd2f..000000000
Binary files a/ecommerce/shopper_experience/media/authorize02.png and /dev/null differ
diff --git a/ecommerce/shopper_experience/media/payment_recurring.png b/ecommerce/shopper_experience/media/payment_recurring.png
deleted file mode 100644
index ca6cf2e75..000000000
Binary files a/ecommerce/shopper_experience/media/payment_recurring.png and /dev/null differ
diff --git a/ecommerce/shopper_experience/media/payment_save_card.png b/ecommerce/shopper_experience/media/payment_save_card.png
deleted file mode 100644
index 71dedd42a..000000000
Binary files a/ecommerce/shopper_experience/media/payment_save_card.png and /dev/null differ
diff --git a/ecommerce/shopper_experience/payment.rst b/ecommerce/shopper_experience/payment.rst
deleted file mode 100644
index c4d4f0668..000000000
--- a/ecommerce/shopper_experience/payment.rst
+++ /dev/null
@@ -1,111 +0,0 @@
-======================================
-How to get paid with payment acquirers
-======================================
-
-Odoo embeds several payment methods to get paid on eCommerce, Sales
-and Invoicing apps.
-
-
-What are the payment methods available
-======================================
-
-Wire transfer
--------------
-
-Wire Transfer is the default payment method available. The aim is providing your
-customers with your bank details so they can pay on their own via their bank.
-This is very easy to start with but slow and inefficient process-wise.
-Opt for online acquirers as soon as you can!
-
-Payment acquirers
------------------
-
-Redirect your customers to payment platforms to collect money effortless
-and track the payment status (call-back).
-Odoo supports more and more platforms over time:
-
-* `Paypal `__
-* Ingenico
-* Authorize.net
-* Adyen
-* Buckaroo
-* PayUmoney
-* Sips
-* Stripe
-
-
-How to go live
-==============
-
-Once the payment method is ready, make it visible in the payment interface
-by switching the state to **Enabled**.
-
-.. image:: media/paypal_live.png
- :align: center
-
-
-How to let customers save and reuse credit cards
-================================================
-To ease the payment of returning customers, you can let them
-save and reuse a credit card if they want to.
-If so, a payment token will be saved in Odoo.
-This option is available with Ingenico and Authorize.net.
-
-You can turn this on from the acquirer configuration form.
-
-.. image:: media/payment_save_card.png
- :align: center
-
-
-How to debit credit cards to pay subscriptions
-==============================================
-`Odoo Subscription `__ allows to
-bill services automatically on a recurring basis.
-Along with it, you can have an automatic debit of the customer's credit card.
-
-This option is available with Ingenico and Authorize.net.
-
-You can turn this on from the acquirer configuration form.
-
-.. image:: media/payment_recurring.png
- :align: center
-
-That way a payment token will be recorded when the customer
-goes for the subscription and an automatic debit will occur
-whenever an invoice is issued from the subscription.
-
-
-How to use other acquirers (advanced)
-=====================================
-
-Odoo can submit single payment requests and redirect to any payment acquirer.
-But there is no call-back, i.e. Odoo doesn't track the transaction status.
-So you will confirm orders manually once you get paid.
-
-How to:
-
-* Switch to :doc:`Developer mode <../../../general/developer_mode/activate>`.
-
-* Take the **Custom** payment method.
-
-* Set up the payment form (S2S Form Template) as instructed by your payment acquirer.
- You can start from *default_acquirer_button* that you can duplicate.
-
-
-Other configurations
-====================
-
-Odoo can also be used for more advanced payment processes
-like installment plans (e.g.
-`Paypal Installment Plans `__).
-
-Such a customization service is made on-demand by our technical experts
-based on your own requirements. A business advisor can reach you out for
-such matter. `Contact us `_.
-
-
-.. seealso::
-
- * :doc:`paypal`
- * :doc:`wire_transfer`
- * :doc:`payment_acquirer`
\ No newline at end of file
diff --git a/ecommerce/shopper_experience/payment_acquirer.rst b/ecommerce/shopper_experience/payment_acquirer.rst
index 3f40ed210..713b7b5df 100644
--- a/ecommerce/shopper_experience/payment_acquirer.rst
+++ b/ecommerce/shopper_experience/payment_acquirer.rst
@@ -56,7 +56,7 @@ orders straight on.
Select your **bank account** if you get paid immediately on your bank account. If you don't you
can create a specific journal for the payment acquirer (type = Bank). That way, you can track
online payments in an intermediary account of your books until you get paid into your bank
- account (see :doc:`../../accounting/receivables/customer_payments/credit_cards`).
+ account (see :doc:`../../general/payment_acquirers/payment_acquirers`).
Capture the payment after the delivery
diff --git a/ecommerce/taxes.rst b/ecommerce/taxes.rst
index 2a1ee1526..5efb491d0 100644
--- a/ecommerce/taxes.rst
+++ b/ecommerce/taxes.rst
@@ -6,7 +6,7 @@ Collect taxes
:titlesonly:
../../accounting/fiscality/taxes/default_taxes
- ../../accounting/fiscality/taxes/application
+ ../../accounting/fiscality/taxes/fiscal_positions
../../accounting/fiscality/taxes/tax_included
../../accounting/fiscality/taxes/taxcloud
diff --git a/email_marketing/overview/send_emails.rst b/email_marketing/overview/send_emails.rst
index a98add5b5..4ef59ef9a 100644
--- a/email_marketing/overview/send_emails.rst
+++ b/email_marketing/overview/send_emails.rst
@@ -82,6 +82,6 @@ Manage campaigns
menu within those applications. All of this is possible because the applications work integrated.
.. seealso::
- - :doc:`../../discuss/email_servers`
+ - :doc:`../../discuss/advanced/email_servers`
- :doc:`../../social_marketing/overview/campaigns`
diff --git a/expense/expense.rst b/expense/expense.rst
index 4a299666e..455bafc9a 100644
--- a/expense/expense.rst
+++ b/expense/expense.rst
@@ -81,8 +81,8 @@ For security purposes, only authenticated employee emails
.. tip::
The expense product is set automatically if the mail subject contains
- the product's internal reference between brackets (e.g. [Food]).
- Type the expense amount in the mail subject to set it on the expense too.
+ the product's internal reference in first position.
+ Type the expense amount in the mail subject to set it on the expense too (e.g. Ref001 Food 100€).
How to submit expenses to managers
==================================
diff --git a/general.rst b/general.rst
index 6ed8a21ad..cef4ab723 100644
--- a/general.rst
+++ b/general.rst
@@ -10,7 +10,9 @@ General
general/odoo_basics
general/unsplash
general/base_import
+ general/multi_companies
general/auth
general/tags
+ general/payment_acquirers
general/in_app_purchase
general/developer_mode
diff --git a/general/multi_companies.rst b/general/multi_companies.rst
new file mode 100644
index 000000000..8349f9c79
--- /dev/null
+++ b/general/multi_companies.rst
@@ -0,0 +1,8 @@
+===============
+Multi Companies
+===============
+
+.. toctree::
+ :titlesonly:
+
+ multi_companies/manage_multi_companies
\ No newline at end of file
diff --git a/general/multi_companies/manage_multi_companies.rst b/general/multi_companies/manage_multi_companies.rst
new file mode 100644
index 000000000..a77918065
--- /dev/null
+++ b/general/multi_companies/manage_multi_companies.rst
@@ -0,0 +1,133 @@
+Multi Companies
+===============
+
+A centralized management environment allows you to select multiple companies simultaneously and set
+their specific warehouses, customers, equipment, and contacts. It provides you the ability to
+generate reports of aggregated figures without switching interfaces, which facilitates daily tasks
+and the overall management process.
+
+Manage companies and records
+----------------------------
+
+Go to :menuselection:`Settings --> Manage Companies` and fill in the form with your company’s
+information. If a *Parent Company* is selected, records are shared between the two companies (as
+long as both environments are active).
+
+.. image:: media/create_js_store_us.png
+ :align: center
+ :alt: Overview of a new company's form in Odoo
+
+.. tip::
+ Activate the :doc:`Developer mode <../../general/developer_mode/activate>` to choose a *Favicon*
+ for each of your companies, and easily identify them by the browser tabs. Set your
+ favicons’ files size to 16x16 or 32x32 pixels. JPG, PNG, GIF, and ICO are extensions accepted.
+
+ .. image:: media/favicon.png
+ :align: center
+ :height: 200
+ :alt: View of a web browser and the favicon for a specific company chosen in Odoo
+
+Switch between or select multiple companies by enabling their selection boxes to activate them. The
+grayed company is the one which environment is in use. To switch environments, click on the
+company’s name. In the example below, the user has access to three companies, two are activated, and
+the environment in use is of *JS Store US*.
+
+.. image:: media/multi_companies_menu_dashboard.png
+ :align: center
+ :alt: View of the companies menu through the main dashboard in Odoo
+
+Data such as Products, Contacts, and Equipment can be shared or set to be shown for a specific
+company only. To do so, on their forms, choose between:
+
+- *A blank field*: the record is shared within all companies.
+- *Adding a company*: the record is visible to users logged in to that specific company and its
+ child companies.
+
+.. image:: media/product_form_company.png
+ :align: center
+ :alt: View of a product's form emphasizing the company field in Odoo Sales
+
+Employees' access
+-----------------
+
+Once companies are created, manage your employees' :doc:`Access Rights <../odoo_basics/add_user>`
+for *Multi Companies*.
+
+.. image:: media/access_rights_multi_companies.png
+ :align: center
+ :alt: View of an user form emphasizing the multi companies field under the access rights tabs
+ in Odoo
+
+| If a user has multiple companies *activated* on his database, and he is **editing** a record,
+ the editing happens on the record's related company.
+| Example: if editing a sale order issued under JS Store US while working on the JS Store Belgium
+ environment, the changes are applied under JS Store US (the company from which the sale order
+ was issued).
+| When **creating** a record, the company taken into account is:
+
+- The current company (the one active) or,
+- No company is set (on products and contacts’ forms for example) or,
+- The company set is the one linked to the document (the same as if a record is being edited).
+
+Documents’ format
+-----------------
+
+To set documents' formats according to each company, *activate* and *select* the respective one and,
+under *Settings*, click on *Configure Document Layout*.
+
+.. image:: media/document_layout.png
+ :align: center
+ :alt: View of the settings page emphasizing the document layout field in Odoo
+
+Inter-Company Transactions
+--------------------------
+
+First, make sure each one of your companies is properly set in relation to:
+
+- :doc:`Chart of Accounts <../../accounting/overview/getting_started/chart_of_accounts>`
+- :doc:`Taxes <../../accounting/fiscality/taxes/default_taxes>`
+- :doc:`Fiscal Positions <../../accounting/fiscality/taxes/fiscal_positions>`
+- :doc:`Journals <../../accounting/bank/setup/bank_accounts>`
+- :doc:`Fiscal Localizations <../../accounting/fiscal_localizations/overview/fiscal_localization_packages>`
+- :doc:`Pricelists <../../sales/products_prices/prices/pricing>`
+- :doc:`Warehouses <../../inventory/management/warehouses/warehouse_creation>`
+
+Now, activate the *Inter-Company Transactions* option under *Settings*. With the respective company
+*activated* and *selected*, choose if you would like operations between companies to be synchronized
+at an invoice/bills level or at a sales/purchase orders level.
+
+.. image:: media/inter_company_transactions.png
+ :align: center
+ :alt: View of the settings page emphasizing the inter company transaction field in Odoo
+
+- **Synchronize invoice/bills**: generates a bill/invoice when a company confirms a bill/invoice for
+ the selected company.
+
+ *Example:* an invoice posted on JS Store Belgium, for JS Store US, automatically creates a vendor
+ bill on the JS Store US, from the JS Store Belgium.
+
+.. image:: media/invoice_inter_company.png
+ :align: center
+ :alt: View of an invoice for JS Store US created on JS Store Belgium in Odoo
+
+- **Synchronize sales/purchase order**: generates a drafted purchase/sales order using the selected
+ company warehouse when a sales/purchase order is confirmed for the selected company. If instead of
+ a drafted purchase/sales order you rather have it validated, enable *Automatic Validation*.
+
+ *Example:* when a sale order for JS Store US is confirmed on JS Store Belgium, a purchase order
+ on JS Store Belgium is automatically created (and confirmed if the *Automatic Validation* feature
+ was enabled).
+
+.. image:: media/purchase_order_inter_company.png
+ :align: center
+ :alt: View of the purchase created on JS Store US from JS Store Belgium in Odoo
+
+.. note::
+ Products have to be configured as *Can be sold*.
+
+.. tip::
+ Remember to test all workflows as an user other than the administrator.
+
+.. seealso::
+ - `Multi-company Guidelines `_
+ - :doc:`../../accounting/others/multicurrencies/how_it_works`
diff --git a/general/multi_companies/media/access_rights_multi_companies.png b/general/multi_companies/media/access_rights_multi_companies.png
new file mode 100644
index 000000000..5e98b8c56
Binary files /dev/null and b/general/multi_companies/media/access_rights_multi_companies.png differ
diff --git a/general/multi_companies/media/create_js_store_us.png b/general/multi_companies/media/create_js_store_us.png
new file mode 100644
index 000000000..1f7ed5edf
Binary files /dev/null and b/general/multi_companies/media/create_js_store_us.png differ
diff --git a/general/multi_companies/media/document_layout.png b/general/multi_companies/media/document_layout.png
new file mode 100644
index 000000000..52d55b453
Binary files /dev/null and b/general/multi_companies/media/document_layout.png differ
diff --git a/general/multi_companies/media/favicon.png b/general/multi_companies/media/favicon.png
new file mode 100644
index 000000000..599670165
Binary files /dev/null and b/general/multi_companies/media/favicon.png differ
diff --git a/general/multi_companies/media/inter_company_transactions.png b/general/multi_companies/media/inter_company_transactions.png
new file mode 100644
index 000000000..a7264e9de
Binary files /dev/null and b/general/multi_companies/media/inter_company_transactions.png differ
diff --git a/general/multi_companies/media/invoice_inter_company.png b/general/multi_companies/media/invoice_inter_company.png
new file mode 100644
index 000000000..fd46374c3
Binary files /dev/null and b/general/multi_companies/media/invoice_inter_company.png differ
diff --git a/general/multi_companies/media/multi_companies_menu_dashboard.png b/general/multi_companies/media/multi_companies_menu_dashboard.png
new file mode 100644
index 000000000..7ab287bf0
Binary files /dev/null and b/general/multi_companies/media/multi_companies_menu_dashboard.png differ
diff --git a/general/multi_companies/media/product_form_company.png b/general/multi_companies/media/product_form_company.png
new file mode 100644
index 000000000..782096ad6
Binary files /dev/null and b/general/multi_companies/media/product_form_company.png differ
diff --git a/general/multi_companies/media/purchase_order_inter_company.png b/general/multi_companies/media/purchase_order_inter_company.png
new file mode 100644
index 000000000..ef1db3ca3
Binary files /dev/null and b/general/multi_companies/media/purchase_order_inter_company.png differ
diff --git a/general/odoo_basics.rst b/general/odoo_basics.rst
index b0d30b8cc..eb14a9186 100644
--- a/general/odoo_basics.rst
+++ b/general/odoo_basics.rst
@@ -6,4 +6,5 @@ Basics
:titlesonly:
odoo_basics/choose_language
- odoo_basics/add_user
\ No newline at end of file
+ odoo_basics/add_user
+ odoo_basics/export-data
\ No newline at end of file
diff --git a/general/odoo_basics/add_user.rst b/general/odoo_basics/add_user.rst
index 3c265f48e..606730be7 100644
--- a/general/odoo_basics/add_user.rst
+++ b/general/odoo_basics/add_user.rst
@@ -1,46 +1,141 @@
-=================
-How to add a user
-=================
+==================================
+Add Users and Manage Access Rights
+==================================
-Odoo provides you with the option to add additional users at any given
-point.
+Odoo defines a *user* as someone who has access to a database to perform daily tasks. You can add as
+many users as you need and, in order to restrict the type of information each user can access, rules
+can be applied. Users and access rights can be added and changed at any point.
+
+.. _general/odoo_basics/add_individual_user:
Add individual users
====================
-From the Settings module, go to the submenu :menuselection:`Users --> Users` and click on
-**CREATE.** First add the name of your new user and the professional
-email address - the one he will use to log into Odoo instance - and a
-picture.
+Go to :menuselection:`Settings --> Manage Users` and click on *Create*.
-.. image:: media/add_user01.png
- :align: center
+.. image:: media/manage_users.png
+ :align: center
+ :height: 280
+ :alt: View of the settings page emphasizing the manage users field in Odoo
-Under Access Rights, you can choose which applications your user can
-access and use. Different levels of rights are available depending on
-the app.
+| Fill in the form with the needed information. Under the tab
+ :ref:`Access Rights ` choose the group within
+ each application the user can have access to.
+| The list of applications shown is based on the applications installed on the database.
-When you’re done editing the page and have clicked on **SAVE**, an
-invitation email will automatically be sent to the user. The user must
-click on it to accept the invitation to your instance and create a
-log-in.
+.. image:: media/new_user.png
+ :align: center
+ :alt: View of a user’s form emphasizing the access rights tab in Odoo
-.. image:: media/add_user02.png
- :align: center
+When you are done editing the page and have *Saved* it, an invitation email is automatically sent to
+the user. The user must click on it to accept the invitation and create a login.
+
+.. image:: media/invitation_email.png
+ :align: center
+ :alt: View of a user’s form with a notification that the invitation email has been sent in Odoo
.. note::
- Remember that each additional user will increase your subscription fees.
- Refer to our `Pricing page `_ for more information.
+ Remember that subscription prices follow the number of users. Refer to our
+ `pricing page `_
+ for more information.
-.. image:: media/add_user03.png
- :align: center
+With the :doc:`Developer mode <../../general/developer_mode/activate>` activated, *User Types* can
+be selected.
-.. tip::
- You can also add a new user on the fly from your dashboard. From the above screenshot,
- enter the email address of the user you would like to add and click on **INVITE**.
- The user will receive an email invite containing a link to set his password. You
- will then be able to define his accesses rights under the :menuselection:`Settings -->
- Users menu`.
+.. image:: media/user_type.png
+ :align: center
+ :height: 300
+ :alt: View of a user’s form in developer mode emphasizing the user type field in Odoo
+
+The *Portal* and *Public* options do not allow you to choose access rights. Members have specific
+ones (such as record rules and restricted menus) and usually do not belong to the usual Odoo
+groups.
+
+.. _general/odoo_basics/add_user/access_rights:
+
+Access Rights in detail
+=======================
+
+Activate the :doc:`Developer mode <../../general/developer_mode/activate>`, then go to
+:menuselection:`Settings --> Users & Companies --> Groups`.
+
+Groups
+~~~~~~
+
+| When choosing the groups the user can have access under
+ :ref:`Access Rights `, details of the rules and
+ inheritances of that group are not shown, so this is when the menu *Groups* comes along. *Groups*
+ are created to define rules to models within an application.
+| Under *Users*, have a list of the current ones. The ones with administrative rights are shown
+ in black.
+
+.. image:: media/groups_users.png
+ :align: center
+ :alt: View of a group’s form emphasizing the tab users in Odoo
+
+*Inherited* means that users added to this application group are automatically added to the
+following ones. In the example below, users who have access to the group *Administrator* of *Sales*
+also have access to *Website/Restricted Editor* and *Sales/User: All Documents*.
+
+.. image:: media/groups_inherited.png
+ :align: center
+ :height: 330
+ :alt: View of a group’s form emphasizing the tab inherited in Odoo
+
+.. important::
+ Remember to always test the settings being changed in order to ensure that they are being applied
+ to the needed and right users.
+
+The *Menus* tab is where you define which menus (models) the user can have access to.
+
+.. image:: media/groups_menus.png
+ :align: center
+ :height: 330
+ :alt: View of a group’s form emphasizing the tab menus in Odoo
+
+*Access Rights* rules are the first level of rights. The field is composed of the object name, which
+is the technical name given to a model. For each model, enable the following options as appropriate:
+
+- *Read*: the values of that object can be only seen by the user.
+- *Write*: the values of that object can be edited by the user.
+- *Create*: values for that object can be created by the user.
+- *Delete*: the values of that object can be deleted by the user.
+
+.. image:: media/groups_access_rights.png
+ :align: center
+ :alt: View of a group’s form emphasizing the tab access rights in Odoo
+
+| As a second layer of editing and visibility rules, *Record Rules* can be formed. They overwrite,
+ or refine, the *Access Rights*.
+| A record rule is written using a *Domain*. Domains are conditions used to filter or searching
+ data. Therefore, a domain expression is a list of conditions. For each rule, choose among the
+ following options: *Read*, *Write*, *Create* and *Delete* values.
+
+.. image:: media/groups_record_rules.png
+ :align: center
+ :alt: View of a group’s form emphasizing the tab record rules in Odoo
+
+.. important::
+ Making changes in access rights can have a big impact on the database. For this reason, we
+ recommend you to contact your Odoo Business Analyst or our Support Team, unless you have
+ knowledge about Domains in Odoo.
+
+Multi Companies
+===============
+
+The *Multi Companies* field allows you to set to which of the multiple companies database you hold
+the user can have access.
+
+.. note::
+ Note that if not handled correctly, it may be the source of a lot of inconsistent multi-company
+ behaviors. Therefore, a good knowledge of Odoo is required. For technical explanations refer
+ to `this `_ documentation.
+
+.. image:: media/multi_companies.png
+ :align: center
+ :height: 300
+ :alt: View of a user’s form emphasizing the multi companies field in Odoo
.. seealso::
- - `Deactivating Users <../../db_management/documentation.html#deactivating-users>`_
+ - :doc:`../multi_companies/manage_multi_companies`
+ - :doc:`../../db_management/documentation`
\ No newline at end of file
diff --git a/general/odoo_basics/export-data.rst b/general/odoo_basics/export-data.rst
new file mode 100644
index 000000000..29f9fd1c0
--- /dev/null
+++ b/general/odoo_basics/export-data.rst
@@ -0,0 +1,53 @@
+======================
+Export Data From Odoo
+======================
+
+When working with a database, it sometimes is necessary to export your data in a distinct file.
+Doing so can help to do reporting over your activities (even if Odoo offers a precise and easy
+reporting tool with each available application).
+
+With Odoo, you can export the values from any field in any record. To do so,
+activate the list view on the items that need to be exported, click on *Action*, and, then,
+on *Export*.
+
+.. image:: media/list-view-export.png
+ :align: center
+ :alt: view of the different things to enable/click to export data
+
+Pretty simple, this action still comes with some specificities. In fact,
+when clicking on *Export*, a pop-up window appears with several
+options for the data to export:
+
+.. image:: media/export-data-overview.png
+ :align: center
+ :alt: overview of all the options to take into account when exporting data in Odoo
+
+1. With the *I want to update data* option ticked, the system only
+ shows the fields which can be imported. This is very helpful in
+ case you want to update existing records. Basically, this works
+ like a filter. Leaving the box unticked gives way more field
+ options because it shows all the fields, not just the ones which
+ can be imported.
+2. When exporting, you can choose between two formats: .csv and .xls.
+ With .csv, items are separated with a comma, while .xls holds information about all the
+ worksheets in a file, including both content and formatting.
+3. Those are the items you may want to export. Use the arrows to display
+ more sub-field options. Of course, you can use the search bar to
+ find specific fields more easily. To use the search option more
+ efficiently, display all the fields by clicking on all the
+ arrows!
+4. The + button is there to add fields to the “to export” list.
+5. The “handles” next to the selected fields allow you to move the fields up and down to
+ change the order in which they must be displayed in the exported
+ file.
+6. The trashcan is there if you need to remove fields.
+7. For recurring reports, it might be interesting to save export presets.
+ Select all the needed ones and click on the template bar.
+ There, click on *New template* and give a name to yours. The
+ next time you need to export the same list, simply select the
+ related template.
+
+.. tip::
+ It’s good to keep the field’s external identifier in mind. For example,
+ *Related Company* is equal to *parent_id*. Doing so helps export
+ only what you would like to import next.
\ No newline at end of file
diff --git a/general/odoo_basics/media/add_user01.png b/general/odoo_basics/media/add_user01.png
deleted file mode 100644
index fe39c3d27..000000000
Binary files a/general/odoo_basics/media/add_user01.png and /dev/null differ
diff --git a/general/odoo_basics/media/add_user02.png b/general/odoo_basics/media/add_user02.png
deleted file mode 100644
index 589bab804..000000000
Binary files a/general/odoo_basics/media/add_user02.png and /dev/null differ
diff --git a/general/odoo_basics/media/add_user03.png b/general/odoo_basics/media/add_user03.png
deleted file mode 100644
index 1143b2cd8..000000000
Binary files a/general/odoo_basics/media/add_user03.png and /dev/null differ
diff --git a/general/odoo_basics/media/export-data-overview.png b/general/odoo_basics/media/export-data-overview.png
new file mode 100644
index 000000000..62bcb72f1
Binary files /dev/null and b/general/odoo_basics/media/export-data-overview.png differ
diff --git a/general/odoo_basics/media/groups_access_rights.png b/general/odoo_basics/media/groups_access_rights.png
new file mode 100644
index 000000000..6044c1a21
Binary files /dev/null and b/general/odoo_basics/media/groups_access_rights.png differ
diff --git a/general/odoo_basics/media/groups_inherited.png b/general/odoo_basics/media/groups_inherited.png
new file mode 100644
index 000000000..36235e2c2
Binary files /dev/null and b/general/odoo_basics/media/groups_inherited.png differ
diff --git a/general/odoo_basics/media/groups_menus.png b/general/odoo_basics/media/groups_menus.png
new file mode 100644
index 000000000..ed5d2b674
Binary files /dev/null and b/general/odoo_basics/media/groups_menus.png differ
diff --git a/general/odoo_basics/media/groups_record_rules.png b/general/odoo_basics/media/groups_record_rules.png
new file mode 100644
index 000000000..cb6349845
Binary files /dev/null and b/general/odoo_basics/media/groups_record_rules.png differ
diff --git a/general/odoo_basics/media/groups_users.png b/general/odoo_basics/media/groups_users.png
new file mode 100644
index 000000000..15924f972
Binary files /dev/null and b/general/odoo_basics/media/groups_users.png differ
diff --git a/general/odoo_basics/media/invitation_email.png b/general/odoo_basics/media/invitation_email.png
new file mode 100644
index 000000000..daa4ae20c
Binary files /dev/null and b/general/odoo_basics/media/invitation_email.png differ
diff --git a/general/odoo_basics/media/list-view-export.png b/general/odoo_basics/media/list-view-export.png
new file mode 100644
index 000000000..e4debf016
Binary files /dev/null and b/general/odoo_basics/media/list-view-export.png differ
diff --git a/general/odoo_basics/media/manage_users.png b/general/odoo_basics/media/manage_users.png
new file mode 100644
index 000000000..a95c5eb86
Binary files /dev/null and b/general/odoo_basics/media/manage_users.png differ
diff --git a/general/odoo_basics/media/multi_companies.png b/general/odoo_basics/media/multi_companies.png
new file mode 100644
index 000000000..da4c1d22e
Binary files /dev/null and b/general/odoo_basics/media/multi_companies.png differ
diff --git a/general/odoo_basics/media/new_user.png b/general/odoo_basics/media/new_user.png
new file mode 100644
index 000000000..2165773bd
Binary files /dev/null and b/general/odoo_basics/media/new_user.png differ
diff --git a/general/odoo_basics/media/user_type.png b/general/odoo_basics/media/user_type.png
new file mode 100644
index 000000000..0ae9df846
Binary files /dev/null and b/general/odoo_basics/media/user_type.png differ
diff --git a/general/payment_acquirers.rst b/general/payment_acquirers.rst
new file mode 100644
index 000000000..77cb73bd9
--- /dev/null
+++ b/general/payment_acquirers.rst
@@ -0,0 +1,11 @@
+=================
+Payment Acquirers
+=================
+
+.. toctree::
+ :titlesonly:
+
+ payment_acquirers/payment_acquirers
+ payment_acquirers/wire_transfer
+ payment_acquirers/authorize
+ payment_acquirers/paypal
\ No newline at end of file
diff --git a/general/payment_acquirers/authorize.rst b/general/payment_acquirers/authorize.rst
new file mode 100644
index 000000000..302caf07c
--- /dev/null
+++ b/general/payment_acquirers/authorize.rst
@@ -0,0 +1,117 @@
+=============
+Authorize.Net
+=============
+
+`Authorize.Net `__ is a United States-based online payment solution
+provider, allowing businesses to accept **credit cards**.
+
+.. image:: media/authorize-net.png
+ :align: center
+ :alt: Authorize.Net logo
+
+This Payment Acquirer offers additional options that are not available for other :doc:`Payment
+Acquirers `, such as the ability to process your customer's payment after
+delivery.
+
+Authorize.Net account
+=====================
+
+If not done yet, choose a plan and `Sign Up for an Authorize.Net account
+`__.
+
+Odoo needs your **API Credentials & Keys** to connect with your Authorize.Net account, which
+comprise:
+
+- API Login ID
+- Transaction Key
+- Signature Key
+
+To retrieve them, log into your Authorize.Net account, go to :menuselection:`Account --> Security
+Settings --> General Security Settings --> API Credentials & Keys`, and generate your **Transaction
+Key** and **Signature Key**.
+
+.. image:: media/authorize-api-keys.png
+ :align: center
+ :alt: Generate your Transaction Key and Signature Key on your Authorize.Net account
+
+.. seealso::
+
+ - `Authorize.Net: Getting Started Guide
+ `__
+
+Payment Acquirer Configuration
+==============================
+
+To configure Authorize.Net as Payment Acquirer in Odoo, go to :menuselection:`Accounting -->
+Configuration --> Payment Acquirers`, open **Authorize.Net**, and change the **State** to *Enabled*.
+Don't forget to click on *Save* once you've set everything up.
+
+.. note::
+ Please refer to the :doc:`Payment Acquirers documentation ` to read how to
+ configure this payment acquirer.
+
+Credentials
+-----------
+
+Copy your credentials from your Authorize.Net account (API Login Id, API Transaction Key, and API
+Signature Key), paste them in the related fields under the **Credentials** tab, then click on
+**Generate Client Key**.
+
+.. note::
+ The **API Client Key** is necessary only if you select *Payment from Odoo* option as
+ :ref:`Payment Flow `.
+
+.. important::
+ If you are trying Authorize.Net as a test, with a *sandbox account*, change the **State** to
+ *Test Mode*. We recommend doing this on a test Odoo database, rather than on your main database.
+
+Payment Flow
+------------
+
+The **Payment Flow** lets you decide if to redirect the user to the payment acquirer's portal to
+authenticate the payment, or if to stay on the current page and authenticate the payment from Odoo.
+This field is under the **Configuration** tab.
+
+If you select *Redirection to the acquirer website*, make sure you add a **Default Receipt URL** and
+a **Default Relay Response URL** to your Authorize.net account.
+
+To do so, log into your Authorize.Net account, go to :menuselection:`Account --> Transaction Format
+Settings --> Transaction Response Settings --> Response/Receipt URLs`, and set the default links:
+
+- | Default Receipt URL:
+ | *https://[yourcompany.odoo.com]*/**payment/authorize/return**
+- | Default Relay Response URL:
+ | *https://[yourcompany.odoo.com]*/**payment/authorize/return**
+
+.. note::
+ | Failing to complete this step results in the following error:
+ | *The referrer, relay response or receipt link URL is invalid.*
+
+Capture the payment after the delivery
+--------------------------------------
+
+The **Capture Amount Manually** field is under the **Configuration** tab. If enabled, the funds are
+reserved for 30 days on the customer's card, but not charged yet.
+
+.. image:: media/authorize-configuration.png
+ :align: center
+ :alt: Authorize.Net Configuration tab on Odoo
+
+To capture the payment, go to the related Sales Order and click on *Capture Transaction*. If the
+order is canceled, you can click on *Void Transaction* to unlock the funds from the customer's card.
+
+.. image:: media/authorize-capture.png
+ :align: center
+ :alt: Hold the credit card payment until you capture or revoke it on Odoo
+
+.. warning::
+ After **30 days**, the transaction is **voided automatically** by Authorize.net.
+
+.. note::
+ With other payment acquirers, you can manage the capture in their own interfaces, not from Odoo.
+
+.. seealso::
+ - `Authorize.Net: Getting Started Guide
+ `__
+ - :doc:`payment_acquirers`
+ - :doc:`../../ecommerce/shopper_experience/payment_acquirer`
diff --git a/general/payment_acquirers/media/authorize-api-keys.png b/general/payment_acquirers/media/authorize-api-keys.png
new file mode 100644
index 000000000..e6e4a1aa1
Binary files /dev/null and b/general/payment_acquirers/media/authorize-api-keys.png differ
diff --git a/general/payment_acquirers/media/authorize-capture.png b/general/payment_acquirers/media/authorize-capture.png
new file mode 100644
index 000000000..2528d3749
Binary files /dev/null and b/general/payment_acquirers/media/authorize-capture.png differ
diff --git a/general/payment_acquirers/media/authorize-configuration.png b/general/payment_acquirers/media/authorize-configuration.png
new file mode 100644
index 000000000..0568d134b
Binary files /dev/null and b/general/payment_acquirers/media/authorize-configuration.png differ
diff --git a/general/payment_acquirers/media/authorize-credentials.png b/general/payment_acquirers/media/authorize-credentials.png
new file mode 100644
index 000000000..3ae690c65
Binary files /dev/null and b/general/payment_acquirers/media/authorize-credentials.png differ
diff --git a/general/payment_acquirers/media/authorize-net.png b/general/payment_acquirers/media/authorize-net.png
new file mode 100644
index 000000000..5a22b8b6f
Binary files /dev/null and b/general/payment_acquirers/media/authorize-net.png differ
diff --git a/general/payment_acquirers/media/payment-acquirers-activation.png b/general/payment_acquirers/media/payment-acquirers-activation.png
new file mode 100644
index 000000000..617e11621
Binary files /dev/null and b/general/payment_acquirers/media/payment-acquirers-activation.png differ
diff --git a/general/payment_acquirers/media/payment-acquirers-online-payment.png b/general/payment_acquirers/media/payment-acquirers-online-payment.png
new file mode 100644
index 000000000..200a4e164
Binary files /dev/null and b/general/payment_acquirers/media/payment-acquirers-online-payment.png differ
diff --git a/ecommerce/shopper_experience/media/payment_check.png b/general/payment_acquirers/media/payment_check.png
similarity index 100%
rename from ecommerce/shopper_experience/media/payment_check.png
rename to general/payment_acquirers/media/payment_check.png
diff --git a/ecommerce/shopper_experience/media/payment_customer_instructions.png b/general/payment_acquirers/media/payment_customer_instructions.png
similarity index 100%
rename from ecommerce/shopper_experience/media/payment_customer_instructions.png
rename to general/payment_acquirers/media/payment_customer_instructions.png
diff --git a/ecommerce/shopper_experience/media/payment_instructions.png b/general/payment_acquirers/media/payment_instructions.png
similarity index 100%
rename from ecommerce/shopper_experience/media/payment_instructions.png
rename to general/payment_acquirers/media/payment_instructions.png
diff --git a/ecommerce/shopper_experience/media/paypal01.png b/general/payment_acquirers/media/paypal01.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal01.png
rename to general/payment_acquirers/media/paypal01.png
diff --git a/ecommerce/shopper_experience/media/paypal02.png b/general/payment_acquirers/media/paypal02.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal02.png
rename to general/payment_acquirers/media/paypal02.png
diff --git a/ecommerce/shopper_experience/media/paypal03.png b/general/payment_acquirers/media/paypal03.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal03.png
rename to general/payment_acquirers/media/paypal03.png
diff --git a/ecommerce/shopper_experience/media/paypal04.png b/general/payment_acquirers/media/paypal04.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal04.png
rename to general/payment_acquirers/media/paypal04.png
diff --git a/ecommerce/shopper_experience/media/paypal05.png b/general/payment_acquirers/media/paypal05.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal05.png
rename to general/payment_acquirers/media/paypal05.png
diff --git a/ecommerce/shopper_experience/media/paypal07.png b/general/payment_acquirers/media/paypal07.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal07.png
rename to general/payment_acquirers/media/paypal07.png
diff --git a/ecommerce/shopper_experience/media/paypal08.png b/general/payment_acquirers/media/paypal08.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal08.png
rename to general/payment_acquirers/media/paypal08.png
diff --git a/ecommerce/shopper_experience/media/paypal09.png b/general/payment_acquirers/media/paypal09.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal09.png
rename to general/payment_acquirers/media/paypal09.png
diff --git a/ecommerce/shopper_experience/media/paypal10.png b/general/payment_acquirers/media/paypal10.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal10.png
rename to general/payment_acquirers/media/paypal10.png
diff --git a/ecommerce/shopper_experience/media/paypal11.png b/general/payment_acquirers/media/paypal11.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal11.png
rename to general/payment_acquirers/media/paypal11.png
diff --git a/ecommerce/shopper_experience/media/paypal12.png b/general/payment_acquirers/media/paypal12.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal12.png
rename to general/payment_acquirers/media/paypal12.png
diff --git a/ecommerce/shopper_experience/media/paypal13.png b/general/payment_acquirers/media/paypal13.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal13.png
rename to general/payment_acquirers/media/paypal13.png
diff --git a/ecommerce/shopper_experience/media/paypal_account_optional.png b/general/payment_acquirers/media/paypal_account_optional.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_account_optional.png
rename to general/payment_acquirers/media/paypal_account_optional.png
diff --git a/ecommerce/shopper_experience/media/paypal_auto_return.png b/general/payment_acquirers/media/paypal_auto_return.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_auto_return.png
rename to general/payment_acquirers/media/paypal_auto_return.png
diff --git a/ecommerce/shopper_experience/media/paypal_credentials.png b/general/payment_acquirers/media/paypal_credentials.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_credentials.png
rename to general/payment_acquirers/media/paypal_credentials.png
diff --git a/ecommerce/shopper_experience/media/paypal_data_transfer.png b/general/payment_acquirers/media/paypal_data_transfer.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_data_transfer.png
rename to general/payment_acquirers/media/paypal_data_transfer.png
diff --git a/ecommerce/shopper_experience/media/paypal_debug.png b/general/payment_acquirers/media/paypal_debug.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_debug.png
rename to general/payment_acquirers/media/paypal_debug.png
diff --git a/ecommerce/shopper_experience/media/paypal_encoding_options.png b/general/payment_acquirers/media/paypal_encoding_options.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_encoding_options.png
rename to general/payment_acquirers/media/paypal_encoding_options.png
diff --git a/ecommerce/shopper_experience/media/paypal_fees.png b/general/payment_acquirers/media/paypal_fees.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_fees.png
rename to general/payment_acquirers/media/paypal_fees.png
diff --git a/ecommerce/shopper_experience/media/paypal_identity_token.png b/general/payment_acquirers/media/paypal_identity_token.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_identity_token.png
rename to general/payment_acquirers/media/paypal_identity_token.png
diff --git a/ecommerce/shopper_experience/media/paypal_ipn.png b/general/payment_acquirers/media/paypal_ipn.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_ipn.png
rename to general/payment_acquirers/media/paypal_ipn.png
diff --git a/ecommerce/shopper_experience/media/paypal_ipn_setup.png b/general/payment_acquirers/media/paypal_ipn_setup.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_ipn_setup.png
rename to general/payment_acquirers/media/paypal_ipn_setup.png
diff --git a/ecommerce/shopper_experience/media/paypal_live.png b/general/payment_acquirers/media/paypal_live.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_live.png
rename to general/payment_acquirers/media/paypal_live.png
diff --git a/ecommerce/shopper_experience/media/paypal_more_options.png b/general/payment_acquirers/media/paypal_more_options.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_more_options.png
rename to general/payment_acquirers/media/paypal_more_options.png
diff --git a/ecommerce/shopper_experience/media/paypal_profile.png b/general/payment_acquirers/media/paypal_profile.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_profile.png
rename to general/payment_acquirers/media/paypal_profile.png
diff --git a/ecommerce/shopper_experience/media/paypal_selling_tools.png b/general/payment_acquirers/media/paypal_selling_tools.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_selling_tools.png
rename to general/payment_acquirers/media/paypal_selling_tools.png
diff --git a/ecommerce/shopper_experience/media/paypal_website_preferences.png b/general/payment_acquirers/media/paypal_website_preferences.png
similarity index 100%
rename from ecommerce/shopper_experience/media/paypal_website_preferences.png
rename to general/payment_acquirers/media/paypal_website_preferences.png
diff --git a/general/payment_acquirers/payment_acquirers.rst b/general/payment_acquirers/payment_acquirers.rst
new file mode 100644
index 000000000..fa328c523
--- /dev/null
+++ b/general/payment_acquirers/payment_acquirers.rst
@@ -0,0 +1,226 @@
+================================================
+Payment Acquirers (Credit Cards, Online Payment)
+================================================
+
+Odoo embeds several **payment methods** that allow your customers to pay on their *Customer Portals*
+or your *eCommerce website*. They can pay Sales Orders, invoices, or subscriptions with recurring
+payments with their favorite payment acquirers, including **online payment providers** that accept
+**Credit Cards**.
+
+Having several payment methods increases the chances of getting paid in time, or even immediately,
+as you make it more convenient for your customers to pay with the payment method they prefer and
+trust.
+
+.. image:: media/payment-acquirers-online-payment.png
+ :align: center
+ :alt: Pay online in the customer portal and select which payment acquirer to use.
+
+.. important::
+ Odoo does not keep Credit Card numbers or credentials on its servers, nor is it stored on Odoo
+ databases hosted elsewhere. Instead, Odoo apps use a unique reference to the data stored in the
+ payment acquirers' systems, where the information is safely stored. This reference is useless
+ without your credentials for the payment acquirer.
+
+.. _payment_acquirers/acquirers:
+
+Payment Acquirers
+=================
+
+From an accounting perspective, we can distinguish two types of payment acquirers: the payments that
+go directly on the bank account and follow the usual reconciliation workflow, and the payment
+acquirers that are third-party services and require you to follow another accounting workflow.
+
+.. _payment_acquirers/bank_payments:
+
+Bank Payments
+-------------
+
+- | :doc:`Wire Transfer `
+ | When selected, Odoo displays your payment information with a payment reference. You have to
+ approve the payment manually once you have received it on your bank account.
+- | SEPA Direct Debit
+ | Your customers can sign a SEPA Direct Debit mandate online and get their bank account charged
+ directly. :doc:`Click here <../../accounting/receivables/customer_payments/batch_sdd>` for more
+ information about this payment method.
+
+.. _payment_acquirers/online_providers:
+
+Online Payment Providers
+------------------------
+
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| | Redirection to | Payment | Save Cards | Capture Amount |
+| | the acquirer website | from Odoo | | Manually |
++=====================================+======================+===========+============+=================+
+| Adyen | ✔ | | | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| Alipay | ✔ | | | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| :doc:`Authorize.Net ` | ✔ | ✔ | ✔ | ✔ |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| Buckaroo | ✔ | | | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| Ingenico | ✔ | ✔ | ✔ | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| :doc:`PayPal ` | ✔ | | | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| PayUMoney | ✔ | | | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| SIPS | ✔ | | | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+| Stripe | ✔ | ✔ | ✔ | |
++-------------------------------------+----------------------+-----------+------------+-----------------+
+
+.. note::
+ Some of these Online Payment Providers can also be added as :doc:`Bank Accounts
+ <../../accounting/bank/setup/bank_accounts>`, but this is **not** the same process as adding them
+ as Payment Acquirers. Payment Acquirers allow customers to pay online, and Bank Accounts are
+ added and configured on your Accounting app to do a bank reconciliation, which is an accounting
+ control process.
+
+.. _payment_acquirers/configuration:
+
+Configuration
+=============
+
+Some of the features described in this section are available only with some Payment Acquirers. Refer
+to :ref:`the table above ` for more details.
+
+.. _payment_acquirers/add_new:
+
+Add a new Payment Acquirer
+--------------------------
+
+To add a new Payment acquirer and make it available to your customers, go to
+:menuselection:`Accounting --> Configuration --> Payment Acquirers`, look for your payment acquirer,
+install the related module, and activate it. To do so, open the payment acquirer and change its
+state from *Disabled* to *Enabled*.
+
+.. image:: media/payment-acquirers-activation.png
+ :align: center
+ :alt: Click on install, then on activate to make the payment acquirer available on Odoo.
+
+.. warning::
+ We recommend using the *Test Mode* on a duplicated database or a test database. The Test Mode is
+ meant to be used with your test/sandbox credentials, but Odoo generates Sales Orders and Invoices
+ as usual. It isn't always possible to cancel an invoice, and this could create some issues with
+ your invoices numbering if you were to test your payment acquirers on your main database.
+
+.. _payment_acquirers/credentials_tab:
+
+Credentials tab
+~~~~~~~~~~~~~~~
+
+If not done yet, go to the **Online Payment Provider**'s website, create an account, and make sure
+to have the credentials required for third-party use. Odoo requires these credentials to communicate
+with the Payment Acquirer and get the confirmation of the *payment authentication*.
+
+The form in this section is specific to the Payment Acquirer you are configuring. Please refer to
+the related documentation for more information.
+
+.. _payment_acquirers/configuration_tab:
+
+Configuration tab
+~~~~~~~~~~~~~~~~~
+
+You can change the Payment Acquirer front-end appearance by modifying its name under the **Displayed
+as** field and which credit card icons to display under the **Supported Payment Icons** field.
+
+.. _payment_acquirers/save_cards:
+
+Save and reuse Credit Cards
+***************************
+
+With the **Save Cards** feature, Odoo can store **Payment Tokens** in your database, which can be
+used for subsequent payments, without having to reenter the payment details. This is particularly
+useful for subscriptions' recurring payments.
+
+.. _payment_acquirers/capture_amount:
+
+Place a hold on a card
+**********************
+
+If the **Capture Amount Manually** field is enabled, the funds are reserved for a few days on the
+customer's card, but not charged yet. You must then go to the related Sales Order and manually
+*capture* the funds before its automatic cancellation, or *void the transaction* to unlock the funds
+from the customer's card.
+
+.. _payment_acquirers/payment_flow:
+
+Payment Flow
+************
+
+Choose in the **Payment Flow** field if to redirect the user to the payment acquirer's portal to
+authenticate the payment, or if to stay on the current page and authenticate the payment from Odoo.
+
+.. note::
+ Some features are available only if you select *Redirection to the acquirer website*.
+
+.. _payment_acquirers/countries:
+
+Countries
+*********
+
+Restrict the use of the Payment Acquirer to a selection of countries. Leave this field blank to make
+the Payment Acquirer available to all countries.
+
+.. _payment_acquirers/journal:
+
+Payment Journal
+***************
+
+The **Payment Journal** selected for your Payment Acquirer must be a *Bank* journal.
+
+.. important::
+ In many cases, Odoo automatically creates a new **Journal** and a new **Account** when you
+ activate a new Payment Acquirer. Both of them are preset to work out-of-the-box, but we strongly
+ recommend you to make sure these fields are correctly set according to your accounting needs, and
+ adapt them if necessary.
+
+.. _payment_acquirers/messages:
+
+Messages tab
+~~~~~~~~~~~~
+
+Change here the messages displayed by Odoo after a payment's confirmation or failure.
+
+.. _payment_acquirers/accounting:
+
+Accounting perspective
+======================
+
+The **Bank Payments** that go directly to one of your bank accounts follow their usual
+reconciliation workflows. However, payments recorded with **Online Payment Providers** require you
+to consider how you want to record your payments' journal entries. We recommend you to ask your
+accountant for advice.
+
+Odoo default method is to record the payments on a *Current Assets Account*, on a dedicated *Bank
+Journal*, once the *Payment Authentication* is confirmed. At some point, you transfer the funds from
+the *Payment Acquirer* to your *Bank Account*.
+
+Here are the requirements for this to work:
+
+- Bank Journal
+
+ - The Journal's **type** must be *Bank Journal*.
+ - Select the right **Default Debit Account** and **Default Credit Account**.
+ - | Under the *Advanced Settings* tab, make sure that **Posting** is set as *Post At Payment
+ Validation*.
+ | This implies that the Journal Entry is recorded directly when your Odoo database receives the
+ confirmation of the *Payment Authentication* from the Online Payment Provider.
+
+- Current Asset Account
+
+ - The Account's **type** is *Current Assets*
+ - The Account must **Allow Reconciliation**
+
+.. note::
+ In many cases, Odoo automatically creates a new **Journal** and a new **Current Asset Account**
+ when you activate a new Payment Acquirer. You can modify them if necessary.
+
+.. seealso::
+
+ - :doc:`../../accounting/receivables/customer_payments/recording`
+ - :doc:`wire_transfer`
+ - :doc:`authorize`
+ - :doc:`paypal`
\ No newline at end of file
diff --git a/ecommerce/shopper_experience/paypal.rst b/general/payment_acquirers/paypal.rst
similarity index 98%
rename from ecommerce/shopper_experience/paypal.rst
rename to general/payment_acquirers/paypal.rst
index 8c79f0887..bbf7a4d06 100644
--- a/ecommerce/shopper_experience/paypal.rst
+++ b/general/payment_acquirers/paypal.rst
@@ -203,5 +203,5 @@ when a fictitious transaction is completed.
Run a test transaction from Odoo using the sandbox personal account.
.. seealso::
- - :doc:`payment`
- - :doc:`payment_acquirer`
+ - :doc:`payment_acquirers`
+ - :doc:`../../ecommerce/shopper_experience/payment_acquirer`
diff --git a/ecommerce/shopper_experience/wire_transfer.rst b/general/payment_acquirers/wire_transfer.rst
similarity index 100%
rename from ecommerce/shopper_experience/wire_transfer.rst
rename to general/payment_acquirers/wire_transfer.rst
diff --git a/helpdesk/overview.rst b/helpdesk/overview.rst
index b6ad93939..b7084d2cd 100644
--- a/helpdesk/overview.rst
+++ b/helpdesk/overview.rst
@@ -8,3 +8,6 @@ Overview
overview/getting_started
overview/sla
overview/receiving_tickets
+ overview/reports
+ overview/forum_and_elearning
+ overview/ratings
diff --git a/helpdesk/overview/forum_and_elearning.rst b/helpdesk/overview/forum_and_elearning.rst
new file mode 100644
index 000000000..75469b0cc
--- /dev/null
+++ b/helpdesk/overview/forum_and_elearning.rst
@@ -0,0 +1,73 @@
+===================
+Forum and eLearning
+===================
+
+Forum
+=====
+
+To go above and beyond email, live chat, web forms, and phone lines, offer your customers a
+support forum. This way, customers might become more attached to your company as they would be
+investing time to get into details of your business. You also encourage the exchange of experiences
+and knowledge, supporting the feeling of belonging to a community (your community!).
+
+Set up
+------
+
+Go to :menuselection:`Helpdesk --> Configuration --> Helpdesk Team` and enable *Help Center*.
+
+.. image:: media/help_center_feature.png
+ :align: center
+ :alt: Overview of the settings page of a helpdesk team emphasizing the help center feature in
+ Odoo Helpdesk
+
+Create, or edit a forum by clicking on the external link. Among the editing options, choose
+if you would like the *Forum Mode* to be *Questions*: only one answer is allowed per question or
+*Discussions*: multiple answers are allowed per question.
+
+.. image:: media/help_center_customer_care.png
+ :align: center
+ :alt: Overview of a forum’s settings page in Odoo Helpdesk
+
+From now on, logged in users can start their discussions. To keep track of posts, go to
+:menuselection:`Website --> Forum --> Posts`.
+
+.. image:: media/customer_care_website.png
+ :align: center
+ :alt: Overview of the Forums page of a website to show the available ones in Odoo Helpdesk
+
+Turn tickets into forum posts by simply clicking on *Share on the Forum* on the ticket's page.
+
+.. image:: media/share_forum.png
+ :align: center
+ :alt: Overview of the Forums page of a website to show the available ones in Odoo Helpdesk
+
+eLearning
+=========
+
+In addition to a forum, offer online courses. When doing so, you link your customers and users’
+needs and questions to useful content, helping to boost efficiency as they can also find their
+answers there.
+
+Set up
+------
+
+Go to :menuselection:`Helpdesk --> Configuration --> Helpdesk Teams` and enable *eLearning*.
+
+.. image:: media/elearning_feature.png
+ :align: center
+ :alt: Overview of the settings page of a customer care team emphasizing the feature elearning in
+ Odoo Helpdesk
+
+Once the structure and content of your course are ready, *Publish* it by clicking on *Unpublished*.
+
+.. image:: media/course_website.png
+ :align: center
+ :alt: View of a course being published for Odoo Helpdesk
+
+To keep track of your course statistics, go to *eLearning* and *View Course*.
+
+.. image:: media/view_course_elearning.png
+ :align: center
+ :alt: View of the elearning applications dashboard for Odoo Helpdesk
+
+.. todo:: DETAILS/INFO SHOULD COME FROM ELEARNING DOCS. THEREFORE, LINK DOCS ONCE AVAILABLE!
\ No newline at end of file
diff --git a/helpdesk/overview/media/course_website.png b/helpdesk/overview/media/course_website.png
new file mode 100644
index 000000000..fac66f08e
Binary files /dev/null and b/helpdesk/overview/media/course_website.png differ
diff --git a/helpdesk/overview/media/customer_care_website.png b/helpdesk/overview/media/customer_care_website.png
new file mode 100644
index 000000000..5b3b0e7d6
Binary files /dev/null and b/helpdesk/overview/media/customer_care_website.png differ
diff --git a/helpdesk/overview/media/customer_portal.png b/helpdesk/overview/media/customer_portal.png
new file mode 100644
index 000000000..a1ac19f7c
Binary files /dev/null and b/helpdesk/overview/media/customer_portal.png differ
diff --git a/helpdesk/overview/media/edit_stage.png b/helpdesk/overview/media/edit_stage.png
new file mode 100644
index 000000000..b361afd52
Binary files /dev/null and b/helpdesk/overview/media/edit_stage.png differ
diff --git a/helpdesk/overview/media/elearning_feature.png b/helpdesk/overview/media/elearning_feature.png
new file mode 100644
index 000000000..791c37d0a
Binary files /dev/null and b/helpdesk/overview/media/elearning_feature.png differ
diff --git a/helpdesk/overview/media/email_customer_feedback.png b/helpdesk/overview/media/email_customer_feedback.png
new file mode 100644
index 000000000..df4758f4d
Binary files /dev/null and b/helpdesk/overview/media/email_customer_feedback.png differ
diff --git a/helpdesk/overview/media/favorites.png b/helpdesk/overview/media/favorites.png
new file mode 100644
index 000000000..dd7bd81f0
Binary files /dev/null and b/helpdesk/overview/media/favorites.png differ
diff --git a/helpdesk/overview/media/help_center_customer_care.png b/helpdesk/overview/media/help_center_customer_care.png
new file mode 100644
index 000000000..c06c426c2
Binary files /dev/null and b/helpdesk/overview/media/help_center_customer_care.png differ
diff --git a/helpdesk/overview/media/help_center_feature.png b/helpdesk/overview/media/help_center_feature.png
new file mode 100644
index 000000000..0e22d4a3f
Binary files /dev/null and b/helpdesk/overview/media/help_center_feature.png differ
diff --git a/helpdesk/overview/media/ratings_on_tickets.png b/helpdesk/overview/media/ratings_on_tickets.png
new file mode 100644
index 000000000..e2fcf2261
Binary files /dev/null and b/helpdesk/overview/media/ratings_on_tickets.png differ
diff --git a/helpdesk/overview/media/report_close_date_team.png b/helpdesk/overview/media/report_close_date_team.png
new file mode 100644
index 000000000..d19e995c1
Binary files /dev/null and b/helpdesk/overview/media/report_close_date_team.png differ
diff --git a/helpdesk/overview/media/report_team_ticket_type.png b/helpdesk/overview/media/report_team_ticket_type.png
new file mode 100644
index 000000000..deed1c0ae
Binary files /dev/null and b/helpdesk/overview/media/report_team_ticket_type.png differ
diff --git a/helpdesk/overview/media/report_time_to_close.png b/helpdesk/overview/media/report_time_to_close.png
new file mode 100644
index 000000000..57d6daebc
Binary files /dev/null and b/helpdesk/overview/media/report_time_to_close.png differ
diff --git a/helpdesk/overview/media/share_forum.png b/helpdesk/overview/media/share_forum.png
new file mode 100644
index 000000000..9b0854524
Binary files /dev/null and b/helpdesk/overview/media/share_forum.png differ
diff --git a/helpdesk/overview/media/view_course_elearning.png b/helpdesk/overview/media/view_course_elearning.png
new file mode 100644
index 000000000..a7e449777
Binary files /dev/null and b/helpdesk/overview/media/view_course_elearning.png differ
diff --git a/helpdesk/overview/ratings.rst b/helpdesk/overview/ratings.rst
new file mode 100644
index 000000000..ad1a199bd
--- /dev/null
+++ b/helpdesk/overview/ratings.rst
@@ -0,0 +1,52 @@
+=======
+Ratings
+=======
+
+Allow customers to rate their experience with your helpdesk teams to strengthen your credibility and
+gain their trust. Reviews can also influence a customer’s decision and open space for feedback that
+can help you improve the quality of your services.
+
+Set up
+======
+
+Go to :menuselection:`Helpdesk --> Configuration --> Helpdesk Teams` and enable *Ratings on
+tickets*. The feature automatically adds a default email template on the non-folded *closing
+stage(s)* of that team.
+
+.. image:: media/ratings_on_tickets.png
+ :align: center
+ :alt: Overview of the settings page of a helpdesk team emphasizing the rating on ticket feature
+ in Odoo Helpdesk
+
+To edit the email template and the stage(s) set as the closing ones, go to the Kanban view of your
+helpdesk team and click on *Settings*, then on *Edit Stage*.
+
+.. image:: media/edit_stage.png
+ :align: center
+ :alt: Overview of a helpdesk team kanban view emphasizing the menu edit stage in Odoo Helpdesk
+
+Now, once a ticket reaches the stage(s) designated as the *Closing Stage*, an email is sent to the
+customer.
+
+.. image:: media/email_customer_feedback.png
+ :align: center
+ :alt: View of a standard helpdesk customer review email template for Odoo Helpdesk
+
+Ratings can be seen on the :doc:`chatter <../../project/tasks/collaborate>` of each ticket, under
+the *See Customer Satisfaction* link on the main dashboard, and through *Reporting*.
+
+Ratings visible on the customer portal
+--------------------------------------
+
+Go to :menuselection:`Helpdesk --> Configuration --> Helpdesk Teams` and enable *Display Rating on
+Customer Portal*. Now, by clicking on the helpdesk team’s name on their ticket, customers can see
+its ratings.
+
+.. image:: media/customer_portal.png
+ :align: center
+ :alt: View of the helpdesk ticket from a user’s portal emphasizing the link to the helpdesk team
+ in Odoo Helpdesk
+
+.. seealso::
+ - :doc:`../../portal/my_odoo_portal`
+ - :doc:`../advanced/close_tickets`
diff --git a/helpdesk/overview/receiving_tickets.rst b/helpdesk/overview/receiving_tickets.rst
index a1a1ef7cb..e5f9e4769 100644
--- a/helpdesk/overview/receiving_tickets.rst
+++ b/helpdesk/overview/receiving_tickets.rst
@@ -84,7 +84,6 @@ the Kanban view.
:alt: View of a team’s kanban view and the prioritized tasks in Odoo Helpdesk
.. seealso::
- - :doc:`../../discuss/email_servers`
- :doc:`sla`
- :doc:`../advanced/close_tickets`
-
+ - :doc:`../../discuss/advanced/email_servers`
diff --git a/helpdesk/overview/reports.rst b/helpdesk/overview/reports.rst
new file mode 100644
index 000000000..3d9974596
--- /dev/null
+++ b/helpdesk/overview/reports.rst
@@ -0,0 +1,60 @@
+============================
+Reports for a Better Support
+============================
+
+An efficient customer service solution should have a built-in reporting option. Reports allow you to
+track trends, identify areas for improvement, manage employees’ workloads and, most importantly,
+meet your customer’s expectations.
+
+Cases
+~~~~~
+
+Some examples of the reports Odoo Helpdesk can generate include:
+
+- The number of tickets *grouped by* team and ticket type.
+
+| In this manner, you are able to evaluate which ticket types have been the most frequent ones,
+ plus the workload of your teams.
+| Apply *Time Ranges* if you would like to make comparisons to a *Previous Period* or a *Previous
+ Year*.
+
+.. image:: media/report_team_ticket_type.png
+ :align: center
+ :alt: View of a helpdesk ticket analysis by team and ticket type in Odoo Helpdesk
+
+- The number of tickets closed per day, per team.
+
+Get an overview of how many requests each team is closing per day in order to measure their
+performance. Identify productivity levels to understand how many requests they are able to handle.
+
+.. image:: media/report_close_date_team.png
+ :align: center
+ :alt: View of a helpdesk ticket analysis by team and close date in Odoo Helpdesk
+
+.. tip::
+ Filter it by *Assignee* to see Key Performance Indicators (KPI) per agent.
+
+- The number of hours tickets are taking to be solved, grouped by team and ticket type.
+
+Check if your expectations are met by *measuring* the *Time to close (hours)*. Your
+customers not only expect fast responses but they also want their issues to be handled quickly.
+
+.. image:: media/report_time_to_close.png
+ :align: center
+ :alt: View of helpdesk ticket analysis of the hours to close by ticket type and team in
+ Odoo Helpdesk
+
+Save filters
+~~~~~~~~~~~~
+
+Save the filters you use the most and avoid having to reconstruct them every time they are
+needed. To do so, set the groups, filters, and measures needed. Then, go to *Favorites*.
+
+.. image:: media/favorites.png
+ :align: center
+ :alt: View of helpdesk ticket analysis emphasizing the option to add a filter as a favorite one
+ in Odoo Helpdesk
+
+.. seealso::
+ - :doc:`receiving_tickets`
+ - :doc:`sla`
diff --git a/inventory/management/incoming/media/three_steps_02.png b/inventory/management/incoming/media/three_steps_02.png
index 8db3cedf4..5320536cf 100644
Binary files a/inventory/management/incoming/media/three_steps_02.png and b/inventory/management/incoming/media/three_steps_02.png differ
diff --git a/inventory/management/incoming/media/three_steps_03.png b/inventory/management/incoming/media/three_steps_03.png
index 5489a6f91..65477b699 100644
Binary files a/inventory/management/incoming/media/three_steps_03.png and b/inventory/management/incoming/media/three_steps_03.png differ
diff --git a/inventory/management/incoming/media/three_steps_04.png b/inventory/management/incoming/media/three_steps_04.png
index 32e026b4e..56d35c599 100644
Binary files a/inventory/management/incoming/media/three_steps_04.png and b/inventory/management/incoming/media/three_steps_04.png differ
diff --git a/inventory/management/incoming/media/three_steps_05.png b/inventory/management/incoming/media/three_steps_05.png
index a2a3ea9f6..c317fbafe 100644
Binary files a/inventory/management/incoming/media/three_steps_05.png and b/inventory/management/incoming/media/three_steps_05.png differ
diff --git a/inventory/management/incoming/media/three_steps_06.png b/inventory/management/incoming/media/three_steps_06.png
index 3dc4fb536..05164f6ba 100644
Binary files a/inventory/management/incoming/media/three_steps_06.png and b/inventory/management/incoming/media/three_steps_06.png differ
diff --git a/inventory/management/incoming/media/three_steps_07.png b/inventory/management/incoming/media/three_steps_07.png
index 28029f4d4..7583b01cf 100644
Binary files a/inventory/management/incoming/media/three_steps_07.png and b/inventory/management/incoming/media/three_steps_07.png differ
diff --git a/inventory/management/incoming/media/three_steps_08.png b/inventory/management/incoming/media/three_steps_08.png
index f6c141afe..030e8bbd6 100644
Binary files a/inventory/management/incoming/media/three_steps_08.png and b/inventory/management/incoming/media/three_steps_08.png differ
diff --git a/inventory/management/incoming/media/three_steps_09.png b/inventory/management/incoming/media/three_steps_09.png
index d5ae186b7..1a1ee6883 100644
Binary files a/inventory/management/incoming/media/three_steps_09.png and b/inventory/management/incoming/media/three_steps_09.png differ
diff --git a/inventory/management/incoming/three_steps.rst b/inventory/management/incoming/three_steps.rst
index beedd11a2..585dca3e8 100644
--- a/inventory/management/incoming/three_steps.rst
+++ b/inventory/management/incoming/three_steps.rst
@@ -2,113 +2,108 @@
Process a Receipt in three steps (Input + Quality + Stock)
==========================================================
-In many companies, it is necessary to assess the received good. The goal
-is to check that the products correspond to the quality requirements
-agreed with the suppliers. Therefore, adding a *quality control step*
-in the goods receipt process can become essential.
+Quality is essential for most companies. To make sure we maintain quality throughout the supply
+chain, it only makes sense that we assess the quality of the products received from suppliers.
+To do so, we will add a quality control step.
-Odoo uses routes to define exactly how you will handle the different
-receipt steps. The configuration is done at the level of the warehouse.
-By default, the reception is a one-step process, but changing the
-configuration can allow having 3 steps.
+Odoo uses routes to define how to handle the different receipt steps.
+Configuration of those routes is done at the warehouse level. By default, the reception is a
+one-step process, but it can also be configured to have two-steps or three-steps processes.
-The 3-steps flow is as follows: You receive the goods in an input area,
-then transfer them into a quality area for *quality control*. When the
-quality check has been processed, you can move the goods from QC to
-stock. Of course, you may change the quantity and only transfer to stock
-the quantity that is valid and decide that you will return the quantity
-that is not good.
+The three-steps flow works as follows: you receive the goods in your receiving area, then transfer
+them into a quality area for quality control (QC). When the quality check is completed, the goods
+that match the QC requirements are moved to stock
-Multi-Step Routes
-=================
+Activate Multi-Step Routes
+==========================
-First, you will need to activate the *multi-step routes* option.
-Indeed, routes provide a mechanism to chain different actions together.
-Here, we will chain the picking to the shipping.
+The first step is to allow the use of *Multi-Step Routes*. Routes provide a mechanism to chain different
+actions together. In this case, we will chain the picking step to the shipping step.
-To activate *multi-step routes*, open the *inventory app*, and go to
-:menuselection:`Configuration --> Settings` and activate the option. By default,
-activating *multi-step routes* will also activate *Storage
-Locations*.
+To enable *Multi-Step Routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
+activate the option.
.. image:: media/three_steps_01.png
:align: center
+ :alt: View of the features to enable in order to use multi-step routes for goods reception
-Warehouse configuration
-=======================
+.. note::
+ By default, activating *Multi-Step Routes* also activates *Storage
+ Locations*.
-Now that *Multi-Step Routes* is activated, go to :menuselection:`Configuration -->
-Warehouse` and open the one you will use to deliver in 3 steps. Then,
-you can select the option *Pack good, send goods in output and then
-deliver (3 steps)* as *Outgoing Shipments*.
+Configure warehouse for receipt in 3-steps
+==========================================
+
+Once *Multi-Step Routes* has been activated, go to :menuselection:`Inventory --> Configuration -->
+Warehouse` and enter the warehouse which should work with the 3-steps reception. Then, select
+*Receive goods in input, then quality and then stock (3 steps)* for *Incoming Shipments*.
.. image:: media/three_steps_02.png
:align: center
+ :alt: View of the incoming shipment strategy to choose to receive goods in three steps
-Activating this option will lead to the creation of two new locations,
-*Output* and *Packing Zone*.
+Activating this option leads to the creation of two new locations: *Input* and *Quality Control*.
+To rename them, go to :menuselection:`Inventory --> Configuration --> Locations` and select
+the one you want to rename.
-Of course, you can rename them if you want. To do so, go to
-:menuselection:`Configuration --> Locations` and select the one you want to rename.
-Change its name and hit save.
+Create a Purchase Order
+=======================
-Create a Sales Order
-====================
+To start the 3-steps reception process, create a *Request for Quotation* from the *Purchase* app,
+add some storable products to it and confirm. Then, three pickings are created with your *Purchase
+Order* as the source document:
-In the *Sales* app, create a quotation with storable products to
-deliver. Then, confirm it and three pickings will be created and linked
-to your sale order.
+1. The first one with a reference *IN* to designate the receipt
+ process;
+
+2. The second one with a reference *INT*, which is the move to the
+ quality control zone;
+
+3. The last one with a reference *INT* to designate the move to stock.
.. image:: media/three_steps_03.png
:align: center
+ :alt: View of the three moves created by the purchase of products in three steps strategy
-Now, click on the button. You should see three different pickings:
+Process the receipt, quality control and entry in stock
+=======================================================
-- The first one, with a reference PICK, designates the picking process;
+As the receipt operation is the first one to be processed, it has a *Ready* status while the others
+are *Waiting Another Operation*.
-- The second one, with a reference PACK, is for the packing process;
-
-- The third one, with a reference OUT, designates the shipping process.
+To access the receipt operation, click on the button from the *Purchase Order* or go back to the
+*Inventory* app dashboard and click on *Receipts*.
.. image:: media/three_steps_04.png
:align: center
+ :alt: View of the button to click to see the receipts that need to be processed
-Process the picking, packing, and delivery
-==========================================
-
-The first operation to be processed is the picking and has a *Ready*
-status, while the others are *Waiting Another Operation*. The packing
-will become *Ready* as soon as the picking is marked as *Done*.
-
-You can enter the picking operation from here, or access it through the
-inventory app.
+In the receipt order, products are always considered available because they come from the supplier.
+Then, the receipt can be validated.
.. image:: media/three_steps_05.png
:align: center
+ :alt: View of the move (internal transfer) from the reception area to the warehouse input area
-Note that, if you have the product in stock, it will be automatically
-reserved and you can validate the picking document.
+Once the receipt has been validated, the transfer to quality becomes *Ready*. And, because the documents
+are chained to each other, products previously received are automatically reserved on the
+transfer. Then, the transfer can be directly validated.
.. image:: media/three_steps_06.png
:align: center
-
-Now that the picking has been validated, the packing order is ready to
-be processed. Since the documents are chained, the products that have
-been picked are automatically reserved on the packing order so you can
-directly validate it.
+ :alt: View of the button to click to see the internal transfers that need to be processed
.. image:: media/three_steps_07.png
:align: center
+ :alt: View of the move (internal transfer) from the input area to the quality control area
+
+Now, the transfer that enters the products to stock is *Ready*. Here, it is again ready to be
+validated in order to transfer the products to your stock location.
.. image:: media/three_steps_08.png
:align: center
-
-Then, you can validate your packing. In doing so, the delivery order can
-be processed. Once again, it will be ready to be validated so you can
-transfer the products to the customer location.
+ :alt: View of the button to click to see the internal transfers that need to be processed
.. image:: media/three_steps_09.png
:align: center
-
-.. image:: media/three_steps_10.png
- :align: center
\ No newline at end of file
+ :alt: View of the move (internal transfer) from the quality control area to the stock
\ No newline at end of file
diff --git a/inventory/routes/concepts.rst b/inventory/routes/concepts.rst
index 3de662b61..d94963adb 100644
--- a/inventory/routes/concepts.rst
+++ b/inventory/routes/concepts.rst
@@ -6,9 +6,7 @@ Concepts
:titlesonly:
:glob:
- concepts/use_routes
- concepts/procurement_rule
- concepts/push_rule
+ concepts/use-routes
concepts/inter_warehouse
concepts/cross_dock
concepts/stock_warehouses
\ No newline at end of file
diff --git a/inventory/routes/concepts/media/add-new-rules.png b/inventory/routes/concepts/media/add-new-rules.png
new file mode 100644
index 000000000..37f4affe7
Binary files /dev/null and b/inventory/routes/concepts/media/add-new-rules.png differ
diff --git a/inventory/routes/concepts/media/add-routes-to-sales-lines.png b/inventory/routes/concepts/media/add-routes-to-sales-lines.png
new file mode 100644
index 000000000..2eae5d7e2
Binary files /dev/null and b/inventory/routes/concepts/media/add-routes-to-sales-lines.png differ
diff --git a/inventory/routes/concepts/media/advanced-custom-route.png b/inventory/routes/concepts/media/advanced-custom-route.png
new file mode 100644
index 000000000..418f68372
Binary files /dev/null and b/inventory/routes/concepts/media/advanced-custom-route.png differ
diff --git a/inventory/routes/concepts/media/applicable-on-products.png b/inventory/routes/concepts/media/applicable-on-products.png
new file mode 100644
index 000000000..fe724d4f3
Binary files /dev/null and b/inventory/routes/concepts/media/applicable-on-products.png differ
diff --git a/inventory/routes/concepts/media/applicable-on-sales-order-lines.png b/inventory/routes/concepts/media/applicable-on-sales-order-lines.png
new file mode 100644
index 000000000..e61e8a650
Binary files /dev/null and b/inventory/routes/concepts/media/applicable-on-sales-order-lines.png differ
diff --git a/inventory/routes/concepts/media/applicable-on-warehouse.png b/inventory/routes/concepts/media/applicable-on-warehouse.png
new file mode 100644
index 000000000..82a8d81da
Binary files /dev/null and b/inventory/routes/concepts/media/applicable-on-warehouse.png differ
diff --git a/inventory/routes/concepts/media/detailed-operations-2.png b/inventory/routes/concepts/media/detailed-operations-2.png
new file mode 100644
index 000000000..68861ce54
Binary files /dev/null and b/inventory/routes/concepts/media/detailed-operations-2.png differ
diff --git a/inventory/routes/concepts/media/detailed-operations-transfer.png b/inventory/routes/concepts/media/detailed-operations-transfer.png
new file mode 100644
index 000000000..e0635cb1a
Binary files /dev/null and b/inventory/routes/concepts/media/detailed-operations-transfer.png differ
diff --git a/inventory/routes/concepts/media/example-preconfigured-warehouse.png b/inventory/routes/concepts/media/example-preconfigured-warehouse.png
new file mode 100644
index 000000000..e0e9485d6
Binary files /dev/null and b/inventory/routes/concepts/media/example-preconfigured-warehouse.png differ
diff --git a/inventory/routes/concepts/media/multi-steps-routes-feature.png b/inventory/routes/concepts/media/multi-steps-routes-feature.png
new file mode 100644
index 000000000..860e1f969
Binary files /dev/null and b/inventory/routes/concepts/media/multi-steps-routes-feature.png differ
diff --git a/inventory/routes/concepts/media/on-product-route.png b/inventory/routes/concepts/media/on-product-route.png
new file mode 100644
index 000000000..a5ab31c6f
Binary files /dev/null and b/inventory/routes/concepts/media/on-product-route.png differ
diff --git a/inventory/routes/concepts/media/operations-on-transfers.png b/inventory/routes/concepts/media/operations-on-transfers.png
new file mode 100644
index 000000000..c66f4007b
Binary files /dev/null and b/inventory/routes/concepts/media/operations-on-transfers.png differ
diff --git a/inventory/routes/concepts/media/preconfigured-routes.png b/inventory/routes/concepts/media/preconfigured-routes.png
new file mode 100644
index 000000000..28bb9dc79
Binary files /dev/null and b/inventory/routes/concepts/media/preconfigured-routes.png differ
diff --git a/inventory/routes/concepts/media/procurement_rule01.png b/inventory/routes/concepts/media/procurement_rule01.png
deleted file mode 100644
index 5e47542ec..000000000
Binary files a/inventory/routes/concepts/media/procurement_rule01.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/procurement_rule02.png b/inventory/routes/concepts/media/procurement_rule02.png
deleted file mode 100644
index 8a582a563..000000000
Binary files a/inventory/routes/concepts/media/procurement_rule02.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/procurement_rule03.png b/inventory/routes/concepts/media/procurement_rule03.png
deleted file mode 100644
index 870fa4fa4..000000000
Binary files a/inventory/routes/concepts/media/procurement_rule03.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/pull-from-rule-example.png b/inventory/routes/concepts/media/pull-from-rule-example.png
new file mode 100644
index 000000000..6de2bebeb
Binary files /dev/null and b/inventory/routes/concepts/media/pull-from-rule-example.png differ
diff --git a/inventory/routes/concepts/media/pull-from-rule-stock-to-packing.png b/inventory/routes/concepts/media/pull-from-rule-stock-to-packing.png
new file mode 100644
index 000000000..71ca15d79
Binary files /dev/null and b/inventory/routes/concepts/media/pull-from-rule-stock-to-packing.png differ
diff --git a/inventory/routes/concepts/media/push-to-rule-example.png b/inventory/routes/concepts/media/push-to-rule-example.png
new file mode 100644
index 000000000..19fbc8e1d
Binary files /dev/null and b/inventory/routes/concepts/media/push-to-rule-example.png differ
diff --git a/inventory/routes/concepts/media/push_rule01.png b/inventory/routes/concepts/media/push_rule01.png
deleted file mode 100644
index 5e47542ec..000000000
Binary files a/inventory/routes/concepts/media/push_rule01.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/push_rule02.png b/inventory/routes/concepts/media/push_rule02.png
deleted file mode 100644
index 6efc961ea..000000000
Binary files a/inventory/routes/concepts/media/push_rule02.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/push_rule03.png b/inventory/routes/concepts/media/push_rule03.png
deleted file mode 100644
index 3b012066f..000000000
Binary files a/inventory/routes/concepts/media/push_rule03.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/push_rule04.png b/inventory/routes/concepts/media/push_rule04.png
deleted file mode 100644
index d458da311..000000000
Binary files a/inventory/routes/concepts/media/push_rule04.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/routes-example.png b/inventory/routes/concepts/media/routes-example.png
new file mode 100644
index 000000000..c4e3cbb5d
Binary files /dev/null and b/inventory/routes/concepts/media/routes-example.png differ
diff --git a/inventory/routes/concepts/media/routes-logistic-tab.png b/inventory/routes/concepts/media/routes-logistic-tab.png
new file mode 100644
index 000000000..300a56f2f
Binary files /dev/null and b/inventory/routes/concepts/media/routes-logistic-tab.png differ
diff --git a/inventory/routes/concepts/media/rules-example.png b/inventory/routes/concepts/media/rules-example.png
new file mode 100644
index 000000000..f49ba6475
Binary files /dev/null and b/inventory/routes/concepts/media/rules-example.png differ
diff --git a/inventory/routes/concepts/media/sales-order-lines-routes-application.png b/inventory/routes/concepts/media/sales-order-lines-routes-application.png
new file mode 100644
index 000000000..4fe294b75
Binary files /dev/null and b/inventory/routes/concepts/media/sales-order-lines-routes-application.png differ
diff --git a/inventory/routes/concepts/media/stock-example.png b/inventory/routes/concepts/media/stock-example.png
new file mode 100644
index 000000000..3aeff653a
Binary files /dev/null and b/inventory/routes/concepts/media/stock-example.png differ
diff --git a/inventory/routes/concepts/media/transfers-overview.png b/inventory/routes/concepts/media/transfers-overview.png
new file mode 100644
index 000000000..48c0936b1
Binary files /dev/null and b/inventory/routes/concepts/media/transfers-overview.png differ
diff --git a/inventory/routes/concepts/media/transfers-status.png b/inventory/routes/concepts/media/transfers-status.png
new file mode 100644
index 000000000..934eaf41d
Binary files /dev/null and b/inventory/routes/concepts/media/transfers-status.png differ
diff --git a/inventory/routes/concepts/media/use_routes01.png b/inventory/routes/concepts/media/use_routes01.png
deleted file mode 100644
index 5e47542ec..000000000
Binary files a/inventory/routes/concepts/media/use_routes01.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes02.png b/inventory/routes/concepts/media/use_routes02.png
deleted file mode 100644
index ed1accd99..000000000
Binary files a/inventory/routes/concepts/media/use_routes02.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes03.png b/inventory/routes/concepts/media/use_routes03.png
deleted file mode 100644
index 72b5a58b8..000000000
Binary files a/inventory/routes/concepts/media/use_routes03.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes04.png b/inventory/routes/concepts/media/use_routes04.png
deleted file mode 100644
index 133921442..000000000
Binary files a/inventory/routes/concepts/media/use_routes04.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes05.png b/inventory/routes/concepts/media/use_routes05.png
deleted file mode 100644
index 21f61f025..000000000
Binary files a/inventory/routes/concepts/media/use_routes05.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes06.png b/inventory/routes/concepts/media/use_routes06.png
deleted file mode 100644
index 154f00ffd..000000000
Binary files a/inventory/routes/concepts/media/use_routes06.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes07.png b/inventory/routes/concepts/media/use_routes07.png
deleted file mode 100644
index f0e854332..000000000
Binary files a/inventory/routes/concepts/media/use_routes07.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes08.png b/inventory/routes/concepts/media/use_routes08.png
deleted file mode 100644
index e23bf5a5a..000000000
Binary files a/inventory/routes/concepts/media/use_routes08.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes09.png b/inventory/routes/concepts/media/use_routes09.png
deleted file mode 100644
index 5a2fbe967..000000000
Binary files a/inventory/routes/concepts/media/use_routes09.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes10.png b/inventory/routes/concepts/media/use_routes10.png
deleted file mode 100644
index f1d72e1b1..000000000
Binary files a/inventory/routes/concepts/media/use_routes10.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes11.png b/inventory/routes/concepts/media/use_routes11.png
deleted file mode 100644
index e0aa5b949..000000000
Binary files a/inventory/routes/concepts/media/use_routes11.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/use_routes12.png b/inventory/routes/concepts/media/use_routes12.png
deleted file mode 100644
index 92b64ff9f..000000000
Binary files a/inventory/routes/concepts/media/use_routes12.png and /dev/null differ
diff --git a/inventory/routes/concepts/media/waiting-status.png b/inventory/routes/concepts/media/waiting-status.png
new file mode 100644
index 000000000..87ef1db67
Binary files /dev/null and b/inventory/routes/concepts/media/waiting-status.png differ
diff --git a/inventory/routes/concepts/procurement_rule.rst b/inventory/routes/concepts/procurement_rule.rst
deleted file mode 100644
index 1e4dad793..000000000
--- a/inventory/routes/concepts/procurement_rule.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-===========================
-What is a procurement rule?
-===========================
-
-Overview
-========
-
-The procurement inventory control system begins with a customer's order.
-With this strategy, companies only make enough product to fulfill
-customer's orders. One advantage to the system is that there will be no
-excess of inventory that needs to be stored, thus reducing inventory
-levels and the cost of carrying and storing goods. However, one major
-disadvantage to the pull system is that it is highly possible to run
-into ordering dilemmas, such as a supplier not being able to get a
-shipment out on time. This leaves the company unable to fulfill the
-order and contributes to customer dissatisfaction.
-
-An example of a pull inventory control system is the make-to-order. The
-goal is to keep inventory levels to a minimum by only having enough
-inventory, not more or less, to meet customer demand. The MTO system
-eliminates waste by reducing the amount of storage space needed for
-inventory and the costs of storing goods.
-
-Configuration
-=============
-
-Procurement rules are part of the routes. Go to the Inventory
-application>Configuration>Settings and tick "Advance routing of products
-using rules".
-
-.. image:: media/procurement_rule01.png
- :align: center
-
-Procurement rules settings
-==========================
-
-The procurement rules are set on the routes. In the inventory
-application, go to :menuselection:`Configuration --> Routes`.
-
-In the Procurement rules section, click on Add an item.
-
-.. image:: media/procurement_rule02.png
- :align: center
-
-Here you can set the conditions of your rule. There are 3 types of
-action possible :
-
-- Move from another location rules
-
-- Manufacturing rules that will trigger the creation of manufacturing
- orders
-
-- Buy rules that will trigger the creation of purchase orders
-
-.. note::
- The Manufacturing application has to be installed in order to
- trigger manufacturing rules.
-
-.. note::
- The Purchase application has to be installed in order to trigger
- **buy** rules.
-
-.. image:: media/procurement_rule03.png
- :align: center
-
-.. note::
- Some Warehouse Configuration creates routes with procurement
- rules already defined.
-
-.. seealso::
- * :doc:`push_rule`
- * :doc:`inter_warehouse`
- * :doc:`cross_dock`
diff --git a/inventory/routes/concepts/push_rule.rst b/inventory/routes/concepts/push_rule.rst
deleted file mode 100644
index 3eb3b6b11..000000000
--- a/inventory/routes/concepts/push_rule.rst
+++ /dev/null
@@ -1,81 +0,0 @@
-====================
-What is a push rule?
-====================
-
-Overview
-=========
-
-The push system of inventory control involves forecasting inventory
-needs to meet customer demand. Companies must predict which products
-customers will purchase along with determining what quantity of goods
-will be purchased. The company will in turn produce enough product to
-meet the forecast demand and sell, or push, the goods to the consumer.
-Disadvantages of the push inventory control system are that forecasts
-are often inaccurate as sales can be unpredictable and vary from one
-year to the next. Another problem with push inventory control systems is
-that if too much product is left in inventory, this increases the
-company's costs for storing these goods. An advantage to the push system
-is that the company is fairly assured it will have enough product on
-hand to complete customer orders, preventing the inability to meet
-customer demand for the product.
-
-A push flow indicates how locations are chained with the other ones. As
-soon as a given quantity of products is moved in the source location, a
-chained move is automatically foreseen according to the parameters set
-on the flow specification (destination location, delay, type of move,
-journal). It can be triggered automatically or manually.
-
-Configuration
-=============
-
-Push rules are part of the routes. Go to the menu
-:menuselection:`Inventory --> Configuration --> Settings`
-and tick **Advance routing of products using rules**.
-
-.. image:: media/push_rule01.png
- :align: center
-
-Push rules settings
-===================
-
-The push rules are set on the routes.
-Go to :menuselection:`Configuration --> Routes`.
-
-In the push rule section, click on **Add an item**.
-
-.. image:: media/push_rule02.png
- :align: center
-
-Here you can set the conditions of your rule. In this example, when a
-good is in **Input location**, it needs to be moved to the quality control.
-In the 3 steps receipts, another push rule will make the goods that are
-in the quality control location move to the stock.
-
-.. image:: media/push_rule03.png
- :align: center
-
-.. note::
- Some warehouse configuration creates routes with push rules
- already defined.
-
-Stock transfers
-===============
-
-The push rule will trigger stock transfer. According to the rule set on
-your route, you will see that some transfers might be ready and other
-are waiting.
-
-The push rule that was set above will create moves from **WH/Input**
-location to the **WH/Quality Control** location.
-
-.. image:: media/push_rule04.png
- :align: center
-
-In this example, another move is waiting according to the second push
-rule, it defines that when the quality control is done, the goods will
-be moved to the main stock.
-
-.. seealso::
- * :doc:`procurement_rule`
- * :doc:`inter_warehouse`
- * :doc:`cross_dock`
diff --git a/inventory/routes/concepts/use-routes.rst b/inventory/routes/concepts/use-routes.rst
new file mode 100644
index 000000000..57335beaf
--- /dev/null
+++ b/inventory/routes/concepts/use-routes.rst
@@ -0,0 +1,375 @@
+================================
+Using Routes and Pull/Push Rules
+================================
+
+In inventory management, the supply chain strategy determines when
+products should be fabricated, delivered to distribution centers, and
+made available in the retail channel.
+
+This kind of strategic process can be configured using *Routes*,
+featuring *Pull and Push Rules*. Once everything is properly
+configured, the inventory app can automatically generate transfers
+following the instructions given by the rules. Yes, Odoo simplifies your
+life.
+
+Inside the warehouse
+====================
+
+Let’s imagine a generic warehouse plan, where you can find receiving
+docks, a quality control area, storage locations, picking and
+packing areas, and shipping docks. All products go
+through all these locations, which also trigger all the route's rules.
+
+.. image:: media/stock-example.png
+ :align: center
+ :alt: view of a generic warehouse with stock and quality control area
+
+In this example, vendor trucks unload pallets of ordered goods at receiving docks.
+Operators then scan the products in the receiving area. Some of these products are sent to a
+quality control area (those devoted to being used during the manufacturing process, for
+example), while others are directly stored in their respective locations.
+
+.. image:: media/push-to-rule-example.png
+ :align: center
+ :alt: view of a generic push to rule when receiving products
+
+Here is an example of a fulfillment route. In the morning, items are picked
+for all the orders that need to be prepared during the day. These items
+are picked from storage locations and moved to the picking area, close
+to where the orders are packed. Then, the orders are packed in their
+respective boxes and conveyors bring them close to the shipping docks,
+ready to be delivered to customers.
+
+.. image:: media/pull-from-rule-example.png
+ :align: center
+ :alt: view of a generic pull from rule when preparing deliveries
+
+How does it work?
+=================
+
+Pull Rules
+----------
+
+With *Pull Rules*, a demand for some products triggers procurements,
+while *Push Rules* are triggered by products arriving in a specific
+location.
+
+We can say that *Pull Rules* are used to fulfill a customer
+order, a sale order. So, Odoo generates a need at the *Customer
+Location* for each product in the order. Because *Pull Rules*
+are triggered by a need, Odoo looks for a *Pull Rule* defined on the
+*Customer Location*. In our case, a delivery order pull rule that
+transfers products from the *Shipping Area* to the *Customer
+Location* is found, and a transfer between the two locations is created.
+
+Then, Odoo finds another pull rule that tries to fulfill the need for
+the *Shipping Area*: the *Packing Rule* that transfers products from
+the *Packing Area* to the *Shipping Area*. And, finally, other rules
+are triggered until a transfer between the *Stock* and the *Picking
+Area* is created.
+
+.. note::
+ All theses transfers are pre-generated by Odoo, starting from the end and going backwards.
+ While working, the operator process these transfers in the opposite order: first the picking,
+ then the packing, then the delivery order.
+
+Push Rules
+----------
+
+On the other hand, *Push Rules* are much easier to understand. Instead
+of pre-generating documents based on needs, they are live-triggered when
+products arrive in a specific location. *Push Rules* basically say: "when a
+product arrives at a specific location, move it to another location."
+
+A simple example would be: when a product arrives in the *Receipt
+Area*, move them to the *Storage Location*. As different rules can be
+applied to different products, you can assign different storage
+locations for different products.
+
+Another rule could be: when products arrive at a location, move them to the
+*Quality Control Area*. Then, once the quality check is done, move
+them to their *Storage Location*.
+
+.. note::
+ *Push Rules* can be triggered only if no *Pull Rule* pre-generated
+ the upstream transfers.
+
+.. important::
+ Sets of rules like those are called routes. The grouping on the rule
+ defines how products are grouped in the same transfer or not. For
+ example, during the picking operation, all orders are grouped in one
+ transfer, whereas the packing operation respects the grouping per
+ customer order.
+
+Use Routes and Rules
+====================
+
+Since *Routes* are a collection of *Push and Pull Rules*, Odoo
+helps you manage advanced routes configuration such as:
+
+- Manage product manufacturing chains;
+- Manage default locations per product;
+- Define routes within your warehouse according to business needs, such
+ as quality control, after-sales services, or supplier returns;
+- Help rental management by generating automated return moves for
+ rented products.
+
+To configure a route such as one of those above, open the **Inventory
+Application** and go to :menuselection:`Configuration --> Settings`.
+Then, enable the *Multi-Step Routes* feature.
+
+.. image:: media/multi-steps-routes-feature.png
+ :align: center
+ :alt: activation of the multi-steps feature in Odoo Inventory
+
+.. note::
+ The *Storage Locations* feature is automatically activated with the
+ *Multi-Step Routes*.
+
+Once this first step is completed, you have the choice between
+pre-configured routes or custom ones. Both are explained below.
+
+Pre-configured Routes
+---------------------
+
+Odoo’s pre-configured routes are available in the warehouses’ menu. To
+find it, go to :menuselection:`Inventory --> Configuration -->
+Warehouses`. There, open your warehouse and edit it to see the
+pre-configured routes for incoming and outgoing shipments.
+
+.. image:: media/example-preconfigured-warehouse.png
+ :align: center
+ :alt: preconfigured warehouse in Odoo Inventory
+
+Some more advanced routes, such as pick-pack-ship, are already
+configured to make your life easier. Those are based on your choice for
+shipments. Once you made your choice, head to :menuselection:`Inventory -->
+Configuration --> Routes` to see the routes Odoo generated for you.
+
+.. image:: media/preconfigured-routes.png
+ :align: center
+ :alt: view of all the preconfigured routes Odoo offers
+
+Opening one of those routes allows you to see on what you can apply the route.
+Here, all the selected product categories in the
+*YourCompany* warehouse are set up to follow the 3-steps route.
+
+.. image:: media/routes-example.png
+ :align: center
+ :alt: view of a route example applicable on category and warehouse
+
+Easier for many businesses, this process might not fit yours. Thus,
+you can configure custom routes in which you can define your own
+rules, but also the source and destination location of each action. As
+an example, here are the rules for the pre-configured route.
+
+.. image:: media/rules-example.png
+ :align: center
+ :alt: rules example with push & pull actions in Odoo Inventory
+
+Custom Routes
+-------------
+
+To create a custom route, go to :menuselection:`Inventory -->
+Configuration --> Routes`, click on create, and choose the
+places where this route can be selected. Of course, combinations are
+available.
+
+.. image:: media/advanced-custom-route.png
+ :align: center
+ :alt: view of a pick - pack - ship route as an example
+
+Each place has a different behavior, so it is important to tick only the
+useful ones and adapt each route accordingly.
+
+When applying the route on a product category
+(:menuselection:`Inventory --> Configuration --> Product Categories`),
+all the rules configured in the route are applied to **every**
+product of the category. For example, this can be useful if you use the
+dropshipping process for all the products from the same category.
+
+.. image:: media/routes-logistic-tab.png
+ :align: center
+ :alt: view of a route applied to the "all" product category
+
+The same behavior applies to the warehouses. If you tick *Warehouses*,
+all the transfers occurring inside the chosen warehouse, and meeting the
+conditions of the linked rules, then follow that route.
+
+.. image:: media/applicable-on-warehouse.png
+ :align: center
+ :alt: view of the route menu when selecting applicable on warehouse
+
+For the *Sales Order Lines*, it is more or less the opposite. You have
+to choose the route yourself when creating a quotation. This is pretty useful if
+some products go through different routes.
+
+.. image:: media/applicable-on-sales-order-lines.png
+ :align: center
+ :alt: view of the route menu when selecting applicable on sales order lines
+
+If you work with this kind of route, it is important to keep in mind
+that it must be selected on the sales order, such as below.
+
+.. image:: media/add-routes-to-sales-lines.png
+ :align: center
+ :alt: view of the menu allowing to add new lines to sales orders
+
+Then, the route can be chosen on each line of the document.
+
+.. image:: media/sales-order-lines-routes-application.png
+ :align: center
+ :alt: view of the routes added to the sales orders
+
+Finally, there are routes that can be applied to products. Those work more or less
+like the product categories: once selected, you have to
+manually set on which product it must be applied.
+
+.. image:: media/applicable-on-products.png
+ :align: center
+ :alt: view of the menu when selecting applicable on products
+
+To do so, go to :menuselection:`Inventory --> Master Data -->
+Products` and open the one on which you want to apply the route. Then
+go to the *Inventory tab* and select the route you’ve created.
+
+.. image:: media/on-product-route.png
+ :align: center
+ :alt: view of a product form, where the route must be selected
+
+If, prima facie, the routes’ configuration can appear quite easy, don’t
+forget that we haven’t set up any rule yet. If not harder to set up, those
+are vital to have working routings.
+
+Rules
+~~~~~
+
+The rules are to be defined on the routes. To do so, go to
+:menuselection:`Inventory --> Configuration --> Routes`, then to the *Rules* section,
+and click on *Add a line* button.
+
+.. image:: media/add-new-rules.png
+ :align: center
+ :alt: view of the rules menu, where it is possible to add new rules
+
+The available rules trigger various actions. If Odoo offers *Push* and
+*Pull* rules, others are also available. Here are some explanations for
+all of them:
+
+- **Pull From**: this rule is triggered by a need for the product
+ in a specific stock location. The need can come from a sale order
+ which has been validated or for a manufacturing order which
+ requires a specific component. When the need appears in the
+ source location, Odoo generates a picking to fulfill this need.
+- **Push To**: this rule is triggered by the arrival of some
+ products in the defined source location. In case you move
+ products to the source location, Odoo generates a picking to move
+ those products to the destination location.
+- **Push & Pull**: it allows to generate pickings in the two
+ different situations explained above. It means that when products are
+ required at a specific location, a transfer is created from the previous location to fulfill
+ that need. Then, a need is created in the previous location and a rule is triggered to fulfill
+ it. Once the second need fulfilled, the products are pushed to the first location and all the
+ needs are fulfilled.
+- **Buy**: when products are needed at the source location, a
+ request for quotation is created to fulfill the need.
+- **Manufacture**: when products are needed in the source location,
+ a manufacturing order is created to fulfill the need.
+
+.. image:: media/pull-from-rule-stock-to-packing.png
+ :align: center
+ :alt: overview of a transfer requested between the stock and the packing zone
+
+You must also define the *Operation Type*. This
+operation allows defining which kind of picking is created from the
+rule. With our above screenshot, the created picking is, for example, an
+internal transfer.
+
+On the other hand, the *Supply Method*, allows defining what happens at
+the source location:
+
+- **Take From Stock**: the products are taken from the available
+ stock of the source location;
+- **Trigger Another Rule**: the system tries to find a stock rule
+ to bring the products to the source location. The available stock
+ is ignored.
+- **Take From Stock, if Unavailable, Trigger Another Rule**: the
+ products are taken from the available stock of the source
+ location. If there is no stock available, the system tries to
+ find a rule to bring the products to the source location.
+
+In the *Scheduling* section, you can determine how Odoo behaves when
+one of the chain's pickings is rescheduled. In case you decide to
+**Propagate Rescheduling**, the next move is also to be rescheduled.
+If you prefer having the choice to reschedule the next move,
+you can decide to receive an alert in the form of a
+*next activity*.
+
+What about a full flow?
+=======================
+
+Do you remember our Pick - Pack - Ship custom route? Let’s use it to
+try a full flow with an advanced custom route.
+
+First, a quick look at our rules and their supply methods: we have three
+rules, all **Pull From** rules. The supply methods are the
+following:
+
+- **Take From Stock**: When products are needed in WH/Packing Zone,
+ *Picks* (internal transfers from WH/Stock to WH/Packing Zone)
+ are created from WH/Stock to fulfill the need.
+- **Trigger Another Rule**: When products are needed in WH/Output,
+ *Packs* (internal transfers from WH/Packing Zone to WH/Output)
+ are created from WH/Packing Zone to fulfill the need.
+- **Trigger Another Rule**: When products are needed in Partner
+ Locations/Customers, Delivery Orders are created from WH/Output
+ to fulfill the need.
+
+.. image:: media/transfers-overview.png
+ :align: center
+ :alt: overview of all the transfers created by the pick - pack - ship route
+
+This means that, when a customer orders products, a delivery order is
+created to fulfill the order.
+
+.. image:: media/operations-on-transfers.png
+ :align: center
+ :alt: view of the operations created by a pull from transfer
+
+.. note::
+ If the source document is the same sale order, the status is not the
+ same. In fact, the status is **Waiting Another Operation** if the
+ previous transfer in the list is not done yet.
+
+.. image:: media/waiting-status.png
+ :align: center
+ :alt: view of the transfers various status at the beginning of the process
+
+To prepare the order, conveyors need products packed at the output area,
+so an internal transfer is requested from the packing zone.
+
+.. image:: media/detailed-operations-2.png
+ :align: center
+ :alt: view of the detailed operations for a transfer between the packing and output zones
+
+Obviously, the packing zone needs products ready to be packed. So, an
+internal transfer is requested to the stock and employees can gather the
+required products from the warehouse.
+
+.. image:: media/detailed-operations-transfer.png
+ :align: center
+ :alt: view of the detailed operations for a transfer between the stock and packing zones
+
+As explained in this documentation introduction, the last step in the
+process (here the delivery order) is the first to be triggered, which
+then triggers other rules until we reach the first step in the process
+(here, the internal transfer from to stock to the packing area). Now,
+everything is ready to be processed so the customer can get the ordered
+items.
+
+In our case, the product is delivered to the customer when all the rules
+have been triggered and the transfers done.
+
+.. image:: media/transfers-status.png
+ :align: center
+ :alt: view of the transfers' status when all the process is done
\ No newline at end of file
diff --git a/inventory/routes/concepts/use_routes.rst b/inventory/routes/concepts/use_routes.rst
deleted file mode 100644
index e695b561a..000000000
--- a/inventory/routes/concepts/use_routes.rst
+++ /dev/null
@@ -1,154 +0,0 @@
-==================
-How to use routes?
-==================
-
-Overview
-========
-
-A route is a collection of procurement rules and push rules. Odoo can
-manage advanced push/pull routes configuration, for example:
-
-- Manage product manufacturing chains
-
-- Manage default locations per product
-
-- Define routes within your warehouse according to business needs, such
- as quality control, after sales services or supplier returns
-
-- Help rental management, by generating automated return moves for
- rented products
-
-Configuration
-=============
-
-Procurement rules are part of the routes. Go to the **Inventory**
-application, :menuselection:`Configuration --> Settings` and tick
-**Advance routing of products using rules**.
-
-.. image:: media/use_routes01.png
- :align: center
-
-Pre-configured routes
-=====================
-
-Odoo has some pre-configured routes for your warehouses.
-
-In the Inventory application, go to
-:menuselection:`Configuration --> Warehouses`.
-
-In the **Warehouse Configuration** tab, **Incoming Shipments** and **Outgoing
-Shippings** options set some routes according to your choices.
-
-.. image:: media/use_routes02.png
- :align: center
-
-Custom Routes
-=============
-
-In the **Inventory** application, go to
-:menuselection:`Configuration --> Routes`.
-
-.. image:: media/use_routes03.png
- :align: center
-
-First, you have to select the places where this route can be selected.
-You can combine several choices.
-
-Routes applied on warehouses
-----------------------------
-
-If you tick **Warehouses**, you have to choose on which warehouse it will
-be applied. The route will be set for all transfer in that warehouse
-that would meet the conditions of the procurement and push rules.
-
-.. image:: media/use_routes04.png
- :align: center
-
-Routes applied on products
----------------------------
-
-If you tick **Products**, you have to manually set on which product it
-will be applied.
-
-.. image:: media/use_routes05.png
- :align: center
-
-Open the product on which you want to apply the routes
-(:menuselection:`Inventory --> Control --> Products`).
-In the Inventory Tab, select the route(s):
-
-.. image:: media/use_routes06.png
- :align: center
-
-Routes applied on Product Category
-----------------------------------
-
-If you tick **Product Categories**, you have to manually set on which
-categories it will be applied.
-
-.. image:: media/use_routes07.png
- :align: center
-
-Open the product on which you want to apply the routes
-(:menuselection:`Configuration --> Product Categories`).
-Select the route(s) under the **Logistics** section :
-
-.. image:: media/use_routes08.png
- :align: center
-
-Routes applied on Sales Order lines
------------------------------------
-
-If you tick **Sales order lines**, you have to manually set the route
-every time you make a sale order.
-
-.. image:: media/use_routes09.png
- :align: center
-
-In order to make it work, you also have to activate the use of the
-routes on the sales order.
-
-In the Sales application, go to
-:menuselection:`Configuration --> Settings` and tick
-**Choose specific routes on sales order lines (advanced)**.
-
-.. image:: media/use_routes10.png
- :align: center
-
-You can now choose the routes for each lines of your sales orders:
-
-.. image:: media/use_routes11.png
- :align: center
-
-Procurement and push rules
-==========================
-
-Please refer to the documents:
-
-- :doc:`procurement_rule`
-
-- :doc:`push_rule`
-
-Procurement configuration
-=========================
-
-When doing a procurement request, you can force the route you want to
-use. On the product (:menuselection:`Inventory Control --> Products`),
-click on **Procurement Request**. Choose the route you want to use next to
-**Preferred Routes**:
-
-.. image:: media/use_routes12.png
- :align: center
-
-Make-to-Order Route
-===================
-
-If you work with no stock, or with minimum stock rules, it is better to
-use the **Make To Order** route. Combine it with the route **Buy** or
-**Manufacture** and it will trigger automatically the purchase order or
-the Manufacturing Order when your products are out-of-stock.
-
-.. seealso::
- * :doc:`push_rule`
- * :doc:`inter_warehouse`
- * :doc:`cross_dock`
\ No newline at end of file
diff --git a/legal.rst b/legal.rst
index 7d11d1642..507a3986a 100644
--- a/legal.rst
+++ b/legal.rst
@@ -118,17 +118,25 @@ Terms and Conditions
:alt: View Odoo Partnership Agreement (ES)
:target: legal/terms/i18n/partnership_es.html
+.. |missing_pdf| image:: _static/icons/pdf_missing.svg
+ :alt: Document not available yet
+
+.. |missing_txt| image:: _static/icons/txt_missing.svg
+ :alt: Document not available yet
+--------------------------------------------------------------------+-----------------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+
| | **English** | Français | Nederlands | Deutsch | Español |
+====================================================================+=======================================================================+========================================================================+=======================================================================+=======================================================================+=======================================================================+
-| Odoo Enterprise Agreement (Also applies to Odoo Cloud and Odoo.sh) | |view_enterprise_en| |download_enterprise_en| | |view_enterprise_fr| |download_enterprise_fr| | |view_enterprise_nl| |download_enterprise_nl| | |view_enterprise_de| |download_enterprise_de| | |view_enterprise_es| |download_enterprise_es| |
+| Odoo Enterprise Agreement [#ltoe1]_ | |view_enterprise_en| |download_enterprise_en| | |view_enterprise_fr| |download_enterprise_fr| | |missing_txt| |missing_pdf| | |missing_txt| |missing_pdf| | |missing_txt| |missing_pdf| |
+--------------------------------------------------------------------+-----------------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+
-| Odoo Partnership Agreement | |view_partnership_en| |download_partnership_en| | |view_partnership_fr| |download_partnership_fr| | (Coming soon) | (Coming soon) | |view_partnership_es| |download_partnership_es| |
+| Odoo Partnership Agreement | |view_partnership_en| |download_partnership_en| | |view_partnership_fr| |download_partnership_fr| | |missing_txt| |missing_pdf| | |missing_txt| |missing_pdf| | |missing_txt| |missing_pdf| |
+--------------------------------------------------------------------+-----------------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+
| Terms of Sale | |view_terms_of_sale_en| |download_terms_of_sale_en| | |view_terms_of_sale_fr| |download_terms_of_sale_fr| | | | |
+--------------------------------------------------------------------+-----------------------------------------------------------------------+------------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+-----------------------------------------------------------------------+
-
+| Archive of older agreements: `Archive `_ |
++--------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| .. [#ltoe1] Applies to self-hosting, Odoo.SH and Odoo Cloud |
++---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Other legal references
======================
diff --git a/legal/terms/enterprise.rst b/legal/terms/enterprise.rst
index 7eea54789..2cc227403 100644
--- a/legal/terms/enterprise.rst
+++ b/legal/terms/enterprise.rst
@@ -1,3 +1,4 @@
+:classes: text-justify
.. _enterprise_agreement:
@@ -5,12 +6,18 @@
Odoo Enterprise Subscription Agreement
======================================
-.. note:: Version 8.0 - 2018-05-22
+.. note:: Version 9c - 2020-06-15
.. v6: add "App" definition + update pricing per-App
.. v7: remove possibility of price change at renewal after prior notice
.. 7.1: specify that 7% renewal increase applies to all charges, not just per-User.
.. v8.0: adapt for "Self-Hosting" + "Data Protection" for GDPR
+.. v8a: minor wording changes, tuned User definition, + copyright guarantee
+.. v9.0: add "Working with an Odoo Partner" + Maintenance of [Covered] Extra Modules + simplifications
+.. v9a: clarification wrt second-level assistance for standard features
+.. v9b: clarification that maintenance is opt-out + name of `cloc` command
+.. v9c: minor wording changes, tuned User definition, + copyright guarantee (re-application of v8a changes
+ on all branches)
By subscribing to the Odoo Enterprise services (the "Services") provided by Odoo SA and its
affiliates (collectively, "Odoo SA") in relation with Odoo Enterprise Edition or Odoo Community
@@ -34,7 +41,7 @@ termination minimum 30 days before the end of the Term to the other party.
=============
User
- Any active user account with access to the Software in creation and/or edition mode.
+ Any user account indicated as active in the Software, with access to creation and/or edition mode.
Deactivated user accounts and accounts used by external people (or systems) who only have
limited access to the Software through the portal facilities (known as "portal Users") are not
counted as Users.
@@ -43,22 +50,34 @@ App
An "App" is a specialized group of features available for installation in the Software,
and listed in the public Pricing section of `Odoo SA's website `_.
+Odoo Partner
+ An Odoo Partner is a third-party company or individual, chosen by the Customer, and working
+ with the Customer for their Odoo related services. The Customer can decide at any time to work
+ with a different Odoo Partner, or to work with Odoo SA directly (subject to prior notice).
+
+Extra Module
+ An extra module is a directory of source code files, or a set of Python-based customizations
+ created in a database (e.g. with Odoo Studio), that adds features or changes the standard
+ behavior of the Software. It may have been developed by the Customer, by Odoo SA, by an Odoo
+ Partner on behalf of the Customer, or by third parties.
+
+Covered Extra Module
+ A Covered Extra Module is an Extra Module for which the Customer chooses to pay a maintenance
+ fee in order to get support, upgrade and bug fixing services.
+
Bug
- Is considered a Bug any failure of the Software that results in a complete stop, error
- traceback or security breach, and is not directly caused by a defective installation or
- configuration. Non-compliance with specifications or requirements will be considered as Bugs at
+ Is considered a Bug any failure of the Software or of a Covered Extra Module that results in
+ a complete stop, error traceback or security breach, and is not directly caused by a defective
+ installation or configuration.
+ Non-compliance with specifications or requirements will be considered as Bugs at
the discretion of Odoo SA (typically, when the Software does not produce the results or
performance it was designed to produce, or when a country-specific feature does not meet legal
accounting requirements anymore).
Covered Versions
Unless specified otherwise, the Services provided under this Agreement are applicable only
- to the Covered Versions of
- the Software, which include the 3 (three) most recently released major versions.
-
- To be covered by the current Agreement, the Customer has to run the most recent
- Covered Version at the time of conclusion of this Agreement. When this is not the case,
- additional costs are applicable, as described in :ref:`charges`.
+ to the Covered Versions of the Software, which include the 3 most recently released major
+ versions.
.. _enterprise_access:
@@ -78,7 +97,7 @@ under the terms set forth in :ref:`appendix_a`.
The Customer agrees to take all necessary measures to guarantee the unmodified execution of
the part of the Software that verifies the validity of the Odoo Enterprise Edition usage and
collects statistics for that purpose, including but not limited to the running of an instance,
-the number of Users and installed Apps.
+the number of Users, the installed Apps, and the number of lines of code of Covered Extra Modules.
Odoo SA commits not to disclose individual or named figures to third parties without the consent
of the Customer, and to deal with all collected data in compliance with its official Privacy
@@ -102,25 +121,21 @@ fee equal to 300% of the applicable list price for the actual number of Users an
----------------------
For the duration of this Agreement, Odoo SA commits to making all reasonable efforts to remedy any
-Bug of the Software submitted by the Customer through the appropriate channel (typically, Odoo SA's
-service desk email address or website form), and to start handling such Customer submissions
-within 2 business days.
-
-The Customer understands that Bugs caused by a modification or extension that is not part of the
-official Software will not be covered by this service.
+Bug of the Software and Covered Extra Modules submitted by the Customer through the appropriate
+channel (typically, the web form or phone numbers listed on `odoo.com/help `_,
+or when working with an Odoo Partner, the channel provided by the partner), and to start handling
+such Customer submissions within 2 business days.
As soon as the Bug is fixed an appropriate remedy will be communicated to the Customer.
-
-For Self-Hosting, if the bug has been addressed in a more recent revision of the Covered Version of the
-Software used by the Customer, the Customer agrees to update its systems to that revision in order
-to obtain the correction. The Customer will not be asked to upgrade to a more recent Covered
-Version of the Software as a remedy to a Bug.
+If the Customer is using a Covered Version, they will not be asked to upgrade to a more recent
+Covered Version of the Software as a remedy to a Bug.
When a Bug is fixed in any Covered Version, Odoo SA commits to fixing the Bug in all more recent
Covered Versions of the Software.
Both parties acknowledge that as specified in the license of the Software and in the :ref:`liability`
-section of this Agreement, Odoo SA cannot be held liable for Bugs in the Software.
+section of this Agreement, Odoo SA cannot be held liable for Bugs in the Software
+or in Covered Extra Modules.
4.2 Security Updates Service
@@ -132,9 +147,9 @@ Self-Hosting
++++++++++++
For the duration of this Agreement, Odoo SA commits to sending a "Security Advisory" to the Customer
-for any security Bug that is discovered in the Covered Versions of the Software, at least 2 weeks
-before making the Security Advisory public, unless the Bug has already been disclosed publicly by a
-third party.
+for any security Bug that is discovered in the Covered Versions of the Software (this excludes Extra
+Modules), at least 2 weeks before making the Security Advisory public, unless the Bug has already
+been disclosed publicly by a third party.
Security Advisories include a complete description of the Bug, its cause, its possible impacts
on the Customer's systems, and the corresponding remedy for each Covered Version.
@@ -164,44 +179,29 @@ Upgrade Service for the Software
For the duration of this Agreement, the Customer can submit upgrade requests through the appropriate
channel (typically Odoo SA's upgrade service website), in order to convert a database of the Software
-from one Covered Version of the Software to a more recent Covered Version (the "Target Version").
+from any version of the Software to a more recent Covered Version (the "Target Version").
For the Cloud Platform, upgrade requests are submitted directly from the control panel of the
Cloud Platform, and do not require any data upload. For Self-Hosting,
-upgrade requests must include a complete backup copy of the Customer's database and the
+upgrade requests must include a copy of the Customer's database and the
associated data (typically obtained from the Backup menu of the Software).
This service provided through an automated platform in order to allow the Customer to perform
unattended upgrades once a previous version of the Customer's database has been successfully
upgraded for a Covered Version.
-The Customer may submit successive upgrade requests for a database, and agrees to submit at least
-1 upgrade request for testing purposes before submitting the final upgrade request.
The Upgrade Service is limited to the technical conversion and adaptation of the Customer's database
-to make it compatible with the Target Version, and the correction of any Bug directly caused by the
-upgrade operation and not normally occurring in the Target Version.
+to make it compatible with the Target Version, the correction of any Bug directly caused by the
+upgrade operation and not normally occurring in the Target Version, and the conversion of the source
+code and data of Covered Extra Modules for the Target Version.
-It is the sole responsibility of the Customer to verify and validate the upgraded database in order
+It is the responsibility of the Customer to verify and validate the upgraded database in order
to detect Bugs, to analyze the impact of changes and new features implemented in the Target Version,
and to convert and adapt for the Target Version any third-party extensions of the Software that
-were installed in the database before the upgrade (except where applicable as foreseen in section
-:ref:`upgrade_extra`).
+were installed in the database before the upgrade (e.g. non-convered Extra Modules).
The Customer may submit multiple upgrade requests for a database, until an acceptable result is
achieved.
-.. _upgrade_extra:
-
-Upgrade Service for third-party extensions
-++++++++++++++++++++++++++++++++++++++++++
-
-For the duration of this Agreement, the Customer may request optional upgrade services for
-third-party extension modules of the Software, in addition to the regular Upgrade Services.
-This optional service is subject to additional fees (as described in :ref:`charges`) and includes the
-technical adaptation of third-party modules installed in the Customer's database and their
-corresponding data in order to be compatible with the Target Version. The Customer will receive an
-upgraded version of all installed third-party modules along with the upgraded database.
-
-
.. _cloud_hosting:
4.4 Cloud Hosting Services
@@ -230,22 +230,37 @@ Scope
For the duration of this Agreement, the Customer may open an unlimited number of support tickets
free of charge, exclusively for questions regarding Bugs (see :ref:`bugfix`) or guidance
-with respect to the use of the standard features of the Software and Services
-(functionalities, intended use, configuration, troubleshooting).
+with respect to the use of the standard features of the Software and Covered Extra Modules.
-Other assistance requests, such as questions related to development, customizations,
-installation for Self-Hosting, or services requiring to access the Customer's database,
-may be covered through the purchase of a separate Service Pack.
-In case it’s not clear if a request is covered by this Agreement or a Service Pack,
+Other assistance requests, such as questions related to development or customizations
+may be covered through the purchase of a separate service agreement.
+In case it’s not clear if a request is covered by this Agreement,
the decision is at the discretion of Odoo SA.
Availability
++++++++++++
-Tickets can be submitted online at https://www.odoo.com/help, or by phone directly to the
-various Odoo SA offices, subject to local opening hours.
+Tickets can be submitted via the web form or phone numbers listed on `odoo.com/help `_,
+or when working with an Odoo Partner, the channel provided by the partner, subject to local
+opening hours.
+.. _maintenance_partner:
+
+4.6 Working with an Odoo Partner
+--------------------------------
+
+For bug fixes, support and upgrade services, the Customer may either work with an Odoo Partner
+as the main point of contact, or work with Odoo SA directly.
+
+If the Customer decides to work with an Odoo Partner, Odoo SA will subcontract services related
+to the Covered Extra Modules to the Odoo Partner, who becomes the main point of contact of the
+customer. The Odoo Partner may contact Odoo SA on behalf of the customer for second-level assistance
+with regard to standard features of the Software.
+
+If the Customer decides to work with Odoo SA directly, services related to Covered Extra Modules
+are provided *if and only if* the Customer is hosted on the Odoo Cloud Platform.
+
.. _charges:
@@ -258,16 +273,24 @@ various Odoo SA offices, subject to local opening hours.
--------------------
The standard charges for the Odoo Enterprise subscription and the Services are based on the number
-of Users, the installed Apps, the Software version used by the Customer, and specified in writing
+of Users and the installed Apps used by the Customer, and specified in writing
at the conclusion of the Agreement.
When during the Term, the Customer has more Users or more installed Apps than specified at the time
of conclusion of this Agreement, the Customer agrees to pay an extra fee equivalent to the applicable
list price (at the beginning of the Term) for the additional Users or Apps, for the remainder of the Term.
-If at the time of the conclusion of this Agreement, the Customer uses a Covered Version
-that is not the most recent one, the standard charges may be increased by 50% for the duration
-of the first Term, at the sole discretion of Odoo SA, to cover the extra maintenance costs.
+In addition, services for Covered Extra Modules are charged based on the number of lines of code
+in these modules. When the Customer opts for the maintenance of Covered Extra Modules, the charge
+is a monthly fee of 16€ per 100 lines of code (rounded up to the next hundred), unless otherwise
+specified in writing at the conclusion of the Agreement. Lines of code will be counted with `cloc`
+command of the Software, and include all text lines in the source code of those modules, regardless
+of the programming language (Python, Javascript, XML, etc.), excluding blank lines, comment lines
+and files that are not loaded when installing or executing the Software.
+
+When the Customer requests an upgrade, for each Covered Extra Module that has not been covered by
+a maintenance fee for the last 12 months, Odoo SA may charge a one-time extra fee of 16€ per 100
+lines of code, for each missing month of coverage.
.. _charges_renewal:
@@ -275,30 +298,12 @@ of the first Term, at the sole discretion of Odoo SA, to cover the extra mainten
-------------------
Upon renewal as covered in section :ref:`term`, if the charges applied during the previous Term
+(excluding any “Initial User Discounts”)
are lower than the most current applicable list price, these charges will increase by up to 7%.
-
-.. _charges_thirdparty:
-
-5.3 Charges for Upgrade Services of third-party modules
--------------------------------------------------------
-
-.. FIXME: should we really fix the price in the contract?
-
-The additional charge for the Upgrade Service for third-party modules is EUR (€) 1000.00 (one
-thousand euros) per 1000 Lines of Code in the third-party modules, rounded up to the next thousand
-lines. Lines of Code include all text lines in the source code of those modules, regardless of the
-programming language (Python, Javascript, etc.) or data format (XML, CSV, etc.), excluding blank
-lines and comment lines.
-
-Odoo SA reserves the right to reject an upgrade request for third-party modules under the above
-conditions if the quality of the source code of those modules is too low, or if these modules
-constitute an interface with third-party software or systems. The upgrade of such modules will
-subject to a separate offer, outside of this Agreement.
-
.. _taxes:
-5.4 Taxes
+5.3 Taxes
---------
.. FIXME : extra section, not sure we need it?
@@ -320,7 +325,7 @@ is legally obliged to pay or collect Taxes for which the Customer is responsible
The Customer agrees to:
- pay Odoo SA any applicable charges for the Services of the present Agreement, in accordance with
- the payment conditions specified in the corresponding invoice ;
+ the payment conditions specified at the signature of this contract ;
- immediately notify Odoo SA when their actual number of Users or their installed Apps exceed the
numbers specified at the conclusion of the Agreement, and in this event, pay the applicable
additional fee as described in section :ref:`charges_standard`;
@@ -328,6 +333,8 @@ The Customer agrees to:
that verifies the validity of the Odoo Enterprise Edition usage, as described
in :ref:`enterprise_access` ;
- appoint 1 dedicated Customer contact person for the entire duration of the Agreement;
+- provide written notice to Odoo SA 30 days before changing their main point of contact to work
+ with another Odoo Partner, or to work with Odoo SA directly.
When the Customer chooses to use the Cloud Platform, the Customer further agrees to:
@@ -463,7 +470,8 @@ breach has not been remedied within 30 calendar days from the written notice of
breach, this Agreement may be terminated immediately by the non-breaching Party.
Further, Odoo SA may terminate the Agreement immediately in the event the Customer fails to pay
-the applicable fees for the Services within the due date specified on the corresponding invoice.
+the applicable fees for the Services within 21 days following the due date specified on the
+corresponding invoice, and after minimum 3 reminders.
Surviving Provisions:
The sections ":ref:`confidentiality`”, “:ref:`disclaimers`”,
@@ -483,6 +491,10 @@ Surviving Provisions:
.. industry-standard warranties regarding our Services while Agreement in effect
+Odoo SA owns the copyright or an equivalent [#cla1]_ on 100% of the code of the Software, and confirms
+that all the software libraries required to use the Software are available under a licence compatible
+with the licence of the Software.
+
For the duration of this Agreement, Odoo SA commits to using commercially reasonable efforts to
execute the Services in accordance with the generally accepted industry standards provided that:
@@ -495,6 +507,10 @@ execute the Services in accordance with the generally accepted industry standard
The Customer's sole and exclusive remedy and Odoo SA's only obligation for any breach of this warranty
is for Odoo SA to resume the execution of the Services at no additional charge.
+
+.. [#cla1] External contributions are covered by a `Copyright License Agreement `_
+ that provides a permanent, free and irrevocable, copyright and patent licence to Odoo SA.
+
.. _disclaimers:
7.2 Disclaimers
@@ -533,7 +549,8 @@ or if a party or its affiliates' remedy otherwise fails of its essential purpose
-----------------
Neither party shall be liable to the other party for the delay in any performance or failure to
-render any performance under this Agreement when such failure or delay is caused by governmental
+render any performance under this Agreement when such failure or delay finds its cause in a
+case of *force majeure*, such as governmental
regulations, fire, strike, war, flood, accident, epidemic, embargo, appropriation of plant or
product in whole or in part by any government or public authority, or any other cause or causes,
whether of like or different nature, beyond the reasonable control of such party as long as such
@@ -550,11 +567,10 @@ cause or causes exist.
8.1 Governing Law
-----------------
-Both parties agree that the laws of Belgium will apply, should any dispute arise out of or
-in connection with this Agreement, without regard to choice or conflict of law principles.
-To the extent that any lawsuit or court proceeding is permitted hereinabove, both
-parties agree to submit to the sole jurisdiction of the Nivelles (Belgium) court for the purpose of
-litigating all disputes.
+This Agreement and all Customer orders will be subject to Belgian law. Any dispute
+arising out of or in connection with this Agreement or any Customer order will be subject to the
+exclusive jurisdiction of the Nivelles Business Court.
+
.. _severability:
@@ -624,4 +640,4 @@ objectives.
Title:
Date:
- Signature:
\ No newline at end of file
+ Signature:
diff --git a/legal/terms/i18n/enterprise_es.rst b/legal/terms/i18n/enterprise_es.rst
index e045026ba..2adf8448d 100644
--- a/legal/terms/i18n/enterprise_es.rst
+++ b/legal/terms/i18n/enterprise_es.rst
@@ -12,9 +12,9 @@ Odoo Enterprise Subscription Agreement (ES)
"Odoo Enterprise Subscription Agreement" es :ref:`la versión original en
inglés `
-.. -- Uncomment when needed --
-.. ESTA VERSIÓN NO ESTÁ ACTUALIZADA. PARA LA ÚLTIMA VERSIÓN POR FAVOR VEA
-.. :ref:`LA VERSIÓN ORIGINAL EN INGLÉS `
+.. warning::
+ ESTA VERSIÓN NO ESTÁ ACTUALIZADA. PARA LA ÚLTIMA VERSIÓN POR FAVOR VEA
+ :ref:`LA VERSIÓN ORIGINAL EN INGLÉS `
.. note:: Version 8.0 - 2018-05-22
diff --git a/legal/terms/i18n/enterprise_fr.rst b/legal/terms/i18n/enterprise_fr.rst
index 29a950075..664638eef 100644
--- a/legal/terms/i18n/enterprise_fr.rst
+++ b/legal/terms/i18n/enterprise_fr.rst
@@ -1,3 +1,4 @@
+:classes: text-justify
.. _enterprise_agreement_fr:
@@ -12,13 +13,18 @@ Odoo Enterprise Subscription Agreement (FR)
La seule référence officielle des termes du contrat “Odoo Enterprise Subscription Agreement”
est la :ref:`version originale en anglais `.
-.. note:: Version 8.0 - 2018-05-22
+.. note:: Version 9c - 2020-06-15
.. v6: add "App" definition + update pricing per-App
.. v7: remove possibility of price change at renewal after prior notice
.. 7.1: specify that 7% renewal increase applies to all charges, not just per-User.
.. v8.0: adapt for "Self-Hosting" + "Data Protection" for GDPR
-
+.. v8a: minor wording changes, tuned User definition, + copyright guarantee
+.. v9.0: add "Working with an Odoo Partner" + Maintenance of [Covered] Extra Modules + simplifications
+.. v9a: clarification wrt second-level assistance for standard features
+.. v9b: clarification that maintenance is opt-out + name of `cloc` command (+ paragraph 5.1 was partially outdated in FR)
+.. v9c: minor wording changes, tuned User definition, + copyright guarantee (re-application of v8a changes
+ on all branches)
En vous abonnant aux services de Odoo Enterprise (les "Services") fournis par Odoo SA et ses filiales
(collectivement, "Odoo SA") en relation avec Odoo Enterprise Edition ou Odoo Community Edition
@@ -42,7 +48,7 @@ reconduit pour une même durée, à moins que l'une des parties n’envoie à l'
=============
Utilisateur
- Tout compte utilisateur actif donnant accès au Logiciel en mode création et/ou édition.
+ Tout compte utilisateur indiqué comme actif dans le Logiciel et donnant accès au mode création et/ou édition.
Les comptes désactivés ainsi que ceux utilisés par des personnes ou systèmes extérieur(e)s
n'ayant qu'un accès limité au Logiciel via le portail ("Utilisateurs Portail") ne sont pas
comptés comme Utilisateurs.
@@ -52,22 +58,35 @@ App
et inclus dans la section Tarifs Odoo sur `le site d'Odoo SA `_, au moment
de la conclusion de ce Contrat.
+Partenaire Odoo
+ Un Partenaire Odoo est un individu ou société tierce, choisi par le Client et qui collabore
+ avec celui-ci pour les services liés à Odoo. Le Client peut choisir à tout moment de travailler
+ avec un autre Partenaire Odoo, ou avec Odoo SA directement (moyennant préavis).
+
+Module Supplémentaire
+ Un Module Supplémentaire est un répertoire de fichiers de code source, ou un ensemble de
+ personnalisations nécessitant du code Python créées dans une base de données (par ex. avec Odoo Studio),
+ pour ajouter des fonctionnalités ou changer des comportements du Logiciel. Il peut avoir été
+ développé par le Client, par Odoo SA, par un Partenaire Odoo pour le compte du Client, ou
+ par des tiers.
+
+Module Supplémentaire Couvert
+ Un Module Supplémentaire Couvert est un Module Supplémentaire pour lequel le Client choisit de
+ payer un abonnement de maintenance afin d'obtenir de l'assistance, des corrections de bug et
+ des migrations.
+
Bug
- Désigne toute défaillance du Logiciel qui se traduit par un arrêt complet, un message d'erreur
- avec trace d'exécution, ou une brèche de sécurité, et n'est pas directement causé par un problème
- d'installation ou une configuration défectueuse. Un non-respect des spécifications ou des besoins
+ Désigne toute défaillance du Logiciel ou d'un Module Supplémentaire Couvert, qui se traduit par
+ un arrêt complet, un message d'erreur avec trace d'exécution, ou une brèche de sécurité, et
+ n'est pas directement causé par un problème d'installation ou une configuration défectueuse.
+ Un non-respect des spécifications ou des besoins
sera considéré comme un Bug à la discrétion d'Odoo SA (en général, lorsque le Logiciel
ne produit pas les résultats ou la performance pour lesquels il a été conçu, ou lorsqu'une
fonctionnalité spécifique à un pays ne répond plus aux exigences comptables légales de ce pays).
Versions Couvertes
Sauf exception explicite, tous les Services dans le cadre du présent contrat s'appliquent uniquement aux Versions
- Couvertes du Logiciel, qui comprennent les trois (3) plus récentes versions majeures.
-
- Afin d'être considérées comme couvertes par le Contrat, le client doit
- utiliser la Version couverte la plus récente au moment de la conclusion du Contrat. Dans le cas
- contraire, des frais supplémentaires sont d'application, tels que décrit dans la section
- :ref:`charges_fr`
+ Couvertes du Logiciel, qui comprennent les 3 plus récentes versions majeures.
.. _enterprise_access_fr:
@@ -87,7 +106,8 @@ Odoo Enterprise Edition, conformément aux conditions énoncées à la section :
Le Client accepte de prendre toutes les mesures nécessaires pour garantir l'exécution sans aucune
modification de la partie du Logiciel qui vérifie la validité de l'utilisation d'Odoo Enterprise
Edition et recueille des statistiques à cet effet, y compris mais sans s'y limiter, l'exécution
-du Logiciel, le nombre d'Utilisateurs et les Apps installées.
+du Logiciel, le nombre d'Utilisateurs, les Apps installées et le nombre de lignes de code des
+Modules Supplémentaires Couverts.
Odoo SA s'engage à ne pas divulguer à une tierce partie d'informations chiffrées personnelles ou
spécifiques sans le consentement du Client, et à traiter toutes les données recueillies en
@@ -114,26 +134,22 @@ correspondant au nombre réel d'Utilisateurs et aux Apps installées.
---------------------------------
Pour la durée de ce Contrat, Odoo SA s'engage à déployer tous les efforts raisonnables pour
-corriger tout Bug du Logiciel qui pourrait être signalé par le Client en suivant la procédure
-appropriée (généralement par le biais d'un e-mail adressé au service d'assistance d'Odoo SA ou
-via le formulaire correspondant sur le site web), et de commencer à traiter ces signalements
+corriger tout Bug du Logiciel ou des Modules Supplémentaires Couverts qui pourrait être signalé
+par le Client en suivant la procédure appropriée (généralement par le biais du formulaire en ligne
+ou des numéros de téléphone indiqués sur Module Supplémentaire Couvert, ou en cas de travail avec
+un Partenaire Odoo, le canal prévu par le partenaire), et de commencer à traiter ces signalements
du Client dans un délai de 2 jours ouvrables.
-Le Client accepte que les Bugs causés par toute modification ou extension qui ne fait pas partie
-de la version officielle du Logiciel ne seront pas couverts par ce service.
-
Dès que le Bug est remédié, un correctif approprié sera communiqué au Client.
-En cas d'Auto-Hébergement, si le Bug a été
-résolu dans une nouvelle mise à jour de la Version Couverte du Logiciel utilisée par le Client,
-ce dernier s'engage à actualiser ses systèmes vers la nouvelle mise à jour, afin d'obtenir
-le correctif. Il ne sera jamais demandé au Client de passer à une Version Couverte
+Si le Client utilise une Version Couverte, il ne lui sera jamais demandé de passer à une Version Couverte
plus récente pour obtenir un correctif.
Lorsqu'un Bug est corrigé dans une Version Couverte, Odoo SA s'engage à le corriger dans toutes
les Versions Couvertes plus récentes du Logiciel.
Les deux parties reconnaissent que comme spécifié dans la licence du Logiciel et à la section
-:ref:`liability_fr` de ce Contrat, Odoo SA ne peut être tenue responsable des Bugs du Logiciel.
+:ref:`liability_fr` de ce Contrat, Odoo SA ne peut être tenue responsable des Bugs du Logiciel ou
+des Modules Supplémentaires Couverts.
4.2 Mises à jour de sécurité
@@ -146,8 +162,8 @@ Auto-Hébergement
Pour la durée du Contrat, Odoo SA s'engage à envoyer une "alerte de sécurité"" au Client
pour tout Bug présentant un risque de sécurité qui serait découvert dans les Versions Couvertes
-du Logiciel, au moins 2 semaines avant de rendre ladite alerte de sécurité publique, et ce à moins
-que le Bug ait déjà été rendu public par un tiers.
+du Logiciel (à l'exclusion des Modules Supplémentaires), au moins 2 semaines avant de
+rendre ladite alerte de sécurité publique, et ce à moins que le Bug ait déjà été rendu public par un tiers.
Les alertes de sécurité comprennent une description complète du Bug, de sa cause, ses conséquences
possibles sur les systèmes du Client, et le correctif correspondant pour chaque Version Couverte.
@@ -177,53 +193,34 @@ Service de migration du Logiciel
Pour la durée du présent Contrat, le Client peut soumettre des demandes de migration en suivant
les procédures appropriées (généralement, via le site du service de migration d'Odoo SA),
-afin de convertir une base de données du Logiciel d'une Version Couverte du Logiciel à une
-Version Couverte plus récente (la "Version Cible").
+afin de convertir une base de données du Logiciel depuis n'importe quelle version du Logiciel vers
+une Version Couverte plus récente (la "Version Cible").
Pour la Plate-forme Cloud, les demandes de migration sont envoyées directement depuis la panneau
de contrôle de la Plate-forme Cloud, et ne requièrent pas d'envoi de données.
Pour l'Auto-Hébergement,
-les demandes de migration doivent inclure une copie de sauvegarde complète de la
+les demandes de migration doivent inclure une copie complète de la
base de données du Client et les données associées (généralement obtenues à partir du menu
-Backup du Logiciel). Lorsque cela est nécessaire pour des raisons de sécurité des données ou
-de réglementation, le Service de migration inclut un outil facultatif pour rendre anonymes
-les données identifiables figurant dans la base de données, avant de soumettre la demande
-de migration, et un outil pour restaurer les données rendues anonymes après la migration.
+Backup du Logiciel).
Ce service est fourni par le biais d'une plateforme automatisée, afin de permettre au Client
d'effectuer des migration sans intervention humain, dès lors qu’une version précédente de la
base de données du Client a été migrée avec succès pour une Version Couverte donnée.
-Le client peut soumettre des demandes de migration successives pour une base de données,
-et accepte de soumettre au moins 1 demande de migration de test avant de soumettre la demande de
-migration finale.
Le service de migration est limité à la conversion et à l'adaptation techniques de la base
de données du Client pour la rendre compatible avec la Version Cible, et à la correction de tout
Bug directement causé par l'opération de migration, et ne se produisant normalement pas dans
+la Version Cible, et la conversion du code et des données des Modules Supplémentaires Couverts vers
la Version Cible.
Il incombe au Client de vérifier et valider la base de données migrée afin de détecter tout Bug,
d'analyser l'impact des changements et des nouvelles fonctionnalités ajoutées
dans la Version Cible, de convertir et d'adapter pour la Version Cible les modules tiers
du Logiciel qui auraient été installées dans la base de données avant la migration
-(sauf le cas échéant, comme prévu à la section :ref:`upgrade_extra_fr`).
+(par ex. des Modules Supplémentaires non-couverts).
Le client peut soumettre plusieurs demandes de migration pour une base de données, jusqu'à ce
qu'un résultat satisfaisant soit obtenu.
-.. _upgrade_extra_fr:
-
-Service de migration des modules tiers
-++++++++++++++++++++++++++++++++++++++
-
-Pour la durée du Contrat, le Client a la possibilité de faire une demande de migration
-pour des modules d'extension tiers, en plus de la migration normale du Logiciel.
-Ce service en option implique des frais supplémentaires (décrits dans la section :ref:`charges_fr`)
-et comprend l'adaptation technique des modules tiers installés dans la base de données du
-Client et de leurs données correspondantes afin qu'elles soient compatibles
-avec la Version Cible. Le Client recevra une version migrée de tous les modules tiers installés
-accompagnée de la base de données migrée.
-
-
.. _cloud_hosting_fr:
4.4 Service d'Hébergement Cloud
@@ -252,23 +249,42 @@ Portée
Pour la durée du présent Contrat, le Client peut ouvrir un nombre non limité de demandes d'assistance
sans frais, exclusivement pour des questions relatives à des Bugs (voir :ref:`bugfix_fr`) ou des
-explications au sujet de l'utilisation des fonctions standard du Logiciel et des Services
-(fonctionnalités, utilisation prévue, configuration, résolution d'erreur).
+explications au sujet de l'utilisation des fonctions standard du Logiciel et des Modules
+Supplémentaires Couverts
-D'autres types de demandes, telles que celles relatives à des développements, des personnalisations,
-de l'installation en mode Auto-Hébergement, ou tout service requiérant l'accès à la base de données
-du Client pevent être couverts par l'achat séparé d'un Pack de Services.
-Au cas où il n'est pas clair qu'une demande est couverte par ce Contrat ou via l'achat d'un
-Pack de Services, la décision sera à la discrétion d'Odoo SA.
+D'autres types de demandes, telles que celles relatives à des développements ou des personnalisations,
+peuvent être couvertes par l'achat d'un contrat de service séparé.
+Au cas où il n'est pas clair qu'une demande est couverte par ce Contrat, la décision sera à la
+discrétion d'Odoo SA.
Disponibilité
+++++++++++++
Les demandes d'assistances peuvent être soumises à tout moment en ligne via https://www.odoo.com/help,
-ou par téléphone directement aux différents bureaux d'Odoo SA, pendant les heures de bureau
+ou par téléphone directement aux différents bureaux d'Odoo SA, ou en cas de travail avec un
+Partenaire Odoo, le canal préconisé par ce partenaire, pendant les heures de bureau
correspondantes.
+.. _maintenance_partner_fr:
+
+Collaboration avec un Partenaire Odoo
+-------------------------------------
+
+Pour les services de correction de Bug, d'assistance et de migration, le Client peut choisir
+de collaborer avec un Partenaire Odoo comme point de contact principal, ou directement avec
+Odoo SA.
+
+Si le Client choisit un Partenaire Odoo, Odoo SA sous-traitera les services liés au Modules
+Supplémentaires Couverts à ce partenaire, qui deviendra le point de contact principal du client.
+Le Partenaire Odoo peut obtenir de l'assistance de second niveau auprès d'Odoo SA pour le compte
+du Client, concernant les fonctions standard du Logiciel.
+
+Si le Client décide de collaborer directement avec Odoo SA, les services liés aux Modules
+Supplémentaires Couverts ne seront fournis que *si et seulement si* le Client est hébergé sur
+la Plate-forme Cloud d'Odoo.
+
+
.. _charges_fr:
5 Tarifs et Frais
@@ -280,17 +296,25 @@ correspondantes.
--------------------
Les tarifs standards pour le contrat d'abonnement à Odoo Enterprise et les Services sont basés sur le nombre
-d'Utilisateurs, les Apps installées, la version du Logiciel utilisée par le Client, et précisés par
-écrit à la conclusion du contrat.
+d'Utilisateurs et les Apps installées, et précisés par écrit à la conclusion du contrat.
Pendant la durée du contrat, si le Client a plus d'Utilisateurs ou d'Apps que spécifié au moment
de la conclusion du présent Contrat, le Client accepte de payer un supplément équivalent au tarif
en vigueur applicable (au début du Contrat) pour les utilisateurs supplémentaires,
pour le reste de la durée.
-Si, au moment de la conclusion du présent Contrat, le Client utilise une Version Couverte qui
-n'est pas la plus récente, les tarifs standards peuvent être augmentés de 50% pour la
-première Durée du contrat, à la discrétion d'Odoo SA, pour couvrir les coûts de maintenance.
+Par ailleurs, les services concernant les Modules Supplémentaires Couverts sont facturés sur base
+du nombre de lignes de code dans ces modules. Lorsque le client opte pour l'abonnement de maintenance
+des Modules Supplémentaires Couverts, le coût mensuel est de 16€ par 100 lignes de code (arrondi à la
+centaine supérieure), sauf si spécifié par écrit à la conclusion du Contrat. Les lignes de code
+sont comptées avec la commande `cloc` du Logiciel, et comprennent toutes les lignes de texte du code
+source de ces modules, peu importe le langage de programmation (Python, Javascript, XML, etc.),
+à l'exclusion des lignes vides, des lignes de commentaires et des fichiers qui ne sont pas chargés
+à l'installation ou à l'exécution du Logiciel.
+
+Lorsque le Client demande une migration, pour chaque Module Supplémentaire Couvert qui n'a pas fait
+l'objet de frais de maintenance pour les 12 derniers mois, Odoo SA peut facturer des frais
+supplémentaires unique de 16€ par 100 lignes de code, pour chaque mois de maintenance manquant.
.. _charges_renewal_fr:
@@ -299,33 +323,17 @@ première Durée du contrat, à la discrétion d'Odoo SA, pour couvrir les coût
--------------------------
Lors de la reconduction telle que décrite à la section :ref:`term_fr`, si les tarifs par Utilisateur
+(à l'exclusion des “Initial User Discounts”)
qui ont été appliqués pendant la Durée précédente sont inférieurs aux tarifs par Utilisateur
-en vigueur les plus récents, les tarifs par Utilisateur augmenteront automatiquement de maximum 7%.
-
-.. _charges_thirdparty_fr:
-
-5.3 Tarifs de migration des modules tiers
------------------------------------------
-
-Les frais supplémentaires pour le service de migration des modules tiers sont de 1000,00- euros (€)
-(mille euros) pour 1000 lignes de code de modules tiers, le nombre de lignes étant arrondi au millier
-de lignes supérieur. Les lignes de code comprennent toutes les lignes de texte dans le code source de
-ces modules, quel que soit le langage de programmation (Python, Javascript, etc.)
-ou format de données (XML, CSV, etc.), à l'exclusion des lignes vides et des lignes de commentaires.
-
-Odoo SA se réserve le droit de refuser une demande de migration pour des modules tiers conformément
-aux conditions décrites ci-dessus, si la qualité du code source de ces modules est trop faible,
-ou si ces modules font partie d'une interface d'intégration avec des logiciels ou systèmes tiers.
-La migration de ces modules sera soumise à une proposition distincte, non couverte par le présent
-Contrat.
-
+en vigueur les plus récents, les tarifs par Utilisateur augmenteront automatiquement de maximum 7%
+par reconduction, sans dépasser les tarifs en vigueur les plus récents.
.. _taxes_fr:
-5.4 Taxes et impôts
+5.3 Taxes et impôts
-------------------
-Tous les frais et tarifs sont indiqués hors taxes et hors impôts, frais et charges fédérales,
+Tous les frais et tarifs sont indiqués hors taxes, frais et charges fédérales,
provinciales, locales ou autres taxes gouvernementales applicables (collectivement,
les "Taxes"). Le Client est responsable du paiement de toutes les Taxes liées aux achats effectués
par le Client en vertu du présent Contrat, sauf lorsque Odoo SA est légalement tenue de payer ou de
@@ -342,7 +350,7 @@ percevoir les Taxes dont le client est responsable.
Le Client accepte de / d':
- Payer à Odoo SA les frais applicables pour les Services en vertu du présent Contrat,
- conformément aux conditions de paiement spécifiées dans la facture correspondante ;
+ conformément aux conditions de paiement spécifiées à la souscription du présent Contrat ;
- Aviser immédiatement Odoo SA si le nombre réel d'Utilisateurs ou les Apps installées dépassent
les nombres spécifiés à la conclusion du Contrat, et dans ce cas, de régler les frais
supplémentaires applicables telles que décrits à la section :ref:`charges_standard_fr`;
@@ -350,6 +358,8 @@ Le Client accepte de / d':
Logiciel qui vérifie la validité de l'utilisation de Odoo Enterprise Edition, comme décrit à la
section :ref:`enterprise_access_fr`;
- Désigner 1 personne de contact représentant le Client pour toute la durée du contrat ;
+- Signaler par écrit à Odoo SA avec un préavis de 30 jours en cas de changement de point de contact
+ principal, pour collaborer avec un autre Partenaire Odoo, ou directement avec Odoo SA.
Lorsque le Client choisit d'utiliser la Plate-forme Cloud, il accepte aussi de:
@@ -493,8 +503,8 @@ contrat peut être résilié immédiatement par la partie qui n'a pas commis la
violation.
En outre, Odoo SA peut résilier le contrat immédiatement dans le cas où le
-Client ne paie pas les frais applicables pour les services à la date d'échéance
-indiquée sur la facture correspondante.
+Client ne paie pas les frais applicables pour les services dans les 21 jours suivant la date d'échéance
+indiquée sur la facture correspondante, après minimum 3 rappels.
Durée de l'applicabilité des dispositions:
Les sections ":ref:`confidentiality_fr`", “:ref:`disclaimers_fr`", “:ref:`liability_fr`",
@@ -511,28 +521,36 @@ Durée de l'applicabilité des dispositions:
7.1 Garantie
------------
+Odoo SA détient le copyright ou un équivalent [#cla_fr1]_ sur 100% du code du Logiciel, et confirme que
+toutes les librairies logicielles nécessaires au fonctionnement du Logiciel sont disponibles sous une
+licence compatible avec la licence du Logiciel.
+
Pendant la durée du présent contrat, Odoo SA s'engage à déployer les efforts
raisonnables sur le plan commercial pour exécuter les Services conformément aux
normes du secteur généralement acceptées à condition que :
- Les systèmes informatiques du Client soient en bon état de fonctionnement et, pour l'Auto-Hébergement,
- que le Logiciel soit installé dans un système d'exploitation approprié ;
+ que le Logiciel soit installé selon les bonnes pratiques en vigueur;
- Le Client fournisse les informations adéquates nécessaires au dépannage et, pour l'Auto-Hébergement,
tout accès utile, de telle
sorte qu'Odoo SA puisse identifier, reproduire et gérer les problèmes ;
-- Tous les montants dus à Odoo SA aient été réglés.
+- Tous les montants dus à Odoo SA, qui sont échus, aient été réglés.
La reprise de l'exécution des Services par Odoo SA sans frais supplémentaires constitue la seule et
-unique réparation pour le Client et la seule obligation d'Odoo SA pour toute violation de cette
+unique réparation pour le Client et la seule obligation d'Odoo SA pour tout manquement à cette
garantie.
+.. [#cla_fr1] Les contributions externes sont couvertes par un `Copyright License Agreement `_
+ fournissant une licence de copyright et de brevet permanente, gratuite et irrévocable à Odoo SA.
+
+
.. _disclaimers_fr:
7.2 Limitation de garantie
--------------------------
Mis à part les dispositions expresses du présent Contrat, aucune des parties ne donne de
-garantie d'aucune sorte, expresse, implicite, légale ou autre, et chaque partie
+garantie d'aucune sorte, expresse, implicite ou autre, et chaque partie
décline expressément toutes garanties implicites, y compris toute garantie
implicite de qualité marchande, d'adéquation à un usage particulier ou de non-
contrefaçon, dans les limites autorisées par la loi en vigueur.
@@ -567,7 +585,8 @@ recours proposé par la partie ou ses filiales n'atteint pas son but essentiel.
-----------------
Aucune des parties ne sera tenue pour responsable envers l'autre partie de tout retard ou manquement
-d'exécution en vertu du présent Contrat, si ce manquement ou retard est causé par
+d'exécution en vertu du présent Contrat, si ce manquement ou retard trouve sa cause dans un cas de
+*force majeure*, comme
une règlementation gouvernementale, un incendie, une grève, une guerre, une inondation,
un accident, une épidémie, un embargo, la saisie d'une usine ou d'un produit dans son intégralité
ou en partie par un gouvernement ou une autorité publique, ou toute (s) autre (s) cause (s),
@@ -584,12 +603,9 @@ hors du contrôle raisonnable de la partie concernée, et tant qu'une telle caus
8.1 Droit applicable
--------------------
-Les parties conviennent que les lois de Belgique seront applicables en cas de litige découlant
-ou en relation avec le présent Contrat, sans tenir compte des règles ou dispositions en matière de
-compétence législative ou de conflit de lois.
-Dans la mesure où une poursuite ou procédure judiciaire ou administrative serait autorisée ci-avant,
-les parties conviennent de se soumettre à la compétence exclusive du tribunal de Nivelles (Belgique)
-aux fins de la procédure de tout litige.
+Le présent contrat et les commandes passées par le client sont exclusivement régis par le droit belge.
+Tout différend relatif au présent contrat ou à une commande passée par le Client relève de la
+compétence exclusive du tribunal de l’entreprise de Nivelles.
.. _severability_fr:
diff --git a/legal/terms/i18n/enterprise_nl.rst b/legal/terms/i18n/enterprise_nl.rst
index f954d81bb..bbd660543 100644
--- a/legal/terms/i18n/enterprise_nl.rst
+++ b/legal/terms/i18n/enterprise_nl.rst
@@ -24,7 +24,7 @@ Odoo Enterprise Subscription Agreement (NL)
.. note:: Version 7.1 - 2018-03-16
Door u op de Odoo Enterprise-diensten (de “Diensten”) te abonneren die door
-Odoo NV en zijn dochterondernemingen (gezamenlijk “Odoo NV”) worden verleend
+Odoo NV/SA en zijn dochterondernemingen (gezamenlijk “Odoo NV”) worden verleend
met betrekking tot de Odoo Enterprise Edition of de Odoo Community Edition (de
“Software”), gaat u (de "Klant") ermee akkoord om gebonden te zijn door de
volgende algemene voorwaarden (de “Overeenkomst”).
@@ -509,7 +509,7 @@ een geldige bepaling met dezelfde effecten en doelstellingen.
.. only:: latex
- De Odoo 9 Enterprise Edition wordt in licentie gegeven onder de
+ De Odoo Enterprise Edition wordt in licentie gegeven onder de
Odoo Enterprise Edition License v1.0, die als volgt wordt gedefinieerd:
.. highlight:: none
diff --git a/legal/terms/i18n/partnership_fr.rst b/legal/terms/i18n/partnership_fr.rst
index ebd02712c..bf865b9b7 100644
--- a/legal/terms/i18n/partnership_fr.rst
+++ b/legal/terms/i18n/partnership_fr.rst
@@ -1,3 +1,5 @@
+:classes: text-justify
+
.. _partnership_agreement_fr:
===============================
@@ -13,8 +15,10 @@ Odoo Partnership Agreement (FR)
.. v8: simplified parts, clarified others, added trademark use restrictions, updated benefits
.. v8a: minor clarifications and simplifications
+.. v9: added maintenance commission + obligations
+.. v9a: minor clarification to allow OE commission even without maintenance
-.. note:: Version 8a - 2018-08-09
+.. note:: Version 9a - 2020-06-10
| ENTRE:
| Odoo S.A., une entreprise dont le siège social se situe Chaussée de Namur, 40,
@@ -165,6 +169,9 @@ Les avantages de chaque niveau de partenariat sont détaillés dans le tableau c
+---------------------------------------+------------------+--------------------+--------------------+--------------------+
| Commission sur Odoo Enterprise | 10% | 10% | 15% | 20% |
+---------------------------------------+------------------+--------------------+--------------------+--------------------+
+| Commission sur la Maintenance de | 82% | 82% | 82% | 82% |
+| Modules Supplémentaires | | | | |
++---------------------------------------+------------------+--------------------+--------------------+--------------------+
| Accès à un Account Manager dédié et | Non | Oui | Oui | Oui |
| au Tableau de Bord Partenaire | | | | |
+---------------------------------------+------------------+--------------------+--------------------+--------------------+
@@ -209,9 +216,27 @@ souscrivant à un Odoo Success Pack, moyennant un supplément.
4.5 Commissions sur les Services Odoo vendus par le PARTENAIRE
--------------------------------------------------------------
Pour les services ODOO achetés par un client par le biais du PARTENAIRE, et pour autant que
-le PARTENAIRE maintienne une relation contractuelle avec ce client, le PARTENAIRE recevra une
-commission en fonction du tableau de la section :ref:`benefits_fr` et du niveau de partenariat
-à la date de la facture client correspondante.
+le PARTENAIRE maintienne une relation contractuelle avec ce client, le PARTENAIRE
+recevra une commission en fonction du tableau de la section :ref:`benefits_fr` et du niveau de
+partenariat à la date de la facture client correspondante.
+
+Une fois par mois, le PARTENAIRE recevra un bon de commande pour la commission due pour le mois
+précédent. Sur base de ce bon de commande, le PARTENAIRE facturera ODOO, et sera payé dans un
+délai de 15 jours suivant la réception de cette facture.
+
+**Maintenance of Covered Extra Modules**
+
+Le PARTENAIRE comprend et accepte que lorsqu'un client choisit de Collaborer avec le PARTENAIRE,
+ODOO lui déléguera la Maintenance des Modules Supplémentaires Couverts [#pcom_fr1]_,
+et qu'il deviendra le point de contact principal du client.
+
+Le PARTENAIRE ne recevra de commission pour la Maintenance des Modules Supplémentaires Couverts
+que pour autant que le client ne signale pas à ODOO sa volonté d'arrêter de Collaborer avec le
+PARTENAIRE.
+
+
+.. [#pcom_fr1] “Collaborer avec un Partenaire Odoo” et “Modules Supplémentaires Couverts” sont
+ définis dans le contrat "Odoo Enterprise Subscription Agreement" entre ODOO et le client.
5 Frais
diff --git a/legal/terms/partnership.rst b/legal/terms/partnership.rst
index ecf03a247..c431e9c79 100644
--- a/legal/terms/partnership.rst
+++ b/legal/terms/partnership.rst
@@ -1,3 +1,4 @@
+:classes: text-justify
.. _partnership_agreement:
@@ -8,8 +9,11 @@ Odoo Partnership Agreement
.. v6a: typo in section 4.4
.. v7: introduce "Learning Partners" and a few related changes
.. v8: simplified parts, clarified others, added trademark use restrictions, updated benefits
+.. v8a: minor clarifications and simplifications
+.. v9: added maintenance commission + obligations
+.. v9a: minor clarification to allow OE commission even without maintenance
-.. note:: Version 8a - 2019-08-09
+.. note:: Version 9a - 2020-06-10
| BETWEEN:
| Odoo S.A., having its registered office at Chaussée de Namur, 40, 1367 Grand-Rosière,
@@ -159,6 +163,9 @@ The details of the benefits for each level of the partnership are described in t
+---------------------------------------+------------------+--------------------+--------------------+--------------------+
| Commission on Odoo Enterprise | 10% | 10% | 15% | 20% |
+---------------------------------------+------------------+--------------------+--------------------+--------------------+
+| Commission on Maintenance of | 82% | 82% | 82% | 82% |
+| Extra Modules | | | | |
++---------------------------------------+------------------+--------------------+--------------------+--------------------+
| Dedicated Account Manager & Partner | No | Yes | Yes | Yes |
| Dashboard | | | | |
+---------------------------------------+------------------+--------------------+--------------------+--------------------+
@@ -205,6 +212,21 @@ contractual relationship with the corresponding customer, PARTNER shall receive
according to the table of section :ref:`benefits` and their Partnership level at the date of the
customer invoice.
+Once a month, PARTNER will receive a purchase order with the commission due for the preceding month.
+Based on this purchase order, PARTNER shall invoice ODOO, and will be paid within 15 days upon
+receipt of the invoice.
+
+**Maintenance of Covered Extra Modules**
+
+PARTNER acknowledges and agrees that when a customer decides to Work with PARTNER [#pcom1]_ ,
+ODOO will delegate the Maintenance of Covered Extra Modules to PARTNER, who becomes the main point
+of contact of the customer.
+
+PARTNER shall only receive the commission for the Maintenance of Covered Extra Modules
+as long as the customer does not notify ODOO that they want to stop Working with PARTNER.
+
+.. [#pcom1] “Working with an Odoo Partner” and “Covered Extra Modules” are defined in the Odoo
+ Enterprise Subscription Agreement between ODOO and customers.
5 Fees
======
diff --git a/odoo_sh/getting_started/branches.rst b/odoo_sh/getting_started/branches.rst
index 22b776f56..d1fb356e5 100644
--- a/odoo_sh/getting_started/branches.rst
+++ b/odoo_sh/getting_started/branches.rst
@@ -101,7 +101,7 @@ Similar to staging branches, the emails are not sent but are intercepted by a ma
scheduled actions are not triggered as often is the database is not in use.
The databases created for development branches are meant to live around three days.
-After that, they can be garbage collected to make room for new databases.
+After that, they can be automatically garbage collected to make room for new databases without prior notice.
.. _odoosh-gettingstarted-branches-mergingbranches:
diff --git a/point_of_sale/advanced_pricing_features.rst b/point_of_sale/advanced_pricing_features.rst
index b20a2407a..91c8d14e4 100644
--- a/point_of_sale/advanced_pricing_features.rst
+++ b/point_of_sale/advanced_pricing_features.rst
@@ -5,8 +5,7 @@ Pricing Features
.. toctree::
:titlesonly:
- advanced_pricing_features/manual_discount
- advanced_pricing_features/seasonal_discount
+ advanced_pricing_features/discounts
advanced_pricing_features/discount_tags
advanced_pricing_features/loyalty
advanced_pricing_features/pricelists
diff --git a/point_of_sale/advanced_pricing_features/discounts.rst b/point_of_sale/advanced_pricing_features/discounts.rst
new file mode 100644
index 000000000..bef64d1ba
--- /dev/null
+++ b/point_of_sale/advanced_pricing_features/discounts.rst
@@ -0,0 +1,101 @@
+===============
+Apply Discounts
+===============
+
+By offering discounts, you can entice your customers and drastically
+increase your revenue. It is vital to offer discounts, whether they are
+time-limited, seasonal or manually given.
+
+To manage discounts, Odoo has powerful features that help set up a
+pricing strategy tailored to every business.
+
+Apply manual discounts
+======================
+
+If you seldom use discounts, applying manual ones might be the easiest
+solution for your Point of Sale.
+
+You can either apply a discount on the whole order or on specific
+products inside an order.
+
+Apply a discount on a product
+-----------------------------
+
+From your PoS session interface, use the *Disc* button.
+
+.. image:: media/discounts_01.png
+ :align: center
+ :alt: View of the discount button for manual discount
+
+Then, you can input a discount over the product that is currently
+selected.
+
+Apply a global discount
+-----------------------
+
+To apply a discount on the whole order, go to :menuselection:`Point of
+Sales --> Configuration --> Point of Sale` and select your PoS.
+
+Once on your PoS form, select *Global Discounts*, under the *Pricing* category.
+
+.. image:: media/discounts_02.png
+ :align: center
+ :alt: View of the feature to enable for global discount
+
+Now, you have a new *Discount* button appearing on your PoS interface.
+
+.. image:: media/discounts_03.png
+ :align: center
+ :alt: View of the button to use for global discount via the pos interface
+
+Click on it and enter the wanted discount.
+
+.. image:: media/discounts_04.png
+ :align: center
+ :alt: View of the discount offered in the payment summary
+
+.. note::
+ On this example, there is a global discount of 50% as well as a specific
+ 50% discount on oranges.
+
+Apply time-limited discounts
+============================
+
+To activate time-limited discounts, you must activate the *Pricelists*
+feature. To do so, go to :menuselection:`Point of Sales -->
+Configuration --> Point of Sale` and open your PoS. Then, enable the
+pricelist feature.
+
+.. image:: media/discounts_05.png
+ :align: center
+ :alt: View of the pricelist feature
+
+Once activated, you must choose the pricelists you want to make
+available in the PoS and define a default one.
+
+Create a pricelist
+------------------
+
+By default, Odoo has a *Public Pricelist* configured. To create more,
+go to :menuselection:`Point of Sale --> Products --> Pricelists`. Then
+click on create.
+
+When creating a pricelist, you can set several criteria to use a
+specific price: period, min. quantity, etc. You can also decide to apply
+that pricelist on specific products or on the whole range.
+
+.. image:: media/discounts_06.png
+ :align: center
+ :alt: View of a time-limited pricelist for two products
+
+Using a pricelist with the PoS interface
+----------------------------------------
+
+On the PoS interface, a new button appears. Use it to select a
+pricelist.
+
+.. image:: media/discounts_07.png
+ :align: center
+ :alt: View of the button to use for time-limited discounts via the pos interface
+
+Click on it to instantly update the prices with the selected pricelist. Then, you can finalize the order.
\ No newline at end of file
diff --git a/point_of_sale/advanced_pricing_features/manual_discount.rst b/point_of_sale/advanced_pricing_features/manual_discount.rst
deleted file mode 100644
index e1ec88f43..000000000
--- a/point_of_sale/advanced_pricing_features/manual_discount.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-======================
-Apply manual discounts
-======================
-
-If you seldom use discounts, applying manual discounts might be the
-easiest solution for your Point of Sale.
-
-You can either apply a discount on the whole order or on specific
-products.
-
-Apply a discount on a product
-=============================
-
-From your session interface, use *Disc* button.
-
-.. image:: media/manual_discount01.png
- :align: center
-
-You can then input a discount (in percentage) over the product that is
-currently selected and the discount will be applied.
-
-Apply a global discount
-=======================
-
-To apply a discount on the whole order, go to :menuselection:`Point of
-Sales --> Configuration --> Point of sale` and select your PoS interface.
-
-Under the *Pricing* category, you will find *Global Discounts*
-select it.
-
-.. image:: media/manual_discount02.png
- :align: center
-
-You now have a new *Discount* button in your PoS interface.
-
-.. image:: media/manual_discount03.png
- :align: center
-
-Once clicked you can then enter your desired discount (in percentages).
-
-.. image:: media/manual_discount04.png
- :align: center
-
-On this example, you can see a global discount of 50% as well as a
-specific product discount also at 50%.
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_01.png b/point_of_sale/advanced_pricing_features/media/discounts_01.png
new file mode 100644
index 000000000..cb26ea26f
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_01.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_02.png b/point_of_sale/advanced_pricing_features/media/discounts_02.png
new file mode 100644
index 000000000..3ced577fc
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_02.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_03.png b/point_of_sale/advanced_pricing_features/media/discounts_03.png
new file mode 100644
index 000000000..c373bd829
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_03.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_04.png b/point_of_sale/advanced_pricing_features/media/discounts_04.png
new file mode 100644
index 000000000..b36e75512
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_04.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_05.png b/point_of_sale/advanced_pricing_features/media/discounts_05.png
new file mode 100644
index 000000000..c89f24be6
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_05.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_06.png b/point_of_sale/advanced_pricing_features/media/discounts_06.png
new file mode 100644
index 000000000..3e50203d5
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_06.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/discounts_07.png b/point_of_sale/advanced_pricing_features/media/discounts_07.png
new file mode 100644
index 000000000..9150ba63c
Binary files /dev/null and b/point_of_sale/advanced_pricing_features/media/discounts_07.png differ
diff --git a/point_of_sale/advanced_pricing_features/media/manual_discount01.png b/point_of_sale/advanced_pricing_features/media/manual_discount01.png
deleted file mode 100644
index dde5a8df4..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/manual_discount01.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/media/manual_discount02.png b/point_of_sale/advanced_pricing_features/media/manual_discount02.png
deleted file mode 100644
index e9a829d49..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/manual_discount02.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/media/manual_discount03.png b/point_of_sale/advanced_pricing_features/media/manual_discount03.png
deleted file mode 100644
index 9b20a97fe..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/manual_discount03.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/media/manual_discount04.png b/point_of_sale/advanced_pricing_features/media/manual_discount04.png
deleted file mode 100644
index 7f0640cd4..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/manual_discount04.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/media/seasonal_discount01.png b/point_of_sale/advanced_pricing_features/media/seasonal_discount01.png
deleted file mode 100644
index cca8a29cd..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/seasonal_discount01.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/media/seasonal_discount02.png b/point_of_sale/advanced_pricing_features/media/seasonal_discount02.png
deleted file mode 100644
index f60fa4fd2..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/seasonal_discount02.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/media/seasonal_discount03.png b/point_of_sale/advanced_pricing_features/media/seasonal_discount03.png
deleted file mode 100644
index c7aa2f02e..000000000
Binary files a/point_of_sale/advanced_pricing_features/media/seasonal_discount03.png and /dev/null differ
diff --git a/point_of_sale/advanced_pricing_features/seasonal_discount.rst b/point_of_sale/advanced_pricing_features/seasonal_discount.rst
deleted file mode 100644
index a8e81e708..000000000
--- a/point_of_sale/advanced_pricing_features/seasonal_discount.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-============================
-Apply time-limited discounts
-============================
-
-Entice your customers and increase your revenue by offering time-limited
-or seasonal discounts. Odoo has a powerful pricelist feature to support
-a pricing strategy tailored to your business.
-
-Configuration
-=============
-
-To activate the *Pricelists* feature, go to :menuselection:`Point of
-Sales --> Configuration --> Point of sale` and select your PoS interface.
-
-.. image:: media/seasonal_discount01.png
- :align: center
-
-Choose the pricelists you want to make available in this Point of Sale
-and define the default pricelist. You can access all your pricelists by
-clicking on *Pricelists*.
-
-Create a pricelist
-==================
-
-By default, you have a *Public Pricelist* to create more, go to
-:menuselection:`Point of Sale --> Catalog --> Pricelists`
-
-.. image:: media/seasonal_discount02.png
- :align: center
-
-You can set several criterias to use a specific price: periods, min.
-quantity (meet a minimum ordered quantity and get a price break), etc.
-You can also chose to only apply that pricelist on specific products or
-on the whole range.
-
-Using a pricelist in the PoS interface
-======================================
-
-You now have a new button above the *Customer* one, use it to
-instantly select the right pricelist.
-
-.. image:: media/seasonal_discount03.png
- :align: center
-
-You can see the price is instantly updated to reflect the pricelist. You
-can finalize the order in your usual way.
-
-.. note::
- If you select a customer with a default pricelist, it will be
- applied. You can of course change it.
diff --git a/point_of_sale/payment/ingenico.rst b/point_of_sale/payment/ingenico.rst
index 3dc383694..7063da33e 100644
--- a/point_of_sale/payment/ingenico.rst
+++ b/point_of_sale/payment/ingenico.rst
@@ -11,21 +11,13 @@ Benelux.
Configuration
=============
-Connect a Payment Terminal
---------------------------
+Connect an IoT Box
+------------------
Connecting an Ingenico Payment Terminal to Odoo is a feature that
requires an IoT Box. For more information on how to connect an IoT Box
to your database, please refer to the :doc:`IoT documentation <../../iot/config/connect>`.
-Once the IoT Box is up and running, you’ll need to link your payment
-terminal to your PoS. Open the *Point of Sale* app and go to
-:menuselection:`Configuration --> Point of Sale`. Select a PoS, tick the IoT
-Box Device option and select your payment terminal.
-
-.. image:: media/payment_terminal_01.png
- :align: center
-
Configure the Lane/5000 for Ingenico BENELUX
--------------------------------------------
diff --git a/point_of_sale/payment/media/payment_terminal_01.png b/point_of_sale/payment/media/payment_terminal_01.png
deleted file mode 100644
index 39d14cb99..000000000
Binary files a/point_of_sale/payment/media/payment_terminal_01.png and /dev/null differ
diff --git a/point_of_sale/payment/media/six_01.png b/point_of_sale/payment/media/six_01.png
index b2e34c1e3..1a678a0bc 100644
Binary files a/point_of_sale/payment/media/six_01.png and b/point_of_sale/payment/media/six_01.png differ
diff --git a/point_of_sale/payment/media/six_02.png b/point_of_sale/payment/media/six_02.png
index 05e2d0ea1..850862202 100644
Binary files a/point_of_sale/payment/media/six_02.png and b/point_of_sale/payment/media/six_02.png differ
diff --git a/point_of_sale/payment/media/six_03.png b/point_of_sale/payment/media/six_03.png
deleted file mode 100644
index 10b0b0bc6..000000000
Binary files a/point_of_sale/payment/media/six_03.png and /dev/null differ
diff --git a/point_of_sale/payment/media/six_04.png b/point_of_sale/payment/media/six_04.png
deleted file mode 100644
index 96e8ab031..000000000
Binary files a/point_of_sale/payment/media/six_04.png and /dev/null differ
diff --git a/point_of_sale/payment/media/six_05.png b/point_of_sale/payment/media/six_05.png
deleted file mode 100644
index faca504a5..000000000
Binary files a/point_of_sale/payment/media/six_05.png and /dev/null differ
diff --git a/point_of_sale/payment/media/six_08.png b/point_of_sale/payment/media/six_08.png
deleted file mode 100644
index 999bbdb34..000000000
Binary files a/point_of_sale/payment/media/six_08.png and /dev/null differ
diff --git a/point_of_sale/payment/media/six_09.png b/point_of_sale/payment/media/six_09.png
deleted file mode 100644
index 8d25c5865..000000000
Binary files a/point_of_sale/payment/media/six_09.png and /dev/null differ
diff --git a/point_of_sale/payment/media/six_10.png b/point_of_sale/payment/media/six_10.png
deleted file mode 100644
index a8f8b303e..000000000
Binary files a/point_of_sale/payment/media/six_10.png and /dev/null differ
diff --git a/point_of_sale/payment/six.rst b/point_of_sale/payment/six.rst
index 7d1fea95b..e327bd9de 100644
--- a/point_of_sale/payment/six.rst
+++ b/point_of_sale/payment/six.rst
@@ -1,6 +1,6 @@
-=================================
-Connect SIX/Worldline to your PoS
-=================================
+====================================================
+Connect a SIX/Worldline Payment Terminal to your PoS
+====================================================
Connecting a SIX/Worldline payment terminal allows you to offer a fluid
payment flow to your customers and ease the work of your cashiers.
@@ -11,55 +11,22 @@ payment flow to your customers and ease the work of your cashiers.
Configuration
=============
-Connect a Payment Terminal
---------------------------
+Configure the Payment Method
+----------------------------
-Connecting a SIX/Worldline Payment Terminal to Odoo is a feature that
-requires an IoT Box. For more information on how to connect an IoT Box
-to your database, please refer to the :doc:`IoT documentation
-<../../iot/config/connect>`.
-
-Once the *IoT Box* is up and running, you’ll need to link it to your
-PoS. Open the Point of Sale app and go to :menuselection:`Configuration
---> Point of Sale`. Select a PoS, tick the IoT Box Device option and select
-your payment terminal.
+First, make sure that the POS Six module is installed. For this, go to *Apps*,
+remove the "Apps" filter and search for "POS Six".
.. image:: media/six_01.png
:align: center
-Then go to your *IoT Box homepage* (accessible from the IoT Box form
-view in Odoo) and enter the ID of your Six payment terminal.
+Back in :menuselection:`Point of Sale --> Configuration --> Payment Methods`,
+Create a new payment method for SIX, select the payment terminal option
+"SIX without IoT Box", and enter your payment terminal IP address.
.. image:: media/six_02.png
:align: center
-You should now see that the terminal is connected to your IoT Box (it
-takes +/- 1 min).
-
-.. image:: media/six_03.png
- :align: center
-
-.. tip::
- The terminal should only be connected to the network with the Ethernet.
- Do not connect it to the IoT Box with a USB Cable.
-
-Configure the Payment Method
-----------------------------
-
-First, go in the general settings of the POS app, and activate the SIX
-setting.
-
-.. image:: media/six_04.png
- :align: center
-
-Back in :menuselection:`Point of Sale --> Configuration --> Point of Sale`,
-go in the payments section and access your payment methods. Create a new
-payment method for SIX, select the payment terminal option SIX, and select
-your payment terminal device.
-
-.. image:: media/six_05.png
- :align: center
-
Pay with a Payment Terminal
===========================
@@ -82,26 +49,3 @@ If there is any issue with the payment terminal, you can still force the
payment using the *Force Done*. This will allow you to validate the
order in Odoo even if the connexion between the terminal and Odoo
encounters issues.
-
-Close your Session
-==================
-
-At the end of the day, before closing your session, you need to send the
-balance of the payments to SIX. To do that, click on this button.
-
-.. image:: media/six_08.png
- :align: center
-
-Once the balance has been sent, the SIX shift is closed, meaning you
-cannot do additional operations with the SIX payment terminal (except if
-you reopen a shift by clicking on the user name and selecting a
-cashier).
-
-.. image:: media/six_09.png
- :align: center
-
-Once your payment is processed, on the payment record, you’ll find the
-type of card that has been used and the transaction ID.
-
-.. image:: media/six_10.png
- :align: center
\ No newline at end of file
diff --git a/point_of_sale/restaurant.rst b/point_of_sale/restaurant.rst
index 2132efd47..89666ae8c 100644
--- a/point_of_sale/restaurant.rst
+++ b/point_of_sale/restaurant.rst
@@ -5,12 +5,9 @@ Restaurant Features
.. toctree::
:titlesonly:
- restaurant/setup
- restaurant/table
+ restaurant/restaurant
restaurant/split
restaurant/bill_printing
restaurant/kitchen_printing
+ restaurant/fiscal_position
restaurant/tips
- restaurant/transfer
- restaurant/multi_orders
- restaurant/fiscal_position
\ No newline at end of file
diff --git a/point_of_sale/restaurant/media/multi_orders01.png b/point_of_sale/restaurant/media/multi_orders01.png
deleted file mode 100644
index d6128e923..000000000
Binary files a/point_of_sale/restaurant/media/multi_orders01.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/restaurant_01.png b/point_of_sale/restaurant/media/restaurant_01.png
new file mode 100644
index 000000000..bb06e2c69
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_01.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_02.png b/point_of_sale/restaurant/media/restaurant_02.png
new file mode 100644
index 000000000..8c64d28fa
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_02.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_03.png b/point_of_sale/restaurant/media/restaurant_03.png
new file mode 100644
index 000000000..f46f04ee6
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_03.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_04.png b/point_of_sale/restaurant/media/restaurant_04.png
new file mode 100644
index 000000000..bf9d6f4e6
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_04.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_05.png b/point_of_sale/restaurant/media/restaurant_05.png
new file mode 100644
index 000000000..a8a226c9b
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_05.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_06.png b/point_of_sale/restaurant/media/restaurant_06.png
new file mode 100644
index 000000000..5a3650e6f
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_06.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_07.png b/point_of_sale/restaurant/media/restaurant_07.png
new file mode 100644
index 000000000..3ffa8b29d
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_07.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_08.png b/point_of_sale/restaurant/media/restaurant_08.png
new file mode 100644
index 000000000..4da9ad4be
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_08.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_09.png b/point_of_sale/restaurant/media/restaurant_09.png
new file mode 100644
index 000000000..5608acd03
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_09.png differ
diff --git a/point_of_sale/restaurant/media/restaurant_10.png b/point_of_sale/restaurant/media/restaurant_10.png
new file mode 100644
index 000000000..82a88f93f
Binary files /dev/null and b/point_of_sale/restaurant/media/restaurant_10.png differ
diff --git a/point_of_sale/restaurant/media/setup01.png b/point_of_sale/restaurant/media/setup01.png
deleted file mode 100644
index f96660bd4..000000000
Binary files a/point_of_sale/restaurant/media/setup01.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/setup02.png b/point_of_sale/restaurant/media/setup02.png
deleted file mode 100644
index 2aeef5304..000000000
Binary files a/point_of_sale/restaurant/media/setup02.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/setup03.png b/point_of_sale/restaurant/media/setup03.png
deleted file mode 100644
index 1c5707524..000000000
Binary files a/point_of_sale/restaurant/media/setup03.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/setup04.png b/point_of_sale/restaurant/media/setup04.png
deleted file mode 100644
index 73153cd8c..000000000
Binary files a/point_of_sale/restaurant/media/setup04.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/table01.png b/point_of_sale/restaurant/media/table01.png
deleted file mode 100644
index 863c47e6d..000000000
Binary files a/point_of_sale/restaurant/media/table01.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/table02.png b/point_of_sale/restaurant/media/table02.png
deleted file mode 100644
index d4e497e88..000000000
Binary files a/point_of_sale/restaurant/media/table02.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/table03.png b/point_of_sale/restaurant/media/table03.png
deleted file mode 100644
index d7bcb4027..000000000
Binary files a/point_of_sale/restaurant/media/table03.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/table04.png b/point_of_sale/restaurant/media/table04.png
deleted file mode 100644
index cfe8fc362..000000000
Binary files a/point_of_sale/restaurant/media/table04.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/transfer01.png b/point_of_sale/restaurant/media/transfer01.png
deleted file mode 100644
index f9180808d..000000000
Binary files a/point_of_sale/restaurant/media/transfer01.png and /dev/null differ
diff --git a/point_of_sale/restaurant/media/transfer02.png b/point_of_sale/restaurant/media/transfer02.png
deleted file mode 100644
index 491975dc8..000000000
Binary files a/point_of_sale/restaurant/media/transfer02.png and /dev/null differ
diff --git a/point_of_sale/restaurant/multi_orders.rst b/point_of_sale/restaurant/multi_orders.rst
deleted file mode 100644
index 78471b528..000000000
--- a/point_of_sale/restaurant/multi_orders.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-========================
-Register multiple orders
-========================
-
-The Odoo Point of Sale App allows you to register multiple orders
-simultaneously giving you all the flexibility you need.
-
-Register an additional order
-============================
-
-When you are registering any order, you can use the *+* button to add
-a new order.
-
-You can then move between each of your orders and process the payment
-when needed.
-
-.. image:: media/multi_orders01.png
- :align: center
-
-By using the *-* button, you can remove the order you are currently
-on.
diff --git a/point_of_sale/restaurant/restaurant.rst b/point_of_sale/restaurant/restaurant.rst
new file mode 100644
index 000000000..af3b02459
--- /dev/null
+++ b/point_of_sale/restaurant/restaurant.rst
@@ -0,0 +1,116 @@
+==================
+Manage your tables
+==================
+
+Restaurants have specific needs that shops don’t have. That’s why
+Odoo gives restaurant owners several unique features to help them manage
+their business in the best possible way.
+
+Floor and table management, bill splitting, or even the possibility to
+print orders from the kitchen, everything is there to help your
+business shine and your employees to work efficiently.
+
+Configuration
+=============
+
+To activate the bar/restaurant features, go to :menuselection:`Point of
+Sale --> Configuration --> Point of Sale` and open your PoS. Now,
+select *Is a Bar/Restaurant*.
+
+.. image:: media/restaurant_01.png
+ :align: center
+ :alt: Restaurant set up. Enabling the is a bar/Restaurant feature on a PoS
+
+New features are shown with a fork and a knife next to it, indicating
+that they are restaurant-specific.
+
+.. image:: media/restaurant_02.png
+ :align: center
+ :alt: Several restaurant features. Bill printing, bill splitting and tips
+
+Add a floor
+===========
+
+Once your *Point of Sale* has been configured, select *Table
+Management* under :menuselection:`Point of Sale --> Configuration -->
+Point of Sale`. Then, click on *Floors* to create and name your floor and tables.
+
+.. image:: media/restaurant_03.png
+ :align: center
+ :alt: View of the table management feature. Way to manage and create floors for a pos
+
+.. image:: media/restaurant_04.png
+ :align: center
+ :alt: Backend view of a restaurant floor. Table name and number of sits for each table
+
+.. note::
+ Don’t forget to link your floor to your point of sale.
+
+Add tables
+==========
+
+To add tables, you can also open your PoS interface to see your
+floor(s).
+
+.. image:: media/restaurant_05.png
+ :align: center
+ :alt: View of the floors menu to manage several floors at the same time
+
+Then, click on *Edit Mode* (pencil icon on the upper right corner) to be allowed to
+create, move, modify tables, etc.
+
+.. image:: media/restaurant_06.png
+ :align: center
+ :alt: View of the floor management. Add tables, the number of sits, their name and their shape
+
+.. note::
+ To make your table easier to be found, you can rename them, change their
+ shape, size or even color. It is also possible to add the maximum number of sits the table can
+ have.
+
+Register your table(s) orders
+=============================
+
+To register an order, click on the respective table. By doing so, you are taken
+to your main interface.
+
+.. image:: media/restaurant_07.png
+ :align: center
+ :alt: View of the pos interface to register orders
+
+Transfer customer(s)
+====================
+
+If your customers want to move to another table after they already
+ordered, use the transfer button. This way, the order is also moved to the new
+table.
+
+To do so, select the table your customer is currently on.
+
+.. image:: media/restaurant_08.png
+ :align: center
+ :alt: View of the restaurant tables, one having a pending order
+
+Now, click on the transfer button and select the table to which you are transferring your
+customer.
+
+.. image:: media/restaurant_09.png
+ :align: center
+ :alt: View of the pos interface and transfer button. How to transfer customers from one table
+ to another
+
+Register an additional order
+============================
+
+When registering an order, use the + button to simultaneously proceed to
+another one.
+
+Then, you can shift between your orders and process the payment
+when needed.
+
+.. image:: media/restaurant_10.png
+ :align: center
+ :alt: View of the - button, allowing employees to close/remove an order
+
+.. tip::
+ The - button allows you to remove the order you are currently on.
\ No newline at end of file
diff --git a/point_of_sale/restaurant/setup.rst b/point_of_sale/restaurant/setup.rst
deleted file mode 100644
index 4244e6846..000000000
--- a/point_of_sale/restaurant/setup.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-========================
-Setup PoS Restaurant/Bar
-========================
-
-Food and drink businesses have very specific needs that the Odoo Point
-of Sale application can help you to fulfill.
-
-Configuration
-=============
-
-To activate the *Bar/Restaurant* features, go to
-:menuselection:`Point of Sale --> Configuration --> Point of sale` and
-select your PoS interface.
-
-Select *Is a Bar/Restaurant*
-
-.. image:: media/setup01.png
- :align: center
-
-You now have various specific options to help you setup your point of
-sale. You can see those options have a small knife and fork logo next to
-them.
-
-.. image:: media/setup02.png
- :align: center
-
-.. image:: media/setup03.png
- :align: center
-
-.. image:: media/setup04.png
- :align: center
diff --git a/point_of_sale/restaurant/table.rst b/point_of_sale/restaurant/table.rst
deleted file mode 100644
index 03298e8fb..000000000
--- a/point_of_sale/restaurant/table.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-===============================
-Configure your table management
-===============================
-
-Once your point of sale has been configured for bar/restaurant usage,
-select *Table Management* in :menuselection:`Point of Sale --> Configuration --> Point of sale`..
-
-Add a floor
-===========
-
-When you select *Table management* you can manage your floors by
-clicking on *Floors*
-
-.. image:: media/table01.png
- :align: center
-
-Add tables
-==========
-
-From your PoS interface, you will now see your floor(s).
-
-.. image:: media/table02.png
- :align: center
-
-When you click on the pencil you will enter into edit mode, which will
-allow you to create tables, move them, modify them, ...
-
-.. image:: media/table03.png
- :align: center
-
-In this example I have 2 round tables for six and 2 square tables for
-four, I color coded them to make them easier to find, you can also
-rename them, change their shape, size, the number of people they hold as
-well as duplicate them with the handy tool bar.
-
-Once your floor plan is set, you can close the edit mode.
-
-Register your table(s) orders
-=============================
-
-When you select a table, you will be brought to your usual interface to
-register an order and payment.
-
-You can quickly go back to your floor plan by selecting the floor button
-and you can also transfer the order to another table.
-
-.. image:: media/table04.png
- :align: center
diff --git a/point_of_sale/restaurant/transfer.rst b/point_of_sale/restaurant/transfer.rst
deleted file mode 100644
index bd9815ae7..000000000
--- a/point_of_sale/restaurant/transfer.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-=================================
-Transfer customers between tables
-=================================
-
-If your customer(s) want to change table after they have already placed
-an order, Odoo can help you to transfer the customers and their order to
-their new table, keeping your customers happy without making it
-complicated for you.
-
-Transfer customer(s)
-====================
-
-Select the table your customer(s) is/are currently on.
-
-.. image:: media/transfer01.png
- :align: center
-
-You can now transfer the customers, simply use the transfer button and
-select the new table
-
-.. image:: media/transfer02.png
- :align: center
diff --git a/project/tasks/email_alias.rst b/project/tasks/email_alias.rst
index 11ebc2871..36f894f8f 100644
--- a/project/tasks/email_alias.rst
+++ b/project/tasks/email_alias.rst
@@ -12,7 +12,7 @@ Set up an incoming email server
| On the *Settings* application, enable *External Email Servers* and define the incoming email
alias you would like to use.
-| **For more information**: :doc:`../../discuss/email_servers`
+| **For more information**: :doc:`../../discuss/advanced/email_servers`
Configure the email alias in your project
-----------------------------------------
@@ -22,7 +22,7 @@ Configure the email alias in your project
the wanted email alias and choose the policy to receive a message.
| In addition, you can now directly set it when creating a new project.
-.. image:: media/email_alias.png
+.. image:: media/email_project.png
:align: center
:alt: In the settings of your project, define the emails alias under the tab email in Odoo Project
@@ -31,7 +31,7 @@ Configure the email alias in your project
The email can be seen under the name of your project on the dashboard.
-.. image:: media/email_test.png
+.. image:: media/email_dashboard_project.png
:align: center
:height: 300
:alt: View of the email alias chosen on the dashboard view in Odoo Project
diff --git a/project/tasks/media/email_alias.png b/project/tasks/media/email_alias.png
deleted file mode 100644
index 291021726..000000000
Binary files a/project/tasks/media/email_alias.png and /dev/null differ
diff --git a/project/tasks/media/email_dashboard_project.png b/project/tasks/media/email_dashboard_project.png
new file mode 100644
index 000000000..2bffe17c0
Binary files /dev/null and b/project/tasks/media/email_dashboard_project.png differ
diff --git a/project/tasks/media/email_project.png b/project/tasks/media/email_project.png
new file mode 100644
index 000000000..45f9e472a
Binary files /dev/null and b/project/tasks/media/email_project.png differ
diff --git a/project/tasks/media/email_test.png b/project/tasks/media/email_test.png
deleted file mode 100644
index d50a50ca1..000000000
Binary files a/project/tasks/media/email_test.png and /dev/null differ
diff --git a/quality/control/control_points.rst b/quality/control/control_points.rst
index 506fb2e34..74b50cfe9 100644
--- a/quality/control/control_points.rst
+++ b/quality/control/control_points.rst
@@ -2,149 +2,206 @@
Define Quality Control Points
=============================
+Quality is an important factor when it comes to products or services.
+Nowadays, quality has become the differentiating factor for all goods
+and services. It is vital for businesses to deliver products that meet
+or exceed expectations. It also helps minimize waste.
+
+That is why most manufacturers would not think of eliminating the
+quality control from their manufacturing process. After all, removing
+quality controls would dramatically increase the number of defective
+products that the company then has to rework or scrap.
+
+Then, using business applications to ensure data quality is important.
+With Odoo insuring the rear, any major problem can be avoided before
+occurring!
+
Quality Control Points
======================
-If it is the first *Quality Control Point* that you create, know that
-you need to open the *Quality* app. Then, go to :menuselection:`Quality Control -->
-Control Points`. Once there, you have to define the product on which
-the quality control will take place, as well as the operation at which
-it should take place.
+To create a *Quality Control Point*, go to :menuselection:`Quality
+--> Quality Control --> Control Points`. Once there, define the product
+on which the quality control point should take place. The operation at
+which it takes place also is to be defined here.
-The *Quality Control Points* can take place during transfers or during
-the manufacturing process of the products. If you work with routings on
-your *Bill of Materials*, you have to precise at which step of the
-manufacturing process the quality control point should be applied.
+The *Quality Control Points* take place during transfers or during the
+manufacturing process of the products. If working with routings on
+*Bill of Materials*, you have to precise at which step of the
+manufacturing process the quality control point needs to be applied.
-The control type defines at which frequency the quality checks should
-take place:
+The *Control Type* defines at which frequency the quality checks
+should take place:
-- All Operations: all the operations will generate quality checks to perform;
+- **All operations**: all the operations automatically generate quality
+ checks to perform;
-- Randomly: the quality checks will only be performed on x% of the operation. You must define the percentage yourself, on the control point;
+- **Randomly**: the quality checks only perform on x% of the operation. The
+ percentage needs to be defined on the control point;
-- Periodically: the quality checks will be performed periodically. The periodicity is based on the period you define (once a day, once a week).
+- **Periodically**: the quality checks are performed periodically. The
+ periodicity is based on the defined period (once a day, once a
+ week).
.. image:: media/control_points_01.png
:align: center
+ :alt:
Quality Control Point Types
===========================
-Now that the rest is configured, you need to define the type of quality
-check.
+Now, one thing remains to be configured: the type of quality check.
+There are several types that can be used: text, take a picture,
+pass-fail, take a measure, register consumed material, register
+by-product, and print label.
.. note::
- Some of the types are only available with the manufacturing application.
+ Some types are available only with the manufacturing application
+ installed.
Text
----
-This control point type allows you to give instructions to your workers
-during the transfer, or the manufacturing process.
+This control point type allows giving instructions to workers during the
+transfer or during the manufacturing process.
.. image:: media/control_points_01.png
:align: center
+ :alt:
.. image:: media/control_points_02.png
:align: center
+ :alt:
.. image:: media/control_points_03.png
:align: center
+ :alt:
Take a Picture
--------------
-This control point type asks you to take a picture of the product in a
-transfer, or when manufacturing it.
+This control point type asks to take a picture of the product applied in
+a transfer or when manufacturing it.
.. image:: media/control_points_04.png
:align: center
+ :alt:
.. image:: media/control_points_05.png
:align: center
+ :alt:
.. image:: media/control_points_06.png
:align: center
+ :alt:
+
+.. tip::
+ This process can be simplified by using a connected :doc:`camera
+ <../../iot/devices/measurement_tool>`.
Pass-Fail
---------
-This type of control point requires that you specify if the products
-pass or fail a specific text. It can be applied for both transfers or
-manufacturing orders.
+*Pass-Fail* requires to specify if the products pass or fail specific
+criteria. It can be applied for both transfers or manufacturing orders.
.. image:: media/control_points_07.png
:align: center
+ :alt:
-For this kind of control point type, you have the possibility to define
-a failure message that will give instructions to follow in case of
-quality check failure.
+For this kind of type, there is the possibility to define a failure
+message giving instructions to follow in case of failure.
.. image:: media/control_points_08.png
:align: center
+ :alt:
.. image:: media/control_points_09.png
:align: center
+ :alt:
.. image:: media/control_points_10.png
:align: center
+ :alt:
Take a Measure
--------------
-This control point type requires you to enter the product’s measurements
-during a transfer, or during the manufacturing process.
+Taking measures requires to enter the product’s measurements during a
+transfer or during the manufacturing process.
+
+To use it, it necessary to specify the norm for your product’s
+measurements, but also a tolerance threshold. Doing so, all the products
+with good measures can are automatically accepted.
.. image:: media/control_points_11.png
:align: center
+ :alt:
-For this kind of control point type, you also have the possibility to
-define a failure message that will give instructions to the worker.
+As for *Pass-Fail*, this type allows defining a failure message that
+gives instructions to the worker.
.. image:: media/control_points_12.png
:align: center
+ :alt:
.. image:: media/control_points_13.png
:align: center
+ :alt:
.. image:: media/control_points_14.png
:align: center
+ :alt:
+
+.. tip::
+ This process can be simplified by using connected :doc:`measurement tools <../../iot/devices/camera>`.
Register Consumed Materials
---------------------------
-This control point type requires you register the component serial/lot
-numbers during the manufacturing process. It is only available if you
-work with routings.
+When using *Register Consumed Materials*, it is required to register
+the component’s serial/lot numbers during the manufacturing process.
+
+.. note::
+ This type is only available when working with routings.
.. image:: media/control_points_15.png
:align: center
+ :alt:
.. image:: media/control_points_16.png
:align: center
+ :alt:
Register By-Products
--------------------
-With this control point type, you must register the serial/lot number of
-the by-products that are manufactured. It is also only available with
-routings.
+With *Register By-Products*, it is required to register the serial/lot
+number of the by-products that are manufactured.
+
+.. note::
+ This type is only available when working with routings.
.. image:: media/control_points_17.png
:align: center
+ :alt:
.. image:: media/control_points_18.png
:align: center
+ :alt:
Print Label
-----------
-This control point type allows you to print labels to add to the product
-during the manufacturing process.
+*Print Label*, as its name points out, allows printing labels to add
+to the product during the manufacturing process.
.. image:: media/control_points_19.png
:align: center
+ :alt:
.. image:: media/control_points_20.png
- :align: center
\ No newline at end of file
+ :align: center
+ :alt:
+
+.. tip::
+ This process can be simplified by using a connected :doc:`printer <../../iot/devices/printer>`.
\ No newline at end of file
diff --git a/quality/control/media/control_points_01.png b/quality/control/media/control_points_01.png
index 30d2e9607..b20516e9e 100644
Binary files a/quality/control/media/control_points_01.png and b/quality/control/media/control_points_01.png differ
diff --git a/quality/control/media/control_points_02.png b/quality/control/media/control_points_02.png
index a7a524fb4..6be4c2ca2 100644
Binary files a/quality/control/media/control_points_02.png and b/quality/control/media/control_points_02.png differ
diff --git a/quality/control/media/control_points_03.png b/quality/control/media/control_points_03.png
index 29ccb8632..6052f0d46 100644
Binary files a/quality/control/media/control_points_03.png and b/quality/control/media/control_points_03.png differ
diff --git a/quality/control/media/control_points_04.png b/quality/control/media/control_points_04.png
index c0413c6fe..aee29e328 100644
Binary files a/quality/control/media/control_points_04.png and b/quality/control/media/control_points_04.png differ
diff --git a/quality/control/media/control_points_05.png b/quality/control/media/control_points_05.png
index a9c42198e..fd4539cf7 100644
Binary files a/quality/control/media/control_points_05.png and b/quality/control/media/control_points_05.png differ
diff --git a/quality/control/media/control_points_06.png b/quality/control/media/control_points_06.png
index b7f46f14c..39f5c385a 100644
Binary files a/quality/control/media/control_points_06.png and b/quality/control/media/control_points_06.png differ
diff --git a/quality/control/media/control_points_07.png b/quality/control/media/control_points_07.png
index a26367f0b..ed63e0509 100644
Binary files a/quality/control/media/control_points_07.png and b/quality/control/media/control_points_07.png differ
diff --git a/quality/control/media/control_points_08.png b/quality/control/media/control_points_08.png
index 624be3670..22ff1568a 100644
Binary files a/quality/control/media/control_points_08.png and b/quality/control/media/control_points_08.png differ
diff --git a/quality/control/media/control_points_09.png b/quality/control/media/control_points_09.png
index 41b081f3a..481f97cf2 100644
Binary files a/quality/control/media/control_points_09.png and b/quality/control/media/control_points_09.png differ
diff --git a/quality/control/media/control_points_10.png b/quality/control/media/control_points_10.png
index 19369bc99..67aecf12e 100644
Binary files a/quality/control/media/control_points_10.png and b/quality/control/media/control_points_10.png differ
diff --git a/quality/control/media/control_points_11.png b/quality/control/media/control_points_11.png
index 38c87cfa4..2ab0503ad 100644
Binary files a/quality/control/media/control_points_11.png and b/quality/control/media/control_points_11.png differ
diff --git a/quality/control/media/control_points_12.png b/quality/control/media/control_points_12.png
index 9882c9ec8..4e6cdcc55 100644
Binary files a/quality/control/media/control_points_12.png and b/quality/control/media/control_points_12.png differ
diff --git a/quality/control/media/control_points_13.png b/quality/control/media/control_points_13.png
index 3eac66c67..0cc3118eb 100644
Binary files a/quality/control/media/control_points_13.png and b/quality/control/media/control_points_13.png differ
diff --git a/quality/control/media/control_points_14.png b/quality/control/media/control_points_14.png
index 5c412c503..b38ff7372 100644
Binary files a/quality/control/media/control_points_14.png and b/quality/control/media/control_points_14.png differ
diff --git a/quality/control/media/control_points_15.png b/quality/control/media/control_points_15.png
index ec70373cc..7d3e1d7a1 100644
Binary files a/quality/control/media/control_points_15.png and b/quality/control/media/control_points_15.png differ
diff --git a/quality/control/media/control_points_16.png b/quality/control/media/control_points_16.png
index 5fadf65aa..05dd1ea4e 100644
Binary files a/quality/control/media/control_points_16.png and b/quality/control/media/control_points_16.png differ
diff --git a/quality/control/media/control_points_17.png b/quality/control/media/control_points_17.png
index 2737b2284..cc0e690e7 100644
Binary files a/quality/control/media/control_points_17.png and b/quality/control/media/control_points_17.png differ
diff --git a/quality/control/media/control_points_19.png b/quality/control/media/control_points_19.png
index d74a46e52..728ec621b 100644
Binary files a/quality/control/media/control_points_19.png and b/quality/control/media/control_points_19.png differ
diff --git a/redirects.txt b/redirects.txt
index cdf968bfe..dde89ecae 100644
--- a/redirects.txt
+++ b/redirects.txt
@@ -83,6 +83,8 @@ accounting/localizations/spain.rst accounting/fiscal_localizations/localizations
accounting/localizations/switzerland.rst accounting/fiscal_localizations/localizations/switzerland.rst # localizations/* --> fiscal_localizations/localizations/*
accounting/payables/supplier_bills/bills_or_receipts.rst accounting/payables/supplier_bills/purchase_receipts.rst # bills_or_receipts.rst -> purchase_receipts.rst
accounting/bank/reconciliation/configure.rst accounting/bank/reconciliation/reconciliation_models.rst # configure -> reconciliation_models (#613)
+accounting/receivables/customer_payments/credit_cards.rst accounting/receivables/customer_payments/online_payment.rst # credit_cards -> online_payment
+accounting/fiscality/taxes/application.rst accounting/fiscality/taxes/fiscal_positions.rst # application -> fiscal_positions
social_marketing/social_marketing.rst social_marketing/overview.rst # social_marketing/* -> overview/* (#578)
@@ -103,6 +105,12 @@ point_of_sale/advanced/cash_rounding.rst point_of_sale/shop/cash_rounding.rst
point_of_sale/overview/start.rst point_of_sale/overview/getting_started.rst # start --> getting_started (#600)
point_of_sale/shop/refund.rst point_of_sale/overview/getting_started.rst # shop/refund --> overview/getting_started (#600)
point_of_sale/analyze/statistics.rst point_of_sale/overview/getting_started.rst # analyze/statistics --> overview/getting_started (#600)
+point_of_sale/advanced_pricing_features/manual_discount.rst point_of_sale/advanced_pricing_features/discounts.rst # manual_discount --> discounts (#611)
+point_of_sale/advanced_pricing_features/seasonal_discount.rst point_of_sale/advanced_pricing_features/discounts.rst # seasonal_discount --> discounts (#611)
+point_of_sale/restaurant/setup.rst point_of_sale/restaurant/restaurant.rst # setup --> restaurant (#610)
+point_of_sale/restaurant/table.rst point_of_sale/restaurant/restaurant.rst # table --> restaurant (#610)
+point_of_sale/restaurant/multi_orders.rst point_of_sale/restaurant/restaurant.rst # multi_orders --> restaurant (#610)
+point_of_sale/restaurant/transfer.rst point_of_sale/restaurant/restaurant.rst # transfer --> restaurant (#610)
quality/control_points.rst quality/control/control_points.rst # /* --> control/* (#469)
quality/alert_mo.rst quality/alert/alert_mo.rst # /* --> alert/* (#469)
@@ -134,7 +142,10 @@ inventory/settings/warehouses.rst inventory/management/warehouses.rst
inventory/settings/warehouses/difference_warehouse_location.rst inventory/management/warehouses/difference_warehouse_location.rst # settings/* --> management/* (#424)
inventory/settings/warehouses/location_creation.rst inventory/management/warehouses/location_creation.rst # settings/* --> management/* (#424)
inventory/management/delivery/scheduled_dates.rst inventory/management/planning/scheduled_dates.rst # delivery/scheduled_dates --> planning/scheduled_dates (#660)
-inventory/management/planning/scheduled_date.rst inventory/manamgent/planning/scheduled_dates.rst # scheduled_date --> scheduled_dates (#660)
+inventory/management/planning/scheduled_date.rst inventory/management/planning/scheduled_dates.rst # scheduled_date --> scheduled_dates (#660)
+inventory/routes/concept/procurement_rule.rst inventory/routes/concepts/use-routes.rst # procurement_rule --> use-routes (#693)
+inventory/routes/concept/push_rule.rst inventory/routes/concepts/use-routes.rst # push_rule --> use-routes (#693)
+inventory/routes/concept/use_routes.rst inventory/routes/concepts/use-routes.rst # use_routes --> use-routes (#693)
helpdesk/getting_started.rst helpdesk/overview/getting_started.rst # (#565)
helpdesk/after_sales.rst helpdesk/advanced/after_sales.rst # (#565)
@@ -146,3 +157,16 @@ helpdesk/reinvoice_from_project.rst helpdesk/timesheet_and_invoice/reinvoice_fro
planning/duplicate_a_planning.rst planning/overview/duplicate_a_planning.rst # (#567)
planning/send_planned_shifts.rst planning/overview/send_planned_shifts.rst # (#567)
+
+ecommerce/shopper_experience/payment.rst general/payment_acquirers/payment_acquirers.rst # ecommerce/shopper_experience/payment --> general/payment_acquirers/payment_acquirers
+ecommerce/shopper_experience/authorize.rst general/payment_acquirers/authorize.rst # ecommerce/shopper_experience/* --> general/payment_acquirers/*
+ecommerce/shopper_experience/paypal.rst general/payment_acquirers/paypal.rst # ecommerce/shopper_experience/* --> general/payment_acquirers/*
+ecommerce/shopper_experience/wire_transfer.rst general/payment_acquirers/wire_transfer.rst # ecommerce/shopper_experience/* --> general/payment_acquirers/*
+
+discuss/monitoring.rst discuss/overview/get_started.rst # (#655)
+discuss/mentions.rst discuss/overview/get_started.rst # (#655)
+discuss/tracking.rst project/tasks/collaborate.rst # (#655)
+discuss/email_servers.rst discuss/advanced/email_servers.rst # (#655)
+discuss/plan_activities.rst discuss/overview/plan_activities.rst # (#655)
+discuss/team_communication.rst discuss/overview/team_communication.rst # (#655)
+discuss/overview.rst discuss/overview/get_started.rst # (#655)
diff --git a/sales/amazon_connector/apply.rst b/sales/amazon_connector/apply.rst
index 24ada3ea5..9bd299c37 100644
--- a/sales/amazon_connector/apply.rst
+++ b/sales/amazon_connector/apply.rst
@@ -4,144 +4,7 @@ Apply for Amazon MWS Access Keys
.. _amazon/developer-form:
-Submit the Amazon MWS Developer Registration and Assessment Form
-================================================================
-
-In order to synchronize your Amazon orders with Odoo, Amazon MWS access keys are required.
-They can be obtained by submitting the **Amazon MWS Developer Registration and Assessment form** to
-register as a developer. Once recognized by Amazon as a developer (i.e. you make use of an
-application connecting to MWS), you will be granted Amazon MWS access keys.
-
-First, visit the `Amazon Marketplace Web Service documentation
-`_ and follow the
-instructions to register as a developer. Take care to choose the form "I represent a seller
-organization integrating with Amazon MWS for its own selling account only.".
-
-Fill out the *Developer Registration and Assessment form* as suggested below and provide your own
-contact information in the **Developer contact information** section. In the **Business use
-information** section, select the correct region of your seller account. For the other sections,
-adapt your responses in accordance with your business case.
-
-Give a particular attention to **Merchant Fulfilled Shipping**. It should only be checked if you
-ship your products yourself. You should uncheck it if you sell exclusively with the *Fulfillment by
-Amazon* service. Please note that requesting this function is not recommended if you are hosted on
-*Odoo Online* or *Odoo.sh* as the additional security requirements asked by Amazon may not be met by
-Odoo.
-
.. warning::
- Depending on several factors (your region, whether you checked the **Merchant Fulfilled
- Shipping** function (i.e. you request access to Personally Identifiable Information of your
- customers), etc.), Amazon may request you to fill out a second form before granting you MWS
- access keys. As that form depends on the data protection policy of the region of your seller
- account (e.g. GDPR in Europe), we cannot provide you with a pre-filled form. Instead, the answers
- of questions related to Odoo are listed in the `Answer the Additional Form`_ section.
-
-.. tip::
- If you need assistance for your application for Amazon MWS access keys, `submit a support ticket
- to Odoo `_.
-
-.. image:: media/dev_form.png
-
-Answer the Additional Form
-==========================
-
-.. note::
- If you did not receive any additional form after your :ref:`initial application for Amazon MWS
- keys `, you may disregard this section.
-
-This section lists all questions asked by Amazon in additional forms. The answers are tailored for
-*Odoo Online* and *Odoo.sh*. Wherever the answer does not depend on Odoo, you are requested to
-provide it yourself at the place indicated by square brackets.
-
-.. warning::
- If you are *not* hosted on Odoo, you should adapt the answers related to hosting according to
- your own infrastructure and data protection policy.
-
- If you *are* hosted on Odoo, take note that Amazon is the final decision maker concerning your
- application. While Odoo can help you provide additional details to your application, it is not
- guaranteed that Amazon will find them adequate.
-
-- **Describe all functionalities in your application where Personally Identifiable Information (e.g.
- customer name, street address, billing address) is required.**
-
- ► If you did not apply for the *Merchant Fulfilled Shipping* function:
- Generation of customer invoices.
-
- ► If you applied for the *Merchant Fulfilled Shipping* function:
- Generation of delivery orders and customer invoices.
-
-- **List all outside parties with whom your organization shares Amazon Information (e.g. information
- exposed by Amazon through Amazon MWS, Seller Central, or Amazon's public-facing websites) and
- describe how your organization shares this information.**
-
- We share Amazon Information with Odoo SA, our cloud service provider, for the exclusive purpose of
- hosting our enterprise management system (including the Amazon MWS integration). See also
- Odoo SA's Privacy Policy for details at https://www.odoo.com/privacy
-
- ► If you share Amazon Information with outside parties:
- [Answer with the above text and add a description of your organization's policy regarding the
- sharing of Amazon Information with outside parties]
-
-- **List all non-Amazon MWS sources where you retrieve Amazon Information.**
-
- Our enterprise software only relies on MWS to retrieve Amazon Information.
-
-- **Describe how your organization restricts public access to databases, file servers, and
- desktop/developer endpoints.**
-
- We rely on Odoo S.A., our cloud service provider for our database security management. Their
- Security Policy can be found at https://www.odoo.com/security
-
-- **Describe how your organization uniquely identifies employees and restricts access to Amazon
- Information on a need-to-know basis.**
-
- ► If all your employees are properly assigned separate users and given only relevant access rights:
- Access rights are provided to employees based on their role within the company and are
- progressive, based on their responsibility.
-
- For instance, salespersons only have access to their own leads/quotes (and thus no access to
- quotes generated through the Amazon API). A salesmanager has access to all quotes/leads for
- reporting purposes (including quotes generated through the Amazon API). A quote will generate a
- delivery order which will be accessible to a 'normal' user of the Inventory application for him
- to be able to print the delivery label and pack the products.
-
- ► If your employees share users or if they are given more rights than needed:
- [Answer with a description of your organization's policy for the assignation of users and access
- rights to your employees]
-
-- **Describe how your organization prevents Amazon Information from being accessed from employee
- personal devices.**
-
- Our enterprise software does not prevent employees from accessing the organization's data from
- personal devices. Role-based restrictions and access rights still apply.
-
-- **Provide details on your organization's privacy and data handling policies (a link to your policy
- is also acceptable).**
-
- [Answer with a description of your organization's privacy and data handling policies]
-
-- **Describe where your organization stores Amazon Information and provide details on how you
- encrypt this information (e.g., algorithm).**
-
- We rely on Odoo S.A., our cloud service provider for our database security management. Their
- Security Policy can be found at https://www.odoo.com/security
-
-- **Describe how your organization backups or archives Amazon Information and provide details on how
- you encrypt this information (e.g., algorithm).**
-
- We rely on Odoo S.A., our cloud service provider for our database backups management. Their
- Service Level Agreement can be found at https://www.odoo.com/cloud-sla
-
-- **Describe where your organization monitors and detects malicious activity in your
- application(s).**
-
- We rely on Odoo S.A., our cloud service provider for our database security management. Their
- Security Policy can be found at https://www.odoo.com/security
-
-- **Describe how your organization's incident response plan addresses database hacks, unauthorized
- access, and data leaks (a link to your policy is also acceptable).**
-
- Our cloud service provider, Odoo S.A., will notify the customer in case of a data breach.
-
- [Add a description of your organization's incident response plan or a link to your incident
- response policy.]
+ | The authentication mechanism that previously used MWS keys is no longer authorized by Amazon
+ and will soon be replaced by another flow.
+ | This page will be updated accordingly in the coming weeks.
diff --git a/sales/products_prices/taxes.rst b/sales/products_prices/taxes.rst
index dea583896..7e4a3edcc 100644
--- a/sales/products_prices/taxes.rst
+++ b/sales/products_prices/taxes.rst
@@ -6,7 +6,7 @@ Set taxes
:titlesonly:
../../accounting/fiscality/taxes/default_taxes
- ../../accounting/fiscality/taxes/application
+ ../../accounting/fiscality/taxes/fiscal_positions
../../accounting/fiscality/taxes/tax_included
../../accounting/fiscality/taxes/taxcloud
../../accounting/fiscality/taxes/B2B_B2C
diff --git a/sales/send_quotations/get_paid_to_validate.rst b/sales/send_quotations/get_paid_to_validate.rst
index b05eb8ee0..5731f7c1b 100644
--- a/sales/send_quotations/get_paid_to_validate.rst
+++ b/sales/send_quotations/get_paid_to_validate.rst
@@ -22,9 +22,9 @@ feature.
There, you will have direct access to the **Payment Acquirers** page. It will allow you to select
and configure your acquirers of choice. Before creating or modifying a payment acquirer, be sure to
check out our documentation about how to be paid with payment acquirers such as
-:doc:`../../ecommerce/shopper_experience/paypal`,
-:doc:`../../ecommerce/shopper_experience/authorize`, and others in the :doc:`../../ecommerce`
-documentation.
+:doc:`../../general/payment_acquirers/paypal`,
+:doc:`../../general/payment_acquirers/authorize`, and others in the
+:doc:`../../general/payment_acquirers` documentation.
.. note::
If you are familiar with this documentation: :doc:`quote_template`; you
@@ -48,8 +48,8 @@ possibilities to make their online payments. For example:
.. seealso::
- :doc:`quote_template`
- - :doc:`../../ecommerce`
- - :doc:`../../ecommerce/shopper_experience/paypal`
- - :doc:`../../ecommerce/shopper_experience/authorize`
+ - :doc:`../../general/payment_acquirers`
+ - :doc:`../../general/payment_acquirers/paypal`
+ - :doc:`../../general/payment_acquirers/authorize`
diff --git a/sms_marketing/overview/integrations_and_template.rst b/sms_marketing/overview/integrations_and_template.rst
index 18bdb7a95..f0809a930 100644
--- a/sms_marketing/overview/integrations_and_template.rst
+++ b/sms_marketing/overview/integrations_and_template.rst
@@ -77,4 +77,4 @@ then go to :menuselection:`Technical --> SMS Templates`.
.. seealso::
- :doc:`../../social_marketing/overview/campaigns`
- - :doc:`../../discuss/advanced/emailtemplate`
\ No newline at end of file
+ - :doc:`../../discuss/advanced/email_template`
\ No newline at end of file
diff --git a/studio.rst b/studio.rst
new file mode 100644
index 000000000..32db82bd9
--- /dev/null
+++ b/studio.rst
@@ -0,0 +1,11 @@
+:banner: banners/studio.png
+
+======
+Studio
+======
+
+.. toctree::
+ :titlesonly:
+
+ studio/concepts
+ studio/use_cases
\ No newline at end of file
diff --git a/studio/concepts.rst b/studio/concepts.rst
new file mode 100644
index 000000000..61b37a5c6
--- /dev/null
+++ b/studio/concepts.rst
@@ -0,0 +1,9 @@
+========
+Concepts
+========
+
+.. toctree::
+ :titlesonly:
+
+ concepts/understanding_general
+ concepts/understanding_automated_actions
diff --git a/studio/concepts/media/action_update_lead_example.png b/studio/concepts/media/action_update_lead_example.png
new file mode 100644
index 000000000..73d5ec844
Binary files /dev/null and b/studio/concepts/media/action_update_lead_example.png differ
diff --git a/studio/concepts/media/automated_action_flow.png b/studio/concepts/media/automated_action_flow.png
new file mode 100644
index 000000000..bd25f7591
Binary files /dev/null and b/studio/concepts/media/automated_action_flow.png differ
diff --git a/studio/concepts/media/edit_menu.png b/studio/concepts/media/edit_menu.png
new file mode 100644
index 000000000..8e1bc657c
Binary files /dev/null and b/studio/concepts/media/edit_menu.png differ
diff --git a/studio/concepts/media/new_app.png b/studio/concepts/media/new_app.png
new file mode 100644
index 000000000..c1be87224
Binary files /dev/null and b/studio/concepts/media/new_app.png differ
diff --git a/studio/concepts/media/relational_fields.png b/studio/concepts/media/relational_fields.png
new file mode 100644
index 000000000..6ec627bf8
Binary files /dev/null and b/studio/concepts/media/relational_fields.png differ
diff --git a/studio/concepts/understanding_automated_actions.rst b/studio/concepts/understanding_automated_actions.rst
new file mode 100644
index 000000000..69ba3c0ad
--- /dev/null
+++ b/studio/concepts/understanding_automated_actions.rst
@@ -0,0 +1,80 @@
+===============================
+Understanding Automated Actions
+===============================
+
+| Automated actions are used to trigger actions. They are based on conditions and happen on top of
+ Odoo’s default business logic.
+| Examples of automated actions include: creating a next activity upon a quote's confirmation;
+ adding a user as a follower of a confirmed invoice if its total is higher than a
+ certain amount; or preventing a lead from changing stage if a field is not filled in.
+
+.. image:: media/automated_action_flow.png
+ :align: center
+ :height: 270
+ :alt: Flowchart to exemplify an automated action rule for Odoo Studio
+
+| Let's understand how to properly define *when* an automated action runs and *how* to create one:
+| The first step is to choose the :doc:`Model ` on which the action is
+ applied.
+| The **Trigger** field defines the event that causes the automated action to happen:
+
+- *On Creation*: when a new record is created. Note that the record is created once saved for the
+ first time.
+- *On Update*: when the record is updated. Note that the update happens once the record is saved.
+- *On Creation & Update*: on the creation and/or on the update of a record once the form is saved.
+- *On Deletion*: on the removal of a record under the condition set.
+- *Based on Form Modification*: when the value of the specified *Trigger* field is changed in the
+ interface (user sees the changes before saving the record). Note that this action can only be used
+ with the *Execute Python Code* action type.
+- *Based on Timed Condition*: a delay happens after a specific date/time. Set a *Delay after trigger
+ date* if you need a delay to happen before the *Trigger Date*. Example: to send a reminder 15min
+ before a meeting. If the date/time is not set on the form of the model chosen, the date/time
+ considered is the one of the creation/update of the record.
+
+For every Trigger option, **conditions** can be applied, such as:
+
+- *Before Update Domain*: if designated, this condition must be satisfied before the record is
+ updated.
+- *Apply on*: if designated, this condition must be satisfied before executing the action rule
+ (*Action To Do*), and after the update.
+
+| The **Active** option is to be turned off when the rule should be hidden and not executed.
+| Under **Action To Do** choose the type of server action that must be executed once records meet
+ the *Trigger* conditions:
+
+- *Execute Python Code*: a block of code is executed. A *Help* tab with the variables that can be
+ used is available.
+- *Create New Record*: a new record with new values is created.
+- *Update a Record*: updates the record that triggered the action.
+- *Execute several actions*: defines an action that triggers other server actions.
+- *Send Email*: an automatic :doc:`email <../../discuss/advanced/email_template>` is sent.
+- *Add Followers*: :doc:`followers <../../project/tasks/collaborate>` are notified of changes in
+ the task.
+- *Create Next Activity*: creates an activity such as: *Call*, *Email*, *Reminder*.
+- *Send SMS Text Message*: sends an :doc:`SMS <../../sms_marketing/pricing/pricing_and_faq>`.
+
+Example
+~~~~~~~
+
+This is the process of which the update of the *Email* field on the Lead/Opportunity *Model*, with a
+*Trigger Condition* set to *On Update*, goes through:
+
+.. image:: media/action_update_lead_example.png
+ :align: center
+ :alt: View of an automated action being created in Odoo Studio
+
+#. The user creates the record without an email address set.
+#. The user updates the record defining an email address.
+#. Once the change is saved, the automation checks if any of the *Watched Fields* are being updated
+ (for the example: field name *email_from* (Email).
+#. If true, it checks if the record matches the *Before Update Domain* (for the example: *email
+ is not set*).
+#. If true, it checks (*after the update*) whether the record matches the *Apply on* domain (for the
+ example: *email is set*).
+#. If true, the chosen *Action To Do* is performed on the record.
+
+.. seealso::
+ - :doc:`understanding_general`
+ - :doc:`../use_cases/automated_actions`
+
+
diff --git a/studio/concepts/understanding_general.rst b/studio/concepts/understanding_general.rst
new file mode 100644
index 000000000..b536eba2d
--- /dev/null
+++ b/studio/concepts/understanding_general.rst
@@ -0,0 +1,95 @@
+==============================
+Understanding General Concepts
+==============================
+
+| Odoo Studio is a toolbox that allows you to add models or adapt functionalities on top of Odoo’s
+ standard behavior without coding knowledge. You can also create custom views and modify existing
+ ones without having to get into the XML code.
+| Even for experienced developers, typing out code requires time. By using Odoo Studio, you can
+ quickly get your models up and going and focus on the crucial parts of your application. The
+ result is a user-friendly solution that makes customizations and designing new applications easy
+ with or without programming skills.
+
+
+Getting started
+===============
+
+One you start using Odoo Studio, you automatically create a new *module* that contains all your
+modifications. These modifications can be done on existing screens (*views*), by adding new
+*fields* in existing applications, or by creating an entirely new *model*.
+
+What is a Module?
+-----------------
+
+| An Odoo **Module** can contain a number of elements, such as: business objects (models), object
+ views, data files, web controllers, and static web data. An application is a collection of modules.
+| In object-oriented programming, models usually represent a concept from the real world.
+ Example: Odoo has models for Sales Orders, Users, Countries, etc. If you were to build an
+ application to manage Real Estate sales, a model that represents the Properties for sale would
+ probably be your first step.
+
+.. image:: media/new_app.png
+ :align: center
+ :alt: Overview of the main dashboard emphasizing the option to create a new app in Odoo Studio
+
+.. _studio/concepts/understanding_general/models:
+
+What is a Model (also called Object)?
+-------------------------------------
+
+A **Model** determines the logical structure of a database and fundamentally determines in which
+manner data can be stored, organized, and manipulated. In other words, a model is a table of
+information that can be bridged with other tables.
+
+What are Fields?
+----------------
+
+| **Fields** compose models. It is where a record (a piece of data) is registered.
+| Example: on the Real Estate application, fields on the Properties model would include
+ the price, address, a picture, a link to the current owner, etc.
+| There are 2 main types of fields in Odoo: *basic (or scalar) fields* and *relational fields*.
+| Basic fields represent simple values, like numbers or text. Relational fields represent relations
+ between models. So, if you have a model for *Customers* and another one for *Properties*, you
+ would use a relational field to link each Property to its Customer.
+
+Relational Fields in detail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+| **Relational Fields** provide the option to link the data of one model with the data of another
+ model.
+| In Odoo, relational field types are: *One2many*, *Many2one*, *Many2many*.
+
+.. image:: media/relational_fields.png
+ :align: center
+ :alt: Tables with a visual explanation of related fields for Odoo Studio
+
+| An **One2many** field is a *one-way* direction of selecting *multiple* records from a table.
+| Example: a Sales Order can contain multiple Sales Order Lines, which also contain multiple fields
+ of information.
+| A **Many2one** field is a *one-way* direction of selecting *one* record from a table.
+| Example: you can have many product categories, but each product can only belong to one category.
+| A **Many2many** field is a *two-way* direction of selecting records from a table.
+| Example: multiple tags can be added to a lead’s form.
+
+.. note::
+ An *One2many* field must have a *Many2one* related to it.
+
+What are Views?
+---------------
+
+**Views** define how records are displayed. They are specified in XML which means that they can be
+edited independently from the models that they represent. There are various types of views in Odoo,
+and each of them represents a mode of visualization. Some examples are: *form*, *list*, *kanban*.
+
+What is a Menu?
+---------------
+
+A **Menu** is a button that executes and action. In Odoo Studio, to create menus (models) and
+rearrange their hierarchy, click on *Edit Menu*.
+
+.. image:: media/edit_menu.png
+ :align: center
+ :alt: Overview of a menu being edit in Odoo Studio
+
+.. seealso::
+ - `Studio Basics `_
\ No newline at end of file
diff --git a/studio/use_cases.rst b/studio/use_cases.rst
new file mode 100644
index 000000000..0d0a5bf98
--- /dev/null
+++ b/studio/use_cases.rst
@@ -0,0 +1,11 @@
+=========
+Use Cases
+=========
+
+.. toctree::
+ :titlesonly:
+
+ use_cases/models_fields
+ use_cases/filters_status_bar
+ use_cases/automated_actions
+ use_cases/views
\ No newline at end of file
diff --git a/studio/use_cases/automated_actions.rst b/studio/use_cases/automated_actions.rst
new file mode 100644
index 000000000..c918fc9dc
--- /dev/null
+++ b/studio/use_cases/automated_actions.rst
@@ -0,0 +1,26 @@
+=====================================
+Advanced Use Cases: Automated Actions
+=====================================
+
+- **Case scenario 1: when a Belgian lead is created, a 3-stars priority should be automatically
+ applied.**
+
+Under *Automations*, click on *Create* and set the following rules:
+
+- *Model*: Lead/Opportunity
+- *Active*: On
+- *Trigger*: On Creation & Update
+- *Apply on*: Country > Country Name = Belgium
+- *Action To Do*: Update the Record
+- *Data to Write*: Lead/Opportunity > Value > 3
+
+.. image:: media/automated_actions/hight_priority_leads.png
+ :align: center
+ :alt: View of an automated action that sets a high priority to Belgian leads in Odoo Studio
+
+.. tip::
+ Check :doc:`this doc ` in order to have another automated action example.
+
+.. seealso::
+ - :doc:`../concepts/understanding_automated_actions`
+ - :doc:`../concepts/understanding_general`
\ No newline at end of file
diff --git a/studio/use_cases/filters_status_bar.rst b/studio/use_cases/filters_status_bar.rst
new file mode 100644
index 000000000..862f806bd
--- /dev/null
+++ b/studio/use_cases/filters_status_bar.rst
@@ -0,0 +1,61 @@
+==========================================
+Advanced Use Cases: Filters and Status Bar
+==========================================
+
+- **Case scenario 1: on Sales, set a filter on Belgian customers and define it as the default one
+ (the user should still be able to unset the filter).**
+
+On your customer’s page, use *Filters* > *Add Custom Filter* to group customers by country. Now,
+under *Favorites*, *Save Current Search* enabling *Use by default* and *Save*.
+
+.. image:: media/filters_status_bar/customer_filter.png
+ :align: center
+ :alt: View of a custom filter being set to be used by default in Odoo
+
+On *Filter Rules* in Studio mode, select the respective filter and enable *Default Filter*.
+
+.. image:: media/filters_status_bar/sales_default_filter.png
+ :align: center
+ :alt: View of a filter’s rule form emphasizing the field default filter in Odoo Studio
+
+- **Case scenario 2: add a status bar on the product form to manage its life cycle. Set the values:
+ ‘Prototype’, ‘In use’ and ‘Deprecated’. By default, the Kanban view must be grouped by status.**
+
+| On your product form, *Add a pipeline status bar* and name its values. Status bars are *selection*
+ fields that give you the ability to follow a specific flow. They are useful to show you the
+ progress that has been made.
+| On the *Views* menu, access *Kanban* and, under its *View* options, set the *Default Group by* as
+ *Pipeline status bar*.
+
+.. image:: media/filters_status_bar/add_pipeline.png
+ :align: center
+ :alt: Form view emphasizing the button add a pipeline bar in Odoo Studio
+
+Now, open your product form and set the right status for that product. As you move products
+throughout stages (also through the product’s form), stages are shown in the Kanban view.
+
+.. tip::
+ To make modifications in the pipeline status bar, for example, remember to go back to *Form View*.
+
+ .. image:: media/filters_status_bar/form_view.png
+ :align: center
+ :alt: View of Studio emphasizing the form view button in Odoo Studio
+
+- **Case scenario 2.a: when a product goes from ‘In use’ to ‘Deprecate’, set its cost to 0€.**
+
+Create an :doc:`automated action <../concepts/understanding_automated_actions>` with the selected
+values:
+
+- *Model*: Product Template
+- *Trigger*: On Update
+- *First Domain*: Pipeline status bar = In use
+- *Second Domain*: Pipeline status bar = Deprecated
+- *Action To Do*: Update the Record
+- *Data to Write*: Cost (Product Template) > Value > 0
+
+.. image:: media/filters_status_bar/automations_zero_price.png
+ :align: center
+ :alt: View of the automated action created to set the price of a product to zero in Odoo Studio
+
+.. seealso::
+ - :doc:`../concepts/understanding_general`
\ No newline at end of file
diff --git a/studio/use_cases/media/automated_actions/hight_priority_leads.png b/studio/use_cases/media/automated_actions/hight_priority_leads.png
new file mode 100644
index 000000000..a42d3c6f7
Binary files /dev/null and b/studio/use_cases/media/automated_actions/hight_priority_leads.png differ
diff --git a/studio/use_cases/media/filters_status_bar/add_pipeline.png b/studio/use_cases/media/filters_status_bar/add_pipeline.png
new file mode 100644
index 000000000..125fdc996
Binary files /dev/null and b/studio/use_cases/media/filters_status_bar/add_pipeline.png differ
diff --git a/studio/use_cases/media/filters_status_bar/automations_zero_price.png b/studio/use_cases/media/filters_status_bar/automations_zero_price.png
new file mode 100644
index 000000000..806808d48
Binary files /dev/null and b/studio/use_cases/media/filters_status_bar/automations_zero_price.png differ
diff --git a/studio/use_cases/media/filters_status_bar/customer_filter.png b/studio/use_cases/media/filters_status_bar/customer_filter.png
new file mode 100644
index 000000000..00a4a4239
Binary files /dev/null and b/studio/use_cases/media/filters_status_bar/customer_filter.png differ
diff --git a/studio/use_cases/media/filters_status_bar/form_view.png b/studio/use_cases/media/filters_status_bar/form_view.png
new file mode 100644
index 000000000..49d69e057
Binary files /dev/null and b/studio/use_cases/media/filters_status_bar/form_view.png differ
diff --git a/studio/use_cases/media/filters_status_bar/sales_default_filter.png b/studio/use_cases/media/filters_status_bar/sales_default_filter.png
new file mode 100644
index 000000000..e83424f79
Binary files /dev/null and b/studio/use_cases/media/filters_status_bar/sales_default_filter.png differ
diff --git a/studio/use_cases/media/models_fields/add_button.png b/studio/use_cases/media/models_fields/add_button.png
new file mode 100644
index 000000000..1bd004724
Binary files /dev/null and b/studio/use_cases/media/models_fields/add_button.png differ
diff --git a/studio/use_cases/media/models_fields/domain_higher_500.png b/studio/use_cases/media/models_fields/domain_higher_500.png
new file mode 100644
index 000000000..174275632
Binary files /dev/null and b/studio/use_cases/media/models_fields/domain_higher_500.png differ
diff --git a/studio/use_cases/media/models_fields/domain_select_tag_type.png b/studio/use_cases/media/models_fields/domain_select_tag_type.png
new file mode 100644
index 000000000..823ccc21e
Binary files /dev/null and b/studio/use_cases/media/models_fields/domain_select_tag_type.png differ
diff --git a/studio/use_cases/media/models_fields/field_help.png b/studio/use_cases/media/models_fields/field_help.png
new file mode 100644
index 000000000..c032f508e
Binary files /dev/null and b/studio/use_cases/media/models_fields/field_help.png differ
diff --git a/studio/use_cases/media/models_fields/help_tooltip.png b/studio/use_cases/media/models_fields/help_tooltip.png
new file mode 100644
index 000000000..13c09c38f
Binary files /dev/null and b/studio/use_cases/media/models_fields/help_tooltip.png differ
diff --git a/studio/use_cases/media/models_fields/invisible_domain.png b/studio/use_cases/media/models_fields/invisible_domain.png
new file mode 100644
index 000000000..3764dfa4f
Binary files /dev/null and b/studio/use_cases/media/models_fields/invisible_domain.png differ
diff --git a/studio/use_cases/media/models_fields/new_existing_fields.png b/studio/use_cases/media/models_fields/new_existing_fields.png
new file mode 100644
index 000000000..d9f4235af
Binary files /dev/null and b/studio/use_cases/media/models_fields/new_existing_fields.png differ
diff --git a/studio/use_cases/media/models_fields/new_menu.png b/studio/use_cases/media/models_fields/new_menu.png
new file mode 100644
index 000000000..929309019
Binary files /dev/null and b/studio/use_cases/media/models_fields/new_menu.png differ
diff --git a/studio/use_cases/media/models_fields/real_estate_many2one.png b/studio/use_cases/media/models_fields/real_estate_many2one.png
new file mode 100644
index 000000000..7985fb5a6
Binary files /dev/null and b/studio/use_cases/media/models_fields/real_estate_many2one.png differ
diff --git a/studio/use_cases/media/models_fields/search_model_custom.png b/studio/use_cases/media/models_fields/search_model_custom.png
new file mode 100644
index 000000000..ce39f13a4
Binary files /dev/null and b/studio/use_cases/media/models_fields/search_model_custom.png differ
diff --git a/studio/use_cases/media/models_fields/url_id.png b/studio/use_cases/media/models_fields/url_id.png
new file mode 100644
index 000000000..0d4ba9a12
Binary files /dev/null and b/studio/use_cases/media/models_fields/url_id.png differ
diff --git a/studio/use_cases/media/models_fields/widget.png b/studio/use_cases/media/models_fields/widget.png
new file mode 100644
index 000000000..dd8d1d1c5
Binary files /dev/null and b/studio/use_cases/media/models_fields/widget.png differ
diff --git a/studio/use_cases/media/models_fields/widget_checkboxes.png b/studio/use_cases/media/models_fields/widget_checkboxes.png
new file mode 100644
index 000000000..7befb8a5d
Binary files /dev/null and b/studio/use_cases/media/models_fields/widget_checkboxes.png differ
diff --git a/studio/use_cases/media/views/kanban_default.png b/studio/use_cases/media/views/kanban_default.png
new file mode 100644
index 000000000..f81a7f48f
Binary files /dev/null and b/studio/use_cases/media/views/kanban_default.png differ
diff --git a/studio/use_cases/media/views/view_editable.png b/studio/use_cases/media/views/view_editable.png
new file mode 100644
index 000000000..679e5b2bb
Binary files /dev/null and b/studio/use_cases/media/views/view_editable.png differ
diff --git a/studio/use_cases/models_fields.rst b/studio/use_cases/models_fields.rst
new file mode 100644
index 000000000..dcd24ef52
--- /dev/null
+++ b/studio/use_cases/models_fields.rst
@@ -0,0 +1,139 @@
+=====================================================
+Advanced Use Cases: Creating Models and Adding Fields
+=====================================================
+
+- **Case scenario 1: on the leads’ form, if the chosen country is France, show a field
+ 'Pay by check?'**
+
+| On your leads’ form, add a *Related Field* to *Country > Country Name*.
+| Now, add a *Checkbox* field and define its invisibility options as *Country* (carefully select
+ the one just created) *> is not = > France.*
+| You can now hide the related field created (*Country*) if you wish.
+
+.. image:: media/models_fields/invisible_domain.png
+ :align: center
+ :alt: View of the invisibility domain of a field being set in Odoo Studio
+
+| Another approach is to use the country’s ID. To do so, go to
+ :menuselection:`Contacts --> Configuration --> Countries`, select France (for example), and on the
+ URL check its *ID*.
+| The related field invisibility path should now be *Country* (carefully select the one just
+ created) *> is not = > 75*.
+| Again, hide the related field with the country’s ID if you prefer.
+
+.. image:: media/models_fields/url_id.png
+ :align: center
+ :alt: View of an URL emphasizing where a country’s ID can be found for Odoo Studio
+
+- **Case scenario 2: create a model called 'Properties' and add fields called: company, value, name,
+ address, active, image.**
+
+From the dashboard, (optionally) start a new module. Then, click on *Edit Menu* and start a
+*New Menu* (model). Set your menu name and *Confirm*. Now, on its form, drag & drop the necessary
+fields.
+
+.. image:: media/models_fields/new_menu.png
+ :align: center
+ :alt: View of the recommended fields for an object in Odoo Studio
+
+- **Case scenario 2.a: now, you would like to have a model called 'Regions' to which each property
+ must be linked. And, on 'Regions', you would like to see the properties for each region.**
+
+| Go to *Edit Menu > New Menu* and create your menu, calling it *Regions*. Add the necessary fields
+ on its form by dragging & dropping them.
+| Now, in the form view of *Properties*, add a *Many2one* field with a relation to your model
+ *Region*.
+
+.. tip::
+ The *Existing Fields* are the ones that are on the current model but not yet in the view.
+
+ .. image:: media/models_fields/new_existing_fields.png
+ :align: center
+ :height: 420
+ :alt: Form view and a Many2one field being dropped in Odoo Studio
+
+.. image:: media/models_fields/real_estate_many2one.png
+ :align: center
+ :alt: Form view and a Many2one field being dropped in Odoo Studio
+
+| Now, go to the model *Regions*, select the form view, and add a status button selecting *Regions
+ (Properties)* as your relational field.
+| *Status buttons* are computed fields, meaning that they count the numbers of records on the
+ related model, and allow you to access them.
+
+.. image:: media/models_fields/add_button.png
+ :align: center
+ :alt: Form view and the status button window being shown in Odoo Studio
+
+.. tip::
+ When searching for relations, click on *Search more* and filter it by *Custom*. This way you
+ avoid creating duplicates.
+
+ .. image:: media/models_fields/search_model_custom.png
+ :align: center
+ :alt: View of the search model window in Odoo Studio
+
+- **Case scenario 2.b: in the model 'Properties', show all the tags as checkboxes instead of tags.**
+
+Once the field *Tags* is added to the form, select it and, under its *Properties > Widgets*, choose
+*Checkboxes*.
+
+.. image:: media/models_fields/widget.png
+ :align: center
+ :alt: Form view showing the widgets available in Odoo Studio
+
+- **Case scenario 3: on the leads’ form, add a selection field with the values:'Tags' & 'List' &
+ 'Checkboxes'. According to the value of the field, show tags as many2many_tags, many2many_radio,
+ or many2many(_list).**
+
+In your form view, add a *Tags* field and relate it to *Partners Tag*. Under *Properties*, define
+its *Widget* as *Many2many*. Do the same process another 2 times for *Checkboxes* and *Tags*.
+
+.. image:: media/models_fields/widget_checkboxes.png
+ :align: center
+ :alt: Form view emphasizing the widget property in Odoo Studio
+
+| Now, add a *Selection* field and the necessary values.
+| Continue by selecting your *Tags* fields, one by one, to set their *Invisible* options according
+ to their *Widget*. In the example below, the invisibility rule for the *Partner Tags* is set as:
+ *Select Tag type > is not = > Tags.*
+
+.. image:: media/models_fields/domain_select_tag_type.png
+ :align: center
+ :alt: Form view emphasizing a field added and its invisibility properties in Odoo Studio
+
+- **Case scenario 4: on a quotation’s form, add a selection field called 'Manager Validation' with
+ the values: ‘Accepted’ and ‘Refused’. Only a sales manager can see it, and the field should be
+ set as mandatory if the untaxed amount is higher than 500€.**
+
+On your quotation form, add a *Selection* field with the values *Accepted* and *Refused*. Set its
+*Required* condition as *Untaxed Amount > 500* and the *Limit visibility to groups* as *Sales /
+Administrator* or managers.
+
+.. image:: media/models_fields/domain_higher_500.png
+ :align: center
+ :alt: Form view of a required domain being set in Odoo Studio
+
+- **Case scenario 5: change the tooltip of a field for all views.**
+
+| Activate the :doc:`Developer mode <../../general/developer_mode/activate>` and open Studio.
+| Select the necessary field and, under *Properties*, click on *More* to write your tooltip message
+ on *Field Help*. The tooltip message is the explanatory message shown when the user hovers the
+ field. The message here written is displayed on all views forms where the field is added.
+
+.. image:: media/models_fields/field_help.png
+ :align: center
+ :alt: Form view showing more property options and emphasizing the help feature in Odoo Studio
+
+.. note::
+ The *Field Help* message can only be applied to *new* fields. If you would like to change/apply a
+ tooltip for a specific field, use the *Help Tooltip* option under *Properties*.
+
+ .. image:: media/models_fields/help_tooltip.png
+ :align: center
+ :height: 350
+ :alt: View of the properties emphasizing the help tooltip option in Odoo Studio
+
+.. seealso::
+ - :doc:`../concepts/understanding_general`
+
diff --git a/studio/use_cases/views.rst b/studio/use_cases/views.rst
new file mode 100644
index 000000000..0452525f7
--- /dev/null
+++ b/studio/use_cases/views.rst
@@ -0,0 +1,28 @@
+=========================
+Advanced Use Cases: Views
+=========================
+
+- **Case Scenario 1: in Sales, show orders in a Kanban View instead of a List View.**
+
+From the Sales page, access Studio and, under *Views*, set the *Kanban* option as the default one.
+
+.. image:: media/views/kanban_default.png
+ :align: center
+ :height: 380
+ :alt: View of the Kanban option being set as the default one in Odoo Studio
+
+- **Case scenario 2: allow for the list of leads to be edited inline without having to switch to
+ the form view.**
+
+| On the *List View*, under *View* > *Editable*, choose between *New record on top* or *New record
+ at the bottom*. This way, besides defining the order in which new records are displayed in the
+ view, you are able to edit them.
+| If the field is left blank, no editing is possible and records are shown based on your column
+ preferences on the lead's page (front-end).
+
+.. image:: media/views/view_editable.png
+ :align: center
+ :alt: View options emphasizing the editable options of a leads page in Odoo Studio
+
+.. seealso::
+ - :doc:`../concepts/understanding_general`
diff --git a/website/optimize.rst b/website/optimize.rst
index 102f50f24..cb26a5186 100644
--- a/website/optimize.rst
+++ b/website/optimize.rst
@@ -8,6 +8,7 @@ Optimize
optimize/seo
optimize/google_analytics
optimize/google_analytics_dashboard
+ optimize/link_tracker
diff --git a/website/optimize/link_tracker.rst b/website/optimize/link_tracker.rst
new file mode 100644
index 000000000..006b8ec8b
--- /dev/null
+++ b/website/optimize/link_tracker.rst
@@ -0,0 +1,56 @@
+=============================================
+Track clicks and visitors using Link Trackers
+=============================================
+
+Link Trackers allow you to track your marketing campaigns (emails, banner ads, blog posts, social
+media posts, affiliate links, etc.). This way, you are able to identify your best traffic sources
+and make informed decisions about the distribution of your marketing budget.
+
+Configuration
+=============
+
+Go to :menuselection:`Website --> Configuration --> Settings` and activate *Link Trackers*.
+
+.. image:: media/enable_link_tracker.png
+ :align: center
+ :alt: View of Website settings page emphasizing the link trackers field in Odoo Website
+
+Set up traceable URLs
+---------------------
+
+Go to :menuselection:`Website --> Go to website --> Promote --> Track this page`. Here, you are able
+to get a specific tracked URL based on the campaign, medium, and source being used.
+
+.. image:: media/link_tracker_fields.png
+ :align: center
+ :alt: View of the link traker fields for Odoo Website
+
+- **URL**: url of the page you want to track (e.g. the home page or a product's page).
+- **Campaign**: context of your link (e.g. a special promotion).
+- **Medium**: channel used to share (deliver) your link (e.g. an email or a Facebook ad).
+- **Source**: platform where the traffic originates (e.g. Google or Twitter).
+
+Now, click on *Get tracked link* to generate a URL that you can post or send by the source you have
+decided on.
+
+Follow-up on tracked links
+==========================
+
+To look at statistics of your links, go to :menuselection:`Website --> Go to website --> Promote
+--> Track this page`. Besides being able to see the *Most Clicked* and *Recently Used* links, click
+on *Stats* to see complete statistics about the number of clicks and the country of origin of those
+clicks.
+
+.. image:: media/links_statistics.png
+ :align: center
+ :alt: View of the tracked list emphasizing the statistics buttons in Odoo Website
+
+.. tip::
+
+ #. You can also access the link tracker by typing *odoo.com/r* on your browser.
+ #. Activate the developer mode (:menuselection:`Settings --> Activate the developer mode`) and
+ get access to the *Link Tracker* module and its back-end functionalities.
+ #. Integrated with :doc:`Google Analytics `, those trackers allow you to see
+ the number of clicks and visitors to keep you on top of your marketing campaigns.
+ #. The integration with the :doc:`CRM <../../crm/track_leads/prospect_visits>` application allows
+ you to understand where your leads and opportunities are coming from.
\ No newline at end of file
diff --git a/website/optimize/media/enable_link_tracker.png b/website/optimize/media/enable_link_tracker.png
new file mode 100644
index 000000000..e03f57dbe
Binary files /dev/null and b/website/optimize/media/enable_link_tracker.png differ
diff --git a/website/optimize/media/link_tracker_fields.png b/website/optimize/media/link_tracker_fields.png
new file mode 100644
index 000000000..f6da9dc9a
Binary files /dev/null and b/website/optimize/media/link_tracker_fields.png differ
diff --git a/website/optimize/media/links_statistics.png b/website/optimize/media/links_statistics.png
new file mode 100644
index 000000000..cbafc46dc
Binary files /dev/null and b/website/optimize/media/links_statistics.png differ
diff --git a/website/publish/domain_name.rst b/website/publish/domain_name.rst
index 46022ff55..34f3c1aad 100644
--- a/website/publish/domain_name.rst
+++ b/website/publish/domain_name.rst
@@ -117,7 +117,7 @@ Google indexes your website under both names. This is a limitation of the Odoo c
.. seealso::
- * :doc:`../../discuss/email_servers`
+ * :doc:`../../discuss/advanced/email_servers`