Compare commits

...

70 Commits

Author SHA1 Message Date
Brandon Mercier dd1921204b [IMP] Website Themes - Setup
- Use the right code-block language for terminal command line
- Add a step about the 2-factor authentication
2025-02-24 11:33:40 +01:00
Odoo Translation Bot 0287a4b629 [I18N] *: fetch 16.0 translations 2025-02-22 10:12:43 +00:00
samueljlieber d4ed263fa2 [IMP] contributing: documentation macOS make install
closes odoo/documentation#12136

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-21 16:59:46 +00:00
Odoo Translation Bot 8114d07bff [I18N] *: fetch 16.0 translations 2025-02-20 18:11:19 +00:00
Tiffany Chang (tic) 86e8741509 [I18N] *: re-export pot files
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#12119

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2025-02-20 10:17:33 +00:00
Odoo Translation Bot e69e853f44 [I18N] Update translation terms from Transifex 2025-02-16 01:43:22 +01:00
samueljlieber 3bb92d5472 [FIX] resource folder match
closes odoo/documentation#12010

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-13 08:44:14 +00:00
samueljlieber 97f9ae1b95 [FIX] clean unused resource files
Part-of: odoo/documentation#12010
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-13 08:44:14 +00:00
samueljlieber 7f0153afff [IMP] tests: check resource file referenced
Part-of: odoo/documentation#12010
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-13 08:44:14 +00:00
xpl-odoo a00b6cf990 [IMP] website: remove slash in redirect rule expression
task-4113085

closes odoo/documentation#11971

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-12 11:17:12 +00:00
LoredanaLrpz 71fbef5e5f [IMP] pos: change payment screenshot for 16.0
task-4208635

closes odoo/documentation#12008

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-02-10 09:08:28 +00:00
Odoo Translation Bot 7f747f05dd [I18N] Update translation terms from Transifex 2025-02-09 01:43:32 +01:00
Paolo Gatti 3c58f305b5 [IMP] fiscal_localizations: Documentation for l10n_it_riba
Since the feature was released, lots of partners ask for
information/documentation about the RIBA feature.  Add a concise
documentation explaining what users should know.

Ref: odoo/enterprise#74097

task-4497749

closes odoo/documentation#11847

Related: odoo/enterprise#77991
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-07 18:03:55 +00:00
Harsh Modi c7a6b67a87 [FIX] coding_guidelines: fix the alphabetic orders for the import
In odoo, as we suggest everyone to follow an alphebetic order.

The translator(`_`), ASCII is 95 and `a` ASCII value is 97
which '_' < 'a', the translator should be defined first in the
import before the `api` not at the end of the import

This commits adds an example to import static class `Command`
with a Capital alphabet with a ASCII value of `C` as 67
which will be before than the `_`
'C' < '_' < 'a'

This order of import should be followed while the import

closes odoo/documentation#11983

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-02-07 10:51:04 +00:00
mcsi-odoo 7d45830ac8 [IMP] studio: adding link about accessing studio
Task-3761784

closes odoo/documentation#11977

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-02-06 15:39:02 +00:00
Felicious 91165a7012 [IMP] inventory: CRL - replenishment & visibility days
closes odoo/documentation#11444

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Liz Bender <92882399+benderliz@users.noreply.github.com>
2025-02-05 02:44:07 +00:00
Odoo Translation Bot 498280b932 [I18N] Update translation terms from Transifex 2025-02-02 01:42:58 +01:00
benderliz 38640aeb0e [IMP] Inventory: Consignment typo in 16.0
closes odoo/documentation#11836

Signed-off-by: Liz Bender (beli) <beli@odoo.com>
2025-01-27 22:50:24 +00:00
Tiffany Chang (tic) 65f8645bed [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11888

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2025-01-27 16:31:27 +00:00
mcsi-odoo 058e379a40 [IMP] accounting: ocr free iap test credits for enterprise users
task-4328876

closes odoo/documentation#11857

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-27 08:54:09 +00:00
Odoo Translation Bot 372a9b09f9 [I18N] Update translation terms from Transifex 2025-01-26 01:42:22 +01:00
Loredana Perazzo 6458e07f44 [IMP] POS: move configuration in toctree
task-4512527

closes odoo/documentation#11845

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2025-01-24 10:08:19 +00:00
William Braeckman de2241eb7c [IMP] developer/reference/cli: --limit-time-cron-conn
Document the newly created config option.

closes odoo/documentation#11779

See: https://github.com/odoo/odoo/pull/194141
Related: odoo/odoo#194141
Signed-off-by: William Braeckman (wbr) <wbr@odoo.com>
2025-01-22 12:21:44 +00:00
Antoine Vandevenne (anv) 9b7d3d559b [IMP] supported_versions: release saas-18.1
closes odoo/documentation#11796

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-01-21 14:46:14 +00:00
Odoo Translation Bot daa25ce5d9 [I18N] Update translation terms from Transifex 2025-01-19 01:42:22 +01:00
xpl-odoo 36d407830e [IMP] database: update status of supported versions
task-4485068

closes odoo/documentation#11776

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-01-17 15:09:02 +00:00
lase@odoo.com 3f87216e36 [IMP] marketing: match the Display Timezone description with tooltips
Issue:

The current descriptions and naming of the `Date` fields (`date_begin`,
`date_end`) and the `Timezone` field (`date_tz`) can be confusing in the
form view of the event model. Specifically:

The timezone used for converting the form dates to the database is
determined by the context and not by the `Timezone` field present on the
form. However, this `Timezone` field determines the timezone used
for displaying the event's date/time on the website. This change
clarifies the situation according to the update done in the community PR

opw-4323142

closes odoo/documentation#11596

Related: odoo/odoo#190867
Signed-off-by: Lancelot Semal (lase) <lase@odoo.com>
2025-01-14 13:49:50 +00:00
Odoo Translation Bot 0b6c2466a8 [I18N] Update translation terms from Transifex 2025-01-12 01:43:30 +01:00
Odoo Translation Bot 5a19d0c718 [I18N] Update translation terms from Transifex 2025-01-05 01:44:20 +01:00
“Dallas” 8aae97b838 [FIX] accounting/tax-return: fix tax return menu path
Fix the menu navigation path of the tax return

task-4424499

closes odoo/documentation#11676

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-02 15:56:49 +00:00
Felicious e38438c0ae [IMP] inventory: add bpost link
closes odoo/documentation#11654

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-02 14:53:48 +00:00
Sylvain Francis beeeff9068 [FIX] Egypt fiscal localizations: Update proxy install instructions
Since Odoo 16, to install the local proxy, users need to select the
"Odoo IoT" option install of the "Local Proxy Mode" to install the local
proxy.

This commit updates both the text and accompanying screenshot

closes odoo/documentation#11620

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-12-31 15:46:26 +00:00
Tiffany Chang (tic) daebf2e579 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11651

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-12-30 15:17:09 +00:00
Odoo Translation Bot 9f18e77815 [I18N] Update translation terms from Transifex 2024-12-29 01:43:51 +01:00
Felicious 1ac6e5e975 [ADD] inventory: compare packs and uom
closes odoo/documentation#11424

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-12-26 21:47:45 +00:00
Paolo Gatti dd94839b20 [FIX] fiscal_localizations: Italy, San Marino's destination code fix
Code is 2R4GTO8, not 2R4GT08.

task-4398355

closes odoo/documentation#11621

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-12-23 11:07:28 +00:00
Odoo Translation Bot a04b9e1f2f [I18N] Update translation terms from Transifex 2024-12-22 01:43:57 +01:00
emmi-odoo 6cc9c9a75e [FIX] website/domain: add sub domain
task-4220363

closes odoo/documentation#11606

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-12-19 11:00:05 +00:00
benderliz f552c117a8 [FIX] payment_providers/authorize: update Excel import template
closes odoo/documentation#11583

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-12-16 09:24:11 +00:00
Odoo Translation Bot 108f731916 [I18N] Update translation terms from Transifex 2024-12-15 01:44:40 +01:00
xpl-odoo d1779bf4e5 [IMP] website: replace cloudflare's page rule by redirect rule
closes odoo/documentation#11571

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-12-12 11:44:00 +00:00
Donatienne (dopi) 2e3e7ad35c [IMP] website: URL translation note to be updated
taskid-4377816

closes odoo/documentation#11545

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-12-12 08:26:33 +00:00
Nathan Marotte (nama) 08c43b3deb [FIX] Upgrade: Correct URL and text for post-upgrade issues
As stated on the sentence above, in case of an issue with the **production**
database, we should open a ticket with the label (production) and not
testing an upgrade.

This commits adapt the test to match the label currently present on
odoo.com/help and the URL to pre-select the correct stage as well

closes odoo/documentation#11520

Signed-off-by: Nathan Marotte (nama) <nama@odoo.com>
2024-12-11 13:59:21 +00:00
xpl-odoo a6f1cd2cf9 [IMP] general: remove mailjet notifications setup
closes odoo/documentation#11543

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-12-09 13:07:23 +00:00
LoredanaLrpz 50daadf7d1 [IMP] l10n: pos 18.0 and on-premise certification
task-4391068

closes odoo/documentation#11538

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-12-09 09:36:56 +00:00
Odoo Translation Bot 2b04033868 [I18N] Update translation terms from Transifex 2024-12-08 01:42:58 +01:00
xpl-odoo f8cb28ce14 [IMP] website: cloudflare configuration
task-4113085

closes odoo/documentation#11497

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-12-02 15:50:11 +00:00
LoredanaLrpz 208c1b8e81 [IMP] POS: returns and credit note
task-4016275

closes odoo/documentation#11458

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-12-02 12:42:26 +00:00
Tiffany Chang (tic) 7dfc3fe2c9 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11493

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-12-02 10:29:39 +00:00
Odoo Translation Bot 06a3323dcb [I18N] Update translation terms from Transifex 2024-12-01 01:42:20 +01:00
samueljlieber c22f90137b [IMP] sales: update settings navigation for multi address
closes odoo/documentation#11442

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-11-27 18:17:57 +00:00
jero-odoo 92a90f60e8 [IMP] Email: update mailjet parameter note
closes odoo/documentation#11437

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-11-25 14:35:09 +00:00
Odoo Translation Bot 5769e8f617 [I18N] Update translation terms from Transifex 2024-11-24 01:44:27 +01:00
xpl-odoo b923389182 [IMP] on-premise: remove too many users upsell alert block
task-4343506

closes odoo/documentation#11426

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-11-21 12:27:32 +00:00
xpl-odoo e953d8f838 [IMP] upgrade: harmonize release interval
task-4346126

closes odoo/documentation#11425

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-11-21 11:20:33 +00:00
Merel Geens (mege) 4d079db7f8 [FIX] administration/on-premise: Incorrect ports
In Odoo 18 and lower versions, update notifications are sent over HTTP,
not HTTPS:

Odoo 18: https://github.com/odoo/odoo/blob/bbcafb7bb15eb324a8ce9bc41e3a6762469134fe/odoo/tools/config.py#L78
Odoo 17: https://github.com/odoo/odoo/blob/a7ccd81fb2a67dfeb544efce2ff1ce892b938954/odoo/tools/config.py#L78
Odoo 16: https://github.com/odoo/odoo/blob/6b5a839428b06e09d90631e9824a9b594ff8f4f5/odoo/tools/config.py#L78

The documentation has listed 443 as the main port since 2019:
https://github.com/odoo/documentation/pull/324 , but what it mentions
about the most recent version of Odoo using services.odoo.com wasn't
true until Odoo 18: https://github.com/odoo/odoo/pull/163202 . That PR
kept the HTTP usage and not HTTPS as was originally intended:
https://github.com/odoo/odoo/pull/30272 .

closes odoo/documentation#11402

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-11-18 15:10:08 +00:00
Odoo Translation Bot cbcf64e750 [I18N] Update translation terms from Transifex 2024-11-17 01:44:43 +01:00
Loredana Perazzo 738703df14 [IMP] pos: remove warning "july 22" in six
task-4337378

closes odoo/documentation#11396

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-11-15 10:19:11 +00:00
Joris Makauskis 8c93ff790e [IMP] extract_api: Add bank statement documentation
- Updated documentation to include details on the new bank statement
extraction via OCR.
- Removed mention of unsupported discount, product, and unit features
from invoice_lines feature.

Task-3895452

closes odoo/documentation#11127

Signed-off-by: Joris Makauskis (jmak) <jmak@odoo.com>
2024-11-14 11:31:09 +00:00
Zachary Straub (ZST) 724f7000d7 [FIX] accounting: fix broken OCR tutorial link
closes odoo/documentation#11352

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-11-13 00:53:03 +00:00
xpl-odoo 470af9bf21 [IMP] upgrade: sla clarifications
closes odoo/documentation#11337

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-11-12 19:26:10 +00:00
jero-odoo e0b025fce0 [IMP] Calendar sync: changing title of google doc
closes odoo/documentation#11346

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-11-11 14:50:51 +00:00
Odoo Translation Bot 4e92457ed8 [I18N] Update translation terms from Transifex 2024-11-10 01:42:58 +01:00
afma-odoo 20bd9b1780 [IMP] accounting: adding info about group payments
task-3518648

closes odoo/documentation#11206

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-11-07 14:33:42 +00:00
Tiffany Chang (tic) bfd78d2f9b [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11318

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-11-04 09:40:06 +00:00
Odoo Translation Bot db38d06045 [I18N] Update translation terms from Transifex 2024-11-03 01:43:31 +01:00
Aurelien van Delft (avd) ac8f3d2aa4 [IMP] contributing/git: add [PERF] to the valid commit tags
The [PERF] commit tag passes the runbot minimal check and has been
used in lots of patches. E.g.
 - odoo/odoo@f02bcfadcb
 - odoo/odoo@b30b059898
 - odoo/odoo@780a2bb601

However this tag was not listed in the documentation yet. This led
to confusion for reviewers not accustomed with it. This commit
fixes that.

closes odoo/documentation#11290

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-10-29 07:53:45 +00:00
Odoo Translation Bot e0b26c78b6 [I18N] Update translation terms from Transifex 2024-10-27 01:42:33 +02:00
Loredana Perazzo f83f35955e [IMP] POS: add a configuration step to enable ePos printers
task-4055549

closes odoo/documentation#11284

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-10-25 09:41:10 +00:00
“Dallas” 33ef1f8918 [FIX] l10n_de: Fix second broken GoBD link
There were two broken links originally, one of which was fixed by PR#10074. This commit will remove the first link entirely and fix the second link, as suggested by TSB.

task-4088554

closes odoo/documentation#11263

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-10-24 08:31:43 +00:00
424 changed files with 126366 additions and 60641 deletions
+1
View File
@@ -231,6 +231,7 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'saas-18.1': "Odoo Online",
'18.0': "Odoo 18",
'saas-17.4': "Odoo Online",
'saas-17.2': "Odoo Online",
+1 -1
View File
@@ -23,7 +23,7 @@ Edit Security Settings --> Delete Account`. It can also be accessed by going to
Upon clicking the :guilabel:`Delete Account` button, a pop-up window appears, requesting
confirmation for the account deletion.
.. image:: odoo_account/delete-account.png
.. image:: odoo_accounts/delete-account.png
:align: center
:alt: Clicking on the Delete Account button will populate a window verifying the change.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

+2 -8
View File
@@ -61,8 +61,8 @@ To resolve the issue:
your **network and firewall settings** allow the Odoo server to open outgoing connections
towards:
- Odoo 18.0 and above: `services.odoo.com` on port `443` (or `80`)
- Odoo 17.0 and below: `services.openerp.com` on port `443` (or `80`)
- Odoo 18.0 and above: `services.odoo.com` on port `80`
- Odoo 17.0 and below: `services.openerp.com` on port `80`
These ports must be kept open even after registering a database, as the update notification runs
once a week.
@@ -85,12 +85,6 @@ To resolve the issue, either:
displayed in the message to validate the upsell quotation and pay for the extra users.
- :ref:`Deactivate users <users/deactivate>` and **reject** the upsell quotation.
.. important::
If you are on a monthly subscription plan, the database will automatically update to reflect the
added user(s). If you are on a yearly or multi-year plan, an expiration banner will appear in the
database. You can create the upsell quotation by clicking the banner to update the subscription
or `send a support ticket <https://www.odoo.com/help>`_ to resolve the issue.
Once your database has the correct number of users, the expiration message disappears automatically
after a few days, when the next verification occurs.
+10 -4
View File
@@ -31,6 +31,12 @@ This matrix shows the support status of every version.
- On-Premise
- Release date
- End of support
* - Odoo SaaS 18.1
- |green|
- N/A
- N/A
- January 2025
-
* - **Odoo 18.0**
- |green|
- |green|
@@ -38,17 +44,17 @@ This matrix shows the support status of every version.
- October 2024
- October 2027 (planned)
* - Odoo SaaS 17.4
- |green|
- |red|
- N/A
- N/A
- July 2024
-
- October 2024
* - Odoo SaaS 17.2
- |green|
- |red|
- N/A
- N/A
- April 2024
-
- October 2024
* - **Odoo 17.0**
- |green|
- |green|
+7 -9
View File
@@ -3,7 +3,7 @@ Upgrade
=======
An upgrade involves moving a database from an older version to a newer supported version (e.g., from
Odoo 15.0 to Odoo 17.0). Regular upgrades are crucial as each version offers new features, bug
Odoo 16.0 to Odoo 18.0). Regular upgrades are crucial as each version offers new features, bug
fixes, and security patches. Using a :doc:`supported version <supported_versions>` is strongly
recommended. Each major version is supported for three years.
@@ -13,11 +13,11 @@ Depending on the hosting type and Odoo version used, a database upgrade can be *
.. group-tab:: Odoo Online
- If a database is on a **major version** (e.g., 15.0, 16.0, 17.0), an upgrade is mandatory
- If a database is on a **major version** (e.g., 16.0, 17.0, 18.0), an upgrade is mandatory
every two years.
- If a database is on a **minor version** (e.g., 17.1, 17.2, 17.4), an upgrade is mandatory
a few weeks after the next version is released. Minor versions are usually released every
three months.
two months.
.. group-tab:: Odoo.sh
@@ -390,8 +390,8 @@ few exceptions.
filestore before deploying the new version.
In case of an issue with your production database, you can request the assistance of Odoo by going
to the `Support page and selecting "An issue related to my future upgrade (I am testing an upgrade)"
<https://www.odoo.com/help?stage=migration>`_.
to the `Support page and selecting "An issue related to my upgrade (production)"
<https://www.odoo.com/help?stage=post_upgrade>`_.
.. _upgrade-sla:
@@ -430,10 +430,8 @@ Upgrade services not covered by the SLA
The following upgrade-related services are **not** included:
- the **cleaning** of pre-existing data and configurations while upgrading;
- the upgrade of **custom modules created in-house or by third parties**, including Odoo partners;
- lines of **code added to standard modules**, i.e., customizations created outside the Studio app,
code entered manually, and :ref:`automated actions using Python code
<studio/automated-actions/action>`; and
- the upgrade of **additional modules not covered by a maintenance contract** that are created
in-house or by third parties, including Odoo partners; and
- **training** on using the upgraded version's features and workflows.
.. seealso::
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

@@ -7,18 +7,20 @@ Payments
In Odoo, payments can either be automatically linked to an invoice or bill or be stand-alone records
for use at a later date:
- If a payment is **linked to an invoice or bill**, it reduces/settles the amount due of the
invoice. You can have multiple payments related to the same invoice.
- If a payment is **linked to an invoice or bill**, it reduces/settles the amount due on the
invoice. Multiple payments on the same invoice are possible.
- If a payment is **not linked to an invoice or bill**, the customer has an outstanding credit with
your company, or your company has an outstanding debit with a vendor. You can use those
outstanding amounts to reduce/settle unpaid invoices/bills.
the company, or the company has an outstanding debit with a vendor. Those outstanding amounts
reduce/settle unpaid invoices/bills.
.. seealso::
- :doc:`Internal transfers <payments/internal_transfers>`
- :doc:`bank/reconciliation`
- `Odoo Tutorials: Bank Configuration
<https://www.odoo.com/slides/slide/bank-configuration-1880>`_
<https://www.odoo.com/slides/slide/bank-configuration-6832>`_
.. _accounting/payments/from-invoice-bill:
Registering payment from an invoice or bill
===========================================
@@ -27,11 +29,12 @@ When clicking :guilabel:`Register payment` in a customer invoice or vendor bill,
journal entry and changes the amount due according to the payment amount. The counterpart is
reflected in an :ref:`outstanding <bank/outstanding-accounts>` **receipts** or **payments** account.
At this point, the customer invoice or vendor bill is marked as :guilabel:`In payment`. Then, when
the outstanding account is reconciled with a bank statement line, the invoice or vendor bill changes
to the :guilabel:`Paid` status.
the outstanding account is reconciled with a bank transaction line, the invoice or vendor bill
changes to the :guilabel:`Paid` status.
The information icon near the payment line displays more information about the payment. You can
access additional information, such as the related journal, by clicking :guilabel:`View`.
The :icon:`fa-info-circle` information icon next to the payment line displays more
information about the payment. To access additional information, such as the related journal, click
:guilabel:`View`.
.. image:: payments/information-icon.png
:alt: See detailed information of a payment.
@@ -39,65 +42,89 @@ access additional information, such as the related journal, by clicking :guilabe
.. note::
- The customer invoice or vendor bill must be in the :guilabel:`Posted` status to register the
payment.
- If you unreconcile a payment, it still appears in your books but is no longer linked to the
- If a payment is unreconciled, it still appears in the books but is no longer linked to the
invoice.
- If you (un)reconcile a payment in a different currency, a journal entry is automatically
- If a payment is (un)reconciled in a different currency, a journal entry is automatically
created to post the currency exchange gains/losses (reversal) amount.
- If you (un)reconcile a payment and an invoice having cash basis taxes, a journal entry is
automatically created to post the cash basis tax (reversal) amount.
- If a payment is (un)reconciled and an invoice with cash-basis taxes, a journal entry is
automatically created to post the cash-basis tax (reversal) amount.
.. tip::
- If your main bank account is set as an :ref:`outstanding account
<bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a related
bank statement), invoices and bills are directly registered as :guilabel:`Paid`.
If the main bank account is set as an :ref:`outstanding account
<bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a related
bank transaction), invoices and bills are directly registered as :guilabel:`Paid`.
.. _accounting/payments/not-tied:
Registering payments not tied to an invoice or bill
===================================================
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments` menu, it is
not directly linked to an invoice or bill. Instead, the account receivable or the account payable is
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments`, it is not
directly linked to an invoice or bill. Instead, the account receivable or the account payable is
matched with the **outstanding account** until it is manually matched with its related invoice or
bill.
.. _accounting/payments/matching-invoices-bills:
Matching invoices and bills with payments
-----------------------------------------
A blue banner appears when you validate a new invoice/bill and an **outstanding payment** exists for
this specific customer or vendor. It can easily be matched from the invoice or bill by clicking
:guilabel:`ADD` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
A blue banner appears when validating a new invoice/bill and an **outstanding payment** exists for
this specific customer or vendor. To match it with the invoice or bill, click :guilabel:`ADD`
under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
.. image:: payments/add-option.png
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment.
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with its
corresponding bank statement.
corresponding bank transaction.
.. _payments/batch-payments:
.. _accounting/payments/group-payments:
Batch payment
-------------
Group payments
--------------
Batch payments allow you to group different payments to ease :doc:`reconciliation
<bank/reconciliation>`. They are also useful when you deposit :doc:`checks <payments/checks>` to the
bank or for :doc:`SEPA payments <payments/pay_sepa>`. To do so, go to :menuselection:`Accounting -->
Customers --> Batch Payments` or :menuselection:`Accounting --> Vendors --> Batch Payments`. In the
list view of payments, you can select and group several payments in a batch by clicking
:menuselection:`Action --> Create Batch Payment`.
Group payments allow combining outgoing and incoming payments from the same contact into a single
payment to simplify the process and improve payment usability. To register a group payment:
#. Go to :menuselection:`Accounting --> Customers --> Invoices/Credit Notes` or
:menuselection:`Accounting --> Vendors --> Bills/Refunds`.
#. Select the relevant invoices/credit notes or bills/refunds linked to a specific contact.
#. Click the :icon:`fa-cog` (:guilabel:`Action menu`) icon and select :guilabel:`Register Payment`.
#. In the :guilabel:`Register Payment` window, select the :guilabel:`Journal`, the
:guilabel:`Payment Method`, and the :guilabel:`Payment Date`.
#. Enable the :guilabel:`Group Payments` option and click :guilabel:`Create payment`.
The invoices or bills are now marked as :guilabel:`In payment` until they are reconciled with the
corresponding bank transactions. The credit notes or refunds are marked as :guilabel:`Paid`.
.. _accounting/payments/batch-payments:
Batch payments
--------------
Batch payments allow grouping payments from multiple contacts to ease
:doc:`reconciliation <bank/reconciliation>`. They are also useful when depositing :doc:`checks
<payments/checks>` to the bank or for :doc:`SEPA payments <payments/pay_sepa>`. To do so, go to
:menuselection:`Accounting --> Customers --> Batch Payments` or :menuselection:`Accounting -->
Vendors --> Batch Payments`. In the list view of payments, to group several payments in a
batch, select them and click :menuselection:`Action --> Create Batch Payment`.
.. seealso::
- :doc:`payments/batch`
- :doc:`payments/batch_sdd`
.. _payments/matching:
.. _accounting/payments/matching:
Payments matching
-----------------
The :guilabel:`Payments matching` tool opens all unreconciled customer invoices or vendor bills and
allows you to process them individually, matching all payments and invoices in one place. You can
reach this tool from the :menuselection:`Accounting Dashboard --> Customer Invoices / Vendor Bills`,
click the drop-down menu button (:guilabel:`⋮`), and select :guilabel:`Payments Matching`, or go to
:menuselection:`Accounting --> Accounting --> Reconciliation`.
allows them to be processed individually, matching all payments and invoices in one place. Go to the
:guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` (:guilabel:`dropdown menu`)
button from the :guilabel:`Customer Invoices` or :guilabel:`Vendor Bills` journals, and select
:guilabel:`Payments Matching`, or go to :menuselection:`Accounting --> Accounting -->
Reconciliation`.
.. image:: payments/payments-journal.png
:alt: Payments matching menu in the drop-down menu.
@@ -105,39 +132,49 @@ click the drop-down menu button (:guilabel:`⋮`), and select :guilabel:`Payment
.. note::
During the :doc:`reconciliation <bank/reconciliation>`, if the sum of the debits and credits does
not match, there is a remaining balance. This either needs to be reconciled at a later date or
needs to be written off directly.
written off directly.
.. _accounting/payments/batch-payments-matching:
Batch payments matching
-----------------------
You can use the batch reconciliation feature to reconcile several outstanding payments or invoices
Use the batch reconciliation feature to reconcile several outstanding payments or invoices
simultaneously for a specific customer or vendor. Go to :menuselection:`Accounting --> Reporting -->
Aged Receivable / Aged Payable`. You can see all transactions that have not been reconciled yet for
that partner, and when you select a customer or vendor, the :guilabel:`Reconcile` option is
Aged Receivable / Aged Payable`. All transactions that have not yet been reconciled for that
contact are visible, and when a customer or vendor is selected, the :guilabel:`Reconcile` option is
displayed.
.. image:: payments/reconcile-option.png
:alt: See the reconcile option.
.. _accounting/payments/partial-payment:
Registering a partial payment
=============================
To register a **partial payment**, click :guilabel:`Register payment` from the related invoice or
bill, and enter the amount received or paid. Upon entering the amount, a prompt appears to decide
whether to :guilabel:`Keep open` the invoice or bill, or :guilabel:`Mark as fully paid`. Select
:guilabel:`Keep open` and click :guilabel:`Create payment`. The invoice or bill is now marked as
:guilabel:`Partial`. Select :guilabel:`Mark as fully paid` if you wish to settle the invoice or bill
with a difference in the amount.
To register a partial payment, click on :guilabel:`Register Payment` from the related invoice or
bill. In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
remaining amount on the invoice or the bill), the :guilabel:`Payment Difference` field displays the
outstanding balance. There are two options:
.. image:: payments/payment-difference.png
:alt: Partial payment of an invoice or bill.
- :guilabel:`Keep open`: Keep the invoice or the bill open and mark it with a :guilabel:`Partial`
banner;
- :guilabel:`Mark as fully paid`: Select an account in the :guilabel:`Post Difference In` field and
change the :guilabel:`Label` if needed. A journal entry will be created to balance the accounts
payable or receivable with the selected account.
Reconciling payments with bank statements
=========================================
.. image:: payments/partial-payment.png
:alt: register a partial payment
.. _accounting/payments/reconciling-payments:
Reconciling payments with bank transactions
===========================================
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The
next step is :doc:`reconciling <bank/reconciliation>` it with the related bank statement line to
have the transaction finalized and the invoice or bill marked as :guilabel:`Paid`.
next step is :doc:`reconciling <bank/reconciliation>` it with the related bank transaction line to
finalize the payment workflow and mark the invoice or bill as :guilabel:`Paid`.
.. toctree::
:titlesonly:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

@@ -101,14 +101,13 @@ Tax Report
----------
Once all the transactions involving taxes have been posted for the period you want to report, open
your :guilabel:`Tax Report` by going to :menuselection:`Accounting --> Reporting -->
Audit Reports: Tax Report`. Make sure to select the right period you want to declare by using the
date filter, this way you can have an overview of your tax report. From this view, you can easily
access different formats of your tax report, such as `PDF` and XLSX. These include all the values to
report to the tax authorities, along with the amount you have to pay or be refunded.
the :guilabel:`Tax Report` by going to :menuselection:`Accounting --> Reporting --> Tax Report`.
Select the period you want to declare using the date filter to have an overview of the tax report.
From the report, click :guilabel:`PDF` or :guilabel:`XLSX` to download the desired format of the tax
report, or click :guilabel:`Save` to save the report to the Documents app. The report includes all
the values to report to the tax authorities, along with the amount to be paid or refunded.
.. image:: tax_returns/tax_return_report.png
:align: center
:alt: download the PDF with your Tax Report in Odoo Accounting
.. note::
@@ -60,10 +60,10 @@ Then, to close the fiscal year:
<reporting/aged-receivable>` and :ref:`aged payables <reporting/aged-payable>` reports.
- Audit all accounts, being sure to fully understand all transactions and their nature, making
sure to include loans and fixed assets.
- Optionally, run :ref:`payments matching <payments/matching>` to validate any open vendor bills
and customer invoices with their payments. While this step is optional, it could assist the
year-end closing process if all outstanding payments and invoices are reconciled, potentially
finding errors or mistakes in the system.
- Optionally, run :ref:`payments matching <accounting/payments/matching>` to validate any open
vendor bills and customer invoices with their payments. While this step is optional, it could
assist the year-end closing process if all outstanding payments and invoices are reconciled,
potentially finding errors or mistakes in the system.
Next, the accountant likely verifies balance sheet items and book entries for:
@@ -37,7 +37,7 @@ appropriately completed:
- :guilabel:`Vendor`: Odoo automatically fills some information based on the vendor's registered
information, previous purchase orders, or bills.
- :guilabel:`Bill Reference`: add the sales order reference provided by the vendor and is used to do
the :ref:`matching <payments/matching>` when you receive the products.
the :ref:`matching <accounting/payments/matching>` when you receive the products.
- :guilabel:`Auto-Complete`: select a past bill/purchase order to automatically complete the
document. The :guilabel:`Vendor` field should be completed prior to completing this field.
- :guilabel:`Bill Date`: is the issuance date of the document.
@@ -11,8 +11,8 @@ created and populated based on the scanned invoices.
.. seealso::
- `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_
- `Odoo Tutorials: Invoice Digitization with OCR
<https://www.odoo.com/slides/slide/digitize-bills-with-ocr-1712>`_
- `Odoo Tutorials: Vendor Bill Digitization
<https://www.odoo.com/slides/slide/vendor-bill-digitization-7065>`_
Configuration
=============
@@ -91,9 +91,10 @@ To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on
:guilabel:`View My Services`.
.. important::
If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits to
test the feature.
.. note::
Enterprise Odoo users with a valid subscription get free credits to test IAP features before
deciding to purchase more credits for the database. This includes demo/training databases,
educational databases, and one-app-free databases.
.. seealso::
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
@@ -333,8 +333,9 @@ This government-certified system entails the use of a :ref:`certified POS system
Certified POS system
--------------------
The Odoo POS system is certified for the major versions of databases hosted on **Odoo Online** and
**Odoo.sh**. Please refer to the following table to ensure that your POS system is certified.
The Odoo POS system is certified for the major versions of databases hosted on **Odoo Online**,
**Odoo.sh**, and **On-Premise**. Please refer to the following table to ensure that your POS system
is certified.
.. list-table::
:header-rows: 1
@@ -344,22 +345,26 @@ The Odoo POS system is certified for the major versions of databases hosted on *
- Odoo Online
- Odoo.sh
- On-Premise
* - Odoo 18.0
- Certified
- Certified
- Certified
* - Odoo 17.0
- Certified
- Certified
- Not certified
- Certified
* - Odoo 16.0
- Certified
- Certified
- Not certified
- Certified
* - Odoo 15.0
- Certified
- Certified
- Not certified
- Certified
* - Odoo 14.0
- Certified
- Certified
- Not certified
- Certified
.. seealso::
:doc:`/administration/supported_versions`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

@@ -205,11 +205,11 @@ An Odoo local server works as a bridge between your computer and your Odoo datab
Download the Odoo Community installer from the page https://www.odoo.com/page/download and start the
installation on your computer.
Select :guilabel:`Local Proxy Mode` as the type of install.
Select :guilabel:`Odoo IoT` as the type of install.
.. image:: egypt/install-odoo-local-proxy.png
:align: center
:alt: Selection of "Local Proxy Mode" during the installation of Odoo Community.
:alt: Selection of "Odoo IoT" during the installation of Odoo Community.
.. note::
This installation of Odoo only works as a server and does not install any Odoo apps on your
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

@@ -170,9 +170,8 @@ triggered and is being processed. You have to click on *Refresh State* to check
German Tax Accounting Standards: Odoo's guide to GoBD Compliance
================================================================
**GoBD** stands for `Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
**GoBD** stands for *Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff*.
In short, it is a **guideline for the proper management and storage of books, records, and documents
in electronic form, as well as for data access**, that is relevant for the German tax authority, tax
declaration, and balance sheet.
@@ -191,7 +190,7 @@ What do you need to know about GoBD when relying on accounting software?
.. note::
If you can, the best way to understand GoBD is to Read the `Official GoBD text
<https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.pdf>`_.
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
It is a bit long but quite readable for non-experts. But in short, here is what to expect:
The **GoBD is binding for companies that have to present accounts, which includes SMEs, freelancers,
@@ -312,7 +311,7 @@ offer our customer any legal certainty.
.. important::
The BMF actually states the following in the `Official GoBD text
<https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.pdf>`_:
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_:
- 180. Positive attestations on the correctness of the bookkeeping - and thus on the correctness
of IT-based bookkeeping systems - are not issued either in the context of a tax field audit or
@@ -392,7 +392,7 @@ user is requested by the **State** to:
- Select a tax with the option :guilabel:`Has exoneration of tax (Italy)` ticked, and the
:guilabel:`Exoneration` set to `N3.3`;
- Use the generic :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Codice Destinatario` `2R4GT08`.
- Use the generic :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Codice Destinatario` `2R4GTO8`.
The invoice is then routed by a dedicated office in San Marino to the correct business.
Bills
@@ -457,3 +457,60 @@ recipient office.
government `website <http://www.fatturapa.gov.it/>`_.
- The :abbr:`CUU (Codice Univoco Ufficio)` must be included in the electronic invoice
corresponding to the element **1.1.4** (:guilabel:`CodiceDestinario`).
Ri.Ba. (Ricevuta Bancaria)
==========================
:abbr:`Ri.Ba. (Ricevuta Bancaria)` is a payment method widely used in Italy where vendors request
payments through their bank, which forwards the request to the customer's own bank and takes
responsibility for the collection. This enables payment automation and reduces risks for the vendor.
The vendor generally uploads a fixed-format text file with the list of payments to the bank's web
portal.
.. note::
- Ri.Ba. are exclusively for **domestic payments** in Italy. For recurring international
payments, please use `SEPA Direct Debt (SDD) <../accounting/payments/batch_sdd>`_
Configuration
-------------
#. Check that the `l10n_it_riba` module is :ref:`installed <general/install>`.
#. Go to :menuselection:`Settings --> Users & Companies --> Companies` and select the company that
will use Ri.Ba.
#. Fill out the required :guilabel:`SIA Code`.
.. image:: italy/sia-code.png
:alt: The company's SIA code
.. note::
The :guilabel:`SIA Code` identifies businesses within the Italian banking network and is used
to receive money through specific payment methods. It consists of one letter and four digits
(e.g., T1234) and can usually be found on the bank's portal or obtained by contacting the bank.
#. Ensure the Company's bank account has an Italian IBAN.
.. seealso::
How to configure :doc:`Bank Accounts <../accounting/bank>`
Accept Ri.Ba. for your invoices
-------------------------------
Payments of type :abbr:`Ri.Ba. (Ricevuta Bancaria)` can be registered from the :guilabel:`Invoices`
(:menuselection:`Accounting --> Customers --> Invoices`).
.. important::
Make sure that your invoice involves a Partner that has a bank account with an Italian IBAN.
Then, all Payments must be grouped in a **Batch Payment**.
.. seealso::
- :doc:`Batch Payments <../accounting/payments>`
- :doc:`Create a Batch Payment <../accounting/payments/batch>`
Once you press the :guilabel:`Validate` button for the Batch Payment, the :abbr:`Ri.Ba. (Ricevuta
Bancaria)` file is generated and attached to the Batch Payment, so you can download it and upload it
through your bank's web portal.
.. image:: italy/riba-attachment.png
:alt: The Ri.Ba. file attached
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

@@ -74,16 +74,14 @@ When ready, change the provider's :guilabel:`State` to :guilabel:`Enabled` for a
Import an Authorize.Net statement
=================================
.. _authorize-import-template:
Export from Authorize.Net
-------------------------
.. _authorize-import-template:
.. admonition:: Template
`Download the Excel import template <https://docs.google.com/spreadsheets/d/1CMVtBWLLVIrUpYA92paw-cL7-WdKLbaa/edit?usp=share_link&ouid=105295722917050444558&rtpof=true&sd=true>`_
To export a statement:
:download:`Download the Excel import template. <authorize/authorize-net-magic-sheet.xlsx>`
- Log in to Authorize.Net.
- Go to :menuselection:`Account --> Statements --> eCheck.Net Settlement Statement`.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

@@ -18,7 +18,6 @@ page. Next, navigate to the :guilabel:`Senders & Domains` section and click on :
SEND API Settings`.
.. image:: mailjet_api/api-settings.png
:align: center
:alt: SMTP and Send API Settings link in the Senders & Domains section of Mailjet.
Then, copy the :abbr:`SMTP (Simple Mail Transfer Protocol)` configuration settings onto a notepad.
@@ -37,7 +36,6 @@ port number. The settings are needed to configure Mailjet in Odoo, which is cove
<email_servers/restriction>`.
.. image:: mailjet_api/smtp-config.png
:align: center
:alt: SMTP configuration from Mailjet.
Next, click on the button labeled :guilabel:`Retrieve your API credentials` to retrieve the Mailjet
@@ -125,7 +123,6 @@ Copy the TXT record information to a notepad and then navigate to the domain's :
Name System)` provider to complete validation.
.. image:: mailjet_api/host-value-dns.png
:align: center
:alt: The TXT record information to input on the domain's DNS.
Setup in the domain's DNS
@@ -163,7 +160,6 @@ Identified Mail) records to input into the :abbr:`DNS (Domain Name System)` prov
360042412734-Authenticating-Domains-with-SPF-DKIM>`_
.. image:: mailjet_api/authenticate.png
:align: center
:alt: Authenticate the domain with SPF/DKIM records in Mailjet.
.. _maintain/mailjet-api/odoo-setup:
@@ -191,27 +187,4 @@ than that of any transactional email server(s). Finally, save the settings and :
Connection`.
.. image:: mailjet_api/server-settings.png
:align: center
:alt: Odoo outgoing email server settings.
.. important::
In order for the notifications feature to work using Mailjet, there are three settings that need
to be set in Odoo.
#. The :guilabel:`From Filter` needs to be set on the server configuration. It is recommended
to set it as a domain and not a full email address. It should match the domain in the two
proceeding steps. More information can be referenced :ref:`here
<email_communication/from_filter>`.
#. The :guilabel:`mail.default.from` system parameter must have the value
`notifications\@yourdomain.com`.
#. The :guilabel:`mail.default.from_filter` system parameter must have the value
`yourdomain.com`. Replace `yourdomain` with the custom domain for the Odoo database. If there
isn't one, then use the :guilabel:`mail.catchall.domain` system parameter.
For more information see :ref:`Using a default email address <email_communication/default>`.
The :guilabel:`System Parameters` can be accessed by activating the :ref:`developer mode
<developer-mode>`.
Once the setup is complete, the Odoo database is ready to use the Mailjet email server for mass
mailing or transactional emails!
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

@@ -1,9 +1,166 @@
:nosearch:
:show-content:
.. |UoM| replace:: :abbr:`UoM (Unit of Measure)`
.. |UoMs| replace:: :abbr:`UoMs (Units of Measure)`
=================
Configure product
=================
A group of products in Odoo can be further defined using:
- :doc:`Units of measure (UoM) <configure/uom>`: a standard quantity for specifying product amounts
(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in
Odoo, such as centimeters to feet.
- *Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.*
- :doc:`configure/package`: A physical container used to group products together, regardless of
whether they are the same or different.
- *Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a
shelf.*
- :doc:`configure/packaging`: groups the *same* products together to receive or sell them in
specified quantities.
- *Ex: Cans of soda sold in packs of six, twelve, or twenty-four.*
Comparison
==========
This table provides a detailed comparison of units of measure, packages, and packaging to help
businesses evaluate which best suits their requirements.
.. list-table::
:header-rows: 1
:stub-columns: 1
* - Feature
- Unit of measure
- Packages
- Packaging
* - Purpose
- Standardized measurement for product units (e.g., cm, lb, L)
- Tracks the specific physical container and its contents
- Groups a fixed number of items together for easier management (e.g., packs of 6, 12 or 24)
* - Product uniformity
- Defined per product; saved as one |UoM| in the database
- Allows mixed products
- Same products only
* - Flexible
- Converts between vendor/customer |UoMs| and database |UoM|
- Items can be added or removed from the container
- Quantities are fixed (e.g., always packs of 6, 12 or 24)
* - Complexity
- Simplest for unit conversions
- More complex due to container-level inventory tracking
- Simpler; suitable for uniform product groupings
* - Inventory tracking
- Tracks product quantities within the warehouse in the specific |UoM| defined in the product
form
- Tracks package location and contents within the warehouse
- Tracks grouped quantities but not individual items' locations
* - Smooth barcode operations
- Not available
- Requires scanning both the package and individual items for reception. (even if there are 30
items in a package). Can enable the :ref:`Move Entire Packages
<inventory/product_management/move-entire-pack>` feature to update the package's contained
items' locations, when moving the package
- Scanning a packaging barcode automatically records all included units. (e.g. 1 pack = 12
units)
* - Product lookup
- Not available
- Scanning a product's barcode identifies its typical storage location in the Odoo database
- Barcode identifies grouped quantity, not storage location
* - Unique barcodes
- Not available
- Unique barcodes for individual packages (e.g. Pallet #12)
- Barcodes set at the packaging type level (e.g. for a pack of 6)
* - Reusability
- Not applicable
- Can be disposable or reusable, configured via the :ref:`Package Use
<inventory/warehouses_storage/cluster-pack>` field
- Disposable only
* - Container weight
- Not applicable
- Weight of the container itself is included in the *Shipping Weight* field of a package
(:menuselection:`Inventory app --> Products --> Packages`)
- Weight of the container is defined in the *Package Type* settings
* - Lot/serial number tracking
- Requires manual adjustments to track |UoMs| via lots (See :ref:`use case
<inventory/product_management/lots-uom>` for details)
- Applies only to contained products
- Applies to both contained products and the container
* - Custom routes
- Cannot be set
- Cannot be set
- Routes can define specific warehouse paths for a particular packaging type
Use cases
=========
After comparing the various features, consider how these businesses, with various inventory
management and logistics workflows, came to their decision.
Pallets of items using packaging
--------------------------------
A warehouse receives shipments of soap organized on physical pallets, each containing 96 bars. These
pallets are used for internal transfers and are also sold as standalone units. For logistical
purposes, the pallet's weight must be included in the total shipping weight for certain deliveries.
Additionally, the pallet requires a barcode to facilitate tracking, and the number of individual
bars of soap must be included in the stock count when the pallet is received.
After evaluating various options, *product packaging* was the most suitable solution. Packaging
enables assigning a barcode to a pallet, identifying it as a "pallet type" containing 96 soap bars.
This barcode streamlines operations by automatically registering the grouped quantity. Key
distinctions include:
- **Warehouse tracking limitations**: Odoo tracks only the total quantity, not the number of
packagings. For instance, if a pallet with 12 and 24 quantities is received, Odoo records 36
quantities, not the pallet details.
- **Packaging barcodes are type-specific, not unique**: Barcodes represent packaging types (e.g.,
"pallet of 96 soap bars") but do not uniquely identify individual pallets, such as Pallet #1 or
Pallet #2.
Capture product information using barcode
-----------------------------------------
An Odoo user expects the **Barcode** app to display the typical storage location of a product by
scanning a barcode for a container.
*Packages* was the most suitable. When the :ref:`appropriate setting is enabled
<inventory/warehouses_storage/enable-package>`, scanning a package barcode displays its contents in
the **Barcode** app.
Packages represent physical containers, enabling detailed tracking of the items they hold.
Scanning a package provides visibility into its contents and facilitates operations, like inventory
moves.
.. _inventory/product_management/lots-uom:
Track different units of measure in storage
-------------------------------------------
A fruit juice distributor tracks multiple |UoMs| for their operations:
- Fruits are purchased in tons.
- Juice is produced and stored in kilograms.
- Small samples are stored in grams for recipe testing.
*Unit of Measure* was most suitable. Odoo automatically converts tons to kilograms during
receipts. However, since Odoo tracks only one |UoM| per product in the database, the company uses
lot numbers to differentiate |UoMs|:
- LOT1: Grams (g)
- LOT2: Kilograms (kg)
Manual inventory adjustments are required to convert between lots, such as subtracting 1 kg from
LOT2 to add 1,000 g to LOT1. While functional, this workaround can be time-consuming and prone to
errors.
.. toctree::
:titlesonly:
@@ -45,6 +45,17 @@ the :guilabel:`Operations` heading, activate the :guilabel:`Packages` feature. T
:align: center
:alt: Activate the *Packages* setting in Inventory > Configuration > Settings.
.. _inventory/product_management/move-entire-pack:
When moving packages internally, the *Move Entire Packages* feature can be enabled on an operation
type to update a package's contained item's location upon updating the package's location.
To do that, go to :menuselection:`Inventory app --> Configuration --> Operations Types` and select
the desired operation this feature will apply to (may have to set it for multiple).
On the operation type page, in the :guilabel:`Packages` section, tick the :guilabel:`Move Entire
Packages` checkbox.
.. _inventory/warehouses_storage/pack:
Pack items
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

@@ -30,7 +30,7 @@ To do that, go to the :menuselection:`Inventory app --> Configuration --> Settin
the :guilabel:`Traceability` section, and click the box next to :guilabel:`Lots & Serial Numbers`.
Then, click the :guilabel:`Save` button to save changes.
.. image:: product_tracking/product_tracking/differences-enabled-setting.png
.. image:: product_tracking/differences-enabled-setting.png
:align: center
:alt: Enabled lots and serial numbers feature in inventory settings.
@@ -42,7 +42,7 @@ or food. Lots and can be used to trace a product back to a group, which is espec
managing product recalls or expiration dates.
.. example::
.. image:: product_tracking/product_tracking/differences-lot.png
.. image:: product_tracking/differences-lot.png
:align: center
:alt: Created lot with quantity of products in it.
@@ -59,7 +59,7 @@ identifiable when it travels through the supply chain. This can be especially us
manufacturers that provide after-sales services related to products they sell and deliver.
.. example::
.. image:: product_tracking/product_tracking/differences-serial-numbers.png
.. image:: product_tracking/differences-serial-numbers.png
:align: center
:alt: List of serial numbers for product.
@@ -89,7 +89,7 @@ Doing so reveals all existing lots and serial numbers, and each can be expanded
quantities with that assigned number. For unique serial numbers that are *not* reused, there should
*only* be one product per serial number.
.. image:: product_tracking/product_tracking/differences-tracking.png
.. image:: product_tracking/differences-tracking.png
:align: center
:alt: Reporting page with drop-down lists of lots and serial numbers.
@@ -28,8 +28,8 @@ Receive (and store) consignment stock
=====================================
With the feature enabled in Odoo, consignment stock can now be received into a warehouse. From the
main :menuselection:`Inventory` dashboard, click into the :guilabel:`Receipts`
section. Then, click :guilabel:`Create`.
main :menuselection:`Inventory` dashboard, click into the :guilabel:`Receipts` section. Then, click
:guilabel:`Create`.
.. note::
Consignment stock is not actually purchased from the vendor; it is simply received and stored.
@@ -74,9 +74,9 @@ quotation is complete, click :guilabel:`Confirm`.
:align: center
:alt: Sales order of consignment stock.
Once the :abbr:`RFQ (Request for Quotation)` has been confirmed, it will become a sales order. From
here, the products can be delivered by clicking on the :guilabel:`Delivery` smart button, and
selecting :guilabel:`Validate` to validate the delivery.
Once the quotation has been confirmed, it becomes a sales order. From here, the products can be
delivered by clicking on the :guilabel:`Delivery` smart button, and selecting :guilabel:`Validate`
to validate the delivery.
Traceability and reporting of consignment stock
===============================================
@@ -88,19 +88,19 @@ To find inventory reports, go to :menuselection:`Inventory --> Reporting`, and c
view.
.. note::
Since the consignee does not actually own consigment stock, these products are *not* reflected
Since the consignee does not actually own consignment stock, these products are *not* reflected
in the :guilabel:`Stock Valuation` report, and have no impact on the consignee's inventory
valuation.
Product moves report
--------------------
To view all information about on-hand stock moves, navigate to the the :guilabel:`Product Moves`
To view all information about on-hand stock moves, navigate to the :guilabel:`Product Moves`
dashboard by going to :menuselection:`Inventory --> Reporting --> Product Moves`. For consignment
products, the information in this report is the same as any other product: the history
of its product moves can be reviewed; the :guilabel:`Quantity Done` and :guilabel:`Reference`
document are available; and its :guilabel:`Locations` are available, as well. The consignment stock
will originate from :guilabel:`Partner Location/Vendors`.
products, the information in this report is the same as any other product: the history of its
product moves can be reviewed; the :guilabel:`Quantity Done` and :guilabel:`Reference` document are
available; and its :guilabel:`Locations` are available, as well. The consignment stock will
originate from :guilabel:`Partner Location/Vendors`.
.. tip::
To view a consignment product's moves by ownership, select the :guilabel:`Group By` filter,
@@ -120,6 +120,6 @@ Stock on hand report
View the :guilabel:`Stock On Hand` dashboard by navigating to :menuselection:`Inventory -->
Reporting --> Inventory Report`. From this report, the :guilabel:`Locations` of all stock on-hand
are displayed, in addition to the quantities per location. For consigment products, the
are displayed, in addition to the quantities per location. For consignment products, the
:guilabel:`Owner` column will be populated with the owner of those products, or the original vendor
who supplied the products in the first place.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

@@ -25,7 +25,7 @@ To do so, navigate to the :menuselection:`Apps` application from the main Odoo d
Then, remove the :guilabel:`Apps` filter, and type in `Delivery Costs` in the :guilabel:`Search...`
bar. After finding the :guilabel:`Delivery Costs` module, click :guilabel:`Activate` to install it.
.. image:: setup_configuration/setup_configuration/install-module.png
.. image:: setup_configuration/install-module.png
:align: center
:alt: Install the Delivery Costs module.
@@ -43,7 +43,7 @@ Methods`.
#. Scroll to the :guilabel:`Shipping` section and enable the :guilabel:`Delivery Methods` feature
by checking the corresponding checkbox.
.. image:: setup_configuration/setup_configuration/enable-delivery.png
.. image:: setup_configuration/enable-delivery.png
:align: center
:alt: Enable the *Delivery Methods* feature by checking the box in Configuration > Settings.
@@ -97,7 +97,7 @@ To enable free shipping if the amount of the order exceeds a specified amount, c
- :guilabel:`Free if order amount is above`: `$100.00`
- :guilabel:`Delivery Product`: `[SHIP] Flat`
.. image:: setup_configuration/setup_configuration/new-shipping-method.png
.. image:: setup_configuration/new-shipping-method.png
:align: center
:alt: Example of filling out a shipping method.
@@ -124,7 +124,7 @@ Once finished, click either :guilabel:`Save & New` to add another rule, or :guil
To charge customers $20 in shipping for orders with five or fewer products, set the
:guilabel:`Condition` to `Quantity <= 5.00`, and the :guilabel:`Delivery Cost` to `$20`.
.. image:: setup_configuration/setup_configuration/pricing-rule.png
.. image:: setup_configuration/pricing-rule.png
:align: center
:alt: Display window to add a pricing rule. Set a condition and delivery cost.
@@ -150,7 +150,7 @@ Shipping cost is the :guilabel:`Delivery cost` specified in the rule that satisf
:guilabel:`Margin on Rate` is `10%` and :guilabel:`Additional margin` is `$9.00`.
.. image:: setup_configuration/setup_configuration/delivery-cost-example.png
.. image:: setup_configuration/delivery-cost-example.png
:align: center
:alt: Show example of "Based on rules" shipping method with margins configured.
@@ -201,7 +201,7 @@ the shipping method form.
`Furniture Delivery`, a delivery product with a fixed rate of `$200`, is added to sales order
`S00088`.
.. image:: setup_configuration/setup_configuration/delivery-product.png
.. image:: setup_configuration/delivery-product.png
:align: center
:alt: Show delivery order on the sales order line.
@@ -212,7 +212,7 @@ The shipping method added to the sales order is linked to the shipping carrier d
delivery order. To add or change the delivery method on the delivery itself, go to the
:guilabel:`Additional Info` tab and modify the :guilabel:`Carrier` field.
.. image:: setup_configuration/setup_configuration/delivery-order.png
.. image:: setup_configuration/delivery-order.png
:align: center
:alt: Shipping carrier information on the delivery form.
@@ -6,8 +6,8 @@ Set up the *Bpost* shipping connector in Odoo to manage Bpost shipments to clien
Odoo. To configure it, complete these steps:
#. Create a Bpost account.
#. Get the :ref:`Account ID and passphrase <inventory/shipping/Bpost-account>`.
#. Set up the shipping method in Odoo.
#. Get the :ref:`Account ID and passphrase <inventory/shipping_receiving/bpost-account>`.
#. :ref:`Set up the shipping method in Odoo <inventory/shipping_receiving/bpost-method>`.
Upon completion, it is possible to calculate the cost of shipping, based on package size and weight,
have the charges applied directly to a Bpost business account, and automatically print Bpost
@@ -19,8 +19,8 @@ tracking labels through Odoo.
- :doc:`dhl_credentials`
- :doc:`ups_credentials`
Bpost account setup
===================
Account setup
=============
To begin, go to the `Bpost website <https://parcel.bpost.be/en/home/business>`_ to create, or log
into, the company's Bpost business account. When creating the Bpost account, have the company's VAT
@@ -30,25 +30,24 @@ Follow the website's steps to complete registration, and sign up for shipping se
submits a request to enter a contractual business relationship between the company and Bpost.
.. important::
Odoo **cannot** be integrated with `non-business Bpost
<https://bpost.freshdesk.com/support/solutions/articles/174847-account-id-and-passphrase>`_
accounts.
Odoo **cannot** be integrated with `non-business Bpost <https://www.odoo.com/r/Z4wZ>`_ accounts.
After completing the setup, get the Bpost account ID and passphrase, by navigating to the
:guilabel:`Shipping Manager` menu item.
.. _inventory/shipping/bpost-account:
.. _inventory/shipping_receiving/bpost-account:
On the :guilabel:`Shipping Manager` page, go to the :guilabel:`Admin` tab, then the
:guilabel:`General Settings` tab, to find the :guilabel:`Account ID` and :guilabel:`Passphrase`
needed to configure Odoo's shipping method.
.. image:: bpost/credentials.png
:align: center
:alt: In the *Admin* tab, show the Account ID and Passphrase.
Configure Bpost shipping method
===============================
.. _inventory/shipping_receiving/bpost-method:
Shipping method configuration
=============================
With those necessary credentials, configure the Bpost shipping method in Odoo by going to
:menuselection:`Inventory app --> Configuration --> Shipping Methods`.
@@ -69,23 +68,20 @@ Product`, refer to the :doc:`Configure third-party carrier <third_party_shipper>
In the :guilabel:`Bpost Configuration` tab, complete the following fields:
- :guilabel:`Bpost Account Number` (required field): enter the company's unique :ref:`account ID
<inventory/shipping/bpost-account>` from the Bpost website.
<inventory/shipping_receiving/bpost-account>` from the Bpost website.
- :guilabel:`Passphrase` (required field): enter the :ref:`passphrase
<inventory/shipping/bpost-account>` from the Bpost website.
<inventory/shipping_receiving/bpost-account>` from the Bpost website.
- :guilabel:`Bpost Delivery Nature`: select either :guilabel:`Domestic` or :guilabel:`International`
shipping services. Choosing :guilabel:`Domestic` shows the :guilabel:`Options` section, while
:guilabel:`International` enables the :guilabel:`Bpost Shipment Type` and :guilabel:`Bpost Parcel
Return Instructions` fields.
- :guilabel:`Bpost Package Type`: select the type of shipping service from the drop-down menu.
For `domestic delivery
<https://help.shipmondo.com/en/articles/6092265-bpost-belgium-parcel-types-and-requirements>`_,
the options are: :guilabel:`bpack 24h Pro`, :guilabel:`bpack 24h business`, or :guilabel:`bpack
Bus`.
For `domestic delivery <https://www.odoo.com/r/uOVM>`_, the options are: :guilabel:`bpack 24h
Pro`, :guilabel:`bpack 24h business`, or :guilabel:`bpack Bus`.
For `international delivery <https://www.bpost.be/en/business-parcels-send/international>`_, the
options are: :guilabel:`bpack World Express Pro`, :guilabel:`bpack World Business`, or
:guilabel:`bpack Europe Business`.
For `international delivery <https://www.odoo.com/r/s6G>`_, the options are: :guilabel:`bpack
World Express Pro`, :guilabel:`bpack World Business`, or :guilabel:`bpack Europe Business`.
- :guilabel:`Bpost Shipment Type` (required field): for international deliveries, declare the type
of goods in the package as :guilabel:`SAMPLE`, :guilabel:`GIFT`, :guilabel:`GOODS`,
:guilabel:`DOCUMENTS`, or :guilabel:`OTHER`.
@@ -105,6 +101,5 @@ For domestic deliveries, these features are available in the :guilabel:`Options`
validating the delivery order.
.. image:: bpost/bpost.png
:align: center
:alt: Show Bpost shipping method.
@@ -38,7 +38,7 @@ The following is a list of available shipping connectors in Odoo:
- United States of America
* - :doc:`Sendcloud <sendcloud_shipping>`
- Some European countries (see details below)
* - Bpost
* - :doc:`Bpost <bpost>`
- Belgium
* - Easypost
- North America
@@ -82,7 +82,7 @@ field, there are:
correct the quantity, five units are moved from `WH/Stock` to `Virtual Locations/Inventory
Adjustment`.
.. image:: inventory_management/inventory_management/inventory-loss.png
.. image:: inventory_management/inventory-loss.png
:align: center
:alt: Product ends up in Virtual Locations/Inventory Adjustment.
@@ -93,7 +93,7 @@ field, there are:
products shipped between different addresses, such as :ref:`Physical Locations/Inter-warehouse
transit <inventory/warehouses_storage/interwarehouse-transit>`.
.. image:: inventory_management/inventory_management/locations.png
.. image:: inventory_management/locations.png
:align: center
:alt: List of locations in Odoo.

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