Compare commits

..

1 Commits

Author SHA1 Message Date
John Laterre (jol)
dce6733888 [IMP] account_reports: create abstract model for custom reports 2022-09-09 09:58:11 +02:00
148 changed files with 1283 additions and 1167 deletions

View File

@@ -26,7 +26,7 @@ SOURCE_DIR = content
HTML_BUILD_DIR = $(BUILD_DIR)/html HTML_BUILD_DIR = $(BUILD_DIR)/html
ifdef VERSIONS ifdef VERSIONS
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/16.0 HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
endif endif
ifneq ($(CURRENT_LANG),en) ifneq ($(CURRENT_LANG),en)
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG) HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)

View File

@@ -4,11 +4,11 @@
### Requirements ### Requirements
- [Git](https://www.odoo.com/documentation/16.0/contributing/documentation.html#install-git) - [Git](https://www.odoo.com/documentation/master/contributing/documentation.html#install-git)
- [Python 3.7 or 3.8](https://www.odoo.com/documentation/16.0/contributing/documentation.html#python) - [Python 3.7 or 3.8](https://www.odoo.com/documentation/master/contributing/documentation.html#python)
- Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/16.0/requirements.txt). - Python dependencies listed in the file [`requirements.txt`](https://github.com/odoo/documentation/tree/master/requirements.txt).
- [Make](https://www.odoo.com/documentation/16.0/contributing/documentation.html#make) - [Make](https://www.odoo.com/documentation/master/contributing/documentation.html#make)
- A local copy of the [odoo/odoo repository in 16.0](https://github.com/odoo/odoo/tree/16.0) (Optional) - A local copy of the [odoo/odoo repository in master](https://github.com/odoo/odoo/tree/master) (Optional)
### Instructions ### Instructions
@@ -23,7 +23,7 @@
2. Open the file `documentation/_build/html/index.html` in your web browser to display the render. 2. Open the file `documentation/_build/html/index.html` in your web browser to display the render.
3. See [this guide](https://www.odoo.com/documentation/16.0/contributing/documentation.html#preview-your-changes) 3. See [this guide](https://www.odoo.com/documentation/master/contributing/documentation.html#preview-your-changes)
for more detailed instructions. for more detailed instructions.
Optional: to fully build the developer documentation with inline docstrings for documented Python Optional: to fully build the developer documentation with inline docstrings for documented Python
@@ -34,7 +34,7 @@ be shown.
## Contribute to the documentation ## Contribute to the documentation
For contributions to the content of the documentation, please refer to the For contributions to the content of the documentation, please refer to the
[Introduction Guide](https://www.odoo.com/documentation/16.0/contributing/documentation.html). [Introduction Guide](https://www.odoo.com/documentation/master/contributing/documentation.html).
To **report a content issue**, **request new content** or **ask a question**, use the To **report a content issue**, **request new content** or **ask a question**, use the
[repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual. [repository's issue tracker](https://github.com/odoo/documentation-user/issues) as usual.

View File

@@ -22,7 +22,7 @@ copyright = 'Odoo S.A.'
# `version` if the version info for the project being documented, acts as replacement for |version|, # `version` if the version info for the project being documented, acts as replacement for |version|,
# also used in various other places throughout the built documents. # also used in various other places throughout the built documents.
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|. # `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
version = release = '16.0' version = release = 'master'
# The minimal Sphinx version required to build the documentation. # The minimal Sphinx version required to build the documentation.
needs_sphinx = '3.0.0' needs_sphinx = '3.0.0'
@@ -95,7 +95,7 @@ else:
import odoo.addons import odoo.addons
odoo.addons.__path__.append(str(odoo_dir) + '/addons') odoo.addons.__path__.append(str(odoo_dir) + '/addons')
from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option from odoo import release as odoo_release # Don't collide with Sphinx's 'release' config option
odoo_version = '.'.join(str(s) for s in odoo_release.version_info[:2]).replace('~', '-') # Change saas~XX.Y to saas-XX.Y odoo_version = odoo_release.version.replace('~', '-') # Change saas~XX.Y to saas-XX.Y
odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version odoo_version = 'master' if 'alpha' in odoo_release.version else odoo_version
if release != odoo_version: if release != odoo_version:
_logger.warning( _logger.warning(
@@ -186,7 +186,6 @@ sphinx.transforms.i18n.docname_to_domain = (
# The version names that should be shown in the version switcher, if the config option `versions` # The version names that should be shown in the version switcher, if the config option `versions`
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown. # is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = { versions_names = {
'16.0': "Odoo 16",
'master': "Master", 'master': "Master",
'saas-15.2': "Odoo Online", 'saas-15.2': "Odoo Online",
'15.0': "Odoo 15", '15.0': "Odoo 15",

View File

@@ -547,7 +547,7 @@ Dependencies
.. tab:: Debian/Ubuntu .. tab:: Debian/Ubuntu
For Debian-based systems, the packages are listed in the `debian/control For Debian-based systems, the packages are listed in the `debian/control
<https://github.com/odoo/odoo/blob/16.0/debian/control>`_ file of the Odoo sources. <https://github.com/odoo/odoo/blob/master/debian/control>`_ file of the Odoo sources.
On Debian/Ubuntu, the following commands should install the required packages: On Debian/Ubuntu, the following commands should install the required packages:

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -71,7 +71,7 @@ The neutralization includes:
* Disabling outgoing emails by intercepting them with a mailcatcher. An * Disabling outgoing emails by intercepting them with a mailcatcher. An
:ref:`interface to view <odoosh-gettingstarted-branches-tabs-mails>` the emails sent by your :ref:`interface to view <odoosh-gettingstarted-branches-tabs-mails>` the emails sent by your
database is provided. That way, you do not have to worry about sending test emails to your contacts. database is provided. That way, you do not have to worry about sending test emails to your contacts.
* Setting payment providers and shipping providers in test mode. * Setting payment acquirers and shipping providers in test mode.
* Disabling IAP services * Disabling IAP services
The latest database will be kept alive indefinitely, older ones from the same branch may get garbage collected The latest database will be kept alive indefinitely, older ones from the same branch may get garbage collected

View File

@@ -11,4 +11,4 @@ Finance
finance/expenses finance/expenses
finance/documents finance/documents
finance/sign finance/sign
finance/payment_providers finance/payment_acquirers

View File

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

View File

@@ -232,8 +232,9 @@ directly to its services and get the currency rate either automatically or manua
:align: center :align: center
:alt: Bank of Peru is displayed in Multicurrency Service option :alt: Bank of Peru is displayed in Multicurrency Service option
Please refer to the next section in our documentation for more information about Please refer to the next section in our documentation for more information about :doc:`multicurrency
:doc:`multicurrencies <../../others/multi_currency>`. <../../others/multicurrencies/how_it_works>`.
Configure Master data Configure Master data
--------------------- ---------------------

View File

@@ -176,7 +176,7 @@ Payment Method
This menu helps you configure the payment methods with which your customers can pay you. This menu helps you configure the payment methods with which your customers can pay you.
.. important:: .. important::
Configuring a *Payment Provider* with this tool also activates the *Invoice Online Payment* Configuring a *Payment Acquirer* with this tool also activates the *Invoice Online Payment*
option automatically. With this, users can directly pay online, from their Customer Portal. option automatically. With this, users can directly pay online, from their Customer Portal.
.. _invoicing-setup-sample: .. _invoicing-setup-sample:

View File

@@ -7,7 +7,7 @@ Others
.. toctree:: .. toctree::
:titlesonly: :titlesonly:
others/multi_currency
others/analytic others/analytic
others/adviser others/adviser
others/multicurrencies
others/inventory others/inventory

View File

@@ -1,167 +0,0 @@
=====================
Multi-currency system
=====================
Odoo allows you to issue invoices, receive bills, and record transactions in currencies other than
the main currency configured for your company. You can also set up bank accounts in other currencies
and run reports on your foreign currency activities.
.. seealso::
- :doc:`../bank/setup/foreign_currency`
.. _multi-currency/config:
Configuration
=============
.. _multi-currency/config-main-currency:
Main currency
-------------
The **main currency** is defined by default according to the company's country. You can change it by
going to :menuselection:`Accounting --> Configuration --> Settings --> Currencies` and changing the
currency in the :guilabel:`Main Currency` setting.
.. _multi-currency/config-enable:
Enable foreign currencies
-------------------------
Go to :menuselection:`Accounting --> Configuration --> Currencies`, and enable the currencies you
wish to use by toggling the :guilabel:`Active` button.
.. image:: multi_currency/enable-foreign-currencies.png
:align: center
:alt: Enable the currencies you wish to use.
.. _multi-currency/config-rates:
Currency rates
--------------
Manual update
~~~~~~~~~~~~~
To manually create and set a currency rate, go to :menuselection:`Accounting --> Configuration -->
Currencies`, click on the currency you wish to change the rate of, and under the :guilabel:`Rates`
tab, click :guilabel:`Add a line` to create a new rate.
.. image:: multi_currency/manual-rate-update.png
:align: center
:alt: Create or modify the currency rate.
Automatic update
~~~~~~~~~~~~~~~~
When you activate a second currency for the first time, :guilabel:`Automatic Currency Rates` appears
under :menuselection:`Accounting Dashboard --> Configuration --> Settings --> Currencies`. By
default, you have to click on the **Update now** button (:guilabel:`🗘`) to update the rates.
Odoo can update the rates at regular intervals. To do so, change the :guilabel:`Interval` from
:guilabel:`Manually` to :guilabel:`Daily`, :guilabel:`Weekly`, or :guilabel:`Monthly`. You can also
select the web service from which you want to retrieve the latest currency rates by clicking on the
:guilabel:`Service` field.
.. _multi-currency/config-exch-diff:
Exchange difference entries
---------------------------
Odoo automatically records exchange differences entries on dedicated accounts, in a dedicated
journal.
You can define which journal and accounts to use to **post exchange difference entries** by
going to :menuselection:`Accounting --> Configuration --> Settings --> Default Accounts` and editing
the :guilabel:`Journal`, :guilabel:`Gain Account`, and :guilabel:`Loss Account`.
.. example::
If you receive a payment for a customer invoice one month after it was issued, the exchange rate
has likely changed since. Therefore, this fluctuation implies some profit or loss due to the
exchange difference, which Odoo automatically records in the default **Exchange Difference**
journal.
.. _multi-currency/config-coa:
Chart of accounts
-----------------
Each account can have a set currency. By doing so, all moves relevant to the account are forced to
have that account's currency.
To do so, go to :menuselection:`Accounting --> Configuration --> Charts of Accounts` and select a
currency in the field :guilabel:`Account Currency`. If left empty, all active currencies are handled
instead of just one.
.. _multi-currency/config-journals:
Journals
--------
If a currency is set on a **journal**, that journal only handles transactions in that currency.
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open the journal you
want to edit, and select a currency in the field :guilabel:`Currency`. If left empty, all active
currencies are handled instead of just one.
.. image:: multi_currency/journal-currency.png
:align: center
:alt: Select the currency for the journal to handle.
.. _multi-currency/mca:
Multi-currency accounting
=========================
.. _multi-currency/mca-documents:
Invoices, bills, and other documents
------------------------------------
For all documents, you can select the currency and journal to use for the transaction.
.. image:: multi_currency/currency-field.png
:align: center
:alt: Select the currency and journal to use.
.. _multi-currency/mca-payment:
Payment registration
--------------------
To register a payment in a currency other than your company's main currency, click on the
:guilabel:`Register Payment` payment button of your document and, in the pop-up window, select a
**currency** in the :guilabel:`Amount` field.
.. image:: multi_currency/register-payment.png
:align: center
:alt: Select the currency and journal to use before registering the payment.
.. _multi-currency/mca-statements:
Bank statements
---------------
When creating or importing bank statements, the amount is in the company's main currency. To see
additional fields related to foreign currencies, click on the **columns dropdown button**
(:guilabel:`⋮`) next to :guilabel:`Amount`, and check :guilabel:`Amount Currency` and
:guilabel:`Foreign Currency`.
.. image:: multi_currency/foreign-fields.png
:align: center
:alt: The extra fields related to foreign currencies.
When reconciling, Odoo displays both the foreign currency amount and the equivalent amount in your
company's main currency.
.. _multi-currency/mca-exch-entries:
Exchange rate journal entries
-----------------------------
To see **exchange difference journal entries**, go to :menuselection:`Accounting Dashboard -->
Accounting --> Journals: Miscellaneous`.
.. image:: multi_currency/exchange-journal-currency.png
:align: center
:alt: Exchange rate journal entry.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -0,0 +1,12 @@
:nosearch:
=============
Multicurrency
=============
.. toctree::
:titlesonly:
multicurrencies/how_it_works
multicurrencies/invoices_payments
multicurrencies/exchange

View File

@@ -0,0 +1,112 @@
=================================
Record exchange rates at payments
=================================
Overview
========
Any company doing international trade faces the case where the payments
are in a different currency.
After receiving their payments, you have the option to convert the
amount into your company currency. Multi currency payment implies rates
fluctuations. The rate differences are automatically recorded by Odoo.
Configuration
=============
Enable multi-currencies
-----------------------
In the accounting module, Go to :menuselection:`Configuration --> Settings`
and flag **Allow multi currencies**, then click on **apply**.
.. image:: exchange/exchange_rate03.png
:align: center
Configure the currency rates in :menuselection:`Configuration --> Currencies`.
Write down the rate and make sure the currency is active.
.. image:: exchange/exchange_rate02.png
:align: center
In this document, the base currency is **Euro** and we will record payments
in **Dollars**.
.. image:: exchange/exchange_rate08.png
:align: center
.. tip::
You can automatically fetch the currency rates from the **European
Central Bank** or from **Yahoo**. Please read the document :
:doc:`how_it_works`.
Configure your journal
----------------------
In order to register payments in other currencies, you have to **remove
the currency constraint** on the journal. Go to the accounting
application, Click on **More** on the journal and **Settings**.
.. image:: exchange/exchange_rate06.png
:align: center
Check if the **Currency** field is empty or in the foreign currency in which
you will register the payments. If a currency is filled in, it means
that you can register payments only in this currency.
.. image:: exchange/exchange_rate10.png
:align: center
Record a payment in a different currency
========================================
In the **Accounting** application, go to :menuselection:`Sales --> Payments`.
Register the payment and indicate that it was done in the foreign currency. Then
click on **confirm**.
.. image:: exchange/exchange_rate05.png
:align: center
The journal entry has been posted but not allocated.
Go back to your invoice (:menuselection:`Sales --> Customer Invoices`) and click on
**Add** to allocate the payment.
.. image:: exchange/exchange_rate04.png
:align: center
Record a bank statement in a different currency
===============================================
Create or import the bank statement of your payment. The **Amount** is in
the company currency. There are two complementary fields, the **Amount currency**,
which is the amount that was actually paid and the **Currency** in which it was paid.
.. image:: exchange/exchange_rate07.png
:align: center
When reconciling it, Odoo will directly match the payment with the right
**Invoice**. You will get the invoice price in the invoice currency and the
amount in your company currency.
.. image:: exchange/exchange_rate09.png
:align: center
Check the exchange rate differences
===================================
Go to :menuselection:`Adviser --> Journal Entries` and look for the **Exchange difference**
journal entries. All the exchange rates differences are recorded in it.
.. image:: exchange/exchange_rate01.png
:align: center
.. tip::
The Exchange difference journal can be changed in your accounting settings.
.. include:: exchange/full_reconcile_warning.rst
.. seealso::
* :doc:`../../bank/reconciliation/reconciliation_models`
* :doc:`../../bank/reconciliation/use_cases`

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -0,0 +1,7 @@
.. warning::
In order for an exchange difference entry to be created automatically, the
corresponding invoices and payments need to be fully reconciled. This means
the invoices are fully paid and the payments are fully spent on invoices.
If you partially pay 3 invoices from 2 payments, and the last invoice still
has an amount due, there will be no exchange difference entry for any of
them until that final amount is paid.

View File

@@ -0,0 +1,171 @@
============================
Odoo's multi-currency system
============================
Overview
========
Choosing to use the multi-currency option in Odoo will allow you to send
sales invoices, quotes and purchase orders or receive bills and payments
in currencies other than your own. With multi-currency, you can also set
up bank accounts in other currencies and run reports on your foreign
currency activities.
Configuration
=============
Turn on multi-currency
----------------------
In the accounting module, Go to :menuselection:`Configuration --> Settings` and flag
**Allow multi currencies**, then click on **Apply**.
.. image:: how_it_works/works01.png
:align: center
Exchange Rate Journal
---------------------
The **Rate Difference Journal** records the differences between the payment
registration and the expected amount. For example, if a payment is paid
1 month after the invoice was issued, the exchange rate has probably
changed. The fluctuation implies some loss or profit that are recorded
by Odoo.
You can change it in the settings:
.. image:: how_it_works/works02.png
:align: center
View or edit rate being used
----------------------------
You can manually configure the currency rates in :menuselection:`Configuration -->
Currencies`. Open the currencies you want to use in Odoo and edit it.
Make sure the currency is active.
.. image:: how_it_works/works03.png
:align: center
Click on **View Rates** to edit it and to see the history :
.. image:: how_it_works/works04.png
:align: center
Click on **Create** to add the rate. Fill in the date and the rate.
Click on **Save** when you are done.
.. image:: how_it_works/works05.png
:align: center
Live Currency Rate
------------------
By default, the currencies need to be updated manually. But you can
synchronize it with `Yahoo <https://finance.yahoo.com/currency-converter/>`__ or
the `European Central Bank <http://www.ecb.europa.eu>`__. In
:menuselection:`Configuration --> Settings`, go to the **Live Currency Rate** section.
Choose the interval : Manually, Daily, Weekly or Monthly. You can always
force the update by clicking on **Update Now**. Select the provider, and you
are set !
.. image:: how_it_works/works06.png
:align: center
.. note::
Only the **active** currencies are updated
Configure your charts of account
--------------------------------
In the accounting application, go to :menuselection:`Adviser --> Charts of Accounts`.
On each account, you can set a currency. It will force all moves for
this account to have the account currency.
If you leave it empty, it means that it can handle all currencies that
are Active.
.. image:: how_it_works/works07.png
:align: center
Configure your journals
-----------------------
In order to register payments in other currencies, you have to remove
the currency constraint on the journal. Go to the accounting
application, Click on **More** on the journal and **Settings**.
.. image:: how_it_works/works08.png
:align: center
Check if the currency field is empty or in the foreign currency in which
you will register the payments. If a currency is filled in, it means
that you can register payments only in this currency.
.. image:: how_it_works/works09.png
:align: center
How is Odoo's multi-currency working?
=====================================
Now that you are working in a multi-currency environment, all
accountable items will be linked to a currency, domestic or foreign.
Sales Orders and Invoices
-------------------------
You are now able to set a different currency than the company one on
your sale orders and on your invoices. The currency is set for the whole
document.
.. image:: how_it_works/works10.png
:align: center
Purchases orders and Vendor Bills
---------------------------------
You are now able to set a different currency than the company one on
your purchase orders and on your vendor bills. The currency is set for
the whole document.
.. image:: how_it_works/works11.png
:align: center
Payment Registrations
---------------------
In the accounting application, go to :menuselection:`Sales --> Payments`. Register the payment and
set the currency.
.. image:: how_it_works/works12.png
:align: center
Bank Statements
---------------
When creating or importing bank statements, the amount is in the company
currency. But there are now two complementary fields, the amount that
was actually paid and the currency in which it was paid.
.. image:: how_it_works/works13.png
:align: center
When reconciling it, Odoo will directly match the payment with the right
Invoice. You will get the invoice price in the invoice currency and the
amount in your company currency.
Exchange Rate Journal
---------------------
Go to :menuselection:`Adviser --> Journal Entries` and look for the Exchange difference
journal entries. All the exchange rates differences are recorded in it.
.. image:: how_it_works/works14.png
:align: center
.. include:: exchange/full_reconcile_warning.rst
.. seealso::
* :doc:`invoices_payments`
* :doc:`exchange`

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,121 @@
==================================================
Manage invoices and payment in multiple currencies
==================================================
Overview
========
Odoo provides multi-currency support with automatic currency gross or
loss entry adjustment. There are a few things Odoo has been to ease the
user's life.
All the account transactions will be done using the company currency.
However you can see two extra fields with the journal entry where
secondary currency and amount will visible. You can create
multi-currency journals of force a specific currency.
When creating an invoice, the currency can be changed very easily;
however Odoo takes the company currency as a default assignment. It will
convert all the amounts automatically using that currency.
Configuration
=============
Enable Multi-Currency
---------------------
For information about enabling Multi-Currency, please read the document:
:doc:`how_it_works`
Configure your journal
----------------------
In order to register payments in other currencies, you have to remove
the currency constraint on the journal. Go to the accounting
application, on the journal, click on :menuselection:`More --> Settings`.
.. image:: invoices_payments/invoice01.png
:align: center
Check if the currency field is empty or in the foreign currency in which
you will register the payments. If a currency is filled in, it means
that you can register payments only in this currency.
.. image:: invoices_payments/invoice02.png
:align: center
Multi-currency invoices & Vendor Bills
======================================
Now that you are working in a multi-currency environment, all
accountable items will be linked to a currency, domestic or foreign.
Invoices
--------
You are now able to set a different currency than the company one on
your sale orders and on your invoices. The currency is set for the whole
document.
.. image:: invoices_payments/invoice03.png
:align: center
Vendor Bills
------------
You are now able to set a different currency than the company one on
your purchase orders and on your vendor bills. The currency is set for
the whole document.
.. image:: invoices_payments/invoice04.png
:align: center
Multi-currency Payments
=======================
In the accounting application, go to :menuselection:`Sales --> Payments`. Register the
payment and indicate that it was done in the foreign currency. Then
click on **Confirm**.
.. image:: invoices_payments/invoice05.png
:align: center
The journal entry has been posted but not allocated.
Go back to your invoice (:menuselection:`Sales --> Customer Invoices`) and click on
**Add** to allocate the payment.
.. image:: invoices_payments/invoice06.png
:align: center
Multi- Currency Bank Statements
===============================
When creating or importing bank statements, the amount is in the company
currency. But there are now two complementary fields, the amount that
was actually paid and the currency in which it was paid.
.. image:: invoices_payments/invoice07.png
:align: center
When reconciling it, Odoo will directly match the payment with the right
invoice. You will get the invoice price in the invoice currency and the
amount in your company currency.
.. image:: invoices_payments/invoice08.png
:align: center
Exchange Rate Journal
=====================
Go to :menuselection:`Adviser --> Journal Entries` and look for the **Exchange
Difference** journal entries. All the exchange rates differences are recorded in it.
.. image:: invoices_payments/invoice09.png
:align: center
.. include:: exchange/full_reconcile_warning.rst
.. seealso::
* :doc:`how_it_works`
* :doc:`exchange`

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -56,10 +56,10 @@ SEPA Direct Debit as a Payment Method
------------------------------------- -------------------------------------
SEPA Direct Debit can be used as a payment method both on your **eCommerce** or on the **Customer SEPA Direct Debit can be used as a payment method both on your **eCommerce** or on the **Customer
Portal** by activating SDD as a **Payment Provider**. With this method, your customers can create Portal** by activating SDD as a **Payment Acquirer**. With this method, your customers can create
and sign their mandates themselves. and sign their mandates themselves.
To do so, go to :menuselection:`Accounting --> Configuration --> Payment Providers`, click on *SEPA To do so, go to :menuselection:`Accounting --> Configuration --> Payment Acquirers`, click on *SEPA
Direct Debit*, and set it up according to your needs. Direct Debit*, and set it up according to your needs.
.. important:: .. important::
@@ -70,7 +70,7 @@ Customers using SDD as payment method get prompted to add their IBAN, email addr
their SEPA Direct Debit mandate. their SEPA Direct Debit mandate.
.. todo:: .. todo::
Add link to future **Payment Provider** documentation. Add link to future **Payment Acquirer** documentation.
Close or revoke a mandate Close or revoke a mandate
------------------------- -------------------------

View File

@@ -7,18 +7,18 @@ To make it more convenient for your customers to pay the invoices you issue, you
allows your customers to see their invoices online and pay directly with their favorite payment allows your customers to see their invoices online and pay directly with their favorite payment
method, making the payment process much easier. method, making the payment process much easier.
.. image:: online_payment/online-payment-providers.png .. image:: online_payment/online-payment-acquirers.png
:align: center :align: center
:alt: Payment provider choice after having clicked on "Pay Now" :alt: Payment acquirer choice after having clicked on "Pay Now"
Configuration Configuration
============= =============
Make sure your :ref:`Payment Providers are correctly configured <payment_providers/configuration>`. Make sure your :ref:`Payment Acquirers are correctly configured <payment_acquirers/configuration>`.
.. note:: .. note::
By default, ":doc:`Wire Transfer </applications/finance/payment_providers/wire_transfer>`" is the only By default, ":doc:`Wire Transfer </applications/finance/payment_acquirers/wire_transfer>`" is the only
Payment Provider activated, but you still have to fill out the payment details. Payment Acquirer activated, but you still have to fill out the payment details.
To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration --> To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration -->
Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*. Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*.
@@ -34,7 +34,7 @@ Portal**.
:align: center :align: center
:alt: Email with a link to view the invoice online on the Customer Portal. :alt: Email with a link to view the invoice online on the Customer Portal.
They can choose which Payment Provider to use by clicking on *Pay Now*. They can choose which Payment Acquirer to use by clicking on *Pay Now*.
.. image:: online_payment/online-payment-pay-now.png .. image:: online_payment/online-payment-pay-now.png
:align: center :align: center
@@ -42,4 +42,4 @@ They can choose which Payment Provider to use by clicking on *Pay Now*.
.. seealso:: .. seealso::
- :doc:`/applications/finance/payment_providers` - :doc:`/applications/finance/payment_acquirers`

View File

@@ -9,4 +9,3 @@ Overview
overview/main_reports overview/main_reports
overview/customize overview/customize
overview/data_inalterability

View File

@@ -1,63 +0,0 @@
================================
Data inalterability check report
================================
Tax authorities in some countries require companies to **prove their posted accounting entries are
inalterable**, meaning that once an entry has been posted, it can no longer be changed.
To do so, Odoo can use the **SHA-256 algorithm** to create a unique fingerprint for each posted
entry. This fingerprint is called a hash. The hash is generated by taking an entry's essential data
(the values of the `date`, `journal_id`, `company_id`, `debit`, `credit`, `account_id`, and
`partner_id` fields), concatenating it, and inputting it to the SHA-256 hash function, which then
outputs a fixed size (256-bit) string of characters. The hash function is deterministic (:dfn:`the
same input always creates the same output`): any minor modification to the original data would
completely change the resulting hash. Consequently, the SHA-256 algorithm is often used, among
others, for data integrity verification purposes.
In addition, the previous entry's hash is always added to the next entry to form a **hash chain**.
This is used to ensure a new entry is not added afterward between two posted entries, as doing so
would break the hash chain.
.. note::
Hashes generated by the SHA-256 algorithm are theoretically not unique, as there is a finite
number of possible values. However, this number is exceptionally high: 2²⁵⁶, which is a lot
bigger than the number of atoms in the known universe. This is why hashes are considered unique
in practice.
.. _data-inalterability/lock:
Lock posted entries with hash
=============================
To start using the hashing function, go to :menuselection:`Accounting --> Configuration > Journals`.
Open the journal for which you want to activate the feature, go to the :guilabel:`Advanced Settings`
tab, and enable :guilabel:`Lock Posted Entries with Hash`.
.. warning::
Once you post an entry on a locked journal, you cannot disable the feature anymore, nor edit any
posted entry.
.. _data-inalterability/report:
Report download
===============
To download the data inalterability check report, go to :menuselection:`Accounting --> Configuration
--> Settings --> Reporting` and click on :guilabel:`Download the Data Inalterability Check Report`.
The report's first section is an overview of all your journals and their configuration. Under the
inalterability check column, you can see whether or not a journal's posted entries are locked with
a hash (V) or not (X). The coverage column tells you when a journal's posted entries started being
locked.
.. image:: data_inalterability/journal-overview.png
:align: center
:alt: Configuration report for two journals
The second section gives you the result of the data consistency check for each hashed journal. You
can view the first hashed entry and its corresponding hash and the last hashed entry and its
corresponding hash.
.. image:: data_inalterability/data-consistency-check.png
:align: center
:alt: Data consistency check report for a journal

View File

@@ -1,29 +1,29 @@
:show-content: :show-content:
================================================= =================================================
Payment providers (credit cards, online payments) Payment acquirers (credit cards, online payments)
================================================= =================================================
.. toctree:: .. toctree::
:titlesonly: :titlesonly:
payment_providers/wire_transfer payment_acquirers/wire_transfer
payment_providers/adyen payment_acquirers/adyen
payment_providers/alipay payment_acquirers/alipay
payment_providers/amazon_payment_services payment_acquirers/amazon_payment_services
payment_providers/asiapay payment_acquirers/asiapay
payment_providers/authorize payment_acquirers/authorize
payment_providers/buckaroo payment_acquirers/buckaroo
payment_providers/flutterwave payment_acquirers/flutterwave
payment_providers/mercado_pago payment_acquirers/mercado_pago
payment_providers/mollie payment_acquirers/mollie
payment_providers/ogone payment_acquirers/ogone
payment_providers/paypal payment_acquirers/paypal
payment_providers/razorpay payment_acquirers/razorpay
payment_providers/sips payment_acquirers/sips
payment_providers/stripe payment_acquirers/stripe
Odoo embeds several **payment providers** that allow your customers to pay on their *Customer Odoo embeds several **payment acquirers** that allow your customers to pay on their *Customer
Portals* or your *eCommerce website*. They can pay sales orders, invoices, or subscriptions with Portals* or your *eCommerce website*. They can pay sales orders, invoices, or subscriptions with
recurring payments with their favorite payment methods such as **Credit Cards**. recurring payments with their favorite payment methods such as **Credit Cards**.
@@ -31,30 +31,30 @@ Offering several payment methods increases the chances of getting paid in time,
as you make it more convenient for your customers to pay with the payment method they prefer and as you make it more convenient for your customers to pay with the payment method they prefer and
trust. trust.
.. image:: payment_providers/online-payment.png .. image:: payment_acquirers/online-payment.png
:align: center :align: center
:alt: Pay online in the customer portal and select which payment provider to use. :alt: Pay online in the customer portal and select which payment acquirer to use.
.. note:: .. note::
Odoo apps delegate the handling of sensitive information to the certified payment provider so Odoo apps delegate the handling of sensitive information to the certified payment acquirer so
that you don't ever have to worry about PCI compliance. that you don't ever have to worry about PCI compliance.
This means that no sensitive information (such as credit card numbers) is stored on Odoo servers This means that no sensitive information (such as credit card numbers) is stored on Odoo servers
or Odoo databases hosted elsewhere. Instead, Odoo apps use a unique reference number to the data or Odoo databases hosted elsewhere. Instead, Odoo apps use a unique reference number to the data
stored safely in the payment providers' systems. stored safely in the payment acquirers' systems.
.. _payment_providers/supported_providers: .. _payment_acquirers/supported_acquirers:
Supported payment providers Supported payment acquirers
=========================== ===========================
From an accounting perspective, we can distinguish two types of payment providers: the payment From an accounting perspective, we can distinguish two types of payment acquirers: the payment
providers that are third-party services and require you to follow another accounting workflow, and acquirers that are third-party services and require you to follow another accounting workflow, and
the payments that go directly on the bank account and follow the usual reconciliation workflow. the payments that go directly on the bank account and follow the usual reconciliation workflow.
.. _payment_providers/online_providers: .. _payment_acquirers/online_acquirers:
Online payment providers Online payment acquirers
------------------------ ------------------------
.. list-table:: .. list-table::
@@ -64,78 +64,78 @@ Online payment providers
* - * -
- Payment flow - Payment flow
- :ref:`Tokenization <payment_providers/features/tokenization>` - :ref:`Tokenization <payment_acquirers/features/tokenization>`
- :ref:`Manual capture <payment_providers/features/manual_capture>` - :ref:`Manual capture <payment_acquirers/features/manual_capture>`
- :ref:`Refunds <payment_providers/features/refund>` - :ref:`Refunds <payment_acquirers/features/refund>`
- :ref:`Express checkout <payment_providers/features/express_checkout>` - :ref:`Express checkout <payment_acquirers/features/express_checkout>`
* - :doc:`Adyen <payment_providers/adyen>` * - :doc:`Adyen <payment_acquirers/adyen>`
- Payment from Odoo - Payment from Odoo
- |V| - |V|
- Full only - Full only
- Full and partial - Full and partial
- -
* - :doc:`Amazon Payment Services <payment_providers/amazon_payment_services>` * - :doc:`Amazon Payment Services <payment_acquirers/amazon_payment_services>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`AsiaPay <payment_providers/asiapay>` * - :doc:`AsiaPay <payment_acquirers/asiapay>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`Authorize.Net <payment_providers/authorize>` * - :doc:`Authorize.Net <payment_acquirers/authorize>`
- Payment from Odoo - Payment from Odoo
- |V| - |V|
- Full only - Full only
- Full only - Full only
- -
* - :doc:`Buckaroo <payment_providers/buckaroo>` * - :doc:`Buckaroo <payment_acquirers/buckaroo>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`Flutterwave <payment_providers/flutterwave>` * - :doc:`Flutterwave <payment_acquirers/flutterwave>`
- Payment from the provider website - Payment from the acquirer website
- |V| - |V|
- -
- -
- -
* - :doc:`Mercado Pago <payment_providers/mercado_pago>` * - :doc:`Mercado Pago <payment_acquirers/mercado_pago>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`Mollie <payment_providers/mollie>` * - :doc:`Mollie <payment_acquirers/mollie>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`PayPal <payment_providers/paypal>` * - :doc:`PayPal <payment_acquirers/paypal>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`Razorpay <payment_providers/razorpay>` * - :doc:`Razorpay <payment_acquirers/razorpay>`
- Payment from the provider website - Payment from Odoo
- -
- Full only - Full only
- Full and partial - Full and partial
- -
* - :doc:`SIPS <payment_providers/sips>` * - :doc:`SIPS <payment_acquirers/sips>`
- Payment from the provider website - Payment from the acquirer website
- -
- -
- -
- -
* - :doc:`Stripe <payment_providers/stripe>` * - :doc:`Stripe <payment_acquirers/stripe>`
- Payment from the provider website - Payment from the acquirer website
- |V| - |V|
- Full only - Full only
- Full and partial - Full and partial
@@ -146,16 +146,16 @@ Online payment providers
.. note:: .. note::
Some of these online payment providers can also be added as :doc:`bank accounts Some of these online payment providers can also be added as :doc:`bank accounts
<../finance/accounting/bank/setup/bank_accounts>`, but this is **not** the same process as adding <../finance/accounting/bank/setup/bank_accounts>`, but this is **not** the same process as adding
them as payment providers. Payment providers allow customers to pay online, and bank accounts are 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 added and configured on your Accounting app to do a bank reconciliation, which is an accounting
control process. control process.
.. _payment_providers/bank_payments: .. _payment_acquirers/bank_payments:
Bank payments Bank payments
------------- -------------
- | :doc:`Wire Transfer <payment_providers/wire_transfer>` - | :doc:`Wire Transfer <payment_acquirers/wire_transfer>`
| When selected, Odoo displays your payment information with a payment reference. You have to | 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. approve the payment manually once you have received it on your bank account.
- | SEPA Direct Debit - | SEPA Direct Debit
@@ -163,39 +163,39 @@ Bank payments
directly. :doc:`Click here <../finance/accounting/receivables/customer_payments/batch_sdd>` for directly. :doc:`Click here <../finance/accounting/receivables/customer_payments/batch_sdd>` for
more information about this payment method. more information about this payment method.
.. _payment_providers/features: .. _payment_acquirers/features:
Additional features Additional features
=================== ===================
Some payment providers support additional features for the payment flow. Refer to the :ref:`table Some payment acquirers support additional features for the payment flow. Refer to the :ref:`table
above <payment_providers/online_providers>` to check if your payment provider supports these above <payment_acquirers/online_acquirers>` to check if your payment acquirer supports these
features. features.
.. _payment_providers/features/tokenization: .. _payment_acquirers/features/tokenization:
Tokenization Tokenization
------------ ------------
If your payment provider supports this feature, customers can choose to save their card for later. A If your payment acquirer supports this feature, customers can choose to save their card for later. A
**payment token** is created in Odoo and can be used as a payment method for subsequent payments **payment token** is created in Odoo and can be used as a payment method for subsequent payments
without having to enter the card details again. This is particularly useful for the eCommerce without having to enter the card details again. This is particularly useful for the eCommerce
conversion rate and for subscriptions that use recurring payments. conversion rate and for subscriptions that use recurring payments.
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment acquirer
and by ticking the :guilabel:`Allow Saving Payment Methods` checkbox. and by ticking the :guilabel:`Allow Saving Payment Methods` checkbox.
.. note:: .. note::
You remain fully PCI-compliant when you enable this feature because Odoo does not store the card You remain fully PCI-compliant when you enable this feature because Odoo does not store the card
details directly. Instead, it creates a payment token that only holds a reference to the card details directly. Instead, it creates a payment token that only holds a reference to the card
details stored on the payment provider's server. details stored on the payment acquirer's server.
.. _payment_providers/features/manual_capture: .. _payment_acquirers/features/manual_capture:
Manual capture Manual capture
-------------- --------------
If your payment provider supports this feature, you can authorize and capture payments in two steps If your payment acquirer supports this feature, you can authorize and capture payments in two steps
instead of one. When you authorize a payment, the funds are reserved on the customer's payment instead of one. When you authorize a payment, the funds are reserved on the customer's payment
method but they are not immediately charged. The charge is only made when you manually capture the method but they are not immediately charged. The charge is only made when you manually capture the
payment later on. You can also void the authorization to release the reserved funds; this is payment later on. You can also void the authorization to release the reserved funds; this is
@@ -205,11 +205,11 @@ situations:
- Receive the payment confirmation and wait until the order is shipped to capture the payment. - Receive the payment confirmation and wait until the order is shipped to capture the payment.
- Review and verify that orders are legitimate before the payment is completed and the fulfillment - Review and verify that orders are legitimate before the payment is completed and the fulfillment
process starts. process starts.
- Avoid potentially high processing fees for cancelled payments: payment providers will not charge - Avoid potentially high processing fees for cancelled payments: payment acquirers will not charge
you for voiding an authorization. you for voiding an authorization.
- Hold a security deposit to return later, minus any deductions (e.g., after a damage). - Hold a security deposit to return later, minus any deductions (e.g., after a damage).
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment acquirer
and by ticking the :guilabel:`Capture Amount Manually` checkbox. and by ticking the :guilabel:`Capture Amount Manually` checkbox.
To capture the payment after it was authorized, go to the related sales order or invoice and click To capture the payment after it was authorized, go to the related sales order or invoice and click
@@ -217,114 +217,114 @@ on the :guilabel:`CAPTURE TRANSACTION` button. To release the funds, click on th
TRANSACTION` button. TRANSACTION` button.
.. note:: .. note::
- Some payment providers support capturing only part of the authorized amount. The remaining - Some payment acquirers support capturing only part of the authorized amount. The remaining
amount can then be either captured or voided. These providers have the value **Full and amount can then be either captured or voided. These acquirers have the value **Full and
partial** in the :ref:`table above <payment_providers/online_providers>`. The providers that partial** in the :ref:`table above <payment_acquirers/online_acquirers>`. The acquirers that
only support capturing or voiding the full amount have the value **Full only**. only support capturing or voiding the full amount have the value **Full only**.
- The funds are likely not reserved forever. After a certain time, they may be automatically - The funds are likely not reserved forever. After a certain time, they may be automatically
released back to the customer's payment method. Refer to your payment provider's documentation released back to the customer's payment method. Refer to your payment acquirer's documentation
for the exact reservation duration. for the exact reservation duration.
- Odoo does not support this feature for all payment providers but some allow the manual capture - Odoo does not support this feature for all payment acquirers but some allow the manual capture
from their website interface. from their website interface.
.. _payment_providers/features/refund: .. _payment_acquirers/features/refund:
Refunds Refunds
------- -------
If your payment provider supports this feature, you can refund payments directly from Odoo. It does If your payment acquirer supports this feature, you can refund payments directly from Odoo. It does
not need to be enabled first. To refund a customer payment, navigate to it and click on the not need to be enabled first. To refund a customer payment, navigate to it and click on the
:guilabel:`REFUND` button. :guilabel:`REFUND` button.
.. note:: .. note::
- Some payment providers support refunding only part of the amount. The remaining amount can then - Some payment acquirers support refunding only part of the amount. The remaining amount can then
optionally be refunded too. These providers have the value **Full and partial** in the optionally be refunded too. These acquirers have the value **Full and partial** in the
:ref:`table above <payment_providers/online_providers>`. The providers that only support :ref:`table above <payment_acquirers/online_acquirers>`. The acquirers that only support
refunding the full amount have the value **Full only**. refunding the full amount have the value **Full only**.
- Odoo does not support this feature for all payment providers but some allow to refund payments - Odoo does not support this feature for all payment acquirers but some allow to refund payments
from their website interface. from their website interface.
.. _payment_providers/features/express_checkout: .. _payment_acquirers/features/express_checkout:
Express checkout Express checkout
---------------- ----------------
If your payment provider supports this feature, customers can use the **Google Pay** and **Apple If your payment acquirer supports this feature, customers can use the **Google Pay** and **Apple
Pay** buttons to pay their eCommerce orders in one click without filling the contact form. Using one Pay** buttons to pay their eCommerce orders in one click without filling the contact form. Using one
of those buttons, they'll go straight from the cart to the confirmation page, stopping by the of those buttons, they'll go straight from the cart to the confirmation page, stopping by the
payment form of Google or Apple to validate the payment. payment form of Google or Apple to validate the payment.
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment acquirer
and by ticking the :guilabel:`Allow Express Checkout` checkbox. and by ticking the :guilabel:`Allow Express Checkout` checkbox.
.. note:: .. note::
All prices shown in the express checkout payment form are always taxes included. All prices shown in the express checkout payment form are always taxes included.
.. _payment_providers/configuration: .. _payment_acquirers/configuration:
Configuration Configuration
============= =============
.. note:: .. note::
Each provider has its specific configuration flow, depending on :ref:`which feature is available Each acquirer has its specific configuration flow, depending on :ref:`which feature is available
<payment_providers/online_providers>`. <payment_acquirers/online_acquirers>`.
.. _payment_providers/add_new: .. _payment_acquirers/add_new:
Add a new payment provider Add a new payment acquirer
-------------------------- --------------------------
To add a new payment provider and make it available to your customers, go to To add a new payment acquirer and make it available to your customers, go to
:menuselection:`Accounting --> Configuration --> Payment Providers`, look for your payment provider, :menuselection:`Accounting --> Configuration --> Payment Acquirers`, look for your payment acquirer,
install the related module, and activate it. To do so, open the payment provider and change its install the related module, and activate it. To do so, open the payment acquirer and change its
state from *Disabled* to *Enabled*. state from *Disabled* to *Enabled*.
.. image:: payment_providers/activation.png .. image:: payment_acquirers/activation.png
:align: center :align: center
:alt: Click on install, then on activate to make the payment provider available on Odoo. :alt: Click on install, then on activate to make the payment acquirer available on Odoo.
.. warning:: .. warning::
We recommend using the *Test Mode* on a duplicated database or a test database. The Test Mode is 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 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 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 providers on your main database. your invoices numbering if you were to test your payment acquirers on your main database.
.. _payment_providers/credentials_tab: .. _payment_acquirers/credentials_tab:
Credentials tab Credentials tab
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
If not done yet, go to the online payment provider website, create an account, and make sure to have If not done yet, go to the online payment provider website, create an account, and make sure to have
the credentials required for third-party use. Odoo requires these credentials to communicate with the credentials required for third-party use. Odoo requires these credentials to communicate with
the payment provider. the payment acquirer.
The form in this section is specific to the payment provider you are configuring. Please refer to The form in this section is specific to the payment acquirer you are configuring. Please refer to
the related documentation for more information. the related documentation for more information.
.. _payment_providers/configuration_tab: .. _payment_acquirers/configuration_tab:
Configuration tab Configuration tab
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
You can change the payment provider's front-end appearance by modifying its name under the You can change the payment acquirer's front-end appearance by modifying its name under the
**Displayed as** field and which credit card icons to display under the **Supported Payment Icons** **Displayed as** field and which credit card icons to display under the **Supported Payment Icons**
field. field.
.. _payment_providers/countries: .. _payment_acquirers/countries:
Countries Countries
********* *********
Restrict the use of the payment provider to a selection of countries. Leave this field blank to make Restrict the use of the payment acquirer to a selection of countries. Leave this field blank to make
the payment provider available in all countries. the payment acquirer available in all countries.
.. _payment_providers/journal: .. _payment_acquirers/journal:
Maximum Amount Maximum Amount
************** **************
Restrict the maximum amount that can be paid with the selected provider. Leave this field to `0.00` Restrict the maximum amount that can be paid with the selected acquirer. Leave this field to `0.00`
to make the payment provider available regardless of the payment amount. to make the payment acquirer available regardless of the payment amount.
.. important:: .. important::
This feature is not intended to work on pages which allow the customer to update the payment This feature is not intended to work on pages which allow the customer to update the payment
@@ -334,28 +334,28 @@ to make the payment provider available regardless of the payment amount.
Payment journal Payment journal
*************** ***************
The **Payment journal** selected for your payment provider must be a *Bank* journal. The **Payment journal** selected for your payment acquirer must be a *Bank* journal.
.. _payment_providers/publish: .. _payment_acquirers/publish:
Publish on the website Publish on the website
---------------------- ----------------------
By default, payment providers are *unpublished*, which means that only internal users can see them By default, payment acquirers are *unpublished*, which means that only internal users can see them
on the website. Your customers cannot make payments through an unpublished provider but they can on the website. Your customers cannot make payments through an unpublished acquirer but they can
still manage :dfn:`(delete and assign to a subscription)` their already existing tokens linked to still manage :dfn:`(delete and assign to a subscription)` their already existing tokens linked to
such an provider. This conveniently allows you to test an provider while preventing making payments such an acquirer. This conveniently allows you to test an acquirer while preventing making payments
and registering new tokens. and registering new tokens.
Click on the :guilabel:`Publish` button located in the top right corner of the provider's form to Click on the :guilabel:`Publish` button located in the top right corner of the acquirer's form to
publish it on the website and make it available to your customers. Click on the publish it on the website and make it available to your customers. Click on the
:guilabel:`Unpublish` button to unpublish it. :guilabel:`Unpublish` button to unpublish it.
.. tip:: .. tip::
Payment providers are automatically published and unpublished when you respectively change their Payment acquirers are automatically published and unpublished when you respectively change their
state to `enabled` and `test`. state to `enabled` and `test`.
.. _payment_providers/accounting: .. _payment_acquirers/accounting:
Accounting perspective Accounting perspective
====================== ======================
@@ -365,7 +365,7 @@ reconciliation workflows. However, payments recorded with **Online Payment Provi
to consider how you want to record your payments' journal entries. We recommend you to ask your to consider how you want to record your payments' journal entries. We recommend you to ask your
accountant for advice. accountant for advice.
You need to select a *Payment Journal* on your provider configuration to record the payments, You need to select a *Payment Journal* on your acquirer configuration to record the payments,
on a **Outstanding Account**. The Journal's **type** must be *Bank Journal*. on a **Outstanding Account**. The Journal's **type** must be *Bank Journal*.
You can use a single journal for many payment methods. And for each payment method, you can either: You can use a single journal for many payment methods. And for each payment method, you can either:
@@ -373,7 +373,7 @@ You can use a single journal for many payment methods. And for each payment meth
- Define an **Accounting Account** to separate these payments from another payment method. - Define an **Accounting Account** to separate these payments from another payment method.
- Leave blank to fallback on the default account, which you can see or change in the settings. - Leave blank to fallback on the default account, which you can see or change in the settings.
.. image:: payment_providers/bank_journal.png .. image:: payment_acquirers/bank_journal.png
:align: center :align: center
:alt: A bank journal in the "Incoming Payments Tab". :alt: A bank journal in the "Incoming Payments Tab".
@@ -381,17 +381,17 @@ You can have the same bank account for the whole company, or for some journals o
payment method... What best suit your needs. payment method... What best suit your needs.
.. seealso:: .. seealso::
- :doc:`payment_providers/wire_transfer` - :doc:`payment_acquirers/wire_transfer`
- :doc:`payment_providers/adyen` - :doc:`payment_acquirers/adyen`
- :doc:`payment_providers/alipay` - :doc:`payment_acquirers/alipay`
- :doc:`payment_providers/authorize` - :doc:`payment_acquirers/authorize`
- :doc:`payment_providers/asiapay` - :doc:`payment_acquirers/asiapay`
- :doc:`payment_providers/buckaroo` - :doc:`payment_acquirers/buckaroo`
- :doc:`payment_providers/mercado_pago` - :doc:`payment_acquirers/mercado_pago`
- :doc:`payment_providers/mollie` - :doc:`payment_acquirers/mollie`
- :doc:`payment_providers/ogone` - :doc:`payment_acquirers/ogone`
- :doc:`payment_providers/paypal` - :doc:`payment_acquirers/paypal`
- :doc:`payment_providers/razorpay` - :doc:`payment_acquirers/razorpay`
- :doc:`payment_providers/sips` - :doc:`payment_acquirers/sips`
- :doc:`payment_providers/stripe` - :doc:`payment_acquirers/stripe`
- :doc:`../websites/ecommerce/shopper_experience/payment_providers` - :doc:`../websites/ecommerce/shopper_experience/payment_acquirer`

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -9,7 +9,7 @@ Configuration
============= =============
.. seealso:: .. seealso::
:ref:`payment_providers/add_new` :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
@@ -28,7 +28,7 @@ the **Credentials** tab.
.. important:: .. important::
If you are trying Adyen as a test, with an Adyen *test account*, head to If you are trying Adyen as a test, with an Adyen *test account*, head to
:menuselection:`Accounting --> Configuration --> Payment Providers`. There, click on :menuselection:`Accounting --> Configuration --> Payment Acquirers`. There, click on
:guilabel:`Adyen`, enable :guilabel:`Test Mode` and enter your credentials in the :guilabel:`Adyen`, enable :guilabel:`Test Mode` and enter your credentials in the
:guilabel:`Credentials` tab. :guilabel:`Credentials` tab.
@@ -114,7 +114,7 @@ Place a hold on a card
Adyen allows you to capture an amount manually instead of having an immediate capture. Adyen allows you to capture an amount manually instead of having an immediate capture.
To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the
:ref:`payment providers documentation <payment_providers/features/manual_capture>`. :ref:`payment acquirers documentation <payment_acquirers/features/manual_capture>`.
Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settings`, and set the Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settings`, and set the
**Capture Delay** to **manual**. **Capture Delay** to **manual**.
@@ -135,4 +135,4 @@ Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settin
**revoke** it. **revoke** it.
.. seealso:: .. seealso::
:doc:`../payment_providers` :doc:`../payment_acquirers`

View File

@@ -12,7 +12,7 @@ Configuration
============= =============
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
@@ -36,4 +36,4 @@ To retrieve them, log into your Alipay account, they are on the front page.
recommend doing this on a test Odoo database, rather than on your main database. recommend doing this on a test Odoo database, rather than on your main database.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -5,7 +5,7 @@ Amazon Payment Services
`Amazon Payment Services <https://paymentservices.amazon.com/>`_ or APS is an online payment provider `Amazon Payment Services <https://paymentservices.amazon.com/>`_ or APS is an online payment provider
established in Dubai offering several online payment options. established in Dubai offering several online payment options.
.. _payment_providers/aps/configure-dashboard: .. _payment_acquirers/aps/configure-dashboard:
Configuration on APS Dashboard Configuration on APS Dashboard
============================== ==============================
@@ -31,14 +31,14 @@ Configuration on APS Dashboard
look and feel of the Amazon Payment Services payment page (where customers fill out their look and feel of the Amazon Payment Services payment page (where customers fill out their
credit card details during payment). credit card details during payment).
.. _payment_providers/aps/configure-odoo: .. _payment_acquirers/aps/configure-odoo:
Configuration on Odoo Configuration on Odoo
===================== =====================
#. :ref:`Navigate to the payment provider Amazon Payment Services <payment_providers/add_new>`, #. :ref:`Navigate to the payment acquirer Amazon Payment Services <payment_acquirers/add_new>`,
change its state to :guilabel:`Enabled`, and make sure it is :guilabel:`Published`. change its state to :guilabel:`Enabled`, and make sure it is :guilabel:`Published`.
#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Merchant Identifier`, #. In the :guilabel:`Credentials` tab, fill the :guilabel:`Merchant Identifier`,
:guilabel:`Access Code`, :guilabel:`SHA Request Phrase` and :guilabel:`SHA Response Phrase` with :guilabel:`Access Code`, :guilabel:`SHA Request Phrase` and :guilabel:`SHA Response Phrase` with
the values you saved at the step :ref:`payment_providers/aps/configure-dashboard`. the values you saved at the step :ref:`payment_acquirers/aps/configure-dashboard`.
#. Configure the rest of the options to your liking. #. Configure the rest of the options to your liking.

View File

@@ -5,7 +5,7 @@ AsiaPay
`AsiaPay <https://www.asiapay.com/>`_ is an online payments provider established in Hong Kong and `AsiaPay <https://www.asiapay.com/>`_ is an online payments provider established in Hong Kong and
covering several Asian countries and payment methods. covering several Asian countries and payment methods.
.. _payment_providers/asiapay/configure_dashboard: .. _payment_acquirers/asiapay/configure_dashboard:
Configuration on AsiaPay Dashboard Configuration on AsiaPay Dashboard
================================== ==================================
@@ -21,21 +21,21 @@ Configuration on AsiaPay Dashboard
| Click on :guilabel:`Test` to check if the webhook is working correctly. | Click on :guilabel:`Test` to check if the webhook is working correctly.
#. Click on :guilabel:`Update` to finalize the configuration. #. Click on :guilabel:`Update` to finalize the configuration.
.. _payment_providers/asiapay/configure_odoo: .. _payment_acquirers/asiapay/configure_odoo:
Configuration on Odoo Configuration on Odoo
===================== =====================
#. :ref:`Navigate to the payment provider AsiaPay <payment_providers/add_new>` and change its state #. :ref:`Navigate to the payment acquirer AsiaPay <payment_acquirers/add_new>` and change its state
to :guilabel:`Enabled`. to :guilabel:`Enabled`.
#. | In the :guilabel:`Credentials` tab, fill the :guilabel:`Merchant ID`, :guilabel:`Currency`, and #. | In the :guilabel:`Credentials` tab, fill the :guilabel:`Merchant ID`, :guilabel:`Currency`, and
:guilabel:`Secure Hash Secret` with the values you saved at the step :guilabel:`Secure Hash Secret` with the values you saved at the step
:ref:`payment_providers/asiapay/configure_dashboard`. :ref:`payment_acquirers/asiapay/configure_dashboard`.
| By default, the payment provider AsiaPay is configured to verify the secret hash with the hash | By default, the payment acquirer AsiaPay is configured to verify the secret hash with the hash
function `SHA1`. If a different function is :ref:`set on your account function `SHA1`. If a different function is :ref:`set on your account
<payment_providers/asiapay/configure_dashboard>`, activate the :ref:`developer mode <payment_acquirers/asiapay/configure_dashboard>`, activate the :ref:`developer mode
<developer-mode>` and set the same value to the field :guilabel:`Secure Hash Function` in Odoo. <developer-mode>` and set the same value to the field :guilabel:`Secure Hash Function` in Odoo.
#. Configure the rest of the options to your liking. #. Configure the rest of the options to your liking.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -9,7 +9,7 @@ Configuration
============= =============
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
@@ -43,11 +43,11 @@ Place a hold on a card
~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
With Authorize.net, you can enable the :ref:`manual capture With Authorize.net, you can enable the :ref:`manual capture
<payment_providers/features/manual_capture>`. If enabled, the funds are reserved for 30 days on the <payment_acquirers/features/manual_capture>`. If enabled, the funds are reserved for 30 days on the
customer's card, but not charged yet. customer's card, but not charged yet.
.. warning:: .. warning::
After **30 days**, the transaction is **voided automatically** by Authorize.net. After **30 days**, the transaction is **voided automatically** by Authorize.net.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -25,7 +25,7 @@ Configuration on Odoo
===================== =====================
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
@@ -60,4 +60,4 @@ In order to retrieve the Website Key, log into Buckaroo Plaza, go to
recommend doing this on a test Odoo database, rather than on your main database. recommend doing this on a test Odoo database, rather than on your main database.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -5,7 +5,7 @@ Flutterwave
`Flutterwave <https://flutterwave.com/>`_ is an online payments provider established in Nigeria and `Flutterwave <https://flutterwave.com/>`_ is an online payments provider established in Nigeria and
covering several African countries and payment methods. covering several African countries and payment methods.
.. _payment_providers/flutterwave/configure_dashboard: .. _payment_acquirers/flutterwave/configure_dashboard:
Configuration on Flutterwave Dashboard Configuration on Flutterwave Dashboard
====================================== ======================================
@@ -20,16 +20,16 @@ Configuration on Flutterwave Dashboard
#. Make sure all the remaining checkboxes are ticked. #. Make sure all the remaining checkboxes are ticked.
#. Click on **Save** to finalize the configuration. #. Click on **Save** to finalize the configuration.
.. _payment_providers/flutterwave/configure_odoo: .. _payment_acquirers/flutterwave/configure_odoo:
Configuration on Odoo Configuration on Odoo
===================== =====================
#. :ref:`Navigate to the payment provider Flutterwave <payment_providers/add_new>` and change its #. :ref:`Navigate to the payment acquirer Flutterwave <payment_acquirers/add_new>` and change its
state to :guilabel:`Enabled`. state to :guilabel:`Enabled`.
#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Public Key`, :guilabel:`Secret Key`, and #. In the :guilabel:`Credentials` tab, fill the :guilabel:`Public Key`, :guilabel:`Secret Key`, and
:guilabel:`Webhook Secret` with the values you saved at the step :guilabel:`Webhook Secret` with the values you saved at the step
:ref:`payment_providers/flutterwave/configure_dashboard`. :ref:`payment_acquirers/flutterwave/configure_dashboard`.
#. Configure the rest of the options to your liking. #. Configure the rest of the options to your liking.
.. important:: .. important::
@@ -38,4 +38,4 @@ Configuration on Odoo
Flutterwave Dashboard and then to :menuselection:`Settings --> Account Settings`. Flutterwave Dashboard and then to :menuselection:`Settings --> Account Settings`.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -5,7 +5,7 @@ Mercado Pago
`Mercado Pago <https://www.mercadopago.com/>`_ is an online payment provider covering several `Mercado Pago <https://www.mercadopago.com/>`_ is an online payment provider covering several
countries, currencies and payment methods in Latin America. countries, currencies and payment methods in Latin America.
.. _payment_providers/mercado_pago/configure_dashboard: .. _payment_acquirers/mercado_pago/configure_dashboard:
Configuration on Mercado Pago Dashboard Configuration on Mercado Pago Dashboard
======================================= =======================================
@@ -15,16 +15,16 @@ Configuration on Mercado Pago Dashboard
#. Go to :menuselection:`Production Credentials` or :menuselection:`Credentials` if your are in #. Go to :menuselection:`Production Credentials` or :menuselection:`Credentials` if your are in
a *Test* environment and copy your **Access Token** a *Test* environment and copy your **Access Token**
.. _payment_providers/mercado_pago/configure_odoo: .. _payment_acquirers/mercado_pago/configure_odoo:
Configuration on Odoo Configuration on Odoo
===================== =====================
#. :ref:`Navigate to the payment provider Mercado Pago <payment_providers/add_new>` and change its #. :ref:`Navigate to the payment acquirer Mercado Pago <payment_acquirers/add_new>` and change its
state to :guilabel:`Enabled`. state to :guilabel:`Enabled`.
#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Access Token` with the value #. In the :guilabel:`Credentials` tab, fill the :guilabel:`Access Token` with the value
you saved at the step :ref:`payment_providers/mercado_pago/configure_dashboard`. you saved at the step :ref:`payment_acquirers/mercado_pago/configure_dashboard`.
#. Configure the rest of the options to your liking. #. Configure the rest of the options to your liking.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -8,14 +8,14 @@ Configuration
============= =============
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
Odoo needs your **API Credentials** to connect with your Mollie account, which comprise: Odoo needs your **API Credentials** to connect with your Mollie account, which comprise:
- **API Key**: The test or live API Key depending on the configuration of the provider. - **API Key**: The test or live API Key depending on the configuration of the acquirer.
You can copy your credentials from your Mollie account, and paste them in the related fields under You can copy your credentials from your Mollie account, and paste them in the related fields under
the **Credentials** tab. the **Credentials** tab.
@@ -28,4 +28,4 @@ To retrieve your API key, log into your Mollie account, go to
We recommend doing this on a test Odoo database, rather than on your main database. We recommend doing this on a test Odoo database, rather than on your main database.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -6,7 +6,7 @@ Ogone
company that provides the technology involved in secure electronic transactions. company that provides the technology involved in secure electronic transactions.
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
- `Ogone's documentation <https://epayments-support.ingenico.com/get-started/>`_. - `Ogone's documentation <https://epayments-support.ingenico.com/get-started/>`_.
.. warning:: .. warning::
@@ -53,8 +53,8 @@ Technical Information --> Global Security Parameters`, select :guilabel:`SHA-512
.. tip:: .. tip::
If you need to use another algorithm, such as `sha-1` or `sha-256`, within Odoo, activate the If you need to use another algorithm, such as `sha-1` or `sha-256`, within Odoo, activate the
:ref:`developer mode <developer-mode>` and go to the **Payment Providers** page in :ref:`developer mode <developer-mode>` and go to the **Payment Acquirers** page in
:menuselection:`Accounting --> Configuration --> Payment Providers`. Click on :guilabel:`Ogone`, :menuselection:`Accounting --> Configuration --> Payment Acquirers`. Click on :guilabel:`Ogone`,
and in the :guilabel:`Credentials` tab, select the algorithm you wish to use in the and in the :guilabel:`Credentials` tab, select the algorithm you wish to use in the
:guilabel:`Hash function` field. :guilabel:`Hash function` field.
@@ -102,6 +102,6 @@ to save the card information should be displayed, etc.
Settings in Odoo Settings in Odoo
================ ================
To set up Ogone in Odoo, head to :menuselection:`Accounting --> Configuration --> Payment Providers` To set up Ogone in Odoo, head to :menuselection:`Accounting --> Configuration --> Payment Acquirers`
and open the Ogone provider. In the :guilabel:`Credentials` tab, enter the **PSPID** of your Ogone and open the Ogone acquirer. In the :guilabel:`Credentials` tab, enter the **PSPID** of your Ogone
account, and fill out the other fields as configured in your :ref:`Ogone portal <ogone/ogone>`. account, and fill out the other fields as configured in your :ref:`Ogone portal <ogone/ogone>`.

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -11,7 +11,7 @@ Settings in Odoo
================ ================
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
@@ -141,4 +141,4 @@ this on a test Odoo database rather than your main database.
Run a test transaction from Odoo using the sandbox personal account. Run a test transaction from Odoo using the sandbox personal account.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -5,7 +5,7 @@ Razorpay
`Razorpay <https://razorpay.com/>`_ is an online payments provider established in India and `Razorpay <https://razorpay.com/>`_ is an online payments provider established in India and
covering more than 100 payment methods. covering more than 100 payment methods.
.. _payment_providers/razorpay/configure_dashboard: .. _payment_acquirers/razorpay/configure_dashboard:
Configuration on Razorpay Dashboard Configuration on Razorpay Dashboard
=================================== ===================================
@@ -23,24 +23,25 @@ Configuration on Razorpay Dashboard
checkboxes are ticked. checkboxes are ticked.
#. Click on :guilabel:`Create Webhook` to finalize the configuration. #. Click on :guilabel:`Create Webhook` to finalize the configuration.
.. _payment_providers/razorpay/configure_odoo: .. _payment_acquirers/razorpay/configure_odoo:
Configuration on Odoo Configuration on Odoo
===================== =====================
#. :ref:`Navigate to the payment provider Razorpay <payment_providers/add_new>` and change its #. :ref:`Navigate to the payment acquirer Razorpay <payment_acquirers/add_new>` and change its
state to :guilabel:`Enabled`. state to :guilabel:`Enabled`.
#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Key Id`, :guilabel:`Key Secret`, and #. In the :guilabel:`Credentials` tab, fill the :guilabel:`Key Id`, :guilabel:`Key Secret`, and
:guilabel:`Webhook Secret` with the values you saved at the step :guilabel:`Webhook Secret` with the values you saved at the step
:ref:`payment_providers/razorpay/configure_dashboard`. :ref:`payment_acquirers/razorpay/configure_dashboard`.
#. Configure the rest of the options to your liking. #. Configure the rest of the options to your liking.
.. important:: .. important::
If you configure Odoo to capture amounts manually: - If you configure Odoo to capture amounts manually, make sure to set the
:guilabel:`Manual Capture` to :guilabel:`manual` on Razorpay. Otherwise, the transaction
- Be aware that the **manual voiding** of a transaction is not supported by Razorpay. would be blocked in the authorized state in Odoo. To do so, go to your Razorpay Dashboard and
- After **five days**, if the transaction hasn't been captured yet, it'll automatically be then to :menuselection:`Settings --> Configuration`.
**voided**. - After **five days**, if the transaction hasn't been captured yet, the customer has the right
to **revoke** it.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -9,7 +9,7 @@ Configuration
============= =============
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
Credentials tab Credentials tab
--------------- ---------------
@@ -29,4 +29,4 @@ You can copy your credentials from your SIPS environment info documentation, in
Mode*. We recommend doing this on a test Odoo database, rather than on your main database. Mode*. We recommend doing this on a test Odoo database, rather than on your main database.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

@@ -9,7 +9,7 @@ Link your Stripe Account with Odoo
================================== ==================================
.. seealso:: .. seealso::
- :ref:`payment_providers/add_new` - :ref:`payment_acquirers/add_new`
The method to acquire your credentials depends on your hosting type: The method to acquire your credentials depends on your hosting type:
@@ -21,14 +21,14 @@ The method to acquire your credentials depends on your hosting type:
#. Fill in the requested information and submit the form. #. Fill in the requested information and submit the form.
#. Confirm your email address when Stripe sends you a confirmation email. #. Confirm your email address when Stripe sends you a confirmation email.
#. At the end of the process, you are redirected to Odoo. If you submitted all the requested #. At the end of the process, you are redirected to Odoo. If you submitted all the requested
information, you are all set and your payment provider is enabled. information, you are all set and your payment acquirer is enabled.
#. You can continue to :ref:`stripe/local-payment-methods`. #. You can continue to :ref:`stripe/local-payment-methods`.
.. tip:: .. tip::
To use your own API keys, :ref:`activate the Developer mode <developer-mode>` and To use your own API keys, :ref:`activate the Developer mode <developer-mode>` and
:ref:`enable Stripe manually <payment_providers/add_new>`. You can then :ref:`Fill in your :ref:`enable Stripe manually <payment_acquirers/add_new>`. You can then :ref:`Fill in your
credentials <stripe/api-keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the credentials <stripe/api-keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
payment provider. payment acquirer.
.. group-tab:: Odoo.sh or On-premise .. group-tab:: Odoo.sh or On-premise
@@ -36,15 +36,15 @@ The method to acquire your credentials depends on your hosting type:
payments* button on the onboarding banner. payments* button on the onboarding banner.
#. Fill in the requested information and submit the form. #. Fill in the requested information and submit the form.
#. Confirm your email address when Stripe sends you a confirmation email. #. Confirm your email address when Stripe sends you a confirmation email.
#. At the end of the process, you are redirected to the payment provider **Stripe** on Odoo. #. At the end of the process, you are redirected to the payment acquirer **Stripe** on Odoo.
#. :ref:`Fill in your credentials <stripe/api-keys>`. #. :ref:`Fill in your credentials <stripe/api-keys>`.
#. :ref:`Generate a webhook <stripe/webhook>`. #. :ref:`Generate a webhook <stripe/webhook>`.
#. Enable the payment provider. #. Enable the payment acquirer.
#. You are all set and can continue to :ref:`stripe/local-payment-methods`. #. You are all set and can continue to :ref:`stripe/local-payment-methods`.
.. tip:: .. tip::
To connect your Stripe account after the onboarding is already completed, go to To connect your Stripe account after the onboarding is already completed, go to
:menuselection:`Accounting --> Configuration --> Payment Providers --> Stripe` and click on the :menuselection:`Accounting --> Configuration --> Payment Acquirers --> Stripe` and click on the
*Connect Stripe* button. *Connect Stripe* button.
.. important:: .. important::
@@ -126,7 +126,7 @@ feature earmarks an amount on the customer's account for a determined period of
the payment method used. the payment method used.
To set it up, enable the :guilabel:`Capture Amount Manually` option on Odoo, as explained in the To set it up, enable the :guilabel:`Capture Amount Manually` option on Odoo, as explained in the
:ref:`payment providers documentation <payment_providers/features/manual_capture>`. :ref:`payment acquirers documentation <payment_acquirers/features/manual_capture>`.
.. warning:: .. warning::
When the manual capture feature is activated, your customers are not able to proceed with any When the manual capture feature is activated, your customers are not able to proceed with any
@@ -137,7 +137,7 @@ To set it up, enable the :guilabel:`Capture Amount Manually` option on Odoo, as
interface is still managed as a full capture by Odoo. interface is still managed as a full capture by Odoo.
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`
.. _stripe/local-payment-methods: .. _stripe/local-payment-methods:
@@ -156,7 +156,7 @@ Odoo supports the following local payment methods:
- Przelewy24 (P24) - Przelewy24 (P24)
To enable some of these local payment methods with Stripe, list them as supported payment icons. To To enable some of these local payment methods with Stripe, list them as supported payment icons. To
do so, go to :menuselection:`Payment Providers --> Stripe --> Configuration` and add the desired do so, go to :menuselection:`Payment Acquirers --> Stripe --> Configuration` and add the desired
payment methods in the **Supported Payment Icons** field. If the desired payment method is already payment methods in the **Supported Payment Icons** field. If the desired payment method is already
listed, you don't have anything to do. listed, you don't have anything to do.
@@ -175,7 +175,7 @@ Enable express checkout
======================= =======================
.. seealso:: .. seealso::
:ref:`payment_providers/features/express_checkout` :ref:`payment_acquirers/features/express_checkout`
After ticking the :guilabel:`Allow Express Checkout` checkbox, **Google Pay** is enabled out of the After ticking the :guilabel:`Allow Express Checkout` checkbox, **Google Pay** is enabled out of the
box, but **Apple Pay** requires extra steps: You must register your web domain with Apple. This can box, but **Apple Pay** requires extra steps: You must register your web domain with Apple. This can
@@ -184,7 +184,7 @@ be done either automatically from Odoo, or manually from Stripe.
.. tabs:: .. tabs::
.. tab:: Register automatically from Odoo .. tab:: Register automatically from Odoo
#. Navigate to your payment provider and make sure that it is :guilabel:`enabled`. #. Navigate to your payment acquirer and make sure that it is :guilabel:`enabled`.
#. Go to the :guilabel:`Configuration` tab and click on the :guilabel:`Enable Apple Pay` #. Go to the :guilabel:`Configuration` tab and click on the :guilabel:`Enable Apple Pay`
button. A notification shows that the web domain was successfully registered with Apple. button. A notification shows that the web domain was successfully registered with Apple.

View File

@@ -4,7 +4,7 @@ How to get paid with wire transfers
**Wire Transfer** is the default payment method available. The aim is providing your customers with **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. This is very easy to start with but slow and your bank details so they can pay on their own. This is very easy to start with but slow and
inefficient process-wise. Opt for payment providers as soon as you can! inefficient process-wise. Opt for payment acquirers as soon as you can!
How to provide customers with payment instructions How to provide customers with payment instructions
================================================== ==================================================
@@ -36,4 +36,4 @@ check. To do so, just rename *Wire Transfer* or duplicate it.
:align: center :align: center
.. seealso:: .. seealso::
- :doc:`../payment_providers` - :doc:`../payment_acquirers`

View File

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

View File

@@ -131,4 +131,4 @@ at an invoice/bills level or at a sales/purchase orders level.
.. seealso:: .. seealso::
- :doc:`Multi-company Guidelines </developer/howtos/company>` - :doc:`Multi-company Guidelines </developer/howtos/company>`
- :doc:`../../finance/accounting/others/multi_currency` - :doc:`../../finance/accounting/others/multicurrencies/how_it_works`

View File

@@ -1,45 +1,35 @@
================================== =======================
Managing BoMs for product variants Variants BOM Management
================================== =======================
Odoo allows one bill of materials (BoM) to be used for multiple variants of the same product. Odoo allows you to use one bill of materials for multiple variants of
Having a consolidated BoM for a product with variants saves time by preventing the need to manage the same product. To activate variants, simply go to :menuselection:`Configuration --> Settings
multiple BoMs. --> Variants`.
Activate product variants .. image:: product_variants/bom-variants1.png
========================= :align: center
To activate variants, simply navigate to :menuselection:`Inventory --> Configuration --> Settings You will then be able to specify which BOM component lines are to be used in
--> Products`, and then enable the :guilabel:`Variants` option. After that, click :guilabel:`Save` the manufacture of each product variant. You may specify multiple
to apply the setting. For more information on configuring product variants, refer to :doc:`this variants for each line. If no variant is specified on a component line,
page <../../../sales/sales/products_prices/products/variants>`. then this component will be used in the BOM of all variants.
.. image:: product_variants/inventory-variants-settings.png When defining variant BoMs on a line-item-basis, the **Product
:align: center Variant** field in the main section of the BoM should be left blank as shown
:alt: Selecting "Variants" from Inventory app settings. below. This field is used when creating a BoM for one specific variant
of a product only.
Apply BoM components to product variants
========================================
Next, create a new BoM or edit an existing one by going to :menuselection:`Manufacturing --> .. image:: product_variants/kit-bom1.png
Products --> Bills of Materials`. Then, click :guilabel:`Edit`. The :guilabel:`Apply on Variants` :align: center
option to assign components to specific product variants on the BoM is available once the
:guilabel:`Variants` setting is activated from the :guilabel:`Inventory` application. If the
:guilabel:`Apply on Variants` field is not immediately visible, activate it from the additional
options menu.
.. image:: product_variants/variants-kebab-menu.png Note that the same principle applies for the configuration
:align: center of operations.
:alt: "Apply on Variants" option on the additional options menu.
Each component can be assigned to multiple variants. Components with no variants specified are used .. image:: product_variants/kit-bom2.png
in every variant of the product. The same principle applies when configuring operations and :align: center
by-products.
When defining variant BoMs by component assignment, the :guilabel:`Product Variant` field in the And for the production of by-products.
main section of the BoM should be left blank, as shown below. This field is used only when creating
a BoM specifically for one product variant.
.. image:: product_variants/apply-on-variants-bom.png .. image:: product_variants/kit-bom3.png
:align: center :align: center
:alt: Applying components to multiple variants.

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