Compare commits

...

115 Commits

Author SHA1 Message Date
Samuel Degueldre bc0a9bef26 [IMP] web: create how-to for using Owl components in the frontend 2024-03-13 10:57:49 +01:00
Felicious a5c3441bda [ADD] inventory: packaging
closes odoo/documentation#8030

X-original-commit: a8659727e3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-03-07 04:53:32 +00:00
Jess Rogers (jero) cc427a0fea [IMP] helpdesk: update helpcenter doc
closes odoo/documentation#8033

X-original-commit: df48788817
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.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>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-03-06 13:07:22 +00:00
Julien Castiaux 156980164a [FIX] deploy: enable HSTS also for websocket
Fine tunning of 6a2725e604

closes odoo/documentation#8017

X-original-commit: c00571d724
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2024-03-06 13:07:20 +00:00
Claire Bretton (clbr) 0fab281c12 [IMP] getting_started: use odoo/tutorials repository + runbot
We now use the odoo/tutorials to make the technical onboarding.
- Change the current documentation accordingly.
- Add a section for employees only so that they use odoo-dev/tutorials
as shared fork. It's closer to our way to work so we think it's better
to make them use to it as fast as possible.
- Add some explanations about runbot.

`odoo/technical-training-sandbox` will no longer be used and can be considered deprecated.

closes odoo/documentation#8043

X-original-commit: e60affa6fe
Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2024-03-06 11:37:58 +00:00
Felicious e23005c5cc [IMP] inventory: gme's comments on packages
closes odoo/documentation#8002

X-original-commit: 4f15ba1eea
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-03-05 20:10:09 +00:00
Felicious 1d0d45d928 [ADD] inventory: package use and type
closes odoo/documentation#7993

X-original-commit: 03a871a88b
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-04 23:20:00 +00:00
Demesmaeker 0a0991bbca [FIX] amazon_connector: change to more complete links
closes odoo/documentation#7943

X-original-commit: eb41f30593
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
2024-03-04 12:33:37 +00:00
Marion (masp) 5824b76579 [ADD] integration: geolocation
task-3694395

closes odoo/documentation#7978

X-original-commit: 22b75fd6de
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-01 22:20:31 +00:00
Lara Martini (larm) 10cc7aa831 [ADD] appraisals: new documentation
closes odoo/documentation#7891

X-original-commit: 1ad921a1d1
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-03-01 17:16:01 +00:00
Lara Martini (larm) 2ad21589d7 [IMP] Employees: updating new employee doc for version 17
closes odoo/documentation#7875

X-original-commit: 9cbc9e3610
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-03-01 17:16:00 +00:00
Lara Martini (larm) 4b4d568624 [IMP] payroll: update work entries, add menu
closes odoo/documentation#7874

X-original-commit: 3dc21be0a7
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-03-01 16:03:58 +00:00
Lara Martini (larm) 5bb59f4083 [IMP] Payroll: updating ocnfiguration doc for 17
closes odoo/documentation#7873

X-original-commit: 269d602af0
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-03-01 16:03:57 +00:00
Ali Alfie (alal) bd6eb29718 [IMP] fiscal_localizations: HMRC format improved
Before, when entering the company's VAT, the user had to leave out the 'GB' prefix. This is no longer needed after odoo/enterprise/pull/57570

task-3765235

closes odoo/documentation#7963

X-original-commit: 61c86a1a8e
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-01 13:12:04 +00:00
tiku-odoo 9bbf59a5c0 [IMP] misc: voip onsip version 17 changes
closes odoo/documentation#7946

X-original-commit: befe1d0c8d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-01 11:51:02 +00:00
Nicolas Viseur (vin) e0f0b3dbc6 [ADD] Starshipit as a delivery provider
Starshipit is the leading provider of integrated
and automated fulfilment solutions for online businesses
integrating with the main carriers used in Australia and
New Zealand, such as Australia Post, DHL, Aramex, CouriersPlease and more

Task ID # 3041982

closes odoo/documentation#7933

X-original-commit: 6bbc9dceff
Related: odoo/odoo#155829
Related: odoo/enterprise#57775
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Nicolas Viseur (vin) <vin@odoo.com>
2024-03-01 08:45:04 +00:00
Sam Lieber (sali) e944826961 [IMP] marketing automation: overview content
closes odoo/documentation#7932

X-original-commit: d266d142a8
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: meng-odoo <101904966+meng-odoo@users.noreply.github.com>
2024-03-01 06:48:08 +00:00
Brandon Seltenrich (BRSE) 2c4e558804 [IMP] barcode: update zebra instructions
closes odoo/documentation#7931

X-original-commit: f8c1f3538d
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-03-01 06:48:07 +00:00
Donatienne (dopi) 5129d832f5 [ADD] website: building blocks
task-3693628

closes odoo/documentation#7927

X-original-commit: 757f750358
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-03-01 06:48:01 +00:00
Marion (masp) 4250fd8475 [ADD] administration: neutralized database
closes odoo/documentation#7924

Task: 3572950
X-original-commit: 65960a2726
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2024-03-01 05:26:10 +00:00
Felicious 4ee2fdd8f8 [IMP] inventory: combine uom and usage into one doc
closes odoo/documentation#7906

X-original-commit: f0e60e00ef
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-01 05:26:05 +00:00
Felicious 1829ea1dce [IMP] inventory: add visibility days section
closes odoo/documentation#7917

X-original-commit: 187d41bc02
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-02-29 06:32:12 +00:00
Felicious 797c47bfdd [IMP] inventory: direct carrier contract
closes odoo/documentation#7913

X-original-commit: 786a9086e9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2024-02-29 06:32:11 +00:00
Donatienne (dopi) a4246ae24a [ADD] Website: adding link to the themes documentation
taskid-3685215

closes odoo/documentation#7901

X-original-commit: 366536db66
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-02-29 06:32:10 +00:00
Tom Aarab (toaa) 7816b13536 [IMP] localization/spain
Updated the Spain localization page

taskid-3736761

closes odoo/documentation#7892

X-original-commit: b2bad17b19
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-02-28 08:27:08 +00:00
Donatienne (dopi) e4def45a33 [IMP] maintain: domain names
task-3595179

closes odoo/documentation#7885

X-original-commit: f9edbcd6b5
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-28 08:27:03 +00:00
John Holton (hojo) 25b787e8bc [ADD] Quality: Quality alerts doc
closes odoo/documentation#7823

X-original-commit: 8dd98b1314
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-28 07:09:58 +00:00
Sam Lieber (sali) 98cb1ebac3 [IMP] accounting/l10n_pe: delivery guide 2.0 peru
closes odoo/documentation#7853

X-original-commit: 81de2a5bbe
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-02-27 03:07:49 +00:00
Loredana Perazzo de33f53535 [IMP] pos: update the whole page
task-3005131

closes odoo/documentation#7803

X-original-commit: 3fada867de
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-26 10:01:47 +00:00
Luucwa 82a1564ab8 Update send_quotes.rst
Removed "see also" links that lead nowhere

closes odoo/documentation#7736

X-original-commit: ca71dfa66a
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-25 06:14:55 +00:00
tiku-odoo 564ac8fd7d [IMP] sales: mrkt conn ebay exception
closes odoo/documentation#7868

X-original-commit: 97203c4027
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-24 00:19:58 +00:00
Ricardo Gomes Rodrigues 98b21d0c02 [IMP] l10n: update CodaBox documentation
This commit renames the "Fetch CODA's"
and "Fetch SODA's" texts in "Fetch from CodaBox"
to match the new text in the Entreprise branch.

closes odoo/documentation#7859

X-original-commit: ac9eb58b7a
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2024-02-24 00:19:57 +00:00
tiku-odoo 1ea67923d6 [IMP] misc: voip onsip edits
closes odoo/documentation#7856

X-original-commit: 0a133687dd
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-24 00:19:54 +00:00
tiku-odoo f06fbeff06 [IMP] iot: windows iot worldline exception
closes odoo/documentation#7839

X-original-commit: 4dc8875b42
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 22:46:02 +00:00
tiku-odoo 13cf7f74fa [IMP] iot: troubleshooting add barcode exception
closes odoo/documentation#7832

X-original-commit: 056242b831
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 22:45:59 +00:00
Xavier (XPL) 5c3bb77fae [IMP] install: enterprise packaged installers note
task-3536177

closes odoo/documentation#7819

X-original-commit: 62e08e0c1f
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-23 22:45:56 +00:00
Donatienne (dopi) a9ba3516d6 [ADD] Website: website themes page creation
taskid-3685215

closes odoo/documentation#7791

X-original-commit: af5ac872e7
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-02-23 12:04:18 +00:00
vifo 33cfa48bc7 [IMP] iot: filter printers based on subtype
Add a Subtype field to the iot devices, if the subtype is not correct,
users can change it in the iot Devices list

task id : 2146229

closes odoo/documentation#7794

Author: viforget
Co-author: tiku-odoo
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-22 18:16:52 +00:00
Vraj Panchal 85750cdef1 [ADD] fiscal localizations: managing negative discount lines
Clarifying the application of managing negative lines, this commit elucidates
how to effectively utilize the global discount setting. The inclusion of this
feature enhances user understanding and proficiency, providing insights into
the functionality of the newly introduced setting for handling negative discount
lines.

closes odoo/documentation#7001

Task: 3638605
Related: odoo/odoo#146969
Signed-off-by: Vraj Panchal (vrpa) <vrpa@odoo.com>
2024-02-22 09:11:04 +00:00
Zuzanna Luczynska 32ba97eeec [ADD] planning: new page planning basics
New doc concerning planning basics, e.g. creating roles, first shitfs,
configuration, etc.

taskid-3648638

closes odoo/documentation#7764

X-original-commit: 54f7faa593
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2024-02-22 07:49:02 +00:00
Loredana Perazzo 669669d275 [ADD] POS: configure and use the ship later feature
task-3095674

closes odoo/documentation#7788

X-original-commit: a12f7925ca
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-21 13:26:39 +00:00
KC (ksc) f9ca4efa04 [IMP] subscriptions: corrected error about recurring products tip
closes odoo/documentation#7768

X-original-commit: b0009b8e10
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-02-21 13:26:38 +00:00
KC (ksc) 8505bd7bb6 [IMP] subscriptions: update close subs doc for 17
closes odoo/documentation#7767

X-original-commit: b154ed017f
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-02-21 09:09:00 +00:00
Jess Rogers (jero) a09a1e3f97 [IMP] helpdesk: update sla doc
closes odoo/documentation#7770

X-original-commit: 00faf01516
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.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>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-02-20 18:01:51 +00:00
Tarek berkane 54c328611c [FW][FIX] tutorials/getting_started: typo in 'estate'
closes odoo/documentation#7786

Forward-port-of: odoo/documentation#7772
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-02-20 11:02:07 +00:00
Ricardo Gomes Rodrigues 81225fe2d6 [IMP] l10n: update CodaBox documentation
This commit updates the documentation of CodaBox:
- new connection process
- new revocation process
- modified potential errors

closes odoo/documentation#7771

X-original-commit: 2c6c7a0dcd
Related: odoo/enterprise#56888
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2024-02-20 09:28:08 +00:00
Felicious 032e4ebb17 [IMP] inventory: sell stock virtual warehouse
closes odoo/documentation#7760

X-original-commit: 98994fbbaa
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-02-16 17:41:11 +00:00
Dylan Kiss (dyki) 39c408d30a [IMP] accounting: deferred detail change
Update the documentation for Deferred Revenues and Expenses following
the changes in https://github.com/odoo/enterprise/pull/56052

task-3725621

closes odoo/documentation#7742

X-original-commit: 1f730d050f
Related: odoo/enterprise#56654
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
2024-02-16 03:29:42 +00:00
Jess Rogers (jero) ac3d25aa65 [IMP] helpdesk: update receiving tickets
closes odoo/documentation#7738

X-original-commit: 212da24684
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.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-02-15 03:47:53 +00:00
KC (ksc) c5eef612ab [IMP] subscriptions: updated reports doc for 17
closes odoo/documentation#7732

X-original-commit: 7576501508
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-02-14 13:00:40 +00:00
Sam Lieber (sali) 65935fdd3a [FIX] odoo_theme: add bottom margin to inner lists
closes odoo/documentation#7730

X-original-commit: 1200df1ec8
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-02-14 11:03:48 +00:00
John Holton (hojo) 262ecf4ed3 [IMP] MRP: Scrap during manufacturing
closes odoo/documentation#7714

X-original-commit: b498eb2cb9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-14 06:16:56 +00:00
Antoine Vandevenne (anv) 279ae26b85 [IMP] supported_versions: release saas-17.1
closes odoo/documentation#7708

X-original-commit: e116579c99
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-02-14 05:10:11 +00:00
Sam Lieber (sali) 670084cbcf [REF] marketing automation: move getting started
closes odoo/documentation#7697

X-original-commit: 2198e60c5e
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-02-13 16:01:21 +00:00
Donatienne (dopi) 2d5e29fd90 [IMP] Website Analytics: adding Google Tag Manager documentation
taskid-3650278

closes odoo/documentation#7695

X-original-commit: 1799e47028
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-02-12 08:07:47 +00:00
“Audrey 35711446e8 [IMP] payment_providers/stripe: improve structure and add Enable Apple Pay button
task-3697828

closes odoo/documentation#7688

X-original-commit: d4d62b6967
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-12 08:07:45 +00:00
Jess Rogers (jero) 12b8b20ad4 [IMP] helpdesk: getting started doc updates
closes odoo/documentation#7677

X-original-commit: 48bfcc6d93
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.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-02-09 16:03:48 +00:00
tiku-odoo e4aac1214b [IMP] Misc VoIP Version 17 Specific Changes
closes odoo/documentation#7675

X-original-commit: 5eb6fc8cbc
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-09 16:03:47 +00:00
Donatienne (dopi) 6427517626 [IMP] Website: updating seo documentation
taskid-3499195

closes odoo/documentation#7648

X-original-commit: a4ff6da99c
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-02-08 11:24:54 +00:00
Rémy Voet (ryv) 99751542c7 [IMP] orm: renaming of group_operator -> aggregator
closes odoo/documentation#5541

Related: odoo/enterprise#46795
Related: odoo/odoo#127353
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2024-02-08 11:24:50 +00:00
Rémy Voet (ryv) ad749706ec [IMP] orm: changelog about group/aggregate/order by no-store related fields
Part-of: odoo/documentation#5541
2024-02-08 11:24:50 +00:00
tiku-odoo 3d55908b4c [ADD] Misc: VoIP Axivox Dial Plan Edits
closes odoo/documentation#7657

X-original-commit: 5ea7d3aa16
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-07 04:34:17 +00:00
KC (ksc) 676c234151 [IMP] subscriptions: update automation rules doc for 17
closes odoo/documentation#7639

X-original-commit: f07ce400b0
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-07 01:36:55 +00:00
Lara Martini (larm) 35d79a866a [ADD] Frontdesk: new documentation for new app
closes odoo/documentation#7638

X-original-commit: 23b5138038
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
2024-02-07 01:36:54 +00:00
John Holton (hojo) f9c0be63ee [ADD] Quality: Control points doc
closes odoo/documentation#7635

X-original-commit: 1bf87a0db9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-07 00:00:40 +00:00
John Holton (hojo) 209864139d [IMP] MRP: Backorders Shop Floor workflow
closes odoo/documentation#7571

X-original-commit: de2a4e2db7
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-07 00:00:39 +00:00
John Holton (hojo) 6482fb8440 [IMP] Quality: Pass - Fail check Shop Floor
closes odoo/documentation#7562

X-original-commit: 30d2a5efd1
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-07 00:00:38 +00:00
Michaël Mattiello 973d5800d2 [IMP] web: update javascript odoo modules
This commit adapts the javascript modules section with the last
update https://github.com/odoo/odoo/pull/142858 and some outdated
features.

closes odoo/documentation#7640

Signed-off-by: Michaël Mattiello (mcm) <mcm@odoo.com>
2024-02-06 15:53:40 +00:00
John Holton (hojo) 412f844589 [IMP] Quality: Quality checks Shop Floor
closes odoo/documentation#7574

X-original-commit: 0806969e0d
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-05 20:47:17 +00:00
John Holton (hojo) 4299eed3cd [IMP] Quality: Measure check Shop Floor
closes odoo/documentation#7572

X-original-commit: 5b47c396ca
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-05 20:47:16 +00:00
Brandon Seltenrich (BRSE) ee71f1eb9a [ADD] purchase: add new temp rr doc
closes odoo/documentation#7631

X-original-commit: 18fd3f00e4
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-02-05 14:19:02 +00:00
Loredana Perazzo b87b0b335a [IMP] POS: path to configure payment terminals
task-3684488

closes odoo/documentation#7608

X-original-commit: d16864d586
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-05 09:56:58 +00:00
“Audrey 6a69730316 [IMP] Studio: add a data table using the report editor
task-3698568

closes odoo/documentation#7622

X-original-commit: 281137ccfb
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-05 08:32:51 +00:00
Felicious 603518a6c5 [REF] inventory: move removal strats into own folder
closes odoo/documentation#7617

X-original-commit: 81509af376
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Jonathan <jcs@odoo.com>
2024-02-03 12:25:16 +00:00
tiku-odoo 7519600559 [IMP] Productivity IoT Windows Add Admonition Block
closes odoo/documentation#7615

X-original-commit: c1ba4c61ae
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-03 12:25:11 +00:00
tiku-odoo 5a512bbdcf [IMP] Misc Auth LDAP Typo Edits
closes odoo/documentation#7590

X-original-commit: 03678233c5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-30 16:21:51 +00:00
John Holton (hojo) 9e75bca747 [IMP] Quality: Take a Picture check Shop Floor
closes odoo/documentation#7573

X-original-commit: 93b47e7896
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-30 09:18:04 +00:00
Donatienne (dopi) 7c3abb5af5 [IMP] accounting: reconciliation models update
task-3377307

closes odoo/documentation#7514

X-original-commit: e5a19771c1
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-30 09:18:00 +00:00
John Holton (hojo) 89cfd364dc [IMP] Quality: Instructions check Shop Floor
closes odoo/documentation#7557

X-original-commit: 58365b78c4
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Felicious <feku@odoo.com>
Co-authored-by: ksc-odoo <ksc@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2024-01-29 20:00:14 +00:00
MaxKeilOdoo 8d9d0c90ed [IMP] misc: IAP grammar updates and new image
closes odoo/documentation#7554

X-original-commit: 07333c0061
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: tiku-odoo <tiku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2024-01-29 20:00:14 +00:00
Lara Martini (larm) cce9456f93 [ADD] Time Off: new documentation needed
closes odoo/documentation#7537

X-original-commit: a838df1660
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-01-29 20:00:11 +00:00
Augusto Perez 1febb15453 [ADD] Upgrade documentation: Upgrade scripts and Util package
closes odoo/documentation#7550

X-original-commit: 16a209c750
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-26 09:56:30 +00:00
John Holton (hojo) 832628a8c7 [IMP] MRP: Update Manufacturing step docs for Shop Floor
closes odoo/documentation#7500

X-original-commit: 71a9b4efac
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-26 07:30:48 +00:00
Donatienne (dopi) b84e81d3a1 [IMP] elearning: set prerequisite courses
taskid-3433600

closes odoo/documentation#7542

X-original-commit: 2d4a3cc883
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-25 14:56:28 +00:00
nni-odoo 4f098945d7 [ADD] localizations: indonesia qris
Adding QRIS documentation from the following PR https://github.com/odoo/odoo/pull/146926

closes odoo/documentation#7477

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-01-25 13:11:23 +00:00
“Audrey 86fac322d3 [IMP] payment_providers: payment methods + restructure doc page
task-3570280

closes odoo/documentation#7527

X-original-commit: 67894e33f6
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-01-25 05:49:20 +00:00
Julien Alardot (jual) 958fa599e1 [FIX] reference/user_interface: filter element name is mandatory
The filter element attribute 'name' is now required since
odoo/odoo/commit/4ddc3231

closes odoo/documentation#7523

X-original-commit: cbe72a69bb
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Julien Alardot (jual) <jual@odoo.com>
2024-01-24 10:52:51 +00:00
“Audrey 0604fb56f9 [IMP] Studio: new report editor
task-3553091

closes odoo/documentation#7518

X-original-commit: cf389c1c3e
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-01-24 09:20:37 +00:00
Loredana Perazzo 3fe09dd653 [IMP] pos: note about products loading
task-3095675

closes odoo/documentation#7509

X-original-commit: 5ec37fbb7f
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-01-23 16:03:41 +00:00
tiku-odoo 06eaf3a0c7 [IMP]Productivity WhatsApp Enterprise Edit
closes odoo/documentation#7502

X-original-commit: 474d0b7b94
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-23 14:35:31 +00:00
Antoine Vandevenne (anv) 14c0438764 [IMP] reference/user_interface: reformat and clarify views reference
In particular, the following changes are made:
- Use the `class` and `attribute` admonitions along with custom
  attributes to define classes, views' root attributes, views'
  components, and attribute values. This allows re-using the responsive
  design that was made for reference lists, and getting rid of the
  previous implementation that relied on class attributes, which were not
  intended for this usage and reduce readability while hindering further
  contributions due to a lack of flexibility (no admonitions,
  sub-attributes...)
- Use definition lists to define view types to allow for clearer and
  longer descriptions.
- Rewrite and restructure the explanations when there is a lack clarity.
- Extract duplicated content to included RST files.
- Display SVG images into dedicated admonitions.
- Fix RST and English mistakes.
- Rename `view_architecture` to `view_architectures`, as it lists all
  existing architectures and doesn't describe "the architecture of a
  view".
- Replace underscores with hyphens in image file names to improve SEO.

task-3458320

closes odoo/documentation#5237

closes odoo/documentation#7497

X-original-commit: a17eaf4c6f
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-23 10:51:24 +00:00
tiku-odoo db3db3c727 [IMP] IoT Printer doc edits
closes odoo/documentation#7496

X-original-commit: bfe57fdbdd
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-23 10:51:20 +00:00
Donatienne (dopi) 1be6f341dd [IMP] Website: menus
Update screenshots to reflect V17

closes odoo/documentation#7400

X-original-commit: 7e45e144a6
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-23 10:51:14 +00:00
Loredana Perazzo 39541bb745 [ADD] POS: page to setup and use product combos
Task-3604850

closes odoo/documentation#7485

X-original-commit: 539435d14d
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-01-23 09:08:09 +00:00
tiku-odoo 157c1e18ea [RMV]Sales: remove snyc menu line ebay connector
closes odoo/documentation#7471

X-original-commit: 9db684fe86
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-22 19:21:43 +00:00
nni-odoo ab5c9feb40 [ADD] payment_providers: Xendit
Documentation for Xendit payment provider

taskid-2946329

closes odoo/documentation#7475

X-original-commit: 05637af163
Signed-off-by: Nigel Nicholas (nni) <nni@odoo.com>
2024-01-22 02:56:57 +00:00
Martin Trigaux (mat) 6c3385cf90 [I18N] *: export 16.0 translations
closes odoo/documentation#7473

X-original-commit: aecf49d6c8
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-01-21 08:58:23 +00:00
KC (ksc) b53427ddde [IMP] subscriptions: update renewals doc
closes odoo/documentation#7433

X-original-commit: 6a7bc2d449
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-01-20 01:18:24 +00:00
tiku-odoo e6dbd3d9e4 [IMP] Microsoft Azure Email Phrasing update
closes odoo/documentation#7462

X-original-commit: d902bbbc19
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-19 21:38:05 +00:00
tiku-odoo 646bfe2e2c [RMV]VOIP:Scrub Asterisk Docs
closes odoo/documentation#7445

X-original-commit: 055e332ef3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-19 15:05:16 +00:00
Felicious e620f27378 [ADD] inventory: least packages removal strategy
closes odoo/documentation#7417

X-original-commit: bc6c92d786
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-18 03:28:49 +00:00
Brandon Seltenrich (BRSE) f10c8d4ad2 [IMP] barcode: update adjustments doc
closes odoo/documentation#7424

X-original-commit: a7af9a59ff
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-17 07:54:25 +00:00
Christophe Monniez b4cab2a3db [FIX] requirements: fix sphinxcontrib versions
It seems that the latest version if sphinx contrib libs needs sphinx 5.0.

closes odoo/documentation#7413

X-original-commit: 38bd71fa13
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2024-01-16 19:28:39 +00:00
Ricardo Gomes Rodrigues 999c8db465 [IMP] l10n: Codabox for Belgium
Add Codabox Belgium documentation following the introduction of the
module introduced in https://github.com/odoo/enterprise/pull/47607

task-id 3592955

closes odoo/documentation#7405

X-original-commit: 4895a3b55c
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2024-01-16 17:58:53 +00:00
Felicious 6ec9eb1fcc [ADD] inventory: lifo removal strategy
closes odoo/documentation#7373

X-original-commit: fd598899c2
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-16 16:40:25 +00:00
Donatienne (dopi) baab56946f [IMP] sign: tags, signing orders, reminders, expiration dates
task-3609727

New features are available in v17:
Modify tags on signed documents.
Send automatic email reminders to people who have yet to sign a document after a set delay.
Signing order available as soon as you have more than one signer
Setting expiration dates on signature requests.

closes odoo/documentation#7275

X-original-commit: 054801995e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-16 16:40:23 +00:00
aliya 73499c595e [IMP] accounting: peppol
In 17.0 we have introduced some additional features in Peppol:
- switching between the demo mode/test mode/live
- better UI that allows fetch peppol message status, new documents, etc from the accounting dashboard
- peppol ready filter to filter customer invoices that are ready to be sent via peppol

part of:
task-3614809

closes odoo/documentation#7402

X-original-commit: 47300c10bf
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
2024-01-16 10:03:50 +00:00
“Chiara 2c1277d0f7 [IMP] accounting: internal transfers
taskid-3663508

closes odoo/documentation#7401

X-original-commit: 9223318b05
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-16 10:03:49 +00:00
Felicious fc98af5814 [ADD] inventory: closest locations removal strat
closes odoo/documentation#7367

X-original-commit: a926fbf998
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-16 03:09:35 +00:00
Olivier Dony d0b7363de5 [IMP] conf: special case alt lang links for legal terms
Legal terms live under specific URL as their translations are not
managed in the same manner.

Layout is like this:
  /terms/enterprise.html (EN)
  /terms/i18n/enterprise_fr.html (FR)

This commit adapts the generation of alternative languages links for each
"legal terms page", so that it targets the correct i18n link, or goes
back to the canonical EN one, depending on the target language.

closes odoo/documentation#7382

closes odoo/documentation#7384

closes odoo/documentation#7387

Signed-off-by: Olivier Dony (odo) <odo@odoo.com>
2024-01-15 22:56:16 +01:00
Olivier Dony 65f1e3ce0a [CHG] legal: make Spanish partnership contract official
Removed the "not legally binding" warning, as Odoo now has official
establishments in countries when Spanish contracts are mandatory and
need to be binding. More careful reviews of the Spanish translations
will be necessary from now on.

Part-of: odoo/documentation#7387
2024-01-15 22:56:16 +01:00
Olivier Dony a48ebe55bf [IMP] legal: update spanish Enterprise contract to v10a
Including spellchecking and proper emphasis of some important terms, and
the disambiguation of "Extra Covered Modules" and "Bug"

Removed the "not legally binding" warning, as Odoo now has official
establishments in countries when Spanish contracts are mandatory and
need to be binding. More careful reviews of the Spanish translations
will be necessary from now on.

Part-of: odoo/documentation#7387
2024-01-15 22:56:16 +01:00
Jonathan Castillo (jcs) 3d28850a40 [FIX] redirects: redirection loop on install.rst
closes odoo/documentation#7392

X-original-commit: f4bad01680
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-01-15 13:04:21 +00:00
Donatienne (dopi) 83a68e4b9b [MOV] geo ip installation: move page to install
Page moved from Websites to Install section

taskid-3512515

X-original-commit: a9004e844f
Part-of: odoo/documentation#7392
2024-01-15 13:04:21 +00:00
Rémy Voet (ryv) be60243eff [IMP] orm: update changelog for the new flush strategy
closes odoo/documentation#7194

Related: odoo/upgrade#5469
Related: odoo/odoo#144747
Related: odoo/enterprise#53380
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2024-01-15 13:04:08 +00:00
825 changed files with 29800 additions and 13032 deletions
+17
View File
@@ -213,6 +213,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-17.1': "Odoo Online",
'17.0': "Odoo 17",
'saas-16.4': "Odoo Online",
'saas-16.3': "Odoo Online",
@@ -478,8 +479,24 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
_version = _version or app.config.version
_lang = _lang or app.config.language or 'en'
_canonical_page = f'{pagename}.html'
# legal translations have different URLs schemes as they are not managed on transifex
# e.g. FR translation of /terms/enterprise => /fr/terms/enterprise_fr
if pagename.startswith('legal/terms/'):
if _lang in legal_translations and not pagename.endswith(f"_{_lang}"):
# remove language code for current translation, set target one
_page = re.sub("_[a-z]{2}$", "", pagename)
if 'terms/i18n' not in _page:
_page = _page.replace("/terms/", "/terms/i18n/")
_canonical_page = f'{_page}_{_lang}.html'
elif _lang == 'en' and pagename.endswith(tuple(f"_{l}" for l in legal_translations)):
# remove language code for current translation, link to original EN one
_page = re.sub("_[a-z]{2}$", "", pagename)
_canonical_page = f'{_page.replace("/i18n/", "/")}.html'
if app.config.is_remote_build:
_canonical_page = _canonical_page.replace('index.html', '')
return f'{_root}' \
f'{f"/{_version}" if app.config.versions else ""}' \
f'{f"/{_lang}" if _lang != "en" else ""}' \
+1
View File
@@ -47,3 +47,4 @@ functionalities, including functional support, upgrades, and hosting. `Pricing
install/deploy
install/cdn
install/email_gateway
install/geo_ip
+4 -3
View File
@@ -334,6 +334,9 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8
}
# Redirect requests to odoo backend server
@@ -346,10 +349,8 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
proxy_redirect off;
proxy_pass http://odoo;
# Enable HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# requires nginx 1.19.8
proxy_cookie_flags session_id samesite=lax secure;
proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8
}
# common gzip
@@ -1,6 +1,9 @@
==========================================
Geo IP Installation (On-Premises Database)
==========================================
======
Geo IP
======
.. note::
This documentation only applies to On-premise databases.
Installation
============
@@ -32,8 +35,8 @@ Installation
.. seealso::
- :doc:`CLI documentation </developer/reference/cli>`.
Test GeoIP Geolocation In Odoo Website
======================================
Test GeoIP geolocation in your Odoo website
===========================================
Edit a web page to include some geo-ip information such as the country name of the current
request IP address. To do so:
+2 -2
View File
@@ -16,8 +16,8 @@ Official **Community** and **Enterprise** packages can be downloaded from the `O
<https://www.odoo.com/page/download>`_.
.. note::
It is required to be logged in as a paying customer or partner to download the Enterprise
packages.
It is required to be logged in as a paying on-premise customer or partner to download the
Enterprise packages.
.. _install/packages/linux:
+1
View File
@@ -15,4 +15,5 @@ Maintain
maintain/hosting_changes
maintain/odoo_online
maintain/on_premise
maintain/neutralized_database
maintain/supported_versions
@@ -52,7 +52,7 @@ able to read (IMAP) and send (SMTP) emails in the Microsoft 365 setup. First, cl
Add a Permission` button and select :guilabel:`Microsoft Graph` under :guilabel:`Commonly Used
Microsoft APIs`. After, select the :guilabel:`Delegated Permissions` option.
In the search bar, search for the following :guilabel:`Deregulated permissions` and click
In the search bar, search for the following :guilabel:`Delegated permissions` and click
:guilabel:`Add permissions` for each one:
- :guilabel:`SMTP.Send`
+211 -263
View File
@@ -2,293 +2,255 @@
Domain names
============
A **domain name** works as an address for your website. It makes the Internet much more accessible
as it allows users to type a meaningful web address, such as ``www.odoo.com``, rather than its
server's IP address with a series of numbers.
Domain names are text-based addresses identifying online locations, such as websites. They provide a
more memorable and recognizable way for people to navigate the internet than numerical IP addresses.
You can use a custom domain name to access your Odoo database and websites:
**Odoo Online** and **Odoo.sh** databases use a **subdomain** of the `odoo.com` **domain** by
default (e.g., `mycompany.odoo.com`).
- By :ref:`registering a free domain name with Odoo <domain-name/odoo-register>` (for Odoo Online
databases)
- By :ref:`configuring a custom domain that you already own <domain-name/existing>`.
.. note::
Odoo Online and Odoo.sh databases, including their websites, use by default a subdomain of
``odoo.com`` for both the URL and the emails (e.g., ``https://example.odoo.com``).
.. important::
Odoo offers a :ref:`free custom domain name <domain-name/odoo-register>` to all Odoo Online
databases for one year. Visitors can then access your website with an address such as
``www.example.com`` rather than the default ``example.odoo.com``.
However, you can use a custom domain name instead by :ref:`registering a free domain name
<domain-name/register>` (only available for Odoo Online databases) or by :ref:`configuring a
domain name you already own <domain-name/existing>`.
.. seealso::
- `Odoo Tutorials: Register a Free Domain Name
<https://www.odoo.com/slides/slide/register-a-free-domain-name-1663>`_
- `Odoo Quick Tips: Get a free domain name! <https://www.youtube.com/watch?v=eAfgeNOHLP4>`_
`Odoo Tutorials: Register a free domain name [video]
<https://www.odoo.com/slides/slide/register-a-free-domain-name-1663>`_
.. _domain-name/about:
About domain names
==================
Having a **good domain name** is as important to your branding as the name of your business or
organization as it is the first thing your visitors will notice. We recommend you keep them *simple,
short, easy to remember and spell*.
A **subdomain** is a domain that is a part of another domain. It often refers to the additional part
that comes before the main domain name. Traditionally, most websites use the ``www.`` subdomain,
but any string of letters can be used as well. You can use subdomains to direct your visitors to
other websites than your main website or to specific pages (e.g., ``experience.odoo.com`` points to
a specific page.)
All domain names are referenced in the **Domain Name System**, or **DNS**, which works as a giant
directory for the Internet. There are many DNS servers, so any modification to the DNS can take up
to 72 hours to propagate worldwide on all servers.
.. _domain-name/indexing:
Indexing of domain names by search engines
------------------------------------------
Search engines, such as Google and Bing, rely on web crawlers (:dfn:`robots that explore and analyze
the web`) to index all websites and their related domain names. These crawlers discover new URLs
thanks to links on known web pages. As a result, search engines should index domain names
automatically after a while, as long as their URLs are mentioned elsewhere on the Internet.
Improving the appearance and positioning of web pages on search engines is a practice named "Search
Engine Optimization" (SEO).
.. tip::
Adding relevant content, optimizing metadata, and building high-quality backlinks can all help
improve a website's search engine visibility.
Some search engines provide tools for web admins, such as
`Google Search Console <https://search.google.com/search-console>`_ and
`Bing Webmaster Tools <https://www.bing.com/webmasters>`_, to help you analyze and improve your
page ranking. To use these services, you must prove that you are the owner of your domain name. One
way to verify the ownership of your domain name is by adding a DNS record. You can do this for
:ref:`domain names registered with Odoo <domain-name/odoo-manage>` and for domain names managed by
other providers.
.. seealso::
- :doc:`/applications/websites/website/pages/seo`
- `Google Search Console Help - Verify your site ownership <https://support.google.com/webmasters/answer/9008080>`_
- `Bing Webmaster Tools - Add and Verify site <https://www.bing.com/webmasters/help/add-and-verify-site-12184f8b>`_
.. _domain-name/odoo-register:
.. _domain-name/register:
Register a free domain name with Odoo
=====================================
You can register a domain name for your Odoo Online database directly from Odoo Website or your
database manager.
To register a one-year free domain name for your Odoo Online database, sign in to your account and
go to the `database manager <https://www.odoo.com/my/databases>`_. Click the gear icon
(:guilabel:`⚙️`) next to the database name and select :guilabel:`Domain Names`.
.. image:: domain_names/domain-names.png
:alt: Accessing a database's domain names configuration
Search for the desired domain name and check its availability.
.. image:: domain_names/domain-search.png
:alt: Searching for an available domain name
.. tip::
Ensure the Website app is installed if the domain name registration option does not appear.
Select the desired domain name, fill in the :guilabel:`Domain Owner` form, and click
:guilabel:`Register`. The chosen domain name is directly linked to the database, but you still need
to :ref:`map your domain name to your Odoo website <domain-name/db-map>`.
.. image:: domain_names/domain-owner.png
:alt: Filling in the domain owner information
.. important::
- Your domain name is **free for one year** if you register it with Odoo!
- The domain name is registered with `Gandi <https://www.gandi.net/>`_, the domain name
registrar.
- You are the owner of the domain name and can use it for other purposes.
- Odoo manages payment and technical support for you.
- 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.
A verification email from `noreply@domainnameverification.net` will be sent to the email address
provided in the :guilabel:`Domain Owner` form. It is essential to verify your email address to
keep the domain active and receive the renewal quote before expiration.
To do so, go to :menuselection:`Website --> Domain Name`. Alternatively, open your `database manager
<https://www.odoo.com/my/databases>`_, click on the :guilabel:`settings` button next to your
database, then on :guilabel:`Domain names`.
.. image:: domain_names/register-menu.png
:align: center
:alt: Clicking on Domain Names from an Odoo website
Search for the domain name of your choice to check its availability, then select the one you want to
register for your website.
.. image:: domain_names/register-search.png
:align: center
:alt: The search of the domain name example.com shows which associated domains are available.
Next, fill in the form with your information to become the domain name owner.
Your domain name is directly linked to your database, but you still have to :ref:`map your domain
name with your website <domain-name/website-map>`.
The domain name registration is free for the first year. After this period, Odoo will continue to
manage the domain in partnership with **Gandi.net**, the domain name registrar, and you will be
charged `Gandi.net's renewal rate <https://www.gandi.net/en/domain>`_. Odoo sends a renewal
quotation every year to the email address mentioned in the :guilabel:`Domain Owner` form several
weeks before the expiration date of the domain. The domain is renewed automatically when the
quotation is confirmed.
.. note::
- Free domain names are also available for free Odoo Online databases (if you installed one app
only, for example). In this case, Odoo reviews your request and your website to avoid abuse.
This process can take several days due to the success of the offer.
- This is not available for Odoo.sh databases yet.
- The offer is only available for **Odoo Online** databases.
- The offer is limited to **one** domain name per client.
- The offer is limited to the registration of a **new** domain name.
- The offer is available to *One App Free* plans. Ensure that your website contains enough
original content for Odoo to verify that your request is legitimate and respects `Odoo's
Acceptable Use Policy <https://www.odoo.com/acceptable-use>`_. Given the high number of
requests, it can take Odoo several days to review them.
.. _domain-name/odoo-manage:
.. _domain-name/register-dns:
Manage your domain name registered with Odoo
--------------------------------------------
DNS records
-----------
To manage the DNS records of your domain name registered with Odoo or to visualize the contacts
associated with it, open your `database manager <https://www.odoo.com/my/databases>`_, click on the
:guilabel:`settings` button next to your database, on :guilabel:`Domain names`, and then on
:guilabel:`Contacts` or :guilabel:`DNS`.
To manage your free domain name :abbr:`DNS (domain name system)` records, open the `database manager
<https://www.odoo.com/my/databases>`_, click the gear icon (:guilabel:`⚙️`) next to the database
name, select :guilabel:`Domain Names`, and click :guilabel:`DNS`.
.. image:: domain_names/manage.png
:align: center
:alt: Management of the domain names linked to an Odoo database
- :guilabel:`A`: the A record holds the IP address of the domain. It is automatically created and
**cannot** be edited or deleted.
- :guilabel:`CNAME`: CNAME records forward one domain or subdomain to another domain. One is
automatically created to map the `www.` subdomain to the database. If the database is renamed, the
CNAME record **must** also be renamed.
- :guilabel:`MX`: MX records instruct servers on where to deliver emails.
- :guilabel:`TXT`: TXT records can be used for different purposes (e.g., to verify domain name
ownership).
Any modification to the DNS records can take up to **72 hours** to propagate worldwide on all
servers.
.. note::
Please `submit a support ticket <https://www.odoo.com/help>`_ if you need further assistance to
manage your domain name.
`Submit a support ticket <https://www.odoo.com/help>`_ if you need assistance to manage your
domain name.
Mailbox
-------
The one-year free domain name offer does **not** include a mailbox. There are two options to link
your domain name with a mailbox.
Use a subdomain
~~~~~~~~~~~~~~~
You can create a subdomain (e.g., `subdomain.yourdomain.com`) to use as an alias domain for the
database. It allows users to create records in the database from emails received on their
`email@subdomain.yourdomain.com` alias.
To do so, open the `database manager <https://www.odoo.com/my/databases>`_, click the gear icon
(:guilabel:`⚙️`) next to the database name, and go to :menuselection:`Domain Names --> DNS --> Add
DNS record --> CNAME`. Next, enter the desired subdomain in the :guilabel:`Name` field (e.g.,
`subdomain`), the original database domain with a period at the end (e.g., `mycompany.odoo.com.`) in
the :guilabel:`Content` field, and click :guilabel:`Add record`.
Then, add the alias domain as your *own domain* by clicking :guilabel:`Use my own domain`, entering
the alias domain (e.g., `subdomain.yourdomain.com`), clicking :guilabel:`Verify`, and then
:guilabel:`I confirm, it's done`.
Finally, go to your database and open the :guilabel:`Settings`. Under the :guilabel:`Alias Domain`
field, enter the alias domain (e.g., `subdomain.yourdomain.com`), click :guilabel:`Create`, and then
:guilabel:`Save`.
Use an external email provider
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To use an external email provider, you should configure an MX record. To do so, open the `database
manager <https://www.odoo.com/my/databases>`_, click the gear icon (:guilabel:`⚙️`) next to the
database name, click :menuselection:`Domain Names --> DNS --> Add DNS record --> MX`. The values you
should enter for the :guilabel:`Name`, :guilabel:`Content`, and :guilabel:`Priority` fields depend
on the external email provider.
.. seealso::
- `Google Workspace: MX record values <https://support.google.com/a/answer/174125?hl=en>`_
- `Outlook and Exchange Online: Add an MX record for email <https://learn.microsoft.com/en-us/microsoft-365/admin/get-help-with-domains/create-dns-records-at-any-dns-hosting-provider?view=o365-worldwide#add-an-mx-record-for-email-outlook-exchange-online>`_
.. _domain-name/existing:
Configure your existing domain name
===================================
Configure an existing domain name
=================================
If you already own a domain name, you can use it to point to your website.
If you already have a domain name, you can use it for your Odoo website.
To avoid any issue with the :ref:`SSL certificate validation <domain-name/ssl>`, we highly recommend
that you proceed with the following actions in this order:
.. warning::
It is strongly recommended to follow **in order** these three steps to avoid any :ref:`SSL
certificate validation <domain-name/ssl>` issues:
#. :ref:`Add a CNAME record <domain-name/cname>` on your domain name's DNS zone.
#. :ref:`Map your domain name with your Odoo database <domain-name/db-map>`.
#. :ref:`Map your domain name with your Odoo website <domain-name/website-map>`.
#. :ref:`Add a CNAME record <domain-name/cname>`
#. :ref:`Map your domain name to your Odoo database <domain-name/db-map>`
#. :ref:`Map your domain name to your Odoo website <domain-name/website-map>`
.. _domain-name/cname:
Add a CNAME record
------------------
A **CNAME record** is a type of DNS record that points to the domain of another website rather than
directly to an IP address.
You need a CNAME record that points to your Odoo database. The requirements are detailed in your
database manager.
Creating a CNAME record to forward your domain name to the address of your Odoo database is
required.
.. tabs::
.. group-tab:: Odoo Online
The target address is the current address of your database, as defined at its creation (e.g.,
``example.odoo.com``)
The CNAME record's target address should be your database's address as defined at its creation
(e.g., `mycompany.odoo.com`).
.. group-tab:: Odoo.sh
Your project's main address is defined in :menuselection:`Settings --> Project Name`.
The CNAME record's target address can be the project's main address, which can be found on
Odoo.sh by going to :menuselection:`Settings --> Project Name`, or a specific branch
(production, staging or development) by going to :menuselection:`Branches --> select the
branch --> Settings --> Custom domains`, and clicking :guilabel:`How to set up my domain?`. A
message indicates which address your CNAME record should target.
If you want to target a specific branch (production, staging or development), go to
:menuselection:`Branches --> select your branch --> Settings --> Custom domains`, and click on
:guilabel:`How to set up my domain?`. A message indicates which address your CNAME record
should target.
The specific instructions depend on your DNS hosting service.
#. Open your domain name's manager dashboard.
#. Open the **DNS zone** management page for the domain name you want to configure.
#. Create a **CNAME record** pointing to the address of your database.
.. seealso::
- `GoDaddy: Add a CNAME record <https://www.godaddy.com/help/add-a-cname-record-19236>`_
- `Namecheap: How to create a CNAME record for your domain <https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-to-create-a-cname-record-for-your-domain>`_
- `OVHcloud: Add a new DNS record <https://docs.ovh.com/us/en/domains/web_hosting_how_to_edit_my_dns_zone/#add-a-new-dns-record>`_
- `Cloudflare: Manage DNS records
<https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
While Odoo suggests creating a CNAME record for your ``www.`` subdomain (``www.example.com``), you
can of course use any domain name of your choice, with any subdomain (e.g.,
``anything.example.com``).
Creating a CNAME record to map the `www` subdomain (`www.yourdomain.com`) as some visitors are used
to typing `www.` before entering a domain name.
.. example::
You own the domain name ``example.com``, and you have an Odoo Online database at the address
``example.odoo.com``. You want to access your Odoo database primarily with the domain
``www.example.com`` but also with the :ref:`naked domain <domain-name/naked-domain>`
``example.com``.
You own the domain name `yourdomain.com`, and your Odoo Online database's address is
`mycompany.odoo.com`. You want to access your Odoo database primarily with the domain
`www.yourdomain.com` but also with the naked domain :dfn:`(a domain name without any subdomains
or prefixes)` `yourdomain.com`.
To do so, you create a CNAME record for the ``www`` subdomain, with ``example.odoo.com`` as the
target. The DNS zone manager generates the following rule and adds it to your DNS zone: ``www IN
CNAME example.odoo.com.``
You also create a redirection from ``example.com`` to ``wwww.example.com``.
Your new DNS records are propagated to all DNS servers.
.. note::
Here are some specific guidelines to create a CNAME record:
- `GoDaddy <https://www.godaddy.com/help/add-a-cname-record-19236>`_
- `Namecheap <https://www.namecheap.com/support/knowledgebase/article.aspx/9646/2237/how-to-create-a-cname-record-for-your-domain>`_
- `OVH <https://docs.ovh.com/us/en/domains/web_hosting_how_to_edit_my_dns_zone/#add-a-new-dns-record>`_
- `CloudFlare <https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en>`_
.. _domain-name/naked-domain:
Naked domain
~~~~~~~~~~~~
A **naked domain** is a domain name that doesn't have any subdomain at the beginning of the address
(e.g., ``odoo.com`` instead of ``www.odoo.com``).
You may want your naked domain to redirect to your website as some visitors may not type the full
domain name to access your website.
#. Open your domain name's manager dashboard.
#. Create a **redirection** from the naked domain (``example.com``) to your main domain name
(``www.example.com``).
.. note::
Depending on your domain name registrar, this redirection may be already pre-configured.
To do so, create a CNAME record for the `www` subdomain, with `mycompany.odoo.com` as the
target. Next, create a redirect (301 permanent or visible redirect) to redirect visitors from
`yourdomain.com` to `wwww.yourdomain.com`.
.. _domain-name/db-map:
Map your domain name with your Odoo database
--------------------------------------------
Map a domain name to an Odoo database
-------------------------------------
.. warning::
Ensure you have :ref:`added a CNAME record <domain-name/cname>` to your domain name's DNS
**before** mapping your domain name to your Odoo database.
Failing to do so may prevent the validation of the :ref:`SSL certificate <domain-name/ssl>` and
could result in a *certificate name mismatch* error. Web browsers often display this as a
warning, such as *"Your connection is not private"*.
If you encounter this error after mapping the domain name to your database, wait up to five
days, as the validation may still happen. If not, you can `submit a support ticket
<https://www.odoo.com/help>`_, including screenshots of your CNAME records.
.. tabs::
.. group-tab:: Odoo Online
Open your `database manager <https://www.odoo.com/my/databases>`_, click on the
:guilabel:`settings` button next to your database, on :guilabel:`Domain names`, and then on
:guilabel:`Use my own domain` at the bottom of the right column.
Open the `database manager <https://www.odoo.com/my/databases>`_, click the gear icon
(:guilabel:`⚙️`) next to the database name, and go to :menuselection:`Domain Names --> Use my
own domain`. Then, enter the domain name (e.g., `yourdomain.com`), click :guilabel:`Verify`
and :guilabel:`I confirm, it's done`.
Type the domain name you want to add to this database, then click on :guilabel:`Verify` to
check if the CNAME record is correctly configured. Once done, click on :guilabel:`I confirm,
it's done`.
.. image:: domain_names/online-map.png
:align: center
:alt: Verification of the CNAME records of a domain name before mapping it with a database
.. image:: domain_names/map-database-online.png
:alt: Mapping a domain name to an Odoo Online database
.. group-tab:: Odoo.sh
Go to :menuselection:`Branches --> select your branch --> Settings --> Custom domains`, type
the domain name you want to add to this database, then click on :guilabel:`Add domain`.
On Odoo.sh, go to :menuselection:`Branches --> select your branch --> Settings --> Custom
domains`, type the domain name to add, then click :guilabel:`Add domain`.
.. image:: domain_names/odoo-sh-map.png
:align: center
:alt: Mapping a domain name with an Odoo.sh branch
.. image:: domain_names/map-database-sh.png
:alt: Mapping a domain name to an Odoo.sh branch
.. seealso::
- :ref:`Odoo.sh branches: settings tab <odoosh-gettingstarted-branches-tabs-settings>`
.. warning::
Make sure to :ref:`add a CNAME record <domain-name/cname>` to your domain name's DNS **before**
mapping your domain name with your Odoo database.
Failing to do so may impede the validation of the :ref:`SSL certificate <domain-name/ssl>` and
would result in a *certificate name mismatch* error. This is often displayed by web browsers as a
warning such as *"Your connection is not private"*.
If this is the case and you have added the domain name to your database's settings less than five
days ago, wait 24 hours as the validation may still happen. Otherwise, please `submit a support
ticket <https://www.odoo.com/help>`_ including screenshots of your CNAME records.
:ref:`Odoo.sh branches: settings tab <odoosh-gettingstarted-branches-tabs-settings>`
.. _domain-name/ssl:
SSL encryption (HTTPS protocol)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**SSL encryption** is an encryption-based Internet security protocol. It allows your visitors to
navigate your website through a secure connection, which appears as an ``https://`` protocol at the
beginning of your web address, rather than a non-secure ``http://`` protocol.
**SSL encryption** allows visitors to navigate a website through a secure connection, which appears
as the *https://* protocol at the beginning of a web address rather than the non-secure *http://*
protocol.
Odoo generates a separate SSL certificate for each domain :ref:`mapped in the database manager
<domain-name/db-map>`, using integration with `Let's Encrypt Certificate Authority and ACME protocol
Odoo generates a separate SSL certificate for each domain :ref:`mapped to a database
<domain-name/db-map>` using `Let's Encrypt's certificate authority and ACME protocol
<https://letsencrypt.org/how-it-works/>`_.
.. note::
- The certificate generation may take up to 24h.
- Several attempts to validate your certificate are made during the five days following the
moment you add your domain name in your database's settings.
- If you already use another service, you can keep using it or simply change for Odoo.
- Certificate generation may take up to 24 hours.
- Several attempts to validate your certificate are made for five days after you map your domain
name to your database.
- If you use another service, you can keep using it or change to Odoo's.
.. important::
No SSL certificate is generated for naked domains :dfn:`(domain names without any subdomains
or prefixes)`.
.. _domain-name/web-base-url:
@@ -296,71 +258,57 @@ Web base URL of a database
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. note::
If you have Odoo Website, you can disregard this part and directly :ref:`map your domain name
with your website <domain-name/website-map>`.
If the Website app is installed on your database, skip this section and continue from the
:ref:`Map a domain name to a website <domain-name/website-map>` section.
The **web base URL** of a database, or **root URL** affects your main website address and all the
The *web base URL* or root URL of a database affects your main website address and all the
links sent to your customers (e.g., quotations, portal links, etc.).
To configure it, access your Odoo database with your custom address, then log in as an administrator
of your database (any user in the *Settings* group) from the login screen.
To make your custom domain name the *web base URL* of your database, access your database using your
custom domain name and log in as an administrator :dfn:`(a user part of the Settings access right
group under Administration)`.
.. warning::
Connecting to your database with the original Odoo subdomain address (e.g., ``example.odoo.com``
also updates the web base URL of your database. See below to prevent these automatic updates.
Alternatively, you can do it manually. To do so, activate the :ref:`developer mode
<developer-mode>`, then go to :menuselection:`Settings --> Technical --> System Parameters`.
Find the key called ``web.base.url`` (or create it if it does not exist) and enter the full address
of your website as value, such as ``https://www.example.com``.
If you access your database with the original Odoo address (e.g., `mycompany.odoo.com`), the *web
base URL* of your database will be updated accordingly. To prevent the automatic update of the
*web base URL* when an administrator logs in to the database, activate the :ref:`developer mode
<developer-mode>`, go to :menuselection:`Settings --> Technical --> System Parameters --> New`,
and enter `web.base.url.freeze` as the :guilabel:`Key` and `True` as the :guilabel:`Value`.
.. note::
The URL must include the protocol ``https://`` (or ``http://``) and must not end with a slash
(``/``).
To prevent the automatic update of the web base URL when an administrator logs in the database, you
can create the following System Parameter:
- key: ``web.base.url.freeze``
- value: ``True``
You can also set the web base URL manually. To do so, activate the :ref:`developer mode
<developer-mode>`, go to :menuselection:`Settings --> Technical --> System Parameters`, and
search for the `web.base.url` key (create it if necessary) and enter the full address of your
website as the value (e.g., `https://www.yourdomain.com`). The URL must include the protocol
`https://` (or `http://`) and *not* end with a slash (`/`).
.. _domain-name/website-map:
Map your domain name with your website
======================================
Map a domain name to an Odoo website
------------------------------------
Mapping your domain name to your website isn't the same as mapping it with your database:
Mapping your domain name to your website is different than mapping it to your database:
- It defines your domain name as the main one for your website, helping search engines to index your
website properly.
- It defines your domain name as the base URL for your database, including the portal links sent by
website correctly.
- It defines your domain name as the base URL for your database, including portal links sent by
email to your customers.
- If you have multiple websites, it maps your domain name with the appropriate website.
- If you have multiple websites, it maps your domain name to the appropriate website.
Go to :menuselection:`Website --> Configuration --> Settings --> Website Info`. If you have multiple
websites, select the one you want to configure.
In the :guilabel:`Domain` field, fill in the web address of your website (e.g.,
``https://www.example.com``) and click on :guilabel:`Save`.
.. image:: domain_names/website-settings.png
:align: center
:alt: Configuring https://www.example.com as the Domain of the website
Go to :menuselection:`Website --> Configuration --> Settings`. If you have multiple websites, select
the one you want to configure. In the :guilabel:`Domain` field, enter the address of your website
(e.g., `https://www.yourdomain.com`) and :guilabel:`Save`.
.. warning::
Mapping your domain name with your Odoo website prevents Google from indexing both your custom
domain name ``www.example.com`` and your original odoo database address ``example.odoo.com``.
Mapping your domain name to your Odoo website prevents Google Search from indexing your original
database address (e.g., `mycompany.odoo.com`).
If both addresses are already indexed, it may take some time before Google removes the indexation
of the second address. You may also try using the `Google Search Console
<https://search.google.com/search-console>`_ to fix this.
If both addresses are already indexed, it may take some time before the indexation of the second
address is removed from Google Search. You can use the `Google Search Console
<https://search.google.com/search-console/welcome>`_ to fix the issue.
.. note::
If you have multiple websites and companies on your database, make sure that you select the
right :guilabel:`Company` in the website settings, next to the :guilabel:`Domain` settings. Doing
so indicates Odoo which URL to use as the :ref:`base URL <domain-name/web-base-url>` according to
If you have multiple websites and companies on your database, make sure to select the right
:guilabel:`Company` under :menuselection:`Website --> Configuration --> Settings`. Doing so
indicates Odoo which URL to use as the :ref:`base URL <domain-name/web-base-url>` according to
the company in use.
.. seealso::
- :doc:`/applications/general/email_communication/email_servers`
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

@@ -0,0 +1,35 @@
====================
Neutralized database
====================
A neutralized database is a non-production database on which several parameters are deactivated.
This enables one to carry out tests without the risk of launching specific automated processes that
could impact production data (e.g., sending emails to customers). Live access is removed and
turned into a testing environment.
.. note::
**Any testing database created is a neutralized database:**
- testing backup databases
- duplicate databases
- for Odoo.sh: staging and development databases
.. important::
A database can also be neutralized when upgrading, as it is vital to do some tests before
switching to a new version.
Deactivated features
====================
Here is a non-exhaustive list of the deactivated parameters:
- all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)
- outgoing emails
- bank synchronization
- payment providers
- delivery methods
- :abbr:`IAP (In-App Purchase)` tokens
.. note::
**A red banner at the top of the screen is displayed on the neutralized database so that it can
be seen immediately.**
@@ -72,7 +72,7 @@ Domain names
Use a custom :doc:`domain name <domain_names>` to access the database via another URL.
.. tip::
You can :ref:`register a domain name for free <domain-name/odoo-register>`.
You can :ref:`register a domain name for free <domain-name/register>`.
.. _odoo_online/tags:
@@ -31,12 +31,18 @@ This matrix shows the support status of every version.
- On-Premise
- Release date
- End of support
* - Odoo saas~17.1
- |green|
- N/A
- N/A
- January 2024
-
* - **Odoo 17.0**
- |green|
- |green|
- |green|
- November 2023
- November 2026 (planned)
- October 2026 (planned)
* - Odoo saas~16.4
- |green|
- N/A
@@ -53,7 +53,7 @@ Resulting entry
The resulting entry section on the top right displays the selected bank transaction matched with
the counterpart entries and includes any remaining debits or credits. In this section, you can
validate the reconciliation or mark it as :guilabel:`To Check`. Any :ref:`reconciliation model
buttons <reconciliation_models_button>` are also available in the resulting entry section.
buttons <reconciliation/button>` are also available in the resulting entry section.
Reconcile transactions
======================
@@ -62,13 +62,13 @@ Transactions can be matched automatically with the use of :doc:`reconciliation m
<reconciliation_models>`, or they can be matched with :ref:`existing entries
<reconciliation/existing-entries>`, :ref:`batch payments <reconciliation/batch-payments>`,
:ref:`manual operations <reconciliation/manual-operations>`, and :ref:`reconciliation model buttons
<reconciliation_models_button>`.
<reconciliation/button>`.
#. Select a transaction among unmatched bank transactions.
#. Define the counterpart. There are several options for defining a counterpart, including
:ref:`matching existing entries <reconciliation/existing-entries>`, :ref:`manual operations
<reconciliation/manual-operations>`, :ref:`batch payments <reconciliation/batch-payments>`, and
:ref:`reconciliation model buttons <reconciliation_models_button>`.
:ref:`reconciliation model buttons <reconciliation/button>`.
#. If the resulting entry is not fully balanced, balance it by adding another existing counterpart
entry or writing it off with a :ref:`manual operation <reconciliation/manual-operations>`.
#. Click the :guilabel:`Validate` button to confirm the reconciliation and move to the next
@@ -90,8 +90,8 @@ Match existing entries
----------------------
This tab contains matching entries Odoo automatically pre-selects according to the reconciliation
models. The entry order is based on :ref:`reconciliation models <reconciliation_models_suggestion>`,
with suggested entries appearing first.
models. The entry order is based on :doc:`reconciliation models <reconciliation_models>`, with
suggested entries appearing first.
.. tip::
The search bar within the :guilabel:`Match Existing Entries` tab allows you to search for
@@ -130,10 +130,11 @@ of the relevant optional fields.
.. image:: reconciliation/fully-paid.png
:alt: Click on fully paid to manually set an invoice as entirely paid.
.. _reconciliation/button:
Reconciliation model buttons
----------------------------
Use a :ref:`reconciliation model button <reconciliation_models_button>` for manual operations that
are frequently used. These custom buttons allow you to quickly reconcile bank transactions manually
and can also be used in combination with existing entries.
Use a :doc:`reconciliation model <reconciliation_models>` button for manual operations that are
frequently used. These custom buttons allow you to quickly reconcile bank transactions manually and
can also be used in combination with existing entries.
@@ -1,129 +1,123 @@
=====================
Reconciliation Models
Reconciliation models
=====================
Once the bank statements are correctly imported, it is essential to *reconcile* the records properly
and ensure all *Journal Entries* are balanced and in agreement. To ease and speed up the
reconciliation process, you can configure **Reconciliation Models**, which are particularly useful
with recurrent entries such as bank fees.
Reconciliation models are used to automate the :doc:`bank reconciliation <reconciliation>` process,
which is especially handy when dealing with recurring entries like bank fees. Reconciliation models
can also be helpful in handling :doc:`cash discounts <../customer_invoices/cash_discounts>`.
.. todo:: Add a link to the Reconciliation process in the paragraph above, once the doc will have
been updated.
.. note::
Reconciliation Models are also useful to handle *Cash Discounts*. Please refer to
:doc:`this documentation <../customer_invoices/cash_discounts>` for more
information.
.. _reconciliation_models_types:
Types of Reconciliation Models
==============================
There are three types of Reconciliation Models:
#. :ref:`Write-off Button <reconciliation_models_button>`
#. :ref:`Suggestion of counterpart values <reconciliation_models_suggestion>`
#. :ref:`Match existing invoices/bills <reconciliation_models_match>`
.. _reconciliation_models_button:
Manually create a write-off on clicked button
---------------------------------------------
When you are reconciling an entry with an *Open Balance*, you can use the buttons available under
the *Manual Operations* tab to pre-fill all the values automatically, before validating the
reconciliation. Each button is a different Reconciliation Model.
.. image:: reconciliation_models/reconciliation_models_button.png
:align: center
:alt: Example of a Reconciliation Model with a write-off button in Odoo Accounting
.. _reconciliation_models_suggestion:
Suggest counterpart values
--------------------------
This type of Reconciliation Model suggests immediately counterpart values that only need to be
validated. This automation is based on a set of rules defined in the reconciliation model.
.. image:: reconciliation_models/reconciliation_models_suggestion.png
:align: center
:alt: Example of a Reconciliation Model that suggests counterpart values in Odoo Accounting
.. _reconciliation_models_match:
Match existing invoices/bills
-----------------------------
This type of Reconciliation Model automatically selects the right Customer Invoice or Vendor Bill
that matches the payment. All that is left to do is to validate the entry. This automation is based
on a set of rules defined in the reconciliation model.
.. image:: reconciliation_models/reconciliation_models_match.png
:align: center
:alt: Example of a Reconciliation Model that matches existing invoices and bills automatically
in Odoo Accounting
Configuration
=============
To manage or create new **Reconciliation Models**, go to :menuselection:`Accounting -->
Reconciliation --> Reconciliation Models`. Alternatively, you can also open this menu from the
Accounting Overview, by going to your Bank Journal card, clicking on the three little dots, and then
on *Reconciliation Models*.
.. image:: reconciliation_models/reconciliation_models_overview.png
:align: center
:alt: Open the Reconciliation Model menu from the overview dashboard in Odoo Accounting
.. important::
The first entry, named *Invoices Matching Rule*, is the one responsible for the current matching
of invoices and bills. Therefore, it is advised to leave it at the top of the list and not to
delete it.
Open the model you want to modify, or click on *Create* to create a new one, then fill out the form.
Type
----
See :ref:`above <reconciliation_models_types>` for an explanation about the different types of
Reconciliation Models.
.. note::
If the *Documents* application is installed on your database, an additional **Activity type**
field appears when *To check* is ticked. Selecting the value *Reconciliation request* implies
that, whenever you use this model, a *Request Document* window pops up to request a document from
a user.
Conditions on Bank Statement Line
---------------------------------
Define here all the conditions that are required for a Reconciliation Model to be applied.
.. important::
If a record matches with several Reconciliation Models, the first one in the *sequence* of models
will be applied. The sequence is simply the order of the models in the *list view*. They can be
rearranged by dragging-and-dropping the handle next to the name.
.. image:: reconciliation_models/reconciliation_models_conditions.png
:align: center
:alt: Conditions for the Reconciliation Model to be applied in Odoo Accounting
Counterpart Values
------------------
This section comprises the values that are applied by the Reconciliation Model.
If the value to reconcile needs to be written-off in two separate accounts, click on *Add a second
line*.
.. image:: reconciliation_models/reconciliation_models_counterparts.png
:align: center
:alt: Counterparts values of a Reconciliation Model in Odoo Accounting
Each model is created based on a :ref:`model type <models/type>` and :guilabel:`bank transaction
conditions`.
.. seealso::
- :doc:`reconciliation`
- :doc:`bank_synchronization`
- :doc:`../customer_invoices/cash_discounts`
- `Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-1841?fullscreen=1>`_
.. _models/type:
Reconciliation model types
==========================
The reconciliation models are available by going to :menuselection:`Accounting --> Configuration
--> Banks: Reconciliation Models`. For each reconciliation model, a :guilabel:`Type` must be set.
Three types of models exist:
- :guilabel:`Button to generate counterpart entry`: a button is created in the resulting entry
section of the bank reconciliation view. If clicked, this button generates a counterpart entry to
reconcile with the active transaction based on the rules set in the model. The rules specified in
the model determine the counterpart entry's account(s), amount(s), label(s), and analytic
distribution;
- :guilabel:`Rule to suggest counterpart entry`: used for recurring transactions to match the
transaction to a new entry based on conditions that must match the information on the transaction;
- :guilabel:`Rule to match invoices/bills`: used for recurring transactions to match the transaction
to existing invoices, bills, or payments based on conditions that must match the information on
the transaction.
Default reconciliation models
=============================
In Odoo, different models are available by default depending on the company's fiscal localization.
These can be updated if needed. Users can also create their own reconciliation models by clicking
:guilabel:`New`.
.. important::
If a record matches with several reconciliation models, the first one in the *sequence* of models
is applied. You can rearrange the order by dragging and dropping the handle next to the name.
.. image:: reconciliation_models/list-view.png
:alt: Rearrange the sequence of models in the list view.
Invoices/Bills perfect match
----------------------------
This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching
existing invoices or bills with a bank transaction based on set conditions.
.. image:: reconciliation_models/invoices-bills-perfect-match.png
:alt: Set rules to trigger the reconciliation.
Odoo automatically reconciles the payment when the :guilabel:`Auto-validate` option is selected, and
the model conditions are perfectly met. In this case, it expects to find on the bank statement's
line the invoice/payment's reference (as :guilabel:`Label` is selected) and the partner's name
(as :guilabel:`Partner is set` is selected) to suggest the correct counterpart entry and reconcile
the payment automatically.
Invoices/Bills partial match if underpaid
-----------------------------------------
This model suggests a customer invoice or vendor bill that partially matches the payment when the
amount received is slightly lower than the invoice amount, for example in the case of
**cash discounts**. The difference is reconciled with the account indicated in the
:guilabel:`counterpart entries` tab.
The reconciliation model :guilabel:`Type` is :guilabel:`Rule to match invoices/bills`, and the
:guilabel:`Payment tolerance` should be set.
.. image:: reconciliation_models/partial-match.png
:alt: Set rules to trigger the reconciliation.
.. note::
The :guilabel:`Payment tolerance` is only applicable to lower payments. It is disregarded when an
overpayment is received.
.. seealso::
:doc:`../customer_invoices/cash_discounts`
Line with bank fees
-------------------
This model suggests a counterpart entry according to the rules set in the model. In this case, the
reconciliation model :guilabel:`Type` is :guilabel:`Rule to suggest counterpart entry`, and the
:guilabel:`Label` can be used for example, to identify the information referring to the
:guilabel:`Bank fees` in the label of the transaction.
.. image:: reconciliation_models/bank-fees.png
:alt: Set rules to trigger the reconciliation.
.. note::
`Regular expressions <https://regexone.com/>`_, often abbreviated as **Regex**, can be used in
Odoo in various ways to search, validate, and manipulate data within the system. Regex can be
powerful but also complex, so it's essential to use it judiciously and with a good understanding
of the patterns you're working with.
To use regular expressions in your reconciliation models, set the :guilabel:`Transaction Type`
to :guilabel:`Match Regex` and add your expression. Odoo automatically retrieves the
transactions that match your Regex expression and the conditions specified in your model.
.. image:: reconciliation_models/regex.png
:alt: Using Regex in Odoo
Partner mapping
===============
Partner mapping allows you to establish rules for automatically matching transactions to the correct
partner account, saving time and reducing the risk of errors that can occur during manual
reconciliation. For example, you can create a partner mapping rule for incoming payments with
specific reference numbers or keywords in the transaction description. When an incoming payment
meets these criteria, Odoo automatically maps it to the corresponding customer's account.
To create a partner mapping rule, go to the :guilabel:`Partner Mapping` tab and enter the
:guilabel:`Find Text in Label`, :guilabel:`Find Text in Notes`, and :guilabel:`Partner`.
.. image:: reconciliation_models/partner-mapping.png
:alt: defining partner mapping
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -64,9 +64,10 @@ If the :guilabel:`Generate Entries` field in the **Settings** is set to :guilabe
validation`, Odoo automatically generates the deferral entries when the invoice is validated. Click
the :guilabel:`Deferred Entries` smart button to see them.
One entry, dated on the same day as the invoice, moves the invoice amounts from the income account
to the deferred account. The other entries are deferral entries which, month after month, move
the invoice amounts from the deferred account to the income account to recognize the revenue.
One entry, dated on the same day as the invoice's accounting date, moves the invoice amounts from
the income account to the deferred account. The other entries are deferral entries which, month
after month, move the invoice amounts from the deferred account to the income account to recognize
the revenue.
.. example::
You can defer a January invoice of $1200 over 12 months by specifying a start date of 01/01/2023
@@ -124,8 +124,14 @@ If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module
Registration
------------
Go to :menuselection:`Accounting --> Configuration --> Settings`, tick the :guilabel:`Use PEPPOL
Invoicing` checkbox, and fill in the following information:
Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the
Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually
save**.
.. image:: electronic_invoicing/peppol-install.png
:alt: Peppol module installation
Fill in the following information:
- :guilabel:`Peppol EAS`. This is the Peppol Electronic Address Scheme and usually depends on your
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
@@ -145,14 +151,21 @@ previous provider.
.. image:: electronic_invoicing/peppol-settings.png
:alt: Configuration for peppol
Finally, click on :guilabel:`Validate registration`.
Finally, click :guilabel:`Validate registration`. If you want to explore or demo Peppol, you can
choose to register in :guilabel:`Demo` mode. Otherwise, select :guilabel:`Live`.
.. image:: electronic_invoicing/peppol-demo-mode.png
:alt: Peppol demo mode selection
.. note::
When testing Peppol, the system parameter `account_peppol.edi.mode` can be changed to `test`.
Then, the registration occurs on the test server.
Then, a radio button appears with the option to register on the test server.
.. image:: electronic_invoicing/peppol-system-parameter.png
:alt: Peppol test mode
:alt: Peppol test mode parameter
.. image:: electronic_invoicing/peppol-test-mode-settings.png
:alt: Peppol test mode selection
Now, you can request a verification code to be sent to you by clicking :guilabel:`Verify phone
number`.
@@ -205,6 +218,10 @@ is set to Valid.
While Odoo prefills both the EAS code and the Endpoint number based on the information available
for a contact, it is better to confirm these details directly with the contact.
It is possible to verify the Peppol participant status of several customers at once.
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view.
Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`.
Send invoices
-------------
@@ -216,6 +233,13 @@ invoice form. To queue multiple invoices, select them in the list view and click
.. image:: electronic_invoicing/peppol-send-print.png
:alt: Send peppol invoice
Posted invoices that can be sent via Peppol are marked as :guilabel:`Peppol Ready`.
To display them, use the :guilabel:`Peppol Ready` filter or access the Accounting dashboard and
click :guilabel:`Peppol ready invoices` on the corresponding sales journal.
.. image:: electronic_invoicing/peppol-ready-invoices.png
:alt: Filter Peppol ready invoices
Once the invoices are sent via Peppol, the status is changed to :guilabel:`Processing`. The
status is changed to `Done` after they have been successfully delivered to the contact's Access
Point.
@@ -228,6 +252,13 @@ Point.
it displayed by selecting it from the optional columns, accessible from the top right corner of
the Invoices list view.
A cron runs regularly to check the status of these invoices. It is possible to check the status
before the cron runs by clicking :guilabel:`Fetch Peppol invoice status` in the corresponding
sales journal on the Accounting dashboard.
.. image:: electronic_invoicing/peppol-fetch-message-status.png
:alt: Fetch invoice Peppol status
Receive vendor bills
--------------------
@@ -237,3 +268,10 @@ drafts.
.. image:: electronic_invoicing/peppol-receive-bills.png
:alt: peppol receive bills
If you want to retrieve incoming Peppol documents before the cron runs, you can do so from the
Accounting dashboard on the main Peppol purchase journal that you set up in the settings. Just click
:guilabel:`Fetch from Peppol`.
.. image:: electronic_invoicing/peppol-fetch-bills.png
:alt: Fetch bills from Peppol
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

@@ -2,146 +2,72 @@
Internal transfers
==================
In Odoo, internal money transfers can be made in a few clicks. You need at least either two bank
accounts, two cash journals, or one bank account and one cash journal.
Internal money transfers can be handled in Odoo. At least two bank accounts are needed to make
internal transfers.
.. seealso::
:doc:`How to add an additional bank account <../bank>`
Configuration
=============
An internal transfer account is automatically created on your database based on your company's
localization and depending on your countrys legislation. If needed, the default :guilabel:`Internal
transfer account` can be modified by going to :menuselection:`Accounting app --> Configuration -->
Settings` and then under the :guilabel:`Default Accounts` section.
.. note::
At least two bank accounts are needed to make internal transfers. Refer to
:doc:`Bank and cash accounts section <../bank>` to see how to add an additional bank
account to your database.
localization and depending on your countrys legislation. To modify the default :guilabel:`Internal
transfer account`, go to :menuselection:`Accounting --> Configuration --> Settings` and scroll down
to the :guilabel:`Default Accounts` section.
Register an internal transfer from one bank to another
======================================================
Let's say you have two bank accounts registered on your database and you want to transfer 1,000 USD
from Bank A to Bank B.
If you want to transfer money from one bank to another, access the Accounting Dashboard, click the
drop-down selection button (:guilabel:`⋮`) on the bank from which you want to make the transfer,
then click :guilabel:`Payments`. Select or create a payment, tick the :guilabel:`Internal Transfer`
checkbox, and select a :guilabel:`Destination Journal` before you :guilabel:`Confirm` the internal
transfer.
Log an internal transfer
------------------------
The money is now booked in the transfer account and another payment is automatically created in the
destination journal.
From the Accounting Dashboard, click on the drop-down selection button (:guilabel:`⋮`) on one of
your banks. In the :guilabel:`New` column click on :guilabel:`Internal Transfer` and enter the
information related to the transfer.
.. example::
.. image:: internal_transfers/internal_transfer.png
:align: center
:alt: Fill in the information related to your internal transfer
- Bank journal (Bank A)
.. note::
Fill in the :guilabel:`Memo` field for automatic reconciliation.
.. list-table::
:header-rows: 1
:stub-columns: 1
:guilabel:`Save` and :guilabel:`Confirm` to register your internal transfer. The money is now booked
in the transfer account and another payment is **automatically** created in the destination journal
(Bank B).
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Payments account
-
- $1,000
* - **Internal transfer account**
- **$1,000**
-
Bank journal (Bank A)
~~~~~~~~~~~~~~~~~~~~~
- Bank journal (Bank B)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Payments account
-
- $1,000
* - **Internal transfer account**
- **$1,000**
-
.. list-table::
:header-rows: 1
:stub-columns: 1
Automated booking - Bank journal (BANK B)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Receipts account
- $1,000
-
* - **Internal transfer account**
-
- **$1,000**
.. list-table::
:header-rows: 1
:stub-columns: 1
There is **one outstanding payment** and **one outstanding receipt** pending in your two bank
account journals because the bank statement confirming the sending and receiving of the money
has not been booked yet.
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Receipts account
- $1,000
-
* - **Internal transfer account**
-
- **$1,000**
.. note::
There are one outstanding payment and one outstanding receipt pending in your two bank account
journals, because the bank statement confirming the sending and receiving of the money has not
been booked yet.
.. image:: internal_transfers/outstanding-payments-receipts.png
:align: center
:alt: Outstanding Payments/Receipts pending bank statement booking
.. _interbank/import-and-reconcile:
Manage and reconcile bank statements
------------------------------------
The next step is to book the bank statements to finalize the transaction by creating,
:doc:`importing <../bank/transactions>`, or :doc:`synchronizing <../bank/bank_synchronization>` your
:guilabel:`Transactions lines`. Fill in the :guilabel:`Ending balance` and click on the
:guilabel:`Reconcile` button.
.. image:: internal_transfers/transactions-line.png
:align: center
:alt: Transaction lines to be filled in prior to reconciliation
Once this is done, you can book and reconcile your bank statement lines as usual.
.. seealso::
:doc:`../bank/reconciliation`
In the next window, choose counterparts for the payment - in this example, the outstanding payment
account - then click :guilabel:`Validate`.
.. image:: internal_transfers/bank-reconciliation.png
:align: center
:alt: Reconcile your payment
Bank journal entry
~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Payment
- $1,000
-
* - Bank Account (BANK A)
-
- **$1,000**
The same steps must be repeated once you receive the bank statement related to Bank B. Book and
reconcile your bank statement lines.
Bank journal entry
~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Receipt
-
- $1,000
* - Bank Account (BANK B)
- **$1,000**
-
Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

@@ -20,11 +20,11 @@ method, making the payment process much easier.
Configuration
=============
Make sure your :ref:`Payment Providers are correctly configured <payment_providers/configuration>`.
Make sure your :doc:`payment providers are correctly configured <../../payment_providers>`.
.. note::
By default, ":doc:`Wire Transfer </applications/finance/payment_providers/wire_transfer>`" is the only
Payment Provider activated, but you still have to fill out the payment details.
By default, ":doc:`Wire Transfer </applications/finance/payment_providers/wire_transfer>`" is the
only payment provider activated, but you still have to fill out the payment details.
To activate the Invoice Online Payment, go to :menuselection:`Accounting --> Configuration -->
Settings --> Customer Payments`, enable **Invoice Online Payment**, and click on *Save*.
@@ -64,9 +64,10 @@ If the :guilabel:`Generate Entries` field is set to :guilabel:`On invoice/bill v
automatically generates the deferral entries when the bill is validated. Click on the
:guilabel:`Deferred Entries` smart button to see them.
One entry, dated on the same day as the bill, moves the bill amounts from the expense account to
the deferred account. The other entries are deferral entries which will, month after month, move the
bill amounts from the deferred account to the expense account to recognize the expense.
One entry, dated on the same day as the bill's accounting date, moves the bill amounts from the
expense account to the deferred account. The other entries are deferral entries which will, month
after month, move the bill amounts from the deferred account to the expense account to recognize
the expense.
.. example::
You can defer a January bill of $1200 over 12 months by specifying a start date of 01/01/2023
@@ -124,7 +124,7 @@ Categories`. Some categories already exist by default but do not have any rates.
This makes the vehicle mandatory while booking a vendor bill.
To link a disallowed expenses category with a specific account, go to :menuselection:`Accounting -->
Configuration --> Acounting: Chart of Accounts`. Find the account you want, and click on
Configuration --> Accounting: Chart of Accounts`. Find the account you want, and click on
:guilabel:`Setup`. Add the :guilabel:`Disallowed Expense category` in the :guilabel:`Disallowed
Expenses` field. From now, when an expense is created with this account, the disallowed expense is
calculated based on the rate mentioned in the :guilabel:`Disallowed Expense category`.
@@ -234,14 +234,171 @@ SODA
files can be imported into the journal you use to record salaries by going to your Accounting
**dashboard** and clicking :guilabel:`Upload` in the related journal card form.
Once your **SODA** files are imported, the entries are created automatically in your 'salary'
journal.
Once your **SODA** files are imported, the entries are created automatically in your salary journal.
.. image:: belgium/soda-import.png
:alt: Import SODA files
.. _belgium/einvoicing:
CodaBox
-------
**CodaBox** is a service that allows Belgian accounting firms to access their clients' bank
information and statements. Odoo provides a way to import such statements automatically.
.. note::
As an accounting firm, you must manage your clients on separate databases and configure them
individually to avoid mixing up their data.
Configuration
~~~~~~~~~~~~~
The configuration must be done on each client database. In the following
instructions, we will refer to your client's company as *Company* and to your
accounting firm as *Accounting Firm*.
You must first :ref:`install <general/install>` :guilabel:`CodaBox` to start.
.. important::
Make sure the company settings are correctly configured, i.e., the country is set to
:guilabel:`Belgium`, the :guilabel:`Tax ID` and :guilabel:`Accounting Firm` fields are filled,
as well as the :guilabel:`Tax ID` of the accounting firm (if not filled, the :guilabel:`Tax ID`
of the company is used).
Configure the journals
**********************
.. tabs::
.. tab:: For CODA files
#. :doc:`Create a new bank journal <../accounting/bank>`.
#. Set the right IBAN in the :guilabel:`Account Number` field.
#. Select :guilabel:`CodaBox synchronization` as the :guilabel:`Bank Feed`.
.. image:: belgium/codabox_configuration_coda_journal.png
:align: center
:alt: Configuration of a CODA journal.
.. tab:: For SODA files
#. Create a new miscellaneous journal.
#. Go to :menuselection:`Accounting --> Configuration --> Settings`, then go to the
:guilabel:`CodaBox` section.
#. Select the journal you just created in the SODA journal field.
.. image:: belgium/codabox_configuration_soda_setting.png
:align: center
:alt: Configuration of a SODA journal.
.. _belgium/codabox-configuration-connection:
Configure the connection
************************
#. Go to :menuselection:`Accounting --> Configuration --> Settings`, then go to the
:guilabel:`CodaBox` section.
#. Click on :guilabel:`Manage Connection` to open the connection wizard, which shows the
:guilabel:`Accounting Firm VAT` number and the :guilabel:`Company VAT` number that will be used
for the connection.
#. If this is your **first connection**, click on :guilabel:`Create connection`.
The wizard confirms that the connection has been created on **Odoo's side**. Follow the steps
to validate the connection on **CodaBox's side**, too.
If this is **not your first connection**, the :guilabel:`Accounting Firm Password` provided by
Odoo during the first connection will be requested to create a new connection.
.. note::
This :guilabel:`Accounting Firm Password` is unique to Odoo and must be stored securely
on your side.
The :guilabel:`Status` should have now switched to :guilabel:`Connected`.
Synchronization
~~~~~~~~~~~~~~~
Once the connection is established, Odoo can be synchronized with CodaBox.
.. tabs::
.. tab:: For CODA files
CODA files are automatically imported from CodaBox every 12 hours. You do
not have to do anything. However, if you wish, it can also be done manually,
by clicking on :guilabel:`Fetch from CodaBox` in the Accounting Dashboard.
.. tab:: For SODA files
SODA files are automatically imported from CodaBox once a day as a draft. You do not have to
do anything. However, if you wish, it can also be done manually by clicking on
:guilabel:`Fetch from CodaBox` in the Accounting Dashboard.
By default, if an account in the SODA file is not mapped to an account in Odoo, the Suspense
Account (499000) is used, and a note is added to the created journal entry.
.. note::
You can access the mapping between the SODA and Odoo accounts by going to
:menuselection:`Accounting --> Configuration --> Settings` and clicking on the
:guilabel:`Open SODA Mapping` button in the :guilabel:`CodaBox` section.
Potential issues
~~~~~~~~~~~~~~~~
* **CodaBox is not configured. Please check your configuration.**
Either the :guilabel:`Company VAT` or the :guilabel:`Accounting Firm VAT` is not set.
* **No connection exists with these accounting firms and company VAT numbers.**
**Please check your configuration.**
This can happen when checking the connection status, and the :guilabel:`Accounting Firm VAT` and
:guilabel:`Company VAT` combination still needs to be registered. This may happen if you have
changed the :guilabel:`Company VAT` after the connection was established. For security reasons,
you have to :ref:`recreate a connection <belgium/codabox-configuration-connection>`
for this :guilabel:`Company VAT`.
* **It seems that your CodaBox connection is not valid anymore. Please connect again.**
This can happen if you revoke Odoo's access to your CodaBox account or still need to complete
the configuration process. In this case, you must revoke the connection and create a new one.
* **The provided password is not valid for this accounting firm.**
**You must reuse the password you received from Odoo during your first connection.**
The password you provided is different from the one you received from Odoo during your first
connection. You must use the password you received from Odoo during your first connection to
create a new connection for this accounting firm. If you have lost your password, you must first
revoke the Odoo connection on CodaBox's side (i.e., on your myCodaBox portal). Then, you can
revoke the connection on Odoo's side and
:ref:`create a new one <belgium/codabox-configuration-connection>`.
* **It seems that the company or accounting firm VAT number you provided is not valid.**
**Please check your configuration.**
Either the :guilabel:`Company VAT` or the :guilabel:`Accounting Firm VAT` is not in a valid
Belgian format.
* **It seems that the accounting firm VAT number you provided does not exist in CodaBox.**
**Please check your configuration.**
The :guilabel:`Accounting Firm VAT` number you provided is not registered in CodaBox.
You may not have a valid CodaBox license linked to this VAT number.
* **It seems you have already created a connection to CodaBox with this accounting firm.**
**To create a new connection, you must first revoke the old one on myCodaBox portal.**
You must go to your myCodaBox portal and revoke Odoo's access to your CodaBox account.
Then, you can :ref:`create a new connection <belgium/codabox-configuration-connection>`
on Odoo's side.
.. tip::
To revoke the connection between Odoo and CodaBox, go to
:menuselection:`Accounting --> Configuration --> Settings`, scroll down to the
:guilabel:`CodaBox` section, click on :guilabel:`Manage Connection`, then click on
:guilabel:`Revoke`.
Electronic invoicing
====================
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -164,6 +164,48 @@ Cancel`.
the NIC e-Invoice portal. You can click :guilabel:`Process now` if you want to process the
invoice immediately.
.. _india/e-invoice-negative-lines:
Management of negative lines in e-Invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Negative lines are typically used to represent discounts or adjustments associated with specific
products or global discounts. The government portal prohibits the submission of data with negative
lines, which means they need to be converted based on the HSN code and GST rate. This is done
automatically by Odoo.
.. example::
Consider the following example:
+---------------------------------------------------------------------------------------------------+
| **Product Details** |
+=======================+==============+==================+==============+==============+===========+
| **Product Name** | **HSN Code** | **Tax Excluded** | **Quantity** | **GST Rate** | **Total** |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
| Product A | 123456 | 1,000 | 1 | 18% | 1,180 |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
| Product B | 239345 | 1,500 | 2 | 5% | 3,150 |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
| Discount on Product A | 123456 | -100 | 1 | 18% | -118 |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
Here's the transformed representation:
+-------------------------------------------------------------------------------------------------------------+
| **Product Details** |
+==================+==============+==================+==============+==============+==============+===========+
| **Product Name** | **HSN Code** | **Tax Excluded** | **Quantity** | **Discount** | **GST Rate** | **Total** |
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
| Product A | 123456 | 1,000 | 1 | 100 | 18% | 1,062 |
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
| Product B | 239345 | 1,500 | 2 | 0 | 5% | 3,150 |
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
In this conversion, negative lines have been transformed into positive discounts, maintaining
accurate calculations based on the HSN Code and GST rate. This ensures a more straightforward and
standardized representation in the E-invoice records.
.. _india/verify-e-invoice:
GST e-Invoice verification
@@ -126,3 +126,59 @@ Correct an invoice that has been posted but not downloaded yet: Reset e-Faktur
.. image:: indonesia/indonesia-e-faktur-reset.png
:align: center
.. _localization_indonesia/qris-qr:
QRIS QR code on invoices
========================
`QRIS <https://qris.online/homepage/>`_ is a digital payment system that allows customers to make
payments by scanning the QR code from their preferred e-wallet.
.. important::
According to the `QRIS API documentation <https://qris.online/api-doc/create-invoice.php>`_,
QRIS expires after 30 minutes. Due to this restriction, the QR code is not included in reports
sent to customers and is only available on the customer portal.
Activate QR codes
-----------------
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
Payments` section, activate the :guilabel:`QR Codes` feature.
QRIS bank account configuration
-------------------------------
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
which you want to activate QRIS. Set the :guilabel:`QRIS API Key` and :guilabel:`QRIS Merchant ID`
based on the information provided by QRIS.
.. important::
The account holder's country must be set to `Indonesia` on its contact form.
.. image:: indonesia/qris-setup.png
:alt: QRIS bank account configuration
.. seealso::
:doc:`../accounting/bank`
Bank journal configuration
--------------------------
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
.. image:: indonesia/journal-bank-config.png
:alt: Bank journal configuration
Issue invoices with QRIS QR codes
---------------------------------
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
QR-code` option to `QRIS`.
.. image:: indonesia/invoice-qris.png
:alt: Select QRIS QR-code option
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
generate the QRIS QR code.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@@ -2,6 +2,11 @@
Peru
====
.. |SUNAT| replace:: :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`
.. |GRE| replace:: :abbr:`GRE (Guía de Remisión Electrónica)`
.. |RUS| replace:: :abbr:`RUS (Régimen Único Simplificado)`
.. |EDI| replace:: :abbr:`EDI (Electronic Data Interchange)`
Introduction
============
@@ -78,6 +83,8 @@ The chart of accounts for Peru is based on the most updated version of the :abbr
Contable General Empresarial)`, which is grouped in several categories and is compatible with NIIF
accounting.
.. _peru/accounting-settings:
Accounting Settings
-------------------
@@ -239,6 +246,8 @@ directly to its services and get the currency rate either automatically or manua
Please refer to the next section in our documentation for more information about
:doc:`multicurrencies <../accounting/get_started/multi_currency>`.
.. _peru/master_data:
Configure Master data
---------------------
@@ -588,3 +597,276 @@ As part of the Peruvian localization, besides creating credit notes from an exis
you can also create debit Notes. For this just use the button “Add Debit Note”.
By default the Debit Note is set in the document type.
.. _peru/edg:
Electronic delivery guide 2.0
-----------------------------
The *Guía de Remisión Electrónica* (GRE) is an electronic document generated by the shipper to
support the transportation or transfer of goods from one place to another, such as a warehouse or
establishment. In Odoo, there are several configuration steps needed before you can successfully use
this feature.
The use of the *guía de remisión electrónica* electronic document is mandatory and required by
|SUNAT| for taxpayers who need to transfer their products, except those under the *Single Simplified
Regime* (régimen único simplificado or RUS).
Delivery guide types
~~~~~~~~~~~~~~~~~~~~
Sender
******
The *Sender* delivery guide type is issued when a sale is made, a service is rendered (including
processing), goods are assigned for use, or goods are transferred between premises of the same
company and others.
This delivery guide is issued by the owner of the goods (i.e., the sender) at the beginning of the
shipment. The sender delivery guide is supported in Odoo.
.. seealso::
`SUNAT guía de remisión <https://www.gob.pe/7899-guia-de-remision>`_
Carrier
*******
The *Carrier* delivery guide type justifies the transportation service the driver (or carrier)
performs.
This delivery guide is issued by the carrier and must be issued to each shipper when the shipment
goes through public transport.
.. important::
The carrier delivery guide is **not** supported in Odoo.
.. seealso::
`SUNAT guía de remisión transportista
<https://tefacturo.pe/blog/sunat/guia-de-remision-electronica/guia-de-remision-transportista/>`_
Transportation types
~~~~~~~~~~~~~~~~~~~~
Private
*******
The *Private* transportation type option is used when the owner transfers goods using their own
vehicles. In this case, a sender's delivery guide must be issued.
Public
******
The *Public* transportation type option is used when an external carrier moves the goods. In
this case, two delivery guides must be issued: the sender's delivery guide and the carrier's
delivery guide.
Direct submission to SUNAT
~~~~~~~~~~~~~~~~~~~~~~~~~~
The creation of the |GRE| delivery guide in Odoo **must** be sent directly to the |SUNAT|,
regardless of the electronic document provider: IAP, Digiflow, or |SUNAT|.
Required information
~~~~~~~~~~~~~~~~~~~~
Version 2.0 of the electronic delivery guide requires additional information on the general
configuration, vehicles, contacts, and products. In the general configuration, it is necessary to
add new credentials that you can retrieve from the |SUNAT| portal.
Cancellations
~~~~~~~~~~~~~
**Both** the sender and the carrier can cancel the electronic waybill as long as the following
conditions are met:
- The shipment has not been initiated.
- If the shipment has been initiated, the receiver **must** be changed before reaching the final
destination.
.. important::
The |SUNAT| no longer uses the term "Anula", but now uses the term "Dar de baja" for
cancellations.
Testing
~~~~~~~
The |SUNAT| does not support a test environment. This means that any delivery guides that were
generated by mistake **will** be sent to the |SUNAT|.
If, by mistake, the waybill was created in this environment, it is necessary to delete it from the
|SUNAT| portal.
Configuration
~~~~~~~~~~~~~
.. important::
- Electronic sender's |GRE| is currently the only supported type of waybill in Odoo.
- The delivery guide is dependent on the Odoo *Inventory* app, the :guilabel:`l10n_pe_edi` and
:guilabel:`l10n_pe` modules.
- A second user **must** be added for the creation of electronic documents.
After following the steps to configure the :ref:`electronic invoicing <peru/accounting-settings>`
and the :ref:`master data <peru/master_data>`, :ref:`install <general/install>` the
:guilabel:`Peruvian - Electronic Delivery Note 2.0` module (`l10n_pe_edi_stock_20`).
Next, you need to retrieve the *client ID* and *client secret* from |SUNAT|. To do so, follow the
`manual de servicios web plataforma nueva GRE
<https://cpe.sunat.gob.pe/sites/default/files/inline-files/Manual_Servicios_GRE.pdf>`_.
.. note::
In the |SUNAT| portal, it is important to have the correct access rights enabled, as they may
differ from the user set for electronic invoicing.
These credentials should be used to configure the delivery guide general settings from
:menuselection:`Accounting --> Configuration --> Settings --> Peruvian Electronic Invoicing`.
.. image:: peru/gre-fields-example.png
:alt: Example for the SUNAT Delivery Guide API section configuration.
.. note::
It is required to follow the format `RUC + UsuarioSol` (e.g., `20557912879SOLUSER`) for the
:guilabel:`Guide SOL User` field, depending on the user selected when generating the |GRE| API
credentials in the |SUNAT| portal.
Operator
********
The *operator* is the vehicle's driver in cases where the delivery guide is through *private*
transport.
To create a new operator, navigate to :menuselection:`Contacts --> Create` and fill out the contact
information.
First, select :guilabel:`Individual` as the :guilabel:`Company Type`. Then, add the
:guilabel:`Operator License` in the :guilabel:`Accounting` tab of the contact form.
For the customer address, make sure the following fields are complete:
- :guilabel:`District`
- :guilabel:`Tax ID` (:guilabel:`DNI`/:guilabel:`RUC`)
- :guilabel:`Tax ID Number`
.. image:: peru/operator-configuration.png
:alt: Individual type operator configurations in the Contact form.
Carrier
*******
The *carrier* is used when the delivery guide is through *public* transport.
To create a new carrier, navigate to :menuselection:`Contacts --> Create` and fill out the contact
information.
First, select :guilabel:`Company` as the :guilabel:`Company Type`. Then, add the :guilabel:`MTC
Registration Number`, :guilabel:`Authorization Issuing Entity`, and the :guilabel:`Authorization
Number`.
For the company address, make sure the following fields are complete:
- :guilabel:`District`
- :guilabel:`Tax ID` (:guilabel:`DNI`/:guilabel:`RUC`)
- :guilabel:`Tax ID Number`
.. image:: peru/company-operator-configuration.png
:alt: Company type operator configurations in the Contact form.
Vehicles
********
To configure the available vehicles, navigate to :menuselection:`Inventory --> Configuration -->
Vehicles` and fill in the vehicle form with the information needed for the vehicle:
- :guilabel:`Vehicle Name`
- :guilabel:`License Plate`
- :guilabel:`Is M1 or L?`
- :guilabel:`Special Authorization Issuing Entity`
- :guilabel:`Authorization Number`
- :guilabel:`Default Operator`
- :guilabel:`Company`
.. important::
It is important to check the :guilabel:`Is M1 or L?` checkbox if the vehicle has fewer than four
wheels or fewer than eight seats.
.. image:: peru/vehicle-not-m1-or-l-pe.png
:alt: Vehicle not selected as an M1 or L type with extra fields shown.
Products
********
To configure the available products, navigate to :menuselection:`Inventory --> Products` and open
the product to be configured.
Make sure that the applicable information in the product form is fully configured. The
:guilabel:`Partida Arancelaria` (Tariff Item) field needs to be completed.
Generating a GRE
~~~~~~~~~~~~~~~~
Once the delivery from inventory is created during the sales workflow, make sure you complete the
|GRE| fields on the top-right section of the transfer form for the fields:
- :guilabel:`Transport Type`
- :guilabel:`Reason for Transfer`
- :guilabel:`Departure start date`
It is also required to complete the :guilabel:`Vehicle` and :guilabel:`Operator` fields under the
:guilabel:`Guia de Remision PE` tab.
The delivery transfer has to be marked as *Done* for the :guilabel:`Generar Guia de Remision` button
to appear on the left menu of the transfer form.
.. image:: peru/generate-gre-transferview.png
:alt: Generar Guia de Remision button on a transfer form in the Done stage.
Once the transfer form is correctly validated by |SUNAT|, the generated XML file becomes available
in the chatter. You can now print the delivery slip that shows the transfer details and the QR
code validated by |SUNAT|.
.. image:: peru/gre-delivery-slip.png
:alt: Transfer details and QR code on generated delivery slip.
Common errors
~~~~~~~~~~~~~
- `Diferente prefijo para productos (T001 en algunos, T002 en otros)`
At the moment, Odoo does not support the automation of prefixes for products. This can be done
manually for each product output. This can also be done for non-storable products. However, keep
in mind that there will be no traceability.
- `2325 - GrossWeightMeasure - El dato no cumple con el formato establecido "Hace falta el campo"
"Peso"" en el producto`
This error occurs when the weight on the product is set as `0.00`. To fix this, you need to cancel
the waybill and recreate it. Make sure that you fix the weight on the product before creating the
new waybill, or it will result in the same error.
- `JSONDecodeError: Expecting value: line 1 column 1 (char 0) when creating a Delivery Guide`
This error is typically generated due to SOL user issues. Verify the user's connection with the
|SUNAT|; the SOL user must be established with the company RUT + user ID. For example
`2012188549JOHNSMITH`.
- `El número de documento relacionado al traslado de mercancía no cumple con el formato establecido:
error: documento relacionado`
The *Related Document Type* and *Related Document Number* fields only apply to invoices and
receipts.
- `400 Client error: Bad Request for URL`
This error is not solvable from Odoo; it is advised you reach out to the |SUNAT| and verify the
user. It may be necessary to create a new user.
- `Invalid content was found starting with element 'cac:BuyerCustomerParty'`
This error occurs when the transfer reason is set as *other*. Please select another option.
Following to the official documentation of the |SUNAT|'s waybill guide, the transfer reasons *03
(sale with shipment to third party)* or *12 (others)* does not work in Odoo, since you should not
have an empty or blank customer.
- `Duda cliente: consumo de créditos IAP al usar GRE 2.0`
For live clients using IAP, no credit is consumed (in theory) because it does not go through the
OSE, i.e., these documents are directly sent to the |SUNAT|.
- `Errores con formato credenciales GRE 2.0 (traceback error)`
Odoo currently throws an error with a traceback instead of a message that the credentials are not
correctly configured in the database. If this occurs on your database, please verify your
credentials.
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -2,34 +2,164 @@
Spain
=====
Spanish chart of accounts
=========================
Configuration
=============
Several Spanish charts of accounts are available by default in Odoo:
Install the 🇪🇸 **Spanish** :doc:`fiscal localization package <../fiscal_localizations>` to get all
the default accounting features of the Spanish localization.
- PGCE PYMEs 2008
- PGCE Completo 2008
- PGCE Entitades
Three **Spanish** localizations exist, each with its own pre-configured **PGCE** charts of accounts:
To choose the one you want, go to :menuselection:`Accounting --> Configuration --> Settings`,
then select a package in the :guilabel:`Fiscal localization` section.
- Spain - SMEs (2008);
- Spain - Complete (2008);
- Spain - Non-profit entities (2008).
.. tip::
When you create a new Odoo Online database, the PGCE PYMEs 2008 is installed by default.
To select the one to use, go to :menuselection:`Accounting --> Configuration --> Settings` and
select a package in the :guilabel:`Fiscal Localization` section.
.. warning::
You can only change the accounting package as long as you have not created any accounting entry.
Spanish accounting reports
==========================
Chart of accounts
=================
If the Spanish accounting localization is installed, you have access to accounting reports specific
to Spain:
You can reach the **Chart of Accounts** by going to :menuselection:`Accounting --> Configuration -->
Accounting: Chart of Accounts`.
- Balance Sheet
- Tax Report (Modelo 111)
- Tax Report (Modelo 115)
- Tax Report (Modelo 303)
- Tax Report (Modelo 347)
- Tax Report (Modelo 349)
- Tax Report (Modelo 390)
.. tip::
When you create a new Odoo Online database, **Spain - SMEs (2008)** is installed by default.
Taxes
=====
Default Spain-specific taxes are created automatically when the
:guilabel:`Spanish - Accounting (PGCE 2008) (l10n_es)` module is installed, and tax reports are
available when installing the module :guilabel:`Spain - Accounting (PGCE 2008) (l10n_es_reports)`.
Each tax impacts the Spain-specific **tax reports (Modelo)**, available by going to
:menuselection:`Accounting --> Reporting --> Statements Reports: Tax Report`.
Reports
=======
Here is the list of Spanish-specific statement reports available:
- Balance Sheet;
- Profit & Loss;
- EC Sales List;
- Tax Report (Modelo 111);
- Tax Report (Modelo 115);
- Tax Report (Modelo 303);
- Tax Report (Modelo 347);
- Tax Report (Modelo 349);
- Tax Report (Modelo 390).
You can access Spain-specific tax reports by clicking on the **book** icon when on a report and
selecting its Spain-specific version: :guilabel:`(ES)`.
.. image:: spain/modelo-reports.png
:alt: Spain-specific tax reports.
TicketBAI
=========
`Ticket BAI <https://www.gipuzkoa.eus/es/web/ogasuna/ticketbai>`_ or **TBAI** is an e-Invoicing
system used by the Basque government and its three provincial councils (Álava, Biscay, and
Gipuzkoa).
Odoo supports the **TicketBAI (TBAI)** electronic invoicing format for all three regions of the
**Basque Country**. To enable **TicketBAI**, set your company's :guilabel:`Country` and
:guilabel:`Tax ID` under :menuselection:`Settings --> General Settings` in the :guilabel:`Companies`
section.
Then, :ref:`install <general/install>` the module :guilabel:`Spain -TicketBAI (l10n_es_edi_TBAI)`,
go to :menuselection:`Accounting --> Configuration --> Settings`, and select a **region** in the
:guilabel:`Spain Localization` section's :guilabel:`Tax Agency for TBAI` field.
Once a region is selected, click :guilabel:`Manage certificates (SII/TicketBAI)`, then click
:guilabel:`New`, upload the certificate, and enter the password provided by the tax agency.
.. warning::
If you are testing certificates, enable :guilabel:`Test Mode` in the
:guilabel:`Spain Localization` section, which can be found under :guilabel:`Accounting` in
the **Settings** app.
Use case
--------
Once an invoice has been :doc:`created <../../finance/accounting/customer_invoices>` and confirmed,
a TicketBAI **banner** appears at the top.
.. image:: spain/ticketbai-invoice.png
:alt: TicketBAI banner at the top of the invoice once sent.
Odoo sends invoices through TicketBAI automatically every **24 hours**. However, you can click
:guilabel:`Process now` to send the invoice immediately.
When the invoice is **sent**, the status of the field :guilabel:`Electronic Invoice` changes to
:guilabel:`Sent`, and the XML file can be found in the **chatter**. Under the
:guilabel:`EDI Documents` tab, you can see the traceability of other generated documents related to
the invoice (e.g., if the invoice should also be sent through the **SII**, it will appear here).
.. note::
The TBAI **QR code** is displayed on the invoice PDF.
.. image:: spain/qr-code.png
:alt: QR code of the TicketBAI on the invoice.
FACe
====
`FACe <https://face.gob.es/en>`_ is the e-Invoicing platform used by the public administrations in
Spain to send electronic invoices.
Before configuring the :abbr:`FACe (General Entrance for Electronic Invoices)` system,
:ref:`install <general/install>` the :guilabel:`Spain - Facturae EDI (l10n_es_edi_facturae)` module
and other **Facturae EDI**-related modules.
To enable FACe, go to :menuselection:`Settings --> General Settings`, click
:guilabel:`Update Info` in the :guilabel:`Companies` section, then click :guilabel:`Update Info` and
set the :guilabel:`Country` and :guilabel:`Tax ID` of your company. Next, add the
:guilabel:`Facturae signature certificate` by clicking :guilabel:`Add a line`, uploading the
certificate provided by the tax agency, and entering the provided password.
Use case
--------
Once you have :doc:`created <../../finance/accounting/customer_invoices>` an invoice and confirmed
it, click :guilabel:`Send & Print`. Make sure :guilabel:`Generate Facturae edi file` is enabled, and
click :guilabel:`Send & Print` again. Once the invoice is sent, the generated XML file is available
in the **chatter**.
.. warning::
The file is **NOT** automatically sent. You have to send it yourself manually.
.. tip::
You can send **FACe** XML files in batch through `the governmental portal <https://www.facturae.gob.es/formato/Paginas/descarga-aplicacion-escritorio.aspx>`_.
Administrative centers
----------------------
In order for **FACe** to work with **administrative centers**, the invoice *must* include specific
data about the centers.
.. note::
Make sure to have the :guilabel:`Spain - Facturae EDI - Administrative Centers Patch
(l10n_es_edi_facturae_adm_centers)` module :ref:`installed <general/install>`.
To add **administrative centers**, create a new **contact** to add to the **partner** company.
Select :guilabel:`FACe Center` as the **type**, assign one or more **role(s)** to that contact, and
:guilabel:`Save`. The **three** roles usually required are:
- Órgano gestor: :guilabel:`Receptor` (Receiver);
- Unidad tramitadora: :guilabel:`Pagador` (Payer);
- Oficina contable: :guilabel:`Fiscal` (Fiscal).
.. image:: spain/administrative-center.png
:alt: Administrative center contact form for public entities.
.. tip::
- If administrative centers need different :guilabel:`Codes` per role, you *must* create
different centers for each role.
- When an electronic invoice is created using a partner with **administrative centers**, *all*
administrative centers are included in the invoice.
- You can add one contact with multiple roles or multiple contacts with a different role each.
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -90,9 +90,6 @@ Go to :menuselection:`Accounting --> Reporting --> Tax report` and click on
:guilabel:`Connect to HMRC`. Enter your company information on the HMRC platform. You only need to
do it once.
.. Note::
When entering your VAT number, do not add the GB country code. Only the 9 digits are required.
Periodic submission to HMRC
~~~~~~~~~~~~~~~~~~~~~~~~~~~
+238 -214
View File
@@ -1,8 +1,8 @@
:show-content:
=================================================
Payment providers (credit cards, online payments)
=================================================
===============
Online payments
===============
.. toctree::
:titlesonly:
@@ -23,35 +23,33 @@ Payment providers (credit cards, online payments)
payment_providers/razorpay
payment_providers/sips
payment_providers/stripe
payment_providers/xendit
Odoo embeds several **payment providers** that allow your customers to pay on their *Customer
Portals* or your *eCommerce website*. They can pay sales orders, invoices, or subscriptions with
recurring payments with their favorite payment methods such as **Credit Cards**.
Odoo embeds several **payment providers** that allow your customers to pay online, on their
*customer portals*, or on your *eCommerce website*. They can pay sales orders, invoices, or
subscriptions with recurring payments using their favorite payment methods, such as
**credit cards**.
Offering several payment methods increases the chances of getting paid in time, or even immediately,
as you make it more convenient for your customers to pay with the payment method they prefer and
trust.
Each payment provider is linked to a list of supported :ref:`payment methods
<payment_providers/payment_methods>` that can be (de)activated based on your needs.
.. image:: payment_providers/online-payment.png
:align: center
:alt: Pay online in the customer portal and select which payment provider to use.
:alt: Online payment form
.. note::
Odoo apps delegate the handling of sensitive information to the certified payment provider so
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
or Odoo databases hosted elsewhere. Instead, Odoo apps use a unique reference number to the data
stored safely in the payment providers' systems.
that you don't ever have to worry about PCI compliance. 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 for the data stored safely in the payment providers' systems.
.. _payment_providers/supported_providers:
Supported payment providers
===========================
From an accounting perspective, we can distinguish two types of payment providers: the payment
providers 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.
To access the supported payment providers, go to :menuselection:`Accounting --> Configuration -->
Payment Providers`, :menuselection:`Website --> Configuration --> Payment Providers`, or
:menuselection:`Sales --> Configuration --> Payment Providers`.
.. _payment_providers/online_providers:
@@ -65,10 +63,10 @@ Online payment providers
* -
- Payment flow from
- :ref:`Tokenization <payment_providers/features/tokenization>`
- :ref:`Manual capture <payment_providers/features/manual_capture>`
- :ref:`Refunds <payment_providers/features/refund>`
- :ref:`Express checkout <payment_providers/features/express_checkout>`
- :ref:`Tokenization <payment_providers/tokenization>`
- :ref:`Manual capture <payment_providers/manual_capture>`
- :ref:`Refunds <payment_providers/refunds>`
- :ref:`Express checkout <payment_providers/express_checkout>`
* - :doc:`Adyen <payment_providers/adyen>`
- Odoo
- |V|
@@ -76,13 +74,13 @@ Online payment providers
- Full and partial
-
* - :doc:`Amazon Payment Services <payment_providers/amazon_payment_services>`
- The provider website
- The provider's website
-
-
-
-
* - :doc:`AsiaPay <payment_providers/asiapay>`
- The provider website
- The provider's website
-
-
-
@@ -94,31 +92,31 @@ Online payment providers
- Full only
-
* - :doc:`Buckaroo <payment_providers/buckaroo>`
- The provider website
- The provider's website
-
-
-
-
* - :doc:`Flutterwave <payment_providers/flutterwave>`
- The provider website
- The provider's website
- |V|
-
-
-
* - :doc:`Mercado Pago <payment_providers/mercado_pago>`
- The provider website
- The provider's website
-
-
-
-
* - :doc:`Mollie <payment_providers/mollie>`
- The provider website
- The provider's website
-
-
-
-
* - :doc:`PayPal <payment_providers/paypal>`
- The provider website
- The provider's website
-
-
-
@@ -130,7 +128,7 @@ Online payment providers
- Full and partial
-
* - :doc:`SIPS <payment_providers/sips>`
- The provider website
- The provider's website
-
-
-
@@ -141,21 +139,29 @@ Online payment providers
- Full only
- Full and partial
- |V|
* - :doc:`Xendit <payment_providers/xendit>`
- The provider's website
-
-
-
-
.. |V| replace::
.. note::
Some of these online payment providers can also be added as :doc:`bank accounts
<../finance/accounting/bank>`, but this is **not** the same process as adding
them as payment providers. Payment providers allow customers to pay online, and bank accounts are
added and configured on your Accounting app to do a bank reconciliation, which is an accounting
control process.
- Each provider has its own specific configuration flow, depending on which feature is
available.
- Some of these online payment providers can also be added as :doc:`bank accounts
<../finance/accounting/bank>`, but this is **not** the same process as adding them as payment
providers. Payment providers allow customers to pay online, and bank accounts are added and
configured in the Accounting app to do a :doc:`bank reconciliation
<accounting/bank/reconciliation>`.
.. tip::
In addition to the regular payment providers that integrate with an API such as Stripe, PayPal,
In addition to the regular payment providers that integrate with an API, such as Stripe, PayPal,
or Adyen, Odoo bundles the :doc:`Demo payment provider <payment_providers/demo>`. This payment
provider allows you to make demo payments to test business flows involving online payments. No
credentials are required as the demo payments are fake.
provider allows you to test business flows involving online payments. No credentials are required
as the demo payments are dummy payments.
.. _payment_providers/bank_payments:
@@ -164,251 +170,267 @@ Bank payments
- | :doc:`Wire Transfer <payment_providers/wire_transfer>`
| When selected, Odoo displays your payment information with a payment reference. You have to
approve the payment manually once you have received it on your bank account.
approve the payment manually once you have received it in your bank account.
- | :doc:`SEPA Direct Debit <../finance/accounting/payments/batch_sdd>`
| Your customers can make a bank transfer to register a SEPA Direct Debit mandate and get their
bank account charged directly.
.. _payment_providers/features:
.. _payment_providers/add_new:
Additional features
===================
Enable a payment provider
=========================
Some payment providers 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
To add a new payment provider and make its related payment methods available to your customers,
proceed as follows:
#. Go to the payment provider's website, create an account, and make sure you have the API
credentials requested for third-party use. These are necessary for Odoo to communicate with the
payment provider.
#. In Odoo, navigate to the :guilabel:`Payment providers` by going to :menuselection:`Accounting -->
Configuration --> Payment Providers`, :menuselection:`Website --> Configuration --> Payment
Providers`, or :menuselection:`Sales --> Configuration --> Payment Providers`.
#. Select the provider and configure the :guilabel:`Credentials` tab.
#. Set the :guilabel:`State` field to :guilabel:`Enabled`.
.. note::
- The fields available in the :guilabel:`Credentials` tab depend on the payment provider. Refer
to the :ref:`related documentation <payment_providers/supported_providers>` for more
information.
- Once you have enabled the payment provider, it is automatically published on your website.
If you wish to unpublish it, click the :guilabel:`Published` button. Customers cannot make
payments through an unpublished provider, but they can still manage
:dfn:`(delete and assign to a subscription)` their existing tokens linked to such a provider.
.. _payment_providers/test-mode:
Test mode
---------
If you wish to try the payment provider as a test, set the :guilabel:`State` field in the payment
provider form to :guilabel:`Test mode`, then enter your provider's test/sandbox credentials in the
:guilabel:`Credentials` tab.
.. note::
By default, the payment provider remains **unpublished** in test mode so that it's not visible to
visitors.
.. warning::
We recommend using the test mode on a duplicate or a test database to avoid potential issues
with your invoice numbering.
.. _payment_providers/payment_methods:
Payment methods
===============
Each payment provider is related to a list of supported payment methods; the methods listed in the
:guilabel:`Payment methods` field in the :guilabel:`Configuration` tab of the payment provider form
are the ones that have been activated. To activate or deactivate a payment method for a provider,
click :guilabel:`Enable Payment Methods`, then click the toggle button of the related method.
.. tip::
Payment methods are displayed on your website based on their sequence order. To reorder them,
click :guilabel:`Enable Payment Methods` in the payment provider form, then, in the
:guilabel:`Payment Methods` list, drag and drop the payment methods in the desired order.
Icons and brands
----------------
The icons displayed next to the payment method on your website are either the icons of the brands
activated for the payment method or, if there aren't any, the icons of the payment methods
themselves. To modify them, go to :menuselection:`Accounting --> Configuration --> Payment Methods`,
:menuselection:`Website --> Configuration --> Payment Methods` or :menuselection:`Sales -->
Configuration --> Payment Methods`, then click on the payment method.
To modify a payment method's icon, hover your mouse over the image in the upper-right corner of the
payment method's form and click the pencil icon (:guilabel:`✎`).
Select the :guilabel:`Brands` tab to view the brands that have been activated for the payment
method. The brands and their related icons are displayed based on their sequence order; to reorder
them, drag and drop them in the desired order. To modify a brand's icon, select the brand, then,
in the popup window that opens, hover the mouse over the image in the upper-right corner and click
the pencil icon (:guilabel:`✎`).
Advanced configuration
----------------------
To configure payment methods further, go to :menuselection:`Accounting --> Configuration --> Payment
Methods`, :menuselection:`Website --> Configuration --> Payment Methods` or :menuselection:`Sales
--> Configuration --> Payment Methods`. Click on the payment method, then activate the
:ref:`developer mode <developer-mode>`. Click the :guilabel:`Configuration` tab to adapt the
features.
.. _payment_providers/features/tokenization:
.. danger::
- Each payment method is preconfigured in a way that aligns with the payment providers'
behavior and their integration with Odoo. Any change to this configuration may result in errors
and should be tested on a duplicate or test database first.
- Modifications to the payment method's configuration only work to the extent of the method's
and provider's capabilities. For example, adding :ref:`countries
<payment_providers/currencies_countries>` for a payment method only supported in one country or
enabling :ref:`tokenization <payment_providers/tokenization>` for a method linked to a provider
that does not support it will not produce the intended results.
.. _payment_providers/tokenization:
Tokenization
------------
============
If your payment provider 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
without having to enter the card details again. This is particularly useful for the eCommerce
conversion rate and for subscriptions that use recurring payments.
:ref:`If the payment provider supports this feature <payment_providers/online_providers>`, customers
can save their payment method details for later. To enable this feature, go to the
:guilabel:`Configuration` tab of the selected payment provider and enable :guilabel:`Allow Saving
Payment Methods`.
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider
and by ticking the :guilabel:`Allow Saving Payment Methods` checkbox.
In this case, a **payment token** is created in Odoo to be used as a payment method for subsequent
payments without the customer having to enter their payment method details again. This is
particularly useful for the eCommerce conversion rate and subscriptions that use recurring payments.
.. note::
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 stored on the payment provider's server.
details directly. Instead, it creates a payment token that only references the card details
stored on the payment provider's server.
.. _payment_providers/features/manual_capture:
.. _payment_providers/manual_capture:
Manual capture
--------------
==============
If your payment provider 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
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
equivalent to a regular cancellation. Capturing payments manually can prove itself useful in many
situations:
:ref:`If the payment provider supports this feature <payment_providers/online_providers>`, you can
authorize and capture payments in two steps instead of one. To enable this feature, go to the
:guilabel:`Configuration` tab of the selected payment provider and enable :guilabel:`Capture Amount
Manually`.
- 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
process starts.
- Avoid potentially high processing fees for cancelled payments: payment providers will not charge
you for voiding an authorization.
- Hold a security deposit to return later, minus any deductions (e.g., after a damage).
When you authorize a payment, the funds are reserved on the customer's payment method but not
immediately charged. They are charged when you manually capture the payment later on. You can also
void the authorization to cancel it and release the reserved funds. Capturing payments manually is
helpful in many situations:
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider
and by ticking the :guilabel:`Capture Amount Manually` checkbox.
- 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
process starts.
- Avoid potentially high refund fees for refunded payments: payment providers will not charge you
for voiding an authorization.
- Hold a security deposit to return later, minus any deductions (e.g., in case of damages).
To capture the payment after it was authorized, go to the related sales order or invoice and click
on the :guilabel:`CAPTURE TRANSACTION` button. To release the funds, click on the :guilabel:`VOID
TRANSACTION` button.
If your provider supports partial capture, you can select to capture only a **partial amount** of
the full amount. The **remaining (uncaptured) amount** can either be voided or partially captured
again later.
the :guilabel:`Capture Transaction` button. To release the funds, click the :guilabel:`Void
Transaction` button.
.. note::
- Some payment providers 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
partial** in the :ref:`table above <payment_providers/online_providers>`. The providers that
only support capturing or voiding the full amount have the value **Full only**.
only support capturing or voiding the total amount have the value **Full only**.
- 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
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 providers, but some allow the manual capture
from their website interface.
.. _payment_providers/features/refund:
.. _payment_providers/refunds:
Refunds
-------
=======
If your payment provider 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
:guilabel:`REFUND` button.
not need to be enabled first. To refund a customer payment, navigate to it and click the
:guilabel:`Refund` button.
.. note::
- Some payment providers 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 providers have the value **Full and partial** in the
:ref:`table above <payment_providers/online_providers>`. The providers that only support
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
refunding the total amount have the value **Full only**.
- Odoo does not support this feature for all payment providers, but some allow to refund payments
from their website interface.
.. _payment_providers/features/express_checkout:
.. _payment_providers/express_checkout:
Express checkout
----------------
================
If your payment provider 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
of those buttons, customers go straight from the cart to the confirmation page, stopping by the
payment form of Google or Apple to validate the payment.
:ref:`If the payment provider supports this feature <payment_providers/online_providers>`, you can
allow customers to use the :guilabel:`Google Pay` and :guilabel:`Apple Pay` buttons and pay their
eCommerce orders in one click. When they use one of these buttons, customers go straight from the
cart to the confirmation page without filling out the contact form. They just have to validate the
payment on Google's or Apple's payment form.
Enable this feature by navigating to the :guilabel:`Configuration` tab from your payment provider
and by ticking the :guilabel:`Allow Express Checkout` checkbox.
To enable this feature, go to the :guilabel:`Configuration` tab of the selected payment provider and
enable :guilabel:`Allow Express Checkout`.
.. note::
All prices shown in the express checkout payment form are always taxes included.
All prices shown on the express checkout payment form always include taxes.
.. _payment_providers/configuration:
Availability
============
Configuration
=============
You can adapt the payment provider's availability by specifying the :guilabel:`Maximum amount`
allowed and modifying the :guilabel:`Currencies` and :guilabel:`Countries` in the
:guilabel:`Configuration` tab.
.. _payment_providers/currencies_countries:
Currencies and countries
------------------------
All payment providers have a different list of available currencies and countries. They serve as a
first filter during payment operations, i.e., the payment methods linked to the payment provider are
not available for selection if the customer's currency or country is not in the supported list. As
there might be errors, updates, and unknowns in the lists of available currencies and countries,
adding or removing a payment provider's supported currencies or countries is possible.
.. note::
Each provider has its specific configuration flow, depending on :ref:`which feature is available
<payment_providers/online_providers>`.
.. _payment_providers/add_new:
- :ref:`Payment methods <payment_providers/payment_methods>` also have their own list of
available currencies and countries that serves as another filter during payment operations.
- If the list of supported currencies or countries is empty, it means the list is too long to be
displayed, or Odoo does not have information on that payment provider. The payment provider
remains available, even though it is possible the payment will be refused at a later stage
should the country or currency not be supported.
Add a new payment provider
--------------------------
Maximum amount
--------------
To add a new payment provider and make it available to your customers, go to
:menuselection:`Accounting --> Configuration --> Payment Providers`, look for your payment provider,
install the related module, and activate it. To do so, open the payment provider and change its
state from *Disabled* to *Enabled*.
.. image:: payment_providers/activation.png
:align: center
:alt: Click on install, then on activate to make the payment provider available on Odoo.
.. warning::
We recommend using the *Test Mode* on a duplicated database or a test database. The Test Mode is
meant to be used with your test/sandbox credentials, but Odoo generates Sales Orders and Invoices
as usual. It isn't always possible to cancel an invoice, and this could create some issues with
your invoices numbering if you were to test your payment providers on your main database.
.. _payment_providers/credentials_tab:
Credentials tab
~~~~~~~~~~~~~~~
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 payment provider.
The form in this section is specific to the payment provider you are configuring. Please refer to
the related documentation for more information.
.. _payment_providers/configuration_tab:
Configuration tab
~~~~~~~~~~~~~~~~~
You can change the payment provider's front-end appearance by modifying its name under the
**Displayed as** field, and the supported credit card icons displayed under the **Supported Payment Methods**
field.
.. _payment_providers/currencies:
Currencies
**********
All payment providers have a different list of available currencies. They are preconfigured and
available in the :guilabel:`Configuration` tab. They serve as a first filter during payment
operations, i.e. the payment provider is not displayed as available for payment if the currency is
not in the supported list.
.. tip::
As there might be errors, updates, and unknowns in the lists of available currencies, it is
possible to add or remove currencies.
If the list of supported currencies is empty, it either means the list is too long to be displayed,
or Odoo does not have information on that payment provider. The payment provider remains available,
even though it is possible the payment will be refused at a later stage should the currency not be
supported. This field is required if the user needs to select a currency when setting up their
payment provider account.
.. _payment_providers/countries:
Countries
*********
Restrict the use of the payment provider to a selection of countries. Leave this field blank to make
the payment provider available in all countries.
Maximum Amount
**************
Restrict the maximum amount that can be paid with the selected provider. Leave this field to `0.00`
to make the payment provider available regardless of the payment amount.
You can restrict the :guilabel:`Maximum Amount` that can be paid with the selected provider. Leave
the field to `0.00` to make the payment provider available regardless of the payment amount.
.. important::
This feature is not intended to work on pages which allow the customer to update the payment
amount. For example, the **Donation** snippet of the Website app, and the **Checkout** page of
the **eCommerce** app when paid delivery methods are enabled.
This feature is not intended to work on pages that allow the customer to update the payment
amount, e.g., the **Donation** snippet and the **Checkout** page when paid :doc:`shipping methods
<../websites/ecommerce/checkout_payment_shipping/shipping>` are enabled.
.. _payment_providers/journal:
Payment journal
***************
===============
The **Payment journal** selected for your payment provider must be a *Bank* journal.
A :doc:`payment journal <accounting/bank>` must be defined for the payment provider to record the
payments on an **outstanding account**. By default, the :guilabel:`Bank` journal is added as the
payment journal for all payment providers. To modify it, go to the :guilabel:`Configuration` tab of
the selected payment provider and select another :guilabel:`Payment journal`.
.. _payment_providers/publish:
Publish on the website
----------------------
By default, payment providers 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
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
and registering new tokens.
Click on the :guilabel:`Publish` button located in the top right corner of the provider's form to
publish it on the website and make it available to your customers. Click on the
:guilabel:`Unpublish` button to unpublish it.
.. tip::
Payment providers are automatically published and unpublished when you respectively change their
state to `enabled` and `test`.
.. _payment_providers/accounting:
.. note::
- The payment journal must be a :guilabel:`Bank` journal.
- The same journal can be used for several payment providers.
- Payment journals must only be configured if the :doc:`Invoicing or Accounting app <accounting>`
is installed.
Accounting perspective
======================
----------------------
The **Bank Payments** that go directly to one of your bank accounts follow their usual
reconciliation workflows. However, payments recorded with **Online Payment Providers** require you
to consider how you want to record your payments' journal entries. We recommend you to ask your
accountant for advice.
From an accounting perspective, there are two types of online payment workflows: the payments that
are directly deposited into your bank account and follow the usual :doc:`reconciliation
<accounting/bank/reconciliation>` workflow, and those coming from third-party :ref:`online payment
providers <payment_providers/online_providers>` and require you to follow another accounting
workflow. For these payments, you need to consider how you want to record your payments' journal
entries. We recommend you ask your accountant for advice.
You need to select a *Payment Journal* on your provider configuration to record the payments,
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:
- 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.
By default, the :guilabel:`Bank Account` defined for the :ref:`payment journal
<payment_providers/journal>` is used, but you can also specify an :ref:`outstanding account
<bank/outstanding-accounts>` for each payment provider to separate the provider's payments from
other payments.
.. image:: payment_providers/bank_journal.png
:align: center
:alt: A bank journal in the "Incoming Payments Tab".
You can have the same bank account for the whole company, or for some journals only, or a single
payment method... What best suit your needs.
:alt: Define an outstanding account for a payment provider.
.. seealso::
- :doc:`payment_providers/wire_transfer`
@@ -425,4 +447,6 @@ payment method... What best suit your needs.
- :doc:`payment_providers/razorpay`
- :doc:`payment_providers/sips`
- :doc:`payment_providers/stripe`
- :doc:`payment_providers/xendit`
- :doc:`../websites/ecommerce/checkout_payment_shipping/payments`
- :doc:`accounting/bank`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@@ -141,7 +141,7 @@ Place a hold on a card
Adyen allows you to capture an amount manually instead of having an immediate capture.
To set it up, enable the **Capture Amount Manually** option on Odoo, as explained in the
:ref:`payment providers documentation <payment_providers/features/manual_capture>`.
:ref:`payment providers documentation <payment_providers/manual_capture>`.
Then, open your Adyen Merchant Account, go to :menuselection:`Account --> Settings`, and set the
**Capture Delay** to **manual**.
@@ -41,7 +41,7 @@ Place a hold on a card
~~~~~~~~~~~~~~~~~~~~~~
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_providers/manual_capture>`. If enabled, the funds are reserved for 30 days on the
customer's card, but not charged yet.
.. warning::
@@ -66,9 +66,6 @@ previously configured Authorize.Net payment provider on Odoo by going to :menuse
(:guilabel:`⛭`) and select :guilabel:`Duplicate`. Change the provider's name to differentiate both
versions (e.g., `Authorize.net - Banks`).
Open the :guilabel:`Configuration` tab, set the :guilabel:`Allow Payments From` field to
:guilabel:`Bank Account (USA only)`.
When ready, change the provider's :guilabel:`State` to :guilabel:`Enabled` for a regular account or
:guilabel:`Test Mode` for a sandbox account.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

@@ -2,132 +2,114 @@
Stripe
======
`Stripe <https://stripe.com/>`_ is a United States-based online payment solution provider, allowing
`Stripe <https://stripe.com/>`_ is a United States-based online payment solution provider allowing
businesses to accept **credit cards** and other payment methods.
Link your Stripe Account with Odoo
==================================
.. seealso::
- :ref:`payment_providers/add_new`
Create your Stripe account with Odoo
====================================
The method to acquire your credentials depends on your hosting type:
.. tabs::
.. group-tab:: Odoo Online
#. Go to the **eCommerce** or the **Sales** app and click on the *Activate Stripe* or the *Set
payments* button on the onboarding banner.
#. Fill in the requested information and submit the form.
#. Confirm your email address when Stripe sends you a confirmation email.
#. At the end of the process, you are redirected to Odoo. If you submitted all the requested
information, you are all set and your payment provider is enabled.
#. Your can continue to :ref:`stripe/local-payment-methods`.
.. tip::
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
credentials <stripe/api_keys>`, :ref:`generate a webhook <stripe/webhook>` and enable the
payment provider.
#. :ref:`Navigate to the payment provider Stripe <payment_providers/supported_providers>` and
click :guilabel:`Connect Stripe`.
#. Go through the setup process and confirm your email address when Stripe sends you a
confirmation email.
#. At the end of the process, click :guilabel:`Agree and submit`. If all requested information
has been submitted, you are then redirected to Odoo, and your payment provider is enabled.
.. group-tab:: Odoo.sh or On-premise
#. Go to the **eCommerce** or the **Sales** app and click on the *Activate Stripe* or the *Set
payments* button on the onboarding banner.
#. Fill in the requested information and submit the form.
#. Confirm your email address when Stripe sends you a confirmation email.
#. At the end of the process, you are redirected to the payment provider **Stripe** on Odoo.
#. :ref:`Navigate to the payment provider Stripe <payment_providers/supported_providers>` and
click :guilabel:`Connect Stripe`.
#. Go through the setup process and confirm your email address when Stripe sends you a
confirmation email.
#. At the end of the process, click :guilabel:`Agree and submit`; you are then redirected to
the payment provider **Stripe** in Odoo.
#. :ref:`Fill in your credentials <stripe/api_keys>`.
#. :ref:`Generate a webhook <stripe/webhook>`.
#. Enable the payment provider.
#. You are all set and can continue to :ref:`stripe/local-payment-methods`.
#. Set the :guilabel:`State` field to :guilabel:`Enabled`.
.. tip::
To connect your Stripe account after the onboarding is already completed, go to
:menuselection:`Accounting --> Configuration --> Payment Providers --> Stripe` and click on the
*Connect Stripe* button.
.. important::
If you are testing Stripe (in **test mode**), change the **State** to *Test Mode*. We recommend
doing this on a test Odoo database rather than on your main database.
- To use an existing Stripe account, :ref:`activate the Developer mode <developer-mode>` and
:ref:`enable Stripe manually <payment_providers/add_new>`. You can then :ref:`Fill in your
credentials <stripe/api_keys>`, :ref:`generate a webhook <stripe/webhook>`, and enable the
payment provider.
- You can also test Stripe using the :ref:`payment_providers/test-mode`. To do so, first,
`log into your Stripe dashboard <https://dashboard.stripe.com/dashboard>`_ and switch to the
**Test mode**. Then, in Odoo, :ref:`activate the Developer mode <developer-mode>`,
:ref:`navigate to the payment provider Stripe <payment_providers/supported_providers>`,
:ref:`fill in your API credentials <stripe/api_keys>` with the test keys, and set the
:guilabel:`State` field to :guilabel:`Test Mode`.
.. _stripe/api_keys:
Fill in your credentials
------------------------
In case your **API Credentials** are required to connect with your Stripe account, these are the
credentials that must be completed:
If your **API credentials** are required to connect with your Stripe account, proceed as follows:
- :ref:`Publishable Key <stripe/api_keys>`: The key solely used to identify the account with Stripe.
- :ref:`Secret Key <stripe/api_keys>`: The key to sign the merchant account with Stripe.
- :ref:`Webhook Signing Secret <stripe/webhook>`: When you enable your webhook on your Stripe
account, this signing secret must be set to authenticate the messages sent from Stripe to Odoo.
To retrieve the publishable and secret keys, follow this `link to your API keys
<https://dashboard.stripe.com/account/apikeys>`_, or log into your Stripe dashboard and go to
:menuselection:`Developers --> API Keys --> Standard Keys`.
#. Go to `the API keys page on Stripe <https://dashboard.stripe.com/account/apikeys>`_, or log into
your Stripe dashboard and go to :menuselection:`Developers --> API Keys`.
#. In the :guilabel:`Standard keys` section, copy the :guilabel:`Publishable key` and the
:guilabel:`Secret key` and save them for later.
#. In Odoo, :ref:`navigate to the payment provider Stripe <payment_providers/supported_providers>`.
#. In the :guilabel:`Credentials` tab, fill in the :guilabel:`Publishable Key` and
:guilabel:`Secret Key` fields with the values you previously saved.
.. _stripe/webhook:
Generate a webhook
------------------
In case your **Webhook Signing Secret** is required to connect with your Stripe account, you can
create a webhook either automatically or manually.
If your **Webhook Signing Secret** is required to connect with your Stripe account, you can create a
webhook automatically or manually.
.. tabs::
.. tab:: Create the webhook automatically
Make sure your :ref:`Publishable and Secret keys <stripe/api_keys>` are filled in, then click
on the *Generate your Webhook* button.
:guilabel:`Generate your webhook`.
.. tab:: Create the webhook manually
Visit the `webhooks page on Stripe <https://dashboard.stripe.com/webhooks>`_, or log into your
Stripe dashboard and go to :menuselection:`Developers --> Webhooks`. Then, click on **Add
endpoint** in your **Hosted endpoints** and insert the following data into the pop-up form:
#. Go to the `Webhooks page on Stripe <https://dashboard.stripe.com/webhooks>`_, or log into
your Stripe dashboard and go to :menuselection:`Developers --> Webhooks`.
#. In the :guilabel:`Hosted endpoints` section, click :guilabel:`Add endpoint`. Then, in the
:guilabel:`Endpoint URL` field, enter your Odoo database's URL, followed by
`/payment/stripe/webhook`, e.g., `https://yourcompany.odoo.com/payment/stripe/webhook`.
#. Click :guilabel:`Select events` at the bottom of the form, then select the following
events:
- | In the **Endpoint URL**, enter your Odoo database's URL followed by
| `/payment/stripe/webhook`.
| For example: `https://yourcompany.odoo.com/payment/stripe/webhook`
- At the end of the form, you can **Select events** to listen to. Click on it and, in the
**Checkout** section, select **checkout.session.completed**.
- in the :guilabel:`Charge` section: :guilabel:`charge.refunded` and
:guilabel:`charge.refund.updated`;
- in the :guilabel:`Payment intent` section:
:guilabel:`payment_intent.amount_capturable_updated`,
:guilabel:`payment_intent.payment_failed`, :guilabel:`payment_intent.processing`, and
:guilabel:`payment_intent.succeeded`;
- in the :guilabel:`Setup intent` section: :guilabel:`setup_intent.succeeded`.
.. note::
It is possible to select other events, but they are currently not processed by Odoo.
#. Click :guilabel:`Add events`.
#. Click :guilabel:`Add endpoint`, then click :guilabel:`Reveal` and save your
:guilabel:`Signing secret` for later.
#. In Odoo, :ref:`navigate to the payment provider Stripe
<payment_providers/supported_providers>`.
#. In the :guilabel:`Credentials` tab, fill the :guilabel:`Webhook Signing Secret` field with
the value you previously saved.
When you click on **Add endpoint**, your Webhook is configured. You can then click on
**reveal** to display your signing secret.
.. note::
You can select other events, but they are currently not processed by Odoo.
.. _stripe/local-payment-methods:
Enable Apple Pay
================
Enable local payment methods
============================
Local payment methods are payment methods that are only available for certain merchants and
customers countries and currencies.
Odoo supports the following local payment methods:
- Bancontact
- EPS
- giropay
- iDEAL
- Przelewy24 (P24)
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
payment methods in the **Supported Payment Icons** field. If the desired payment method is already
listed, you do not have anything to do.
.. image:: stripe/payments-config.png
:alt: Select and add icons of the payment methods you want to enable
.. note::
- If a payment method record does not exist in the database and its related local payment method
is listed above, it is considered enabled with Stripe.
- If a local payment method is not listed above, it is not supported and cannot be enabled.
To allow customers to use the Apple Pay button to pay their eCommerce orders, go to the
:guilabel:`Configuration` tab, enable :guilabel:`Allow Express Checkout`, and click
:guilabel:`Enable Apple Pay`.
.. seealso::
- :ref:`Express checkout and Google Pay <payment_providers/express_checkout>`
- :doc:`../payment_providers`
- :doc:`Use Stripe as a payment terminal in Point of Sale <../../sales/point_of_sale/payment_methods/terminals/stripe>`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,47 @@
======
Xendit
======
`Xendit <https://www.xendit.co>`_ is an Indonesian-based payment solution provider that covers
several Southeast Asian countries. It allows businesses to accept credit cards as well as several
local payment methods.
.. _payment_providers/xendit/configure_dashboard:
Configuration on the Xendit Dashboard
=====================================
#. Create a Xendit account if necessary and log in to the `Xendit Dashboard
<https://dashboard.xendit.co>`_.
#. Check your account mode in the top left corner of the page. Use the :guilabel:`Test Mode` to try
the integration without charging your customers. Switch to :guilabel:`Live Mode` once you are
ready to accept payments.
#. Navigate to :menuselection:`Configuration: Settings` in the left part of the application page.
In the :guilabel:`Developers` section, click
`API Keys <https://dashboard.xendit.co/settings/developers#api-keys>`_.
#. Click :guilabel:`Generate Secret Key`. In the popup box, enter any :guilabel:`API key name`,
select :guilabel:`Write` for the :guilabel:`Money-in Products` permission and :guilabel:`None`
for all other permissions then click :guilabel:`Generate key`.
#. Confirm your password to display your API key. Copy or download the key and **save
this information securely for later**. This is the only time the API key can be viewed or
downloaded.
#. Once completed, scroll down the page to the
`Webhooks <https://dashboard.xendit.co/settings/developers#webhooks>`_ section to generate
the webhook token.
#. Under :guilabel:`Webhook verification token`, click :guilabel:`View Webhook Verification Token`,
then confirm your password to display the token. Save it for later.
#. In the :guilabel:`Webhook URL` section, enter your Odoo database URL (e.g.,
`https://example.odoo.com`) in the field :guilabel:`Invoices paid` and click the
:guilabel:`Test and save` button next to it.
Configuration on Odoo
=====================
#. :ref:`Navigate to the payment provider Xendit <payment_providers/add_new>` and change its state
to :guilabel:`Enabled`.
#. Fill in the :guilabel:`Secret Key` and :guilabel:`Webhook Token` fields with the
information saved at the step :ref:`payment_providers/xendit/configure_dashboard`.
#. Configure the rest of the options to your liking.
.. seealso::
:doc:`../payment_providers`
+24 -13
View File
@@ -100,6 +100,14 @@ and the status of the signatures.
.. image:: sign/signature-status.png
:alt: Signature status
Validity dates and reminders
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can set **validity dates** on limited-duration agreement documents or send **automatic email
reminders** to obtain signatures on time. From your dashboard, click :guilabel:`Send` on your
document. On the new page, go to the :guilabel:`Options` section and fill in the :guilabel:`Valid
Until` and :guilabel:`Reminder` fields.
Templates
---------
@@ -120,9 +128,10 @@ immediately.
.. tip::
You can **create a template from a document that was previously sent**. To do so, go to
:menuselection:`Documents --> All Documents`. On the document you want to retrieve, click on
⋮, then :guilabel:`Template`. Click on ⋮ again, then :guilabel:`Restore`. Your document now
appears on your dashboard next to your other templates.
:menuselection:`Documents --> All Documents`. On the document you want to retrieve, click on the
the vertical ellipsis (:guilabel:`⋮`), then :guilabel:`Template`. Click on the vertical ellipsis
(:guilabel:`⋮`) again, then :guilabel:`Restore`. Your document now appears on your dashboard next
to your other templates.
.. _sign/role:
@@ -226,8 +235,8 @@ document.
Tags
====
Tags can be used to categorize and organize documents, allowing users to search for and filter
documents based on specific criteria quickly.
Tags can be used to categorize and organize documents, allowing users to quickly search for and
filter documents based on specific criteria.
You can manage tags by going to :menuselection:`Configuration --> Tags`. To create a tag, click
:guilabel:`New`. On the new line, add the :guilabel:`Tag Name` and select a :guilabel:`Color Index`
@@ -235,23 +244,25 @@ for your tag.
To apply a tag to a document, use the dropdown list available in your document.
.. note::
You can modify the tags of a signed document by going to :menuselection:`Documents --> All
Documents`, clicking the vertical ellipsis (:guilabel:`⋮`) on your document, then
:guilabel:`Details`, and modifying your :guilabel:`Tags`.
Sign order
==========
When a document needs to be signed by different parties, the signing order lets you control the
order in which your recipients receive it for signature.
By going to :menuselection:`Configuration --> Settings`, you can :guilabel:`Enable Signing Order`.
After uploading a PDF with at least two signature fields with two different roles and clicking
:guilabel:`Send`, toggle the :guilabel:`Specify Signing Order` button and search for the signer's
name or email information to add them. You can decide on the signing order by typing **1** or **2**
in the first column.
Each recipient receives the signature request notification only once the previous recipient has
completed their action.
Add at least two :guilabel:`Signature` fields with different roles to your document. Click
:guilabel:`Send`, go to the :guilabel:`Options` tab, and tick the :guilabel:`Specify signing order`
box.
Add the signer's :guilabel:`Name or email` information. You can decide on the :guilabel:`Sign Order`
by typing :guilabel:`1` or :guilabel:`2` in the :guilabel:`Sign Order` column.
.. seealso::
`Odoo Quick Tips: Sign order [video] <https://www.youtube.com/watch?v=2KUq7RPt1cU/>`_
+1
View File
@@ -12,6 +12,7 @@ Miscellaneous
general/reporting
general/email_communication
general/voip
general/geolocation
general/digest_emails
general/in_app_purchase
general/developer_mode
+20 -9
View File
@@ -2,43 +2,54 @@
Sign in with LDAP
=================
- Install the LDAP module in General Settings.
- Install the Lightweight Directory Access Protocol (LDAP) module in General Settings.
- Click on **Create** in Setup your LDAP Server.
- Click on **Create** in Setup the :abbr:`LDAP (Lightweight Directory Access Protocol)` Server.
.. image:: ldap/ldap01.png
:align: center
:alt: LDAP Authentication checkbox highlighted in the integrations settings on Odoo.
.. image:: ldap/ldap02.png
:align: center
:alt: Create highlighted in the LDAP server settings.
- Choose the company about to use the LDAP.
- Choose the company using the LDAP.
.. image:: ldap/ldap03.png
:align: center
:alt: Select the company drop-down menu highlighted in LDAP setup.
- In **Server Information**, enter the IP address of your server and the port it listens to.
- In **Server Information**, enter the IP address of the server and the port it listens to.
- Tick **User TLS** if your server is compatible.
- Tick **Use TLS** if the server is compatible.
.. image:: ldap/ldap04.png
:align: center
:alt: LDAP server settings highlighted in LDAP server setup on Odoo.
- In **Login Information**, enter ID and password of the account used to query the server. If left empty, the server will be queried anonymously.
- In **Login Information**, enter ID and password of the account used to query the server. If left
empty, the server queries anonymously.
.. image:: ldap/ldap05.png
:align: center
:alt: Login information highlighted in LDAP server setup on Odoo.
- In **Process Parameter**, enter the domain name of your LDAP server in LDAP nomenclature (e.g. ``dc=example,dc=com``).
- In **Process Parameter**, enter the domain name of the LDAP server in :abbr:`LDAP (Lightweight
Directory Access Protocol)` nomenclature (e.g. ``dc=example,dc=com``).
- In **LDAP filter**, enter ``uid=%s``
.. image:: ldap/ldap06.png
:align: center
:alt: Process parameter highlighted in LDAP server setup on Odoo.
- In **User Information**, tick *Create User* if you want Odoo to create a User profile the first time someone log in with LDAP.
- In **User Information**, tick *Create User* if Odoo should create a User profile the first time
someone logs in with :abbr:`LDAP (Lightweight Directory Access Protocol)`.
- In **Template User**, indicate a template for the new profiles created. If left blanked, the admin profile will be used as template.
- In **Template User**, indicate a template for the new profiles created. If left blanked, the admin
profile will be used as template.
.. image:: ldap/ldap07.png
:align: center
:alt: User information highlighted on LDAP server setup on Odoo.
@@ -1,3 +1,5 @@
.. _communication/emails_servers:
====================================================
Send and receive emails in Odoo with an email server
====================================================
@@ -0,0 +1,39 @@
===========
Geolocation
===========
You can locate contacts or places and generate routes on a map in Odoo.
.. image:: geolocation/contacts.png
:alt: Map displaying a contact's location.
To use the feature, open the :guilabel:`Settings` app, and, under the :guilabel:`Integrations`,
section, activate :guilabel:`Geo Localization`. Then, choose between using the OpenStreetMap or
Google Places API.
**OpenStreetMap**
OpenStreetMap is a free, open geographic database updated and maintained by volunteers. To use it,
select :guilabel:`Open Street Map`.
.. important::
OpenStreetMap might not always be accurate. You can `join the OpenStreetMap community
<https://www.openstreetmap.org/fixthemap>`_ to fix any issues encountered.
**Google Places API map**
The Google Places API map provides detailed info on places, businesses, and points of interest. It
supports location-based features like search, navigation, and recommendations.
.. important::
Using the Google Places API could require `payment to Google
<https://mapsplatform.google.com/pricing/>`_.
To use it, select :guilabel:`Google Place Map` and enter your :ref:`API Key
<address_autocomplete/generate_api_key>`.
.. image:: geolocation/google-places-api-key.png
:alt: Google Places API key
.. seealso::
:doc:`../../applications/websites/website/configuration/address_autocomplete`
Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

+173 -40
View File
@@ -1,59 +1,192 @@
=====================
In-App Purchase (IAP)
In-app purchase (IAP)
=====================
In-App Purchases (IAP) gives access to additional services through Odoo. For instance, it allows you
to send SMS Text Messages or to send Invoices by post directly from your database.
.. |IAP| replace:: :abbr:`IAP (In-app purchases)`
In-app purchases (IAP) are optional services that enhance Odoo databases. Each service provides its
own specific features and functionality. A full list of services is available on the `Odoo IAP
Catalog <https://iap.odoo.com/iap/all-in-app-services>`_.
.. image:: in_app_purchase/iap.png
:align: center
:alt: The IAP catalog with various services available on IAP.Odoo.com.
.. example::
The :guilabel:`SMS` service sends text messages to contacts directly from the database, and the
:guilabel:`Documents Digitization` service digitizes scanned or PDF vendor bills, expenses, and
resumes with optical character recognition (OCR) and artificial intelligence (AI).
|IAP| services do **not** need to be configured or set up before use. Odoo users can simply click on
the service in the app to activate it. However, each service requires its own prepaid credits, and
when they run out, users **must** :ref:`buy more <iap/buying_credits>` in order to keep using it.
.. note::
Users with an Enterprise version of Odoo Online get free credits to test IAP features.
.. _in_app_purchase/portal:
IAP services
============
|IAP| services are provided by Odoo, as well as third-parties, and have a wide range of uses.
The following |IAP| services are provided by Odoo:
- :guilabel:`Documents Digitization`: digitizes scanned or PDF vendor bills, expenses, and resumes
with OCR and AI.
- :guilabel:`Partner Autocomplete`: automatically populates contact records with corporate data.
- :guilabel:`SMS`: sends SMS text messages to contacts directly from the database.
- :guilabel:`Lead Generation`: generates leads based on a set of criteria, and converts web visitors
into quality leads and opportunities.
- :guilabel:`Snailmail`: sends customer invoices and follow-up reports by post, worldwide.
For more information on every service currently available, visit the `Odoo IAP Catalog
<https://iap.odoo.com/iap/all-in-app-services>`_.
Use IAP services
----------------
|IAP| services are automatically integrated with Odoo, and do **not** require users to configure any
settings. To use a service, simply interact with it wherever it appears in the database.
.. example::
The following flow focuses on the *SMS* |IAP| service being used from a contact's record.
This can be done by clicking the :guilabel:`📱 (phone) SMS` icon within the database.
.. image:: in_app_purchase/sms-icon.png
:align: center
:alt: The SMS icon on a typical contact information form located within an Odoo database.
One way to utilize the *SMS* |IAP| service with Odoo is showcased in the following steps:
#. Navigate to the :menuselection:`Contacts application`, and click on a contact with a mobile
phone number entered in either the :guilabel:`Phone` or :guilabel:`Mobile` field of the
contact form.
#. Hover the mouse over the :guilabel:`Phone` or :guilabel:`Mobile` field, and a :guilabel:`📱
(phone) SMS` icon appears to the right.
#. Click the :guilabel:`📱 (phone) SMS` icon, and a :guilabel:`Send SMS Text Message` pop-up
window appears.
#. Type a message in the :guilabel:`Message` field of the :guilabel:`Send SMS Text Message`
pop-up window. Then, click the :guilabel:`Send SMS` button. Odoo then sends the message, via
SMS, to the contact, and logs what was sent in the *chatter* of the contact's form.
Upon sending the SMS message, the prepaid credits for the *SMS* |IAP| service are automatically
deducted from the existing credits. If there are not enough credits to send the message, Odoo
prompts the user to purchase more.
.. seealso::
For more information on how to use various |IAP| services, and for more in-depth instructions
related to SMS functionality in Odoo, review the documentation below:
- :doc:`Lead mining </applications/sales/crm/acquire_leads/lead_mining>`
- :doc:`Enrich your contacts base with Partner Autocomplete
</applications/sales/crm/optimize/partner_autocomplete>`
- :doc:`SMS essentials </applications/marketing/sms_marketing/essentials/sms_essentials>`
.. _in_app_purchase/credits:
IAP credits
===========
Every time an |IAP| service is used, the prepaid credits for that service are spent. Odoo prompts
the purchase of more credits when there are not enough credits left to continue using a service.
Email alerts can also be set up for when :ref:`credits are low <in_app_purchase/low-credits>`.
Credits are purchased in *Packs* from the `Odoo IAP Catalog
<https://iap.odoo.com/iap/all-in-app-services>`_, and pricing is specific to each service.
.. example::
The `SMS service <https://iap.odoo.com/iap/in-app-services/1>`_ has four packs available, in
denominations of:
- :guilabel:`Starter Pack`: 10 credits
- :guilabel:`Standard Pack`: 100 credits
- :guilabel:`Advanced Pack`: 500 credits
- :guilabel:`Expert Pack`: 1,000 credits
.. image:: in_app_purchase/packs.png
:align: center
:alt: Four different packs of credits for the SMS IAP service.
The number of credits consumed depends on the length of the SMS and the country of destination.
For more information, refer to the :doc:`SMS Pricing and FAQ
</applications/marketing/sms_marketing/pricing/pricing_and_faq>` documentation.
.. _iap/buying_credits:
Buying Credits
==============
Buy credits
-----------
Each IAP Service relies on prepaid credits to work and has its own pricing. To consult your current
balance or to recharge your account, go to :menuselection:`Settings --> Odoo IAP --> View my
Services`.
If there are not enough credits to perform a task, the database automatically prompts the purchase
of more credits.
.. image:: in_app_purchase/image1.png
:align: center
Users can check the current balance of credits for each service, and manually purchase more credits,
by navigating to the :menuselection:`Settings app --> Search IAP --> View My Services`.
.. tip::
If you are on Odoo Online and have the Enterprise version, you benefit from free credits to test our
IAP features.
Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page, where
additional credits can be purchased.
IAP accounts
============
Manually buy credits
~~~~~~~~~~~~~~~~~~~~
Credits to use IAP services are stored on IAP accounts, which are specific to each service.
By default, IAP accounts are common to all companies, but can be restricted to specific
ones. Activate the :ref:`developer mode <developer-mode>`, then go to :menuselection:`Technical
Settings --> IAP Account`.
To manually buy credits in Odoo, follow these steps:
.. image:: in_app_purchase/image2.png
:align: center
#. Go to the :menuselection:`Settings application`.
#. Type `IAP` in the search bar.
#. Click :guilabel:`View My Services`.
.. tip::
An IAP account can be disabled by appending `+disabled` to its token.
Reverting this change will re-enable the account.
.. image:: in_app_purchase/view-services.png
:align: center
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
IAP Portal
==========
#. Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page,
where additional credits can be purchased.
#. On the :guilabel:`Account Information` page, click the :guilabel:`Buy Credit` button.
The IAP Portal is a platform regrouping your IAP Services. It is accessible from
:menuselection:`Settings app --> Odoo IAP --> View my Services`. From there, you can view your current
balance, recharge your credits and set a reminder when your balance falls below a threshold.
.. image:: in_app_purchase/account-info.png
:align: center
:alt: The Account Information page for an IAP service showing the Buy Credit button.
.. image:: in_app_purchase/image3.png
:align: center
#. Doing so loads a :guilabel:`Buy Credits for (IAP Account)` page in a new tab. From here, click
:guilabel:`Buy` on the desired pack of credits. Then, follow the prompts to enter payment
details, and confirm the order.
Get notified when credits are low
=================================
.. image:: in_app_purchase/buy-pack.png
:align: center
:alt: The SMS service page on IAP.Odoo.com with four packs of credits available for purchase.
To be notified when its time to recharge your credits, you can go to your IAP Portal through
:menuselection:`Settings app --> Odoo IAP --> View my Services`, unfold a service and check the
Receive threshold warning option. Then, you can provide a minimum amount of credits and email
addresses. Now, every time that the limit is reached, an automatic reminder will be sent by
email!
#. Once the transaction is complete, the credits are available for use in the database.
.. image:: in_app_purchase/image4.png
:align: center
.. _in_app_purchase/low-credits:
Low-credit notification
~~~~~~~~~~~~~~~~~~~~~~~
It is possible to be notified when credits are low, in order to avoid running out of credits, while
using an |IAP| service. To do that, follow this process:
#. Go to the :menuselection:`Settings application`.
#. Type `IAP` in the search bar.
#. Click :guilabel:`View My Services`.
#. The available |IAP| accounts appear in a list view on the :guilabel:`IAP Account` page. From
here, click on the desired |IAP| account to view that service's :guilabel:`Account Information`
page.
#. On the :guilabel:`Account Information` page, tick the :guilabel:`Warn Me` box. Doing so reveals
two fields on the form: :guilabel:`Threshold` and :guilabel:`Warning Email`.
.. image:: in_app_purchase/low-credits.png
:align: center
:alt: Odoo will send an email alert when credits for this service fall below the threshold.
#. In the :guilabel:`Threshold` field, enter an amount of credits Odoo should use as the minimum
threshold for this service.
#. In the :guilabel:`Warning Email` field, enter the email address that should receive the
notification.
Odoo sends a low-credit alert to the :guilabel:`Warning Email` when the balance of credits falls
below the amount listed as the :guilabel:`Threshold`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

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