Compare commits

...

158 Commits

Author SHA1 Message Date
Antoine Vandevenne (anv) 4766fe8acf [FIX] contributing/development: fix doc reference to tutorials.rst 2024-07-31 11:32:05 +02:00
xmo-odoo 811b442fcc [FIX] contributing: remove smart quotes
There have been several new odooers who've hit legal/cla mismatches, and after
investigation their email address would be smart quoted in git (e.g.
`<“uid@example.org”>`).

That the documentation itself uses smart quotes is highly suspicious, it would
make sense that new developers just pasted the provided command, updated it to
match, and didn't even notice the quotes were wrong: `git` is perfectly happy
with it, only on reading it back can you realise it's wrong and the guide
doesn't say anything about *that*.

So fix the quotes in the doc, and hopefully that'll resolve the issue.

closes odoo/documentation#10440

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2024-07-30 10:10:42 +00:00
Felicious a2ce8821f6 [ADD] inventory: storage categories
closes odoo/documentation#10169

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: pabr-odoo <pabr@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-07-26 20:04:16 +00:00
Sam Lieber (sali) 97a43ea94e [FIX] accounting/l10n_cl: remove company image
closes odoo/documentation#10387

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-07-26 17:24:46 +00:00
bve-odoo 1f7c0a9b2e [FIX] microsoft_outlook: redirect URL error if not matching
_compute_outlook_uri is using get_base_url, providing the
web.base.url of the database that is subject to changed as
stated on the website documentation: if the user logging-in
is using another URL to connect to the db, and has the
Administration/Settings access right (res.groups: base.group_system)

opw-4056377

closes odoo/documentation#10303

Signed-off-by: Baptiste Vergote (bve) <bve@odoo.com>
2024-07-26 09:27:07 +00:00
Tiffany Chang (tic) 3e8daa8014 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#10302

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-07-23 09:10:37 +00:00
Odoo Translation Bot 7439ec721f [I18N] *: export 15.0 source terms 2024-07-20 02:37:02 +00:00
Odoo Translation Bot 71a3dac1e4 [I18N] Update translation terms from Transifex 2024-07-14 02:40:22 +02:00
Odoo Translation Bot 60eb05fecf [I18N] Update translation terms from Transifex 2024-07-07 02:40:27 +02:00
Felicious 4a527db915 [IMP] inventory: bpost customer accounts
closes odoo/documentation#10067

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-07-05 18:51:45 +00:00
“Dallas” 0e783b0dfa [FIX] german localization: Fixed broken GoBD link
If merged, this commit will replace the broken GoBD link with the correct link.

task ID: 4034487

closes odoo/documentation#10074

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-07-04 09:05:57 +00:00
Odoo Translation Bot d13a635d67 [I18N] Update translation terms from Transifex 2024-06-30 02:40:28 +02:00
Odoo Translation Bot 499ead0b98 [I18N] Update translation terms from Transifex 2024-06-23 02:40:34 +02:00
Adrien Widart (awt) 37ca3f1917 [IMP] supported_versions: end of saas-16.4
closes odoo/documentation#9884

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-06-21 15:36:42 +00:00
XPL 51323fba44 [IMP] upgrade: remove ticket go-live mention
The phrase is confusing and leads customers to contact support to carry out
the upgrade for them.

closes odoo/documentation#9880

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-06-21 09:57:56 +00:00
Tiffany Chang (tic) 89c308cad4 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#9879

Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-06-21 09:57:56 +00:00
guillaume gallant (guga) 3d5ff64bab [IMP] point_of_sale: improve text and replace pictures for Vantiv
task-3005157

closes odoo/documentation#9704

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-06-20 09:18:45 +00:00
sovi-odoo 8b45c6692f [IMP] accounting/l10n: tell users to install l10n_fr_invoice_addr
In Odoo 15.0, an extra module is necessary to conform to the french
legislation. This will tell users to install it.

task-3856826

closes odoo/documentation#9820

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-17 09:13:59 +00:00
Odoo Translation Bot ba0319e9df [I18N] Update translation terms from Transifex 2024-06-16 02:40:29 +02:00
Audrey (auva) f9ab7b716b [FIX] voip: broken contact link
Changed https://www.axivox.com/contact into https://www.axivox.com/en/contact
as it didn't exist (anymore).

closes odoo/documentation#9757

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-11 08:10:07 +00:00
Odoo Translation Bot 4d51a12b1c [I18N] Update translation terms from Transifex 2024-06-09 02:40:34 +02:00
Felicious 91a2973306 [ADD] inventory: bpost
closes odoo/documentation#9637

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: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-07 17:43:24 +00:00
Loredana Perazzo 2e47b6a600 [IMP] pos: remove Epson TM-20 from list of compatible
task-3925551

closes odoo/documentation#9651

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-05 10:27:15 +00:00
Felicious 2cebcb0cda [IMP] inventory: reserve full vs partial packaging
closes odoo/documentation#9520

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-05 00:36:40 +00:00
Odoo Translation Bot b0f8a58eaf [I18N] Update translation terms from Transifex 2024-06-02 02:41:13 +02:00
Odoo's Mergebot 5584ea5266 [FIX] fix typo in warning message
Fix small typo introduced in #9116

closes odoo/documentation#9539

Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2024-05-30 11:30:21 +00:00
Xavier-Do e2241f76fc [FIX] fix typo in warning message 2024-05-30 12:50:51 +02:00
Tiffany Chang (tic) fcb1cbeeb7 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#9499

Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2024-05-28 15:55:43 +00:00
Xavier-Do af73b44168 [IMP] adapt documentation for new install script
closes odoo/documentation#9116

Related: odoo/odoo#163788
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2024-05-28 14:36:49 +00:00
Yaroslav Soroko (yaso) 23a1c496bf [IMP] point_of_sale: Setup all Ingenico terminals
Currently we only tell how to setup Ingenico Lane/5000 terminal.
Actually, Lane/5000 and Move/5000 can be set up in almost the same way,
only the button to enter settings is different.

This PR adds a more generic configutation guide applicable  to all the
Ingenico Lane/Desk/Move terminals

Also, it replaces erroneous Worldline mention in the top by Ingenico

task-3879038

closes odoo/documentation#9344

Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
2024-05-27 13:13:42 +00:00
Odoo Translation Bot 25187b2e3a [I18N] Update translation terms from Transifex 2024-05-26 02:40:54 +02:00
Lara Martini (larm) 27eaaf860b [IMP] Payroll: add necessary contract modules
closes odoo/documentation#9314

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-24 19:15:02 +00:00
tiku-odoo e307186358 [ADD] essentials: contacts
closes odoo/documentation#9378

Signed-off-by: Samuel Lieber (sali) <sali@odoo.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-05-24 16:09:35 +00:00
Jonathan 9f279170a5 [IMP] inventory-mrp: rename the category into Supply Chain
closes odoo/documentation#9460

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-05-24 14:13:06 +00:00
Odoo Translation Bot d2c046768b [I18N] Update translation terms from Transifex 2024-05-19 02:40:49 +02:00
Lara Martini (larm) 7ec544281b [ADD] referrals: moving share jobs section to new doc
closes odoo/documentation#9319

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-05-17 21:14:19 +00:00
Sam Lieber (sali) 89f61f900e [FIX] extensions: icon_role fa icons
closes odoo/documentation#9243

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-16 16:27:16 +00:00
Loan (LSE) 258636564e [IMP] general: iot add payment terminals link
closes odoo/documentation#9305

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-13 23:38:07 +00:00
Odoo Translation Bot 861bf246ef [I18N] Update translation terms from Transifex 2024-05-12 02:40:52 +02:00
tiku-odoo 38fa0d3a4e [ADD] finance: avalara portal
closes odoo/documentation#9167

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-10 15:54:14 +00:00
tiku-odoo fe3cbf7231 [IMP]accounting: avatax api integration rewrite
closes odoo/documentation#8997

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-09 19:19:41 +00:00
tiku-odoo 314ddb2de3 [IMP] finance: avatax use add logging
closes odoo/documentation#9242

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-09 17:55:58 +00:00
tiku-odoo 97fabc9f37 [IMP] sales: amazon connector add fba warning block
closes odoo/documentation#9055

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-06 19:50:56 +00:00
tiku-odoo 41b6e2f227 [ADD] finance: avatax tax calculation
closes odoo/documentation#9114

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-06 18:52:09 +00:00
XPL df888df654 [IMP] settings: simplify the developer mode page
task-3849915

closes odoo/documentation#9121

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-06 17:49:33 +00:00
Odoo Translation Bot 22df52548b [I18N] Update translation terms from Transifex 2024-05-05 02:40:44 +02:00
Felicious eba257a7fa [IMP] inventory: stock input + output account fix
closes odoo/documentation#9104

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-03 18:27:57 +00:00
XPL 5c84c9fc7f [IMP] accounting: change the lock date warning to an optional tip
task-3787113

closes odoo/documentation#9149

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-03 17:22:30 +00:00
XPL 76b6dd384c [IMP] website: warn about privacy regulations for recaptcha and gtm
task-3896553
task-3896425

closes odoo/documentation#9145

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-03 14:25:06 +00:00
tiku-odoo ad3343d158 [IMP] admin: onprem password reset
closes odoo/documentation#8990

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-01 14:27:38 +00:00
Antoine Vandevenne (anv) 73ee687aca [IMP] Makefile: print the full traceback for unhandled exceptions
This should help reading the traceback on Runbot, where the log files
are not always kept.

closes odoo/documentation#9068

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-04-30 09:48:42 +00:00
Sam Lieber (sali) 1039a0b195 [ADD] extensions: icon_role font awesome
closes odoo/documentation#8469

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-29 13:47:51 +00:00
Victor Feyens 3e62a8c4cd [FIX] dev/tutorials: typo
courtesy of @/ChloeLiang

closes odoo/documentation#9043

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-04-29 09:14:44 +00:00
Tiffany Chang (tic) c90f683947 [I18N] *: export latest terms
closes odoo/documentation#9042

Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
2024-04-29 09:14:43 +00:00
Odoo Translation Bot eb6b4e67a4 [I18N] Update translation terms from Transifex 2024-04-28 02:40:27 +02:00
Loredana Perazzo 96fd984293 [ADD] pos: list of compatible epos printers
no-task related

closes odoo/documentation#8955

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
Co-authored-by: Timothy Kukulka <tiku@odoo.com>
Co-authored-by: Loredana Perazzo <lrpz@odoo.com>
2024-04-25 19:58:15 +00:00
tiku-odoo ecd7d62a01 [IMP] database mgt: odoocom account add dup limit
closes odoo/documentation#8989

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-04-25 18:50:51 +00:00
tiku-odoo 376588000e [IMP] sales: partner autocomplete rewrite
closes odoo/documentation#8882

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-04-25 18:50:50 +00:00
Loredana Perazzo 4a12c56fc4 [IMP] iot: admonition about the required certification to use a scale in POS
task-3876833

closes odoo/documentation#8833

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-04-25 11:09:47 +00:00
tiku-odoo 7878980c1c [IMP] marketing: sms essentials add automated action block
closes odoo/documentation#8820

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-24 14:37:22 +00:00
jero-odoo 812c8aa8c4 [ADD] helpdesk: track and bill 15.0
closes odoo/documentation#8821

Signed-off-by: Jessica Rogers (jero) <jero@odoo.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: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-04-23 13:21:26 +00:00
tiku-odoo 46d3bdcd3a [IMP] essentials: iap rewrite
closes odoo/documentation#8812

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-04-22 18:36:40 +00:00
tiku-odoo 0bd590d4b9 [ADD] sales: crm lead enrichment
closes odoo/documentation#8839

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-22 16:58:04 +00:00
Odoo Translation Bot e8b0bc4745 [I18N] Update translation terms from Transifex 2024-04-21 02:40:31 +02:00
tiku-odoo 065f242993 [IMP] productivity: microsoft calendar rewrite
closes odoo/documentation#8780

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-19 19:24:04 +00:00
jero-odoo c98b6a8717 [IMP] helpdesk: sla 15.0
closes odoo/documentation#8819

Signed-off-by: Samuel Lieber (sali) <sali@odoo.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>
2024-04-19 17:42:47 +00:00
tiku-odoo 2da9fa8e39 [IMP] sales: subscription follow-up alerts add block
closes odoo/documentation#8822

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-19 16:39:06 +00:00
tiku-odoo 728dcf5078 [IMP] productivity: calendar google add troubleshooting
closes odoo/documentation#8643

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-18 18:30:37 +00:00
Yaroslav Soroko (yaso) 67f096cfe8 [IMP] point_of_sale: add Ingenico details
This PR adds the very much necessary details about the Ingenico
terminals we support, the communication protocol and the countries
coverage.
- We support only Ingenico terminals in Benelux
- The terminals must support TLV as communication protocol
- We contact terminals through TCP/IP only, not the serial port
- According to our contact in Ingenico (now Axepta) this is the case for
  all the Lane/Desk/Move payment terminals

task-3865904

closes odoo/documentation#8713

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-04-18 05:57:53 +00:00
XPL d1e65a3224 [IMP] hosting: add Odoo.sh as not supporting intermediary versions
task-3874935

closes odoo/documentation#8792

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-04-17 16:24:53 +00:00
Yaroslav Soroko (yaso) c100f94748 [IMP] point_of_sale: add Adyen details
This PR adds a link to a much needed Adyen coverage per country and
their terminal models

task-3865904

closes odoo/documentation#8715

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-04-17 16:24:51 +00:00
tiku-odoo 0189823bd5 [IMP] general: email comms gmail edit
closes odoo/documentation#8749

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-04-16 18:33:51 +00:00
tiku-odoo 856836af1d [IMP] productivity: calendar add troubleshooting
closes odoo/documentation#8604

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-04-15 23:56:59 +00:00
Yaroslav Soroko (yaso) 8643675fde [IMP] point_of_sale: add Worldline terminal models
This PR adds the Worldline terminal models we support to better redirect
our clients and colleagues when using Worldline terminals.

task-3865904

closes odoo/documentation#8714

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-04-15 18:44:20 +00:00
Yaroslav Soroko (yaso) 872e49e3b1 [IMP] finance: add Stripe links for more info
This PR adds more details about Stripe coverage and supported payment
methods and terminals.

task-3865904

closes odoo/documentation#8718

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-04-15 15:26:01 +00:00
Odoo Translation Bot a55c25b82a [I18N] Update translation terms from Transifex 2024-04-14 02:40:38 +02:00
tiku-odoo e444f8678e [IMP] general: iot troubleshooting printer addition
closes odoo/documentation#8574

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-04-11 17:09:39 +00:00
XPL e7dc7815b5 [IMP] accounting: snailmail trial credits removal
task-3844653

closes odoo/documentation#8642

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-04-11 07:24:01 +00:00
tiku-odoo 3f2f33a349 [IMP] general: users rewrite
closes odoo/documentation#8557

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-04-10 16:34:50 +00:00
tiku-odoo 21f23d98d3 [IMP] general: integrations outlook plugin add block
closes odoo/documentation#8600

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-04-09 18:12:50 +00:00
tiku-odoo 93552388ab [IMP] productivity: voip OnSIP US only block
closes odoo/documentation#8583

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-09 17:08:52 +00:00
jero-odoo d27def362b [ADD] crm: utilize activities for sales teams
closes odoo/documentation#8163

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-04-09 00:16:40 +00:00
Odoo Translation Bot b643a56b19 [I18N] Update translation terms from Transifex 2024-04-07 02:40:40 +02:00
Lara Martini (larm) 1ead41e559 [MOV] fleet: config doc to parent
closes odoo/documentation#8526

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-04 19:29:43 +00:00
tiku-odoo 9897673e93 [IMP] general: companies digest email rewrite
closes odoo/documentation#8350

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-04-04 18:14:41 +00:00
Antoine Vandevenne (anv) a906478bc7 [IMP] supported_versions: release saas-17.2
closes odoo/documentation#8486

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-04-02 15:14:48 +00:00
XPL 9fd199ff27 [ADD] database management: odoo mobile apps
task-3821019

closes odoo/documentation#8445

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-04-02 12:32:44 +00:00
jero-odoo 1ec6f3ec30 [REM] crm: track prospects visits
closes odoo/documentation#8197

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-04-02 06:45:20 +00:00
Odoo Translation Bot f22860ffda [I18N] Update translation terms from Transifex 2024-03-31 03:00:27 +02:00
XPL 363d0a582f [IMP] website: domain names CNAME records
Clarify that it is required to create a redirection from the naked domain to the
www. subdomain

closes odoo/documentation#8409

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-29 09:10:48 +00:00
tiku-odoo ae061c9041 [IMP] general: users access rights rewrite
closes odoo/documentation#7985

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-27 14:36:38 +00:00
Felicious ba49211c55 [IMP] inventory: invoice shipping
closes odoo/documentation#8325

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-25 04:47:52 +00:00
Odoo Translation Bot 094164a613 [I18N] Update translation terms from Transifex 2024-03-24 02:40:29 +01:00
tiku-odoo c635baa0a2 [IMP] essentials: import export rewrite
closes odoo/documentation#7762

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-21 20:31:49 +00:00
Tiffany Chang (tic) ee34727c4d [I18N] *: export latest terms + add missing resources
This commit does 2 things:

- exports the latest terms to be translated
- adds missing pot files + adds them to be translated on transifex
  (essentials, hr, and studio)

closes odoo/documentation#8242

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-21 13:34:00 +00:00
tiku-odoo 1f89b5f4b2 [IMP] iot: flash card update section
closes odoo/documentation#7733

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-21 13:33:57 +00:00
Felicious 8ad53481d1 [IMP] inventory: remove rescheduling
closes odoo/documentation#8186

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
2024-03-21 01:51:50 +00:00
tiku-odoo 9df807a532 [IMP] hosting: add admonition block on subscription
closes odoo/documentation#8164

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-20 10:49:48 +00:00
tiku-odoo d6f5e74971 [IMP] developer: external api add admonition block
closes odoo/documentation#8165

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-19 12:59:57 +00:00
tiku-odoo 7b728a22f4 [REM] voip: onsip scrub per onsip
closes odoo/documentation#8157

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-18 18:53:42 +00:00
Martin Trigaux (mat) 18062ec3b4 [I18N] conf: add more language codes
closes odoo/documentation#8194

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-18 09:54:40 +00:00
Odoo Translation Bot 1e82991875 [I18N] Update translation terms from Transifex 2024-03-17 02:40:29 +01:00
Colu 739309b258 [IMP] database management: update on-premise page
task-3627193

closes odoo/documentation#7820

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-15 15:47:06 +00:00
Xavier (XPL) 87b350d47e [FIX] website: domain names
closes odoo/documentation#8151

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-15 14:31:54 +00:00
Martin Trigaux (mat) 2ed5e2a1e8 [ADD] conf: add Swedish
closes odoo/documentation#8150

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-14 10:58:21 +00:00
Martin Trigaux (mat) 8b40d49658 [FIX] conf: don't use None in language switcher
In a lang is not present in languages_names, the menu was displaying None

Part-of: odoo/documentation#8150
2024-03-14 10:58:21 +00:00
Stephan Wilson 00b934c9d3 [IMP] accounting: wrong line break in customer_invoices
Removed line break

closes odoo/documentation#8130

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-13 14:06:49 +00:00
Jonathan Castillo (jcs) 0c392041ab [FIX] redirections: wrong rule for supported versions
closes odoo/documentation#8107

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-12 10:03:44 +00:00
Jonathan Castillo (jcs) a6bf19ea35 [MOV] documentation structure reorganization
This commit aims to improve the documentation's navigability by
redefining some categories' purposes and titles.

There is a redirection rule for each documentation page moved.
This ensures that users won't have a 404 error message.

task-3217827

closes odoo/documentation#7981

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-11 14:57:04 +00:00
Odoo Translation Bot ec11315bed [I18N] Update translation terms from Transifex 2024-03-10 02:40:32 +01:00
tiku-odoo 8a89c4311c [IMP] iot: ts scale exception
closes odoo/documentation#7810

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-08 19:17:28 +00:00
tiku-odoo 7bd289f370 [IMP] misc: email comm add allowed alias sys parameter
closes odoo/documentation#7750

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-08 14:10:49 +00:00
Felicious 7a5db76b28 [IMP] inventory: putaway rules
closes odoo/documentation#7969

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
2024-03-06 01:31:49 +00:00
Claire Bretton (clbr) 2d41fd7e0c [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#7968

Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2024-03-05 17:08:40 +00:00
Martin Trigaux (mat) e7e79a70bd [I18N] *: export 15.0 translations
closes odoo/documentation#8006

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-05 14:17:23 +00:00
Odoo Translation Bot 8fb9e492b4 [I18N] Update translation terms from Transifex 2024-03-03 02:40:21 +01:00
Marion (masp) 74978109ee [ADD] integration: geolocation
task-3694395

closes odoo/documentation#7744

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-01 15:40:59 +00:00
Ali Alfie (alal) 61c86a1a8e [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#7934

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-01 09:26:54 +00:00
Demesmaeker 3d0aabbaf4 [FIX] amazon_connector: change to more complete links
closes odoo/documentation#7795

Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
2024-02-29 09:30:10 +00:00
Donatienne (dopi) 89a6adc160 [IMP] maintain: domain names
task-3595179

closes odoo/documentation#7073

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-26 14:37:10 +00:00
Odoo Translation Bot a148fa6b8a [I18N] Update translation terms from Transifex 2024-02-25 02:40:18 +01:00
tiku-odoo 97203c4027 [IMP] sales: mrkt conn ebay exception
closes odoo/documentation#7857

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-23 19:35:41 +00:00
tiku-odoo 0a133687dd [IMP] misc: voip onsip edits
closes odoo/documentation#7698

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 14:25:37 +00:00
tiku-odoo 056242b831 [IMP] iot: troubleshooting add barcode exception
closes odoo/documentation#7743

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-22 22:58:38 +00:00
Xavier (XPL) 62e08e0c1f [IMP] install: enterprise packaged installers note
task-3536177

closes odoo/documentation#7804

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-22 18:43:01 +00:00
Tarek berkane 5f9b53beee [FIX] tutorials/getting_started: typo in 'estate'
closes odoo/documentation#7772

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-02-19 12:18:41 +00:00
Odoo Translation Bot 60fb7f43ec [I18N] Update translation terms from Transifex 2024-02-18 02:40:19 +01:00
Felicious da19420201 [IMP] inventory: sell stock virtual warehouse
closes odoo/documentation#7415

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-15 22:58:01 +00:00
Loredana Perazzo fb55dca079 [ADD] POS: configure and use the ship later feature
task-3095674

closes odoo/documentation#7406

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-15 08:46:21 +00:00
Sam Lieber (sali) 1200df1ec8 [FIX] odoo_theme: add bottom margin to inner lists
closes odoo/documentation#7515

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-02-13 15:42:47 +00:00
Antoine Vandevenne (anv) e116579c99 [IMP] supported_versions: release saas-17.1
closes odoo/documentation#7699

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-02-12 11:26:25 +00:00
Odoo Translation Bot 1a5abacb53 [I18N] Update translation terms from Transifex 2024-02-11 02:40:22 +01:00
tiku-odoo 5ea7d3aa16 [ADD] Misc: VoIP Axivox Dial Plan Edits
closes odoo/documentation#7626

X-original-commit: 2ac2109014
X-original-commit: 2ac2109014
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-06 17:34:26 +00:00
Odoo Translation Bot 99f27cb692 [I18N] Update translation terms from Transifex 2024-02-04 02:40:30 +01:00
Loredana Perazzo 57be14567e [IMP] POS: path to configure payment terminals
task-3684488

closes odoo/documentation#7538

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-01 14:50:20 +00:00
tiku-odoo 03678233c5 [IMP] Misc Auth LDAP Typo Edits
closes odoo/documentation#7581

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-29 21:54:44 +00:00
Odoo Translation Bot de7414df08 [I18N] Update translation terms from Transifex 2024-01-28 02:40:55 +01:00
Lara Martini (larm) 572a54b396 [ADD] Time Off: new documentation needed
closes odoo/documentation#7301

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-01-23 20:26:22 +00:00
tiku-odoo bfe57fdbdd [IMP] IoT Printer doc edits
closes odoo/documentation#7431

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-22 21:34:20 +00:00
Odoo Translation Bot f94085fd8a [I18N] Update translation terms from Transifex 2024-01-21 02:40:31 +01:00
tiku-odoo 9db684fe86 [RMV]Sales: remove snyc menu line ebay connector
closes odoo/documentation#7428

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-19 20:19:59 +00:00
tiku-odoo d902bbbc19 [IMP] Microsoft Azure Email Phrasing update
closes odoo/documentation#7430

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-19 18:59:55 +00:00
tiku-odoo 055e332ef3 [RMV]VOIP:Scrub Asterisk Docs
closes odoo/documentation#7426

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-19 02:48:18 +00:00
Martin Trigaux (mat) 8392361ef0 [I18N] *: export 15.0 translations
closes odoo/documentation#7435

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-01-18 14:47:20 +00:00
Olivier Dony d015d34fe8 [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#7383

X-original-commit: 8062e54a7e
Signed-off-by: Olivier Dony (odo) <odo@odoo.com>
2024-01-15 21:46:05 +00:00
Olivier Dony f7947312fb [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.

X-original-commit: 43c2b85a1b
Part-of: odoo/documentation#7383
2024-01-15 21:46:05 +00:00
Olivier Dony 2f43aa2c56 [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.

X-original-commit: aa412ed32f
Part-of: odoo/documentation#7383
2024-01-15 21:46:05 +00:00
Odoo Translation Bot eeccf39959 [I18N] Update translation terms from Transifex 2024-01-14 02:40:21 +01:00
Jonathan Castillo (jcs) b6051fafcb [FIX] redirects: redirection loop on install.rst
closes odoo/documentation#7201

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-01-12 11:38:43 +00:00
Donatienne (dopi) 99dbd6d61b [MOV] geo ip installation: move page to install
Page moved from Websites to Install section

taskid-3512515

Part-of: odoo/documentation#7201
2024-01-12 11:38:43 +00:00
Brandon Seltenrich (BRSE) 7d56862e53 [IMP] barcode: update adjustments doc
closes odoo/documentation#6889

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-11 20:40:38 +00:00
Tom Aarab (toaa) 6a66644abe [REM] accounting: multiple payments
Removing redundant page (see task)

See PR https://github.com/odoo/documentation/pull/6645

taskid-3466400

closes odoo/documentation#6651

Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-11 12:16:26 +00:00
Tom Aarab (toaa) fecb587e78 [IMP] localization: spain missing reports
Missing tax reports for

15 & 16: 347 & 349
17: 347, 349, & 390

taskid-3673259

closes odoo/documentation#7300

Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-09 13:52:02 +00:00
Odoo Translation Bot b876dc013a [I18N] Update translation terms from Transifex 2024-01-07 02:40:31 +01:00
Tom Aarab (toaa) c438e5a3aa [IMP] accounting: checks
Cleared up some confusion about path menu and feature

Forward to master

taskid-3644544

closes odoo/documentation#7195

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-01-05 15:42:56 +00:00
Julien Castiaux c55e8f251a [FIX] developer/reference/cli: log on stderr
Odoo is actually logging on sys.stderr and not sys.stdout[^1][^2][^3].

Remove passage about the workflows, the workflows were an OpenERP
feature removed almost a decade ago in odoo/odoo@98cb4719db.

Fixes: #7210

[^1]: https://github.com/odoo/odoo/blob/b3b9b2b49ef90d30bcce1e27a4ba0b24f888170c/odoo/netsvc.py#L156
[^2]: https://github.com/odoo/odoo/blob/b3b9b2b49ef90d30bcce1e27a4ba0b24f888170c/odoo/netsvc.py#L198
[^3]: https://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler

closes odoo/documentation#7253

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-04 16:15:26 +00:00
Tom Aarab (toaa) 36d0a51496 [IMP] accounting: payments doc update
Updated the payments doc page.

Forward to master.

16.3 -> Change reconciliation section

taskid-3610834

closes odoo/documentation#6645

Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-04 16:15:23 +00:00
Tom Aarab (toaa) d0b0cdfcf5 [IMP] accounting: reporting
Updated the reporting section.

Forward to 16.3

closes odoo/documentation#6533

Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-04 16:15:22 +00:00
990 changed files with 463678 additions and 206943 deletions
+15
View File
@@ -11,6 +11,11 @@ file_filter = locale/<lang>/LC_MESSAGES/applications.po
source_file = locale/sources/applications.pot
source_lang = en
[o:odoo:p:odoo-15-doc:r:essentials]
file_filter = locale/<lang>/LC_MESSAGES/essentials.po
source_file = locale/sources/essentials.pot
source_lang = en
[o:odoo:p:odoo-15-doc:r:finance]
file_filter = locale/<lang>/LC_MESSAGES/finance.po
source_file = locale/sources/finance.pot
@@ -21,6 +26,11 @@ file_filter = locale/<lang>/LC_MESSAGES/general.po
source_file = locale/sources/general.pot
source_lang = en
[o:odoo:p:odoo-15-doc:r:hr]
file_filter = locale/<lang>/LC_MESSAGES/hr.po
source_file = locale/sources/hr.pot
source_lang = en
[o:odoo:p:odoo-15-doc:r:index]
file_filter = locale/<lang>/LC_MESSAGES/index.po
source_file = locale/sources/index.pot
@@ -61,6 +71,11 @@ file_filter = locale/<lang>/LC_MESSAGES/settings.po
source_file = locale/sources/settings.pot
source_lang = en
[o:odoo:p:odoo-15-doc:r:studio]
file_filter = locale/<lang>/LC_MESSAGES/studio.po
source_file = locale/sources/studio.pot
source_lang = en
[o:odoo:p:odoo-15-doc:r:websites]
file_filter = locale/<lang>/LC_MESSAGES/websites.po
source_file = locale/sources/websites.pot
+1
View File
@@ -18,6 +18,7 @@ CONFIG_DIR = .
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
-D is_remote_build=$(IS_REMOTE_BUILD) \
-T \
-A google_analytics_key=$(GOOGLE_ANALYTICS_KEY) \
-A plausible_script=$(PLAUSIBLE_SCRIPT) \
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
+22 -1
View File
@@ -211,6 +211,8 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'saas-17.2': "Odoo Online",
'saas-17.1': "Odoo Online",
'17.0': "Odoo 17",
'saas-16.4': "Odoo Online",
'saas-16.3': "Odoo Online",
@@ -229,9 +231,12 @@ languages_names = {
'en': 'EN',
'es': 'ES',
'fr': 'FR',
'it': 'IT',
'ko': 'KO',
'nl': 'NL',
'pt_BR': 'PT',
'ro': 'RO',
'sv': 'SV',
'uk': 'UA',
'zh_CN': 'ZH',
}
@@ -441,7 +446,7 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
"""
_current_lang = app.config.language or 'en'
# Replace the context value by its upper-cased value ("FR" instead of "fr")
context['language'] = languages_names.get(_current_lang)
context['language'] = languages_names.get(_current_lang, _current_lang.upper())
context['language_code'] = _current_lang
# If the list of languages is not set, assume that the project has no alternate language
@@ -475,8 +480,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 ""}' \
+49 -7
View File
@@ -3,20 +3,62 @@
:hide-page-toc:
:show-toc:
====================
Install and Maintain
====================
===================
Database management
===================
These guides provide instructions on how to install, maintain and upgrade Odoo databases.
.. seealso::
:doc:`History of Versions <administration/maintain/supported_versions>`
:doc:`History of Versions <administration/supported_versions>`
Installation
============
Depending on the intended use case, there are multiple ways to install Odoo - or not install it at
all.
- :doc:`Online <administration/odoo_online>` is the easiest way to use Odoo in production or to try it.
- :doc:`Packaged installers <administration/on_premise/packages>` are suitable for testing Odoo and
developing modules. They can be used for long-term production with additional deployment and
maintenance work.
- :doc:`Source install <administration/on_premise/source>` provides greater flexibility, as it
allows, for example, running multiple Odoo versions on the same system. It is adequate to develop
modules and can be used as a base for production deployment.
- A `Docker <https://hub.docker.com/_/odoo/>`_ base image is available for development or
deployment.
.. _install/editions:
Editions
========
There are two different editions.
**Odoo Community** is the free and open-source version of the software, licensed under the `GNU
LGPLv3 <https://github.com/odoo/odoo/blob/master/LICENSE>`_. It is the core upon which Odoo
Enterprise is built.
**Odoo Enterprise** is the shared source version of the software, giving access to more
functionalities, including functional support, upgrades, and hosting. `Pricing
<https://www.odoo.com/pricing-plan>`_ starts from one app free.
.. tip::
:doc:`Switch from Community to Enterprise <administration/on_premise/community_to_enterprise>` at
any time (except for the source install).
.. toctree::
:titlesonly:
administration/install
administration/maintain
administration/upgrade
administration/hosting
administration/odoo_online
administration/odoo_sh
administration/on_premise
administration/upgrade
administration/supported_versions
administration/mobile
administration/odoo_accounts
@@ -1,4 +1,9 @@
=======================
=======
Hosting
=======
.. _hosting/change-solution:
Change hosting solution
=======================
@@ -15,7 +20,7 @@ To Odoo Online
- Odoo Online is *not* compatible with **non-standard apps**.
- The database's current version must be :doc:`supported <supported_versions>`.
#. Create a :ref:`duplicate <duplicate_premise>` of the database.
#. Create a :ref:`duplicate of the database <on-premise/duplicate>`.
#. In this duplicate, uninstall all **non-standard apps**.
#. Use the database manager to grab a *dump with filestore*.
#. `Submit a support ticket <https://www.odoo.com/help>`_ including the following:
@@ -41,10 +46,10 @@ Transferring an Odoo Online database
====================================
.. important::
Odoo Online's :ref:`intermediary versions <supported_versions>` cannot be hosted on-premise as
that type of hosting does not support those versions. Therefore, if the database to transfer
is running an intermediary version, it must be upgraded first to the next :ref:`major version
<supported_versions>`, waiting for its release if necessary.
Odoo Online's :ref:`intermediary versions <supported_versions>` are not supported by Odoo.sh or
on-premise. Therefore, if the database to transfer is running an intermediary version, it must be
upgraded first to the next :ref:`major version <supported_versions>`, waiting for its release if
necessary.
.. example::
Transferring an online database running on Odoo 16.3 would require first upgrading it to Odoo
@@ -54,6 +59,11 @@ Transferring an Odoo Online database
Click the gear icon (:guilabel:`⚙`) next to the database name on the `Odoo Online database
manager <https://www.odoo.com/my/databases/>`_ to display its version number.
.. warning::
If there is an active Odoo subscription linked to the database being migrated, reach out to
the Customer Service Manager or `submit a support ticket <https://www.odoo.com/help>`_ to
complete the subscription transfer.
To on-premise
-------------
-49
View File
@@ -1,49 +0,0 @@
:show-content:
=======
Install
=======
Depending on the intended use case, there are multiple ways to install Odoo - or not install it at
all.
- :doc:`Online <install/online>` is the easiest way to use Odoo in production or to try it.
- :doc:`Packaged installers <install/packages>` are suitable for testing Odoo and developing
modules. They can be used for long-term production with additional deployment and maintenance
work.
- :doc:`Source install <install/source>` provides greater flexibility, as it allows, for example,
running multiple Odoo versions on the same system. It is adequate to develop modules and can be
used as a base for production deployment.
- A `Docker <https://hub.docker.com/_/odoo/>`_ base image is available for development or
deployment.
.. _install/editions:
Editions
========
There are two different editions.
**Odoo Community** is the free and open-source version of the software, licensed under the `GNU
LGPLv3 <https://github.com/odoo/odoo/blob/master/LICENSE>`_. It is the core upon which Odoo
Enterprise is built.
**Odoo Enterprise** is the shared source version of the software, giving access to more
functionalities, including functional support, upgrades, and hosting. `Pricing
<https://www.odoo.com/pricing-plan>`_ starts from one app free.
.. tip::
:doc:`Switch from Community to Enterprise <maintain/enterprise>` at any time (except for the
source install).
.. toctree::
install/online
install/packages
install/source
install/deploy
install/cdn
install/email_gateway
-21
View File
@@ -1,21 +0,0 @@
======
Online
======
Online instances are accessed using any web browser and do not require a local installation.
Demo
----
To quickly try out Odoo, shared `demo <https://demo.odoo.com>`_ instances are available. No
registration is required, but each instance only lives for a few hours.
Odoo Online
-----------
`Odoo Online <https://www.odoo.com/trial>`_ provides private instances which are fully managed and
hosted by Odoo. It can be used for long-term production or to test Odoo thoroughly, including
customizations that don't require code.
.. note::
Odoo Online is incompatible with custom modules or the Odoo App Store.
-18
View File
@@ -1,18 +0,0 @@
:nosearch:
========
Maintain
========
.. toctree::
maintain/domain_names
maintain/azure_oauth
maintain/google_oauth
maintain/mailjet_api
maintain/update
maintain/enterprise
maintain/hosting_changes
maintain/odoo_online
maintain/on_premise
maintain/supported_versions
@@ -1,366 +0,0 @@
============
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.
You can use a custom domain name to access your Odoo database and websites:
- 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``.
.. 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>`_
.. _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:
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.
.. 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.
To do so, go to :menuselection:`Website --> Go to website --> Promote --> Domain Name`.
Alternatively, open your `database manager <https://www.odoo.com/my/databases>`_, click on the
:guilabel:`settings` button next to your database, then on :guilabel:`Domain names`.
.. image:: domain_names/register-promote.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>`.
.. 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.
.. _domain-name/odoo-manage:
Manage your domain name registered with Odoo
--------------------------------------------
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`.
.. image:: domain_names/manage.png
:align: center
:alt: Management of the domain names linked to an Odoo database
.. note::
Please `submit a support ticket <https://www.odoo.com/help>`_ if you need further assistance to
manage your domain name.
.. _domain-name/existing:
Configure your existing domain name
===================================
If you already own a domain name, you can use it to point to your 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:
#. :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>`.
.. _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.
.. 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``)
.. group-tab:: Odoo.sh
Your project's main address is defined in :menuselection:`Settings --> Project Name`.
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.
#. 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.
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``).
.. 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``.
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.
.. _domain-name/db-map:
Map your domain name with your Odoo database
--------------------------------------------
.. 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.
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
.. 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`.
.. image:: domain_names/odoo-sh-map.png
:align: center
:alt: Mapping a domain name with 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.
.. _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.
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
<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.
.. _domain-name/web-base-url:
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>`.
The **web base URL** of a database, or **root URL** 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.
.. 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``.
.. 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``
.. _domain-name/website-map:
Map your domain name with your website
======================================
Mapping your domain name to your website isn't the same as mapping it with 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
email to your customers.
- If you have multiple websites, it maps your domain name with 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
.. 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``.
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.
.. 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
the company in use.
.. seealso::
- :doc:`/applications/general/email_communication/email_servers`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 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: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

@@ -1,168 +0,0 @@
==============================
On-premise database management
==============================
Register a database
===================
To register your database, you just need to enter your Subscription Code in the
banner in the App Switcher. Make sure you do not add extra spaces before or after
your subscription code. If the registration is successful, it will turn green and
will provide you with the Expiration Date of your freshly-registered database. You
can check this Expiration Date in the About menu (Odoo 9) or in the Settings Dashboard
(Odoo 10).
Registration Error Message
--------------------------
If you are unable to register your database, you will likely encounter this
message:
.. image:: on_premise/error_message_sub_code.png
:align: center
:alt: Something went wrong while registering your database, you can try again or contact Odoo
Help
Solutions
~~~~~~~~~
* Do you have a valid Enterprise subscription?
* Check if your subscription details get the tag "In Progress" on
your `Odoo Account
<https://accounts.odoo.com/my/subscription>`__ or with your Account Manager
* Have you already linked a database with your subscription reference?
* You can link only one database per subscription.
(Need a test or a development database? `Find a partner
<https://www.odoo.com/partners>`__)
* You can unlink the old database yourself on your `Odoo Contract
<https://accounts.odoo.com/my/subscription>`__ with the button "Unlink database"
.. image:: on_premise/unlink_single_db.png
:align: center
A confirmation message will appear; make sure this is the correct database as
it will be deactivated shortly:
.. image:: on_premise/unlink_confirm_enterprise_edition.png
:align: center
* Do you have the updated version of Odoo 9?
* From July 2016 onward, Odoo 9 now automatically change the uuid of a
duplicated database; a manual operation is no longer required.
* If it's not the case, you may have multiple databases sharing the same
UUID. Please check on your `Odoo Contract
<https://accounts.odoo.com/my/subscription>`__, a short message will appear
specifying which database is problematic:
.. image:: on_premise/unlink_db_name_collision.png
:align: center
In this case, you need to change the UUID on your test databases to solve this
issue. You will find more information about this in :ref:`this section <duplicate_premise>`.
For your information, we identify database with UUID. Therefore, each database
should have a distinct UUID to ensure that registration and invoicing proceed
effortlessly for your and for us.
* Check your network and firewall settings
* The Update notification must be able to reach Odoo's subscription
validation servers. In other words, make sure that the Odoo server is able
to open outgoing connections towards:
* services.odoo.com on port 443 (or 80)
* services.openerp.com on port 443 (or 80) for older deployments
* Once you activated your database, you must keep these ports open, as the
Update notification runs once a week.
Error message due to too many users
-----------------------------------
If you have more users in your local database than provisionned in your
Odoo Enterprise subscription, you may encounter this message:
.. image:: on_premise/add_more_users.png
:align: center
:alt: This database will expire in X days, you have more users than your subscription allows
When the message appears you have 30 days before the expiration.
The countdown is updated everyday.
Solutions
~~~~~~~~~
- **Add more users** on your subscription: follow the link and Validate
the upsell quotation and pay for the extra users.
- **Deactivate users** as explained in this `documentation <documentation.html#deactivating-users>`_
and **Reject** the upsell quotation.
Once your database has the correct number of users, the expiration message
will disappear automatically after a few days, when the next verification occurs.
We understand that it can be a bit frightening to see the countdown,
so you can :ref:`force an Update Notification <force_ping>` to make the message disappear
right away.
Database expired error message
------------------------------
If your database reaches its expiration date before your renew your subscription,
you will encounter this message:
.. image:: on_premise/database_expired.png
:align: center
:alt: This database has expired.
This **blocking** message appears after a non-blocking message that lasts 30 days.
If you fail to take action before the end of the countdown, the database is expired.
Solutions
~~~~~~~~~
* Renew your subscription: follow the link and renew your subscription - note that
if you wish to pay by Wire Transfer, your subscription will effectively be renewed
only when the payment arrives, which can take a few days. Credit card payments are
processed immediately.
* Contact our `Support <https://www.odoo.com/help>`__
None of those solutions worked for you? Please contact our
`Support <https://www.odoo.com/help>`__
.. _force_ping:
.. _duplicate_premise:
Duplicate a database
====================
You can duplicate your database by accessing the database manager on your
server (<odoo-server>/web/database/manager). In this page, you can easily
duplicate your database (among other things).
.. image:: on_premise/db_manager.gif
:align: center
When you duplicate a local database, it is **strongly** advised to change
the duplicated database's uuid (Unniversally Unique Identifier), since this
uuid is how your database identifies itself with our servers. Having two
databases with the same uuid could result in invoicing problems or registration
problems down the line.
.. note::
From July 2016 onward, Odoo 9 now automatically change the uuid of a duplicated database; a
manual operation is no longer required.
The database uuid is currently accessible from the menu :menuselection:`Settings --> Technical -->
System Parameters`, we advise you to use a `uuid generator <https://www.uuidtools.com>`_ or to
use the unix command ``uuidgen`` to generate a new uuid. You can then simply replace it like any
other record by clicking on it and using the edit button.
.. image:: on_premise/db_uuid.png
:align: center
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

+67
View File
@@ -0,0 +1,67 @@
================
Odoo mobile apps
================
Two kind of Odoo mobile app exist: the progressive web app (PWA) and store apps. Using the PWA is
recommended.
Progressive web app (PWA)
=========================
PWAs are web-based applications designed to function across different devices and platforms,
leveraging web browsers to deliver user experiences similar to native apps.
The Odoo PWA features include:
- Quick access by adding the PWA to a device's home screen
- Seamless and borderless navigation experience
- Push notifications
- SSO authentication
To install the Odoo PWA, launch a browser supporting PWAs, and sign in to an Odoo database. The
instructions to install a PWA depend on the platform and browser used.
.. tabs::
.. tab:: Android
**Chrome**: open Chrome's menu (:guilabel:`⋮`), select :guilabel:`Install app`, and tap
:guilabel:`Install`.
**Firefox**: open Firefox's menu (:guilabel:`⋮`), select :guilabel:`Install`, and either touch
and hold the Odoo icon or tap :guilabel:`Add automatically`.
The PWA can also be installed with **Samsung Internet**, **Edge**, and **Opera**.
.. tab:: iOS
**Safari**: open the **Share** menu by tapping the square with an arrow pointing upwards icon,
select :guilabel:`Add to Home Screen`, edit the PWA details if desired, and tap
:guilabel:`Add`.
On iOS 16.4 and above, the PWA can also be installed with **Chrome**, **Firefox**, and
**Edge**.
.. tab:: Desktop
**Chrome** and **Edge**: click the installation icon at the right of the address bar and click
:guilabel:`Install`.
.. seealso::
- `Google Chrome Help: Use progressive web apps
<https://support.google.com/chrome/answer/9658361>`_
- `MDN Web Docs: Installing and uninstalling web apps
<https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Installing>`_
- `Microsoft Support: Install, manage, or uninstall apps in Microsoft Edge <https://support.microsoft.com/en-us/topic/install-manage-or-uninstall-apps-in-microsoft-edge-0c156575-a94a-45e4-a54f-3a84846f6113>`_
Store apps
==========
The Odoo mobile apps are available for download on the `Google Play Store
<https://play.google.com/store/apps/details?id=com.odoo.mobile>`_ and `Apple App Store
<https://apps.apple.com/app/odoo/id1272543640>`_.
.. important::
The iOS app cannot be updated and will be deprecated at some point in the future.
While the store apps support multi-accounts, they are not compatible with SS0 authentication.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

@@ -1,6 +1,6 @@
========================
Odoo.com account changes
========================
=================
Odoo.com accounts
=================
This documentation is dedicated to edits made to an Odoo.com account. The following processes
describe how to delete an Odoo.com account, and how to change the password on an Odoo.com account.
@@ -30,6 +30,8 @@ confirmation for the account deletion.
To confirm the deletion, enter the :guilabel:`Password` and the :guilabel:`Login` for the account
being deleted. Then, click the :guilabel:`Delete Account` button to confirm the deletion.
.. _odoocom/change_password:
Odoo.com account password change
================================
@@ -1,6 +1,21 @@
===============================
Odoo Online database management
===============================
===========
Odoo Online
===========
`Odoo Online <https://www.odoo.com/trial>`_ provides private databases which are fully managed and
hosted by Odoo. It can be used for long-term production or to test Odoo thoroughly, including
customizations that don't require code.
.. note::
Odoo Online is incompatible with custom modules or the Odoo App Store.
Odoo Online databases are accessed using any web browser and do not require a local installation.
To quickly try out Odoo, shared `demo <https://demo.odoo.com>`_ instances are available. No
registration is required, but each instance only lives for a few hours.
Database management
===================
To manage a database, go to the `database manager <https://www.odoo.com/my/databases>`_ and sign in
as the database administrator.
@@ -45,6 +60,8 @@ daily operations.
- By checking :guilabel:`For testing purposes`, all external actions (emails, payments, delivery
orders, etc.) are disabled by default on the duplicated database.
- Duplicated databases expire automatically after 15 days.
- A maximum of five duplicates can be made per database. Under extraordinary circumstances,
contact `support <https://www.odoo.com/help>`_ to raise the limit.
.. _odoo_online/rename:
@@ -69,10 +86,11 @@ Download a ZIP file containing a backup of the database.
Domain names
============
Use a custom :doc:`domain name <domain_names>` to access the database via another URL.
Use a custom :doc:`domain name </applications/websites/website/configuration/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:
@@ -129,5 +147,5 @@ users, click :guilabel:`Add more users`.
To remove users, select them and click :guilabel:`Remove`.
.. seealso::
- :doc:`/applications/general/users/manage_users`
- :doc:`/applications/general/users/odoo_account`
- :doc:`/applications/general/users`
- :doc:`odoo_accounts`

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

@@ -91,7 +91,7 @@ Import your database
====================
You can import your database in your Odoo.sh project as long as it is in a :doc:`supported version
</administration/maintain/supported_versions>` of Odoo.
</administration/supported_versions>` of Odoo.
Push your modules in production
-------------------------------
@@ -202,4 +202,4 @@ therefore removed, as you can only have one database linked per subscription.
If you plan to make it your production, unlink your former database from the subscription, and
register the newly imported database. Read the :doc:`database registration documentation
<../../maintain/on_premise>` for instructions.
<../../on_premise>` for instructions.
@@ -85,7 +85,7 @@ From the Odoo.sh editor, in a terminal:
$ odoo-bin scaffold my_module ~/src/user/
Or, from your computer, if you have an :doc:`installation of Odoo <../../install/source>`:
Or, from your computer, if you have an :doc:`installation of Odoo <../../on_premise/source>`:
.. code-block:: bash
+123
View File
@@ -0,0 +1,123 @@
:show-content:
==========
On-premise
==========
Register a database
===================
To register your database, enter your subscription code in the banner in the app dashboard. If the
registration is successful, the banner will turn green and display the database expiration date.
.. tip::
The expiration date is also displayed at the bottom of the Settings page.
.. _on-premise/duplicate:
Duplicate a database
====================
Duplicate a database by accessing the database manager on your server
(`<odoo-server>/web/database/manager`). Typically, you want to duplicate your production database
into a neutralized testing database. It can be done by checking the neutralize box when prompted,
which executes all :file:`neutralize.sql` scripts for every installed module.
Common error messages and solutions
===================================
Registration error
------------------
In case of a registration error, the following message should be displayed.
.. image:: on_premise/error-message-sub-code.png
:alt: Database registration error message
To resolve the issue:
- Check the **validity of your Odoo Enterprise subscription** by verifying if your subscription
details have the tag :guilabel:`In Progress` on your `Odoo Account
<https://accounts.odoo.com/my/subscription>`_ or contact your Account Manager.
- Ensure that **no other database is linked** to the subscription code, as only one database can be
linked per subscription.
.. tip::
If a test or a development database is needed, you can :ref:`duplicate a database
<on-premise/duplicate>`.
- Verify that **no databases share the same UUID** (Universally Unique Identifier) by opening your
`Odoo Contract <https://accounts.odoo.com/my/subscription>`_. If two or more databases share the
same UUID, their name will be displayed.
.. image:: on_premise/unlink-db-name-collision.png
:alt: Database UUID error message
If that is the case, manually change the database(s) UUID or `send a support ticket
<https://www.odoo.com/help>`_.
- As the update notification must be able to reach Odoo's subscription validation servers, ensure
your **network and firewall settings** allow the Odoo server to open outgoing connections
towards:
- `services.odoo.com` on port `443` (or `80`)
- for older deployments, `services.openerp.com` on port `443` (or `80`)
These ports must be kept open even after registering a database, as the update notification runs
once a week.
Too many users error
--------------------
If you have more users in a local database than provisioned in your Odoo Enterprise subscription,
the following message should be displayed.
.. image:: on_premise/add-more-users.png
:alt: Too many users on a database error message
When the message appears, you have 30 days to act before the database expires. The countdown is
updated every day.
To resolve the issue, either:
- **Add more users** to your subscription by clicking the :guilabel:`Upgrade your subscription` link
displayed in the message to validate the upsell quotation and pay for the extra users.
- :ref:`Deactivate users <users/deactivate>` and **reject** the upsell quotation.
.. important::
If you are on a monthly subscription plan, the database will automatically update to reflect the
added user(s). If you are on a yearly or multi-year plan, an expiration banner will appear in the
database. You can create the upsell quotation by clicking the banner to update the subscription
or `send a support ticket <https://www.odoo.com/help>`_ to resolve the issue.
Once your database has the correct number of users, the expiration message disappears automatically
after a few days, when the next verification occurs.
Database expired error
----------------------
If your database expires before you renew your subscription, the following message should be
displayed.
.. image:: on_premise/database-expired.png
:alt: Database expired error message
This message appears if you fail to act before the end of the 30-day countdown.
To resolve the issue, either:
- Click the :guilabel:`Renew your subscription` link displayed in the message and complete the
process. If you pay by wire transfer, your subscription will be renewed when the payment arrives
which can take a few days. Credit card payments are processed immediately.
- `Send a support ticket <https://www.odoo.com/help>`_.
.. toctree::
on_premise/packages
on_premise/source
on_premise/update
on_premise/deploy
on_premise/email_gateway
on_premise/geo_ip
on_premise/community_to_enterprise
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

@@ -11,8 +11,8 @@ In any case the basic guidelines are:
* Backup your community database
.. image:: enterprise/db_manager.png
:class: img-fluid
.. image:: community_to_enterprise/db_manager.png
:class: img-fluid
* Shutdown your server
@@ -22,8 +22,8 @@ In any case the basic guidelines are:
* Enter your Odoo Enterprise Subscription code
.. image:: enterprise/enterprise_code.png
:class: img-fluid
.. image:: community_to_enterprise/enterprise_code.png
:class: img-fluid
On Linux, using an installer
============================
@@ -61,7 +61,7 @@ have your own favourite. You may need to adapt sections to your usual workflow.
* Shutdown your server
* Backup your community database
* Update the ``--addons-path`` parameter of your launch command (see :doc:`../install/source`)
* Update the ``--addons-path`` parameter of your launch command (see :doc:`../on_premise/source`)
* Install the web_enterprise module by using
.. code-block:: console
@@ -82,7 +82,7 @@ On Windows
* Uninstall Odoo Community (using the Uninstall executable in the installation folder) -
PostgreSQL will remain installed
.. image:: enterprise/windows_uninstall.png
.. image:: community_to_enterprise/windows_uninstall.png
:class: img-fluid
* Launch the Odoo Enterprise Installer and follow the steps normally. When choosing
@@ -90,8 +90,8 @@ On Windows
(this folder still contains the PostgreSQL installation).
Uncheck ``Start Odoo`` at the end of the installation
.. image:: enterprise/windows_setup.png
:class: img-fluid
.. image:: community_to_enterprise/windows_setup.png
:class: img-fluid
* Using a command window, update your Odoo Database using this command (from the Odoo
installation path, in the server subfolder)

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

@@ -3,7 +3,7 @@ System configuration
====================
This document describes basic steps to set up Odoo in production or on an
internet-facing server. It follows :doc:`installation <../install>`, and is
internet-facing server. It follows :doc:`installation <../on_premise>`, and is
not generally necessary for a development systems that is not exposed on the
internet.
@@ -598,7 +598,143 @@ It should be stored securely, and should be generated randomly e.g.
$ python3 -c 'import base64, os; print(base64.b64encode(os.urandom(24)))'
which will generate a 32 characters pseudorandom printable string.
which generates a 32-character pseudorandom printable string.
Reset the master password
-------------------------
There may be instances where the master password is misplaced, or compromised, and needs to be
reset. The following process is for system administrators of an Odoo on-premise database detailing
how to manually reset and re-encrypt the master password.
.. seealso::
For more information about changing an Odoo.com account password, see this documentation:
:ref:`odoocom/change_password`.
When creating a new on-premise database, a random master password is generated. Odoo recommends
using this password to secure the database. This password is implemented by default, so there is a
secure master password for any Odoo on-premise deployment.
.. warning::
When creating an Odoo on-premise database the installation is accessible to anyone on the
internet, until this password is set to secure the database.
The master password is specified in the Odoo configuration file (`odoo.conf` or `odoorc` (hidden
file)). The Odoo master password is needed to modify, create, or delete a database through the
graphical user interface (GUI).
Locate configuration file
~~~~~~~~~~~~~~~~~~~~~~~~~
First, open the Odoo configuration file (`odoo.conf` or `odoorc` (hidden file)).
.. tabs::
.. tab:: Windows
The configuration file is located at: `c:\\ProgramFiles\\Odoo{VERSION}\\server\\odoo.conf`
.. tab:: Linux
Depending on how Odoo is installed on the Linux machine, the configuration file is located in
one of two different places:
- Package installation: `/etc/odoo.conf`
- Source installation: `~/.odoorc`
Change old password
~~~~~~~~~~~~~~~~~~~
Once the appropriate file has been opened, proceed to modify the old password in the configuration
file to a temporary password.
.. tabs::
.. group-tab:: Graphical user interface
After locating the configuration file, open it using a (:abbr:`GUI (graphical user
interface)`). This can be achieved by simply double clicking on the file. Then, the device
should have a default :abbr:`GUI (graphical user interface)` to open the file with.
Next, modify the master password line `admin_passwd = $pbkdf2-sha…` to `admin_passwd =
newpassword1234`, for example. This password can be anything, as long as it is saved
temporarily. Make sure to modify all characters after the `=`.
.. example::
The line appears like this:
`admin_passwd =
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
The modified line appears like this: `admin_passwd = newpassword1234`
.. group-tab:: Command-line interface
Modify the master password line using the following Unix command detailed below.
Connect to the Odoo server's terminal via Secure Shell (SSH) protocol, and edit the
configuration file. To modify the configuration file, enter the following command:
:command:`sudo nano /etc/odoo.conf`
After opening the configuration file, modify the master password line `admin_passwd =
$pbkdf2-sha…` to `admin_passwd = newpassword1234`. This password can be anything, as long as
it is saved temporarily. Make sure to modify all characters after the `=`.
.. example::
The line appears like this:
`admin_passwd =
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
The modified line appears like this: `admin_passwd = newpassword1234`
.. important::
It is essential that the password is changed to something else, rather than triggering a new
password reset by adding a semicolon `;` at the beginning of the line. This ensures the database
is secure throughout the entire password reset process.
Restart Odoo server
~~~~~~~~~~~~~~~~~~~
After setting the temporary password, a restart of the Odoo server is **required**.
.. tabs::
.. group-tab:: Graphical user interface
To restart the Odoo server, first, type `services` into the Windows :guilabel:`Search` bar.
Then, select the :guilabel:`Services` application, and scroll down to the :guilabel:`Odoo`
service.
Next, right click on :guilabel:`Odoo`, and select :guilabel:`Start` or :guilabel:`Restart`.
This action manually restarts the Odoo server.
.. group-tab:: Command-line interface
Restart the Odoo server by typing the command: :command:`sudo service odoo15 restart`
.. note::
Change the number after `odoo` to fit the specific version the server is running on.
Use web interface to re-encrypt password
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, navigate to `/web/database/manager` or `http://server_ip:port/web/database/manager` in a
browser.
.. note::
Replace `server_ip` with the IP address of the database. Replace `port` with the numbered port
the database is accessible from.
Next, click :guilabel:`Set Master Password`, and type in the previously-selected temporary password
into the :guilabel:`Master Password` field. Following this step, type in a :guilabel:`New Master
Password`. The :guilabel:`New Master Password` is hashed (or encrypted), once the
:guilabel:`Continue` button is clicked.
At this point, the password has been successfully reset, and a hashed version of the new password
now appears in the configuration file.
.. seealso::
For more information on Odoo database security, see this documentation:
:ref:`db_manager_security`.
Supported Browsers
==================

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

@@ -1,6 +1,9 @@
==========================================
Geo IP Installation (On-Premises Database)
==========================================
======
Geo IP
======
.. note::
This documentation only applies to On-premise databases.
Installation
============
@@ -40,7 +43,7 @@ Installation
1. See `GeoLite Legacy databases are now discontinued
<https://support.maxmind.com/geolite-legacy-discontinuation-notice/>`_
How To Test GeoIP Geolocation In Your Odoo Website
How to test GeoIP geolocation in your Odoo website
==================================================
1. Go to your website. Open the web page that you want to test ``GeoIP``.
@@ -53,7 +56,7 @@ How To Test GeoIP Geolocation In Your Odoo Website
You should end up with a dictionary indicating the location of the IP address.
.. image:: on-premise_geo-ip-installation/on-premise_geo-ip-installation01.png
.. image:: geo_ip/on-premise_geo-ip-installation01.png
:align: center
.. note::
@@ -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,6 +1,6 @@
======
Source
======
==============
Source install
==============
The source 'installation' is not about installing Odoo but running it directly from the source
instead.
@@ -273,18 +273,22 @@ Dependencies
.. tab:: Debian/Ubuntu
For Debian-based systems, the packages are listed in the `debian/control
<{GITHUB_PATH}/debian/control>`_ file of the Odoo sources.
On Debian/Ubuntu, the following commands should install the required packages:
.. code-block:: console
$ cd /CommunityPath
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
$ cd odoo #CommunityPath
$ sudo ./setup/debinstall.sh
The `setup/debinstall.sh` script will parse the `debian/control
<{GITHUB_PATH}/debian/control>` file and install the found packages.
.. tab:: Install with pip
.. warning::
Using pip may lead to security issues and broken dependencies; only do this if you
know what you are doing.
As some of the Python packages need a compilation step, they require system libraries to
be installed.
@@ -475,7 +479,7 @@ http://localhost:8069 in a web browser and log into the Odoo database with the b
account: use `admin` as the email and, again, `admin` as the password.
.. tip::
- From there, create and manage new :doc:`users <../../applications/general/users/manage_users>`.
- From there, create and manage new :doc:`users <../../applications/general/users>`.
- The user account used to log into Odoo's web interface differs from the :option:`--db_user
<odoo-bin -r>` CLI argument.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

@@ -46,7 +46,7 @@ Updating Odoo is accomplished by simply reinstalling the latest version of your
Edition on top of your current installation. This will preserve your data without any alteration,
as long as you do not uninstall PostgreSQL (the database engine that comes with Odoo).
The main reference for updating is logically our :doc:`installation guide <../install>`,
The main reference for updating is logically our :doc:`installation guide <../on_premise>`,
which explains the common installation methods.
Updating is also most appropriately accomplished by the person who deployed Odoo initially,
@@ -13,7 +13,7 @@ Odoo provides support and bug fixing **for the 3 last major versions** of Odoo.
<odoo_online>` hosting every two months. Odoo Online users can then benefit from the latest
features of Odoo.
- Admins of Odoo Online databases are invited to :doc:`upgrade <../upgrade>` them regularly.
- Admins of Odoo Online databases are invited to :doc:`upgrade <upgrade>` them regularly.
- Online versions are *not* released for Odoo.sh and On-Premise installations.
- Online versions are listed below as *SaaS*.
@@ -31,14 +31,26 @@ This matrix shows the support status of every version.
- On-Premise
- Release date
- End of support
* - Odoo saas~17.2
- |green|
- N/A
- N/A
- April 2024
-
* - 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|
- |red|
- N/A
- N/A
- August 2023
+11 -13
View File
@@ -3,8 +3,8 @@ Upgrade
=======
An upgrade is the process of moving your database from an older version to a newer :doc:`supported
version <maintain/supported_versions>` (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is
essential as each version comes with new and improved features, bug fixes, and security patches.
version <supported_versions>` (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is essential as
each version comes with new and improved features, bug fixes, and security patches.
.. _upgrade_faq/rolling_release:
@@ -31,9 +31,9 @@ essential as each version comes with new and improved features, bug fixes, and s
An upgrade does not cover:
- Downgrading to a previous version of Odoo
- :doc:`Switching editions <maintain/enterprise>` (e.g., from Community to Enterprise)
- :doc:`Changing hosting type </administration/maintain/hosting_changes>` (e.g., from on-premise
to Odoo Online)
- :doc:`Switching editions <on_premise/community_to_enterprise>` (e.g., from Community to
Enterprise)
- :ref:`Changing hosting type <hosting/change-solution>` (e.g., from on-premise to Odoo Online)
- Migrating from another ERP to Odoo
.. warning::
@@ -280,9 +280,7 @@ Upgrading the production database
---------------------------------
Once the :ref:`tests <upgrade/test_your_db>` are completed and you are confident that the upgraded
database can be used as your main database without any issues, it is time to plan the go-live day. It
can be planned in coordination with Odoo's upgrade support analysts, reachable via the `support page
<https://odoo.com/help>`__.
database can be used as your main database without any issues, it is time to plan the go-live day.
Your production database will be unavailable during its upgrade. Therefore, we recommend planning
the upgrade at a time when the use of the database is minimal.
@@ -293,11 +291,11 @@ still successful, especially if it takes a long time to finish. Fully rehearsing
process the day before upgrading the production database is also recommended.
.. important::
- Going into production without first testing may lead to:
Going into production without first testing may lead to:
- Users failing to adjust to the changes and new features
- Business interruptions (e.g., no longer having the possibility to validate an action)
- Poor customer experience (e.g., an eCommerce website that does not work correctly)
- Users failing to adjust to the changes and new features
- Business interruptions (e.g., no longer having the possibility to validate an action)
- Poor customer experience (e.g., an eCommerce website that does not work correctly)
The process of upgrading a production database is similar to upgrading a test database with a few
exceptions.
@@ -405,4 +403,4 @@ The following upgrade-related services are **not** included:
.. seealso::
- :doc:`Odoo.sh documentation <odoo_sh>`
- :doc:`Supported Odoo versions <maintain/supported_versions>`
- :doc:`Supported Odoo versions <supported_versions>`
+2
View File
@@ -14,6 +14,7 @@ Discover our user guides and configuration tutorials per application.
.. toctree::
:maxdepth: 2
applications/essentials
applications/finance
applications/sales
applications/websites
@@ -22,4 +23,5 @@ Discover our user guides and configuration tutorials per application.
applications/marketing
applications/services
applications/productivity
applications/studio
applications/general
+10
View File
@@ -0,0 +1,10 @@
===============
Odoo essentials
===============
.. toctree::
essentials/activities
essentials/contacts
essentials/export_import_data
essentials/in_app_purchase
@@ -40,8 +40,7 @@ Lastly, click one of the following buttons:
opens a new activity window.
- :guilabel:`Discard`: discards any changes made on the pop-up window.
.. image:: plan_activities/schedule-pop-up.png
:align: center
.. image:: activities/schedule-pop-up.png
:alt: View of CRM leads and the option to schedule an activity.
.. note::
@@ -50,8 +49,7 @@ Lastly, click one of the following buttons:
Scheduled activities are added to the chatter for the record under :guilabel:`Planned activities`.
.. image:: plan_activities/chatter-activities.png
:align: center
.. image:: activities/chatter-activities.png
:alt: View of CRM leads and the option to schedule an activity.
Activities can also be scheduled from the kanban, list, or activities view of an application.
@@ -63,9 +61,8 @@ Activities can also be scheduled from the kanban, list, or activities view of an
Select a record on which to schedule an activity. Click on the :guilabel:`🕘 (clock)` icon,
then :guilabel:`Schedule An Activity`, and proceed to fill out the pop-up form.
.. image:: plan_activities/schedule-kanban-activity.png
:align: center
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
.. image:: activities/schedule-kanban-activity.png
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
.. tab:: List view
@@ -73,9 +70,8 @@ Activities can also be scheduled from the kanban, list, or activities view of an
then :guilabel:`Schedule An Activity`. If the record already has an activity scheduled, the
clock icon may be replaced by a :guilabel:`📞 (phone)` or an :guilabel:`✉️ (envelope)` icon.
.. image:: plan_activities/schedule-list-activity.png
:align: center
:alt: List view of the CRM pipeline and the option to schedule an activity.
.. image:: activities/schedule-list-activity.png
:alt: List view of the CRM pipeline and the option to schedule an activity.
.. tab:: Activity view
@@ -83,16 +79,14 @@ Activities can also be scheduled from the kanban, list, or activities view of an
menu bar anywhere in the database. Select any application from the drop-down menu, and click
the :guilabel:`🕘 (clock)` icon for the desired app.
.. image:: plan_activities/schedule-activity-view-menu.png
:align: center
:alt: Activity menu drop down with focus on where to open activity view for CRM.
.. image:: activities/schedule-activity-view-menu.png
:alt: Activity menu drop down with focus on where to open activity view for CRM.
Select a record on which to schedule an activity. Move across the row to find the desired
activity type, then click the :guilabel:` (plus sign)`.
.. image:: plan_activities/schedule-activity-view.png
:align: center
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
.. image:: activities/schedule-activity-view.png
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
.. note::
Activity colors, and their relation to an activity's due date, is consistent throughout Odoo,
@@ -122,8 +116,7 @@ specific application in a drop-down menu.
The possibility to :guilabel:`Add new note` and :guilabel:`Request a Document` appear at the bottom
of this drop-down menu, when the :guilabel:`🕘 (clock)` icon on the header menu is clicked.
.. image:: plan_activities/activities-menu.png
:align: center
.. image:: activities/activities-menu.png
:alt: View of CRM leads page emphasizing the activities menu.
Configure activity types
@@ -132,8 +125,7 @@ Configure activity types
To configure the types of activities in the database, go to :menuselection:`Settings app --> Discuss
--> Activities --> Activity Types`.
.. image:: plan_activities/settings-activities-types.png
:align: center
.. image:: activities/settings-activities-types.png
:alt: View of the settings page emphasizing the menu activity types.
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
@@ -144,8 +136,7 @@ new activity type, click :guilabel:`Create`.
At the top of a blank activity type form, start by choosing a :guilabel:`Name` for the new activity
type.
.. image:: plan_activities/new-activity-type.png
:align: center
.. image:: activities/new-activity-type.png
:alt: New activity type form.
Activity settings
@@ -208,8 +199,7 @@ This :guilabel:`Schedule` field information can be altered before the activity i
When all configurations are complete, click :guilabel:`Save`.
.. image:: plan_activities/schedule-recommended-activity.png
:align: center
.. image:: activities/schedule-recommended-activity.png
:alt: Schedule activity popup with emphasis on recommended activities.
.. note::
@@ -236,8 +226,7 @@ This :guilabel:`Schedule` field information can be altered before the activity i
When all configurations are complete, click :guilabel:`Save`.
.. image:: plan_activities/triggered-activities.png
:align: center
.. image:: activities/triggered-activities.png
:alt: Schedule new activity popup with emphasis on Done and launch next button.
.. note::
@@ -246,5 +235,5 @@ When all configurations are complete, click :guilabel:`Save`.
:guilabel:`Trigger` field.
.. seealso::
- :doc:`get_started`
- :doc:`team_communication`
- :doc:`/applications/productivity/discuss`
- :doc:`/applications/productivity/discuss/team_communication`

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,238 @@
========
Contacts
========
The *Contacts* application comes installed on all Odoo databases. Contacts are created for customers
the company does business with through Odoo. A contact is a repository of vital business
information, facilitating communication and business transactions.
Contact form
============
To create a new contact, navigate to the :menuselection:`Contacts app`, and click
:guilabel:`Create`. A new form appears where various contact information can be added.
Contact type
------------
Odoo allows for both :guilabel:`Individual` and :guilabel:`Company` contacts. Select either
:guilabel:`Individual` or :guilabel:`Company`, depending on the type of contact that is being added.
Name
----
First, fill in the name of the :guilabel:`Individual` or :guilabel:`Company`. This is how the name
appears throughout the database. This field is **mandatory**.
.. tip::
:guilabel:`Individual` contacts can have a :guilabel:`Company` contact linked to it. After
selecting :guilabel:`Individual`, a new :guilabel:`Company Name...` field appears below the
first name field.
Address
-------
Next, enter the :guilabel:`Address` of the :guilabel:`Company` or :guilabel:`Individual`.
.. tip::
If the :guilabel:`Individual` option is chosen, then the *type of address* can be chosen from a
drop-down menu. Options for this drop-down menu include: :guilabel:`Contact`, :guilabel:`Invoice
Address`, :guilabel:`Delivery Address`, :guilabel:`Other Address`, and :guilabel:`Private
Address`.
Additional fields
-----------------
Additional details are included on the initial form. The following fields are available:
- :guilabel:`VAT`: Value Added Tax number.
- :guilabel:`Citizen Identification`: citizen or government identification number (only available
on :guilabel:`Individual`).
- :guilabel:`Job Position`: list the job position of the :guilabel:`Individual` (only available on
:guilabel:`Individual`).
- :guilabel:`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
message by hovering over the field on the saved form, and clicking the desired option.
- :guilabel:`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
- :guilabel:`Email`: enter the email address with the domain.
- :guilabel:`Website`: enter the full website address, starting with `http` or `https`.
- :guilabel:`Title`: select :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`,
:guilabel:`Mister`, :guilabel:`Professor`, or create a new one directly from this field.
- :guilabel:`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
menu, and selecting one. To create a new one, type the new tag in the field, and click
:guilabel:`Create` from the resulting drop-down menu.
Contacts & Addresses tab
------------------------
At the bottom of the contact form are several tabs. On the :guilabel:`Contacts & Addresses` tab,
contacts can be added that are associated with a :guilabel:`Company` and related addresses. For
example, a specific contact person for the company can be listed here.
Multiple addresses can be added on both :guilabel:`Individual` and :guilabel:`Company` contacts. To
do so, click :guilabel:`Add` in the :guilabel:`Contacts & Addresses` tab. Doing so reveals a
:guilabel:`Create Contact` pop-up form, in which additional addresses can be configured.
.. image:: contacts/contact-form-add-address.png
:align: center
:alt: Add a contact/address to the contact form.
On the :guilabel:`Create Contact` pop-up form, start by clicking the default :guilabel:`Other
Address` field at the top to reveal a drop-down menu of address-related options.
Select any of the following options:
- :guilabel:`Contact`: adds another contact to the existing contact form.
- :guilabel:`Invoice Address`: adds a specific invoice address to the existing contact form.
- :guilabel:`Delivery Address`: adds a specific delivery address to the existing contact form.
- :guilabel:`Other Address`: adds an alternate address to the existing contact form.
- :guilabel:`Private Address`: adds a private address to the existing contact form.
.. image:: contacts/create-contact-window.png
:align: center
:alt: Create a new contact/address on a contact form.
Once an option is selected, enter the corresponding contact information that should be used for the
specified address type.
Add the :guilabel:`Contact Name`, :guilabel:`Address`, :guilabel:`Email`, along with the
:guilabel:`Phone` and/or :guilabel:`Mobile` numbers below.
Set the :guilabel:`Job Position`, which appears if the :guilabel:`Contact` address type has been
selected. This is similar to the :guilabel:`Individual` contact.
To add a note, click on the text field next to :guilabel:`Notes`, and write anything that is
applicable to the customer or contact.
Then, click :guilabel:`Save & Close` to save the address, and close the :guilabel:`Create Contact`
window. Or, click :guilabel:`Save & New` to save the address, and immediately input another one.
Sales & Purchase tab
--------------------
Next, is the :guilabel:`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
**or** *Point of Sale* applications are installed.
The :guilabel:`Fiscal Position` can be set on the :guilabel:`Sales & Purchases` tab. Select a
:guilabel:`Fiscal Position` from the drop-down menu.
Sales section
~~~~~~~~~~~~~
Under the :guilabel:`Sales` heading, a specific :guilabel:`Salesperson` can be assigned to a
contact. To do that, click the :guilabel:`Salesperson` drop-down field, and select one. Create a new
:guilabel:`Salesperson` by typing the user's name, and making the appropriate selection.
Certain :guilabel:`Payment Terms`, or a certain :guilabel:`Pricelist`, can also be set, if needed.
Click the drop-down menu next to :guilabel:`Payment Terms`, and change it to one of the preselected
:guilabel:`Payment Terms`, or :guilabel:`Create` a new one. Select the :guilabel:`Pricelist`
drop-down menu to choose the appropriate :guilabel:`Pricelist`.
Click into the :guilabel:`Delivery Method` field to select an option from the drop-down menu.
Point Of Sale section
~~~~~~~~~~~~~~~~~~~~~
Under the :guilabel:`Point Of Sale` heading, enter a :guilabel:`Barcode` that can be used to
identify the contact. Use the :guilabel:`Loyalty Points` field to track points the user won as part
of a *Loyalty Program*.
Purchase section
~~~~~~~~~~~~~~~~
Specify :guilabel:`Payment Terms`, :guilabel:`1099 Box` information, and a preferred
:guilabel:`Payment Method` here. A :guilabel:`Receipt Reminder` can be set here, as well.
Misc section
~~~~~~~~~~~~
Under the :guilabel:`Misc.` heading, use :guilabel:`Reference` field to add any additional
information for this contact. If this contact should only be accessible for one company in a
multi-company database, select it from the :guilabel:`Company` field drop-down list. Use the
:guilabel:`Website` drop-down menu to restrict the publishing of this contact to one website (if
working on a database with multiple websites). Select one or more :guilabel:`Website Tags` to assist
in filtering published customers on the `/customers` website page. Select an :guilabel:`Industry`
for this contact from the drop-down menu. Use the :guilabel:`SLA Policies` field to assign a
*Helpdesk* SLA policy to this contact.
Accounting tab
--------------
The :guilabel:`Accounting` tab appears when the *Accounting* application is installed. Here, a user
can add any related :guilabel:`Bank Accounts`, or set default :guilabel:`Accounting entries`.
Under the :guilabel:`Miscellaneous` heading, use the :guilabel:`LEI` field to enter a Legal Entity
Identifier, if necessary.
Internal Notes tab
------------------
Following the :guilabel:`Accounting` tab is the :guilabel:`Internal Notes` tab, where notes can be
left on this contact form, just like on the contact form noted above.
Partner Assignment tab
----------------------
Next is the :guilabel:`Partner Assignment` tab, which by default, includes a :guilabel:`Geolocation`
section, and other partner options, including :guilabel:`Partner Activation` and :guilabel:`Partner
Review` configurations. These are **only** present when the *Enterprise Resellers* module is
installed.
Membership tab
--------------
Finally, there is the :guilabel:`Membership` tab, which can help users manage any memberships that
are being offered to this specific contact. It should be noted that this tab only appears when the
*Members* applications is installed.
Smart buttons
=============
At the top of the contact form, there are some additional options available, known as *smart
buttons*.
Here, Odoo displays a variety of records, related to this contact, that were created on other apps.
Odoo integrates information from every single app, so there are many smart buttons.
.. example::
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
related to this customer from the *CRM* app are accessible.
.. tip::
If the corresponding applications are installed, their related smart buttons appear
automatically on a contact form.
A user can see any :guilabel:`Meetings`, :guilabel:`Sales`, :guilabel:`POS Orders`,
:guilabel:`Subscriptions`, project :guilabel:`Tasks`, and the :guilabel:`More` smart button reveals
additional options, via a drop-down menu. A user can even quickly access :guilabel:`Purchases`,
:guilabel:`Helpdesk` tasks, :guilabel:`On-time Rate` for deliveries, :guilabel:`Invoiced`
information, :guilabel:`Vendor Bills`, and the :guilabel:`Partner Ledger` connected to this contact.
Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like
this, should there be any outstanding/on-file for this contact.
If the contact is a partner, the user can visit their partner page on the Odoo-built website by
clicking the :guilabel:`Go to Website` smart button.
Archive contacts
----------------
If a user decides they no longer want to have this contact active, the record can be archived. To do
that, go to the :icon:`fa-cog` :guilabel:`Action` menu at the top of the contact form, and click
:guilabel:`Archive`.
Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window.
With this contact successfully archived, as indicated by a banner at the top, they do not show up
in the main contacts page, but they can still be searched for with the :guilabel:`Archived` filter.
.. tip::
A contact can be *unarchived*, if the user decides to work with them again. To do that, just
click the :icon:`fa-cog` :guilabel:`Action` menu again at the top of the archived contact form,
and click :guilabel:`Unarchive`. Upon doing so, the :guilabel:`Archived` banner is removed, and
the contact is restored.
.. seealso::
- :doc:`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
- `Odoo's eLearning Contacts tutorial
<https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1>`_
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,477 @@
======================
Export and import data
======================
In Odoo, it is sometimes necessary to export or import data for running reports, or for data
modification. This document covers the export and import of data into and out of Odoo.
.. important::
Sometimes, users run into a 'time out' error, or a record does not process, due to its size. This
can occur with large exports, or in cases where the import file is too large. To circumvent this
limitation surrounding the size of the records, process exports or imports in smaller batches.
.. _export-data:
Export data from Odoo
=====================
When working with a database, it is sometimes necessary to export data in a distinct file. Doing so
can aid in reporting on activities, although, Odoo provides a precise and easy reporting tool with
each available application.
With Odoo, the values can be exported from any field in any record. To do so, activate the list view
(:guilabel:`☰ (three horizontal lines)` icon), on the items that need to be exported, and then
select the records that should be exported. To select a record, tick the checkbox next to the
corresponding record. Finally, click on :guilabel:`⚙️ Action`, and then :guilabel:`Export`.
.. image:: export_import_data/list-view-export.png
:align: center
:alt: View of the different things to enable/click to export data.
When clicking on :guilabel:`Export`, an :guilabel:`Export Data` pop-over window appears, with
several options for the data to export:
.. image:: export_import_data/export-data-overview.png
:align: center
:alt: Overview of options to consider when exporting data in Odoo..
#. With the :guilabel:`I want to update data (import-compatable export)` option ticked, the system
only shows the fields that can be imported. This is helpful in the case where the existing
records need to be updated. This works like a filter. Leaving the box unticked, gives many more
field options because it shows all the fields, not just the ones that can be imported.
#. When exporting, there is the option to export in two formats: `.csv` and `.xls`. With `.csv`,
items are separated by a comma, while `.xls` holds information about all the worksheets in a
file, including both content and formatting.
#. These are the items that can be exported. Use the :guilabel:`> (right arrow)` icon to display
more sub-field options. Use the :guilabel:`Search` bar to find specific fields. To use the
:guilabel:`Search` option more efficiently, click on all the :guilabel:`> (right arrows)` to
display all fields.
#. The :guilabel:`+ (plus sign)` icon button is present to add fields to the :guilabel:`Fields to
export` list.
#. The :guilabel:`↕️ (up-down arrow)` to the left of the selected fields can be used to move the
fields up and down, to change the order in which they are displayed in the exported file.
Drag-and-drop using the :guilabel:`↕️ (up-down arrow)` icon.
#. The :guilabel:`🗑️ (trash can)` icon is used to remove fields. Click on the :guilabel:`🗑️ (trash
can)` icon to remove the field.
#. For recurring reports, it is helpful to save export presets. Select all the needed fields, and
click on the template drop-down menu. Once there, click on :guilabel:`New template`, and give a
unique name to the export just created. The next time the same list needs to be exported, select
the related template that was previously saved from the drop-down menu.
.. tip::
It is helpful to know the field's external identifier. For example, :guilabel:`Related Company`
in the export user interface is equal to *parent_id* (external identifier). This is helpful
because then, the only data exported is what should be modified and re-imported.
.. _import-data:
Import data into Odoo
=====================
Importing data into Odoo is extremely helpful during implementation, or in times where data needs to
be updated in bulk. The following documentation covers how to import data into an Odoo database.
.. warning::
Imports are permanent and **cannot** be undone. However, it is possible to use filters (`created
on` or `last modified`) to identify records changed or created by the import.
.. tip::
Activating :ref:`developer mode <developer-mode>` changes the visible import settings in the left
menu. Doing so reveals an :menuselection:`Advanced` menu. Included in this advanced menu are two
options: :guilabel:`Track history during import` and :guilabel:`Allow matching with subfields`.
.. image:: export_import_data/advanced-import.png
:align: center
:alt: Advanced import options when developer mode is activated.
If the model uses openchatter, the :guilabel:`Track history during import` option sets up
subscriptions and sends notifications during the import, but leads to a slower import.
Should the :guilabel:`Allow matching with subfields` option be selected, then all subfields
within a field are used to match under the :guilabel:`Odoo Field` while importing.
Get started
-----------
Data can be imported on any Odoo business object using either Excel (`.xlsx`) or :abbr:`CSV
(Comma-separated Values)` (`.csv`) formats. This includes: contacts, products, bank statements,
journal entries, and orders.
Open the view of the object to which the data should be imported/populated, and click on
:menuselection:`⭐ Favorites --> Import records`.
.. image:: export_import_data/import-button.png
:align: center
:alt: Favorites menu revealed with the import records option highlighted.
After clicking :guilabel:`Import records`, Odoo reveals a separate page with templates that can be
downloaded and populated with the company's own data. Such templates can be imported in one click,
since the data mapping is already done. To download a template click :guilabel:`Import Template for
Customers` at the center of the page.
.. important::
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
options. These options do **not** appear when importing the proprietary Excel file type (`.xls`,
`.xlsx`).
.. image:: export_import_data/formatting.png
:align: center
:alt: Formatting options presented when a CVS file is imported in Odoo.
Make necessary adjustments to the *Formatting* options, and ensure all columns in the
:guilabel:`Odoo field` and :guilabel:`File Column` are free of errors. Finally, click
:guilabel:`Import` to import the data.
Adapt a template
----------------
Import templates are provided in the import tool of the most common data to import (contacts,
products, bank statements, etc.). Open them with any spreadsheet software (*Microsoft Office*,
*OpenOffice*, *Google Drive*, etc.).
Once the template is downloaded, proceed to follow these steps:
- Add, remove, and sort columns to best fit the data structure.
- It is strongly advised to **not** remove the :guilabel:`External ID` (ID) column (see why in the
next section).
- Set a unique ID to every record by dragging down the ID sequencing in the :guilabel:`External ID`
(ID) column.
.. image:: export_import_data/dragdown.gif
:align: center
:alt: An animation of the mouse dragging down the ID column, so each record has a unique ID.
.. note::
When a new column is added, Odoo may not be able to map it automatically, if its label does not
fit any field within Odoo. However, new columns can be mapped manually when the import is tested.
Search the drop-down menu for the corresponding field.
.. image:: export_import_data/field_list.png
:align: center
:alt: Drop-down menu expanded in the initial import screen on Odoo.
Then, use this field's label in the import file to ensure future imports are successful.
.. tip::
Another useful way to find out the proper column names to import is to export a sample file
using the fields that should be imported. This way, if there is not a sample import template,
the names are accurate.
Import from another application
-------------------------------
The :guilabel:`External ID` (ID) is a unique identifier for the line item. Feel free to use one
from previous software to facilitate the transition to Odoo.
Setting an ID is not mandatory when importing, but it helps in many cases:
- Update imports: import the same file several times without creating duplicates.
- :ref:`Import relation fields <export_import_data/relation-fields>`.
To recreate relationships between different records, the unique identifier from the original
application should be used to map it to the :guilabel:`External ID` (ID) column in Odoo.
When another record is imported that links to the first one, use **XXX/ID** (XXX/External ID) for
the original unique identifier. This record can also be found using its name.
.. warning::
It should be noted that there will be a conflict if two or more records have the same name.
The :guilabel:`External ID` (ID) can also be used to update the original import, if modified data
needs to be re-imported later, therefore, it is a good practice to specify it whenever possible.
Field missing to map column
---------------------------
Odoo heuristically tries to find the type of field for each column inside the imported file, based
on the first ten lines of the files.
For example, if there is a column only containing numbers, only the fields with the *integer* type
are presented as options.
While this behavior might be beneficial in most cases, it is also possible that it could fail, or
the column may be mapped to a field that is not proposed by default.
If this happens, check the :guilabel:`Show fields of relation fields (advanced) option`, then a
complete list of fields becomes available for each column.
.. image:: export_import_data/field_list.png
:align: center
:alt: Searching for the field to match the tax column.
Change data import format
-------------------------
.. note::
Odoo can automatically detect if a column is a date, and tries to guess the date format from a
set of most commonly used date formats. While this process can work for many date formats, some
date formats are not recognizable. This can cause confusion, due to day-month inversions; it is
difficult to guess which part of a date format is the day, and which part is the month, in a
date, such as `01-03-2016`.
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
options.
To view which date format Odoo has found from the file, check the :guilabel:`Date Format` that is
shown when clicking on options under the file selector. If this format is incorrect, change it to
the preferred format using *ISO 8601* to define the format.
.. important::
*ISO 8601* is an international standard, covering the worldwide exchange, along with the
communication of date and time-related data. For example, the date format should be `YYYY-MM-DD`.
So, in the case of July 24th 1981, it should be written as `1981-07-24`.
.. tip::
When importing Excel files (`.xls`, `.xlsx`), consider using *date cells* to store dates. This
maintains locale date formats for display, regardless of how the date is formatted in Odoo. When
importing a :abbr:`CSV (Comma-separated Values)` file, use Odoo's :guilabel:`Formatting` section
to select the date format columns to import.
Import numbers with currency signs
----------------------------------
Odoo fully supports numbers with parenthesis to represent negative signs, as well as numbers with
currency signs attached to them. Odoo also automatically detects which thousand/decimal separator is
used. If a currency symbol unknown to Odoo is used, it might not be recognized as a number, and the
import crashes.
.. note::
When importing a :abbr:`CSV (Comma-separated Values)` file, the :guilabel:`Formatting` menu
appears on the left-hand column. Under these options, the :guilabel:`Thousands Separator` can be
changed.
Examples of supported numbers (using 'thirty-two thousand' as the figure):
- 32.000,00
- 32000,00
- 32,000.00
- -32000.00
- (32000.00)
- $ 32.000,00
- (32000.00 €)
Example that will not work:
- ABC 32.000,00
- $ (32.000,00)
.. important::
A :guilabel:`() (parenthesis)` around the number indicates that the number is a negative value.
The currency symbol **must** be placed within the parenthesis for Odoo to recognize it as a
negative currency value.
Import preview table not displayed correctly
--------------------------------------------
By default, the import preview is set on commas as field separators, and quotation marks as text
delimiters. If the :abbr:`CSV (Comma-separated Values)` file does not have these settings, modify
the :guilabel:`Formatting` options (displayed under the :guilabel:`Import` :abbr:`CSV
(Comma-separated Values)` file bar after selecting the :abbr:`CSV (Comma-separated Values)` file).
.. important::
If the :abbr:`CSV (Comma-separated Values)` file has a tabulation as a separator, Odoo does
**not** detect the separations. The file format options need to be modified in the spreadsheet
application. See the following :ref:`Change CSV file format <export_import_data/change-csv>`
section.
.. _export_import_data/change-csv:
Change CSV file format in spreadsheet application
-------------------------------------------------
When editing and saving :abbr:`CSV (Comma-separated Values)` files in spreadsheet applications, the
computer's regional settings are applied for the separator and delimiter. Odoo suggests using
*OpenOffice* or *LibreOffice*, as both applications allow modifications of all three options (from
*LibreOffice* application, go to :menuselection:`'Save As' dialog box --> Check the box 'Edit filter
settings' --> Save`).
Microsoft Excel can modify the encoding when saving (:menuselection:`'Save As' dialog box -->
'Tools' drop-down menu --> Encoding tab`).
Difference between Database ID and External ID
----------------------------------------------
Some fields define a relationship with another object. For example, the country of a contact is a
link to a record of the 'Country' object. When such fields are imported, Odoo has to recreate links
between the different records. To help import such fields, Odoo provides three mechanisms.
.. important::
**Only one** mechanism should be used per field that is imported.
For example, to reference the country of a contact, Odoo proposes three different fields to import:
- :guilabel:`Country`: the name or code of the country
- :guilabel:`Country/Database ID`: the unique Odoo ID for a record, defined by the ID PostgreSQL
column
- :guilabel:`Country/External ID`: the ID of this record referenced in another application (or the
`.XML` file that imported it)
For the country of Belgium, for example, use one of these three ways to import:
- :guilabel:`Country`: `Belgium`
- :guilabel:`Country/Database ID`: `21`
- :guilabel:`Country/External ID`: `base.be`
According to the company's need, use one of these three ways to reference records in relations. Here
is an example when one or the other should be used, according to the need:
- Use :guilabel:`Country`: this is the easiest way when data comes from :abbr:`CSV (Comma-separated
Values)` files that have been created manually.
- Use :guilabel:`Country/Database ID`: this should rarely be used. It is mostly used by developers
as the main advantage is to never have conflicts (there may be several records with the same name,
but they always have a unique Database ID)
- Use :guilabel:`Country/External ID`: use *External ID* when importing data from a third-party
application.
When *External IDs* are used, import :abbr:`CSV (Comma-separated Values)` files with the
:guilabel:`External ID` (ID) column defining the *External ID* of each record that is imported.
Then, a reference can be made to that record with columns, like `Field/External ID`. The following
two :abbr:`CSV (Comma-separated Values)` files provide an example for products and their categories.
- :download:`CSV file for categories
<export_import_data/External_id_3rd_party_application_product_categories.csv>`
- :download:`CSV file for Products
<export_import_data/External_id_3rd_party_application_products.csv>`
.. _export_import_data/relation-fields:
Import relation fields
----------------------
An Odoo object is always related to many other objects (e.g. a product is linked to product
categories, attributes, vendors, etc.). To import those relations, the records of the related object
need to be imported first, from their own list menu.
This can be achieved by using either the name of the related record, or its ID, depending on the
circumstances. The ID is expected when two records have the same name. In such a case add `/ ID`
at the end of the column title (e.g. for product attributes: `Product Attributes / Attribute / ID`).
Options for multiple matches on fields
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If, for example, there are two product categories with the child name `Sellable` (e.g. `Misc.
Products/Sellable` & `Other Products/Sellable`), the validation is halted, but the data may still be
imported. However, Odoo recommends that the data is not imported because it will all be linked to
the first `Sellable` category found in the *Product Category* list (`Misc. Products/Sellable`).
Odoo, instead, recommends modifying one of the duplicate's values, or the product category
hierarchy.
However, if the company does not wish to change the configuration of product categories, Odoo
recommends making use of the *External ID* for this field, 'Category'.
Import many2many relationship fields
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The tags should be separated by a comma, without any spacing. For example, if a customer needs to be
linked to both tags: `Manufacturer` and `Retailer` then 'Manufacturer,Retailer' needs to be encoded
in the same column of the :abbr:`CSV (Comma-separated Values)` file.
- :download:`CSV file for Manufacturer, Retailer <export_import_data/m2m_customers_tags.csv>`
Import one2many relationships
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If a company wants to import a sales order with several order lines, a specific row **must** be
reserved in the :abbr:`CSV (Comma-separated Values)` file for each order line. The first order line
is imported on the same row as the information relative to order. Any additional lines need an
additional row that does not have any information in the fields relative to the order.
As an example, here is a :abbr:`CSV (Comma-separated Values)` file of some quotations that can be
imported, based on demo data:
- :download:`File for some Quotations
<export_import_data/purchase.order_functional_error_line_cant_adpat.csv>`
The following :abbr:`CSV (Comma-separated Values)` file shows how to import purchase orders with
their respective purchase order lines:
- :download:`Purchase orders with their respective purchase order lines
<export_import_data/o2m_purchase_order_lines.csv>`
The following :abbr:`CSV (Comma-separated Values)` file shows how to import customers and their
respective contacts:
- :download:`Customers and their respective contacts
<export_import_data/o2m_customers_contacts.csv>`
Import records several times
----------------------------
If an imported file contains one of the columns: :guilabel:`External ID` or :guilabel:`Database ID`,
records that have already been imported are modified, instead of being created. This is extremely
useful as it allows users to import the same :abbr:`CSV (Comma-separated Values)` file several
times, while having made some changes in between two imports.
Odoo takes care of creating or modifying each record, depending if it is new or not.
This feature allows a company to use the *Import/Export tool* in Odoo to modify a batch of records
in a spreadsheet application.
Value not provided for a specific field
---------------------------------------
If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined
field. But, if fields are set with empty values in the :abbr:`CSV (Comma-separated Values)` file,
Odoo sets the empty value in the field, instead of assigning the default value.
Export/import different tables from an SQL application to Odoo
--------------------------------------------------------------
If data needs to be imported from different tables, relations need to be recreated between records
belonging to different tables. For instance, if companies and people are imported, the link between
each person and the company they work for needs to be recreated.
To manage relations between tables, use the `External ID` facilities of Odoo. The `External ID` of a
record is the unique identifier of this record in another application. The `External ID` must be
unique across all records of all objects. It is a good practice to prefix this `External ID` with
the name of the application or table. (like, 'company_1', 'person_1' - instead of '1')
As an example, suppose there is an SQL database with two tables that are to be imported: companies
and people. Each person belongs to one company, so the link between a person and the company they
work for must be recreated.
Test this example, with a :download:`sample of a PostgreSQL database
<export_import_data/database_import_test.sql>`.
First, export all companies and their *External ID*. In PSQL, write the following command:
.. code-block:: sh
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
This SQL command creates the following :abbr:`CSV (Comma-separated Values)` file:
.. code-block:: text
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
To create the :abbr:`CSV (Comma-separated Values)` file for people linked to companies, use the
following SQL command in PSQL:
.. code-block:: sh
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
It produces the following :abbr:`CSV (Comma-separated Values)` file:
.. code-block:: text
External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
In this file, Fabien and Laurence are working for the Bigees company (`company_1`), and Eric is
working for the Organi company. The relation between people and companies is done using the
*External ID* of the companies. The *External ID* is prefixed by the name of the table to avoid a
conflict of ID between people and companies (`person_1` and `company_1`, who shared the same ID 1 in
the original database).
The two files produced are ready to be imported in Odoo without any modifications. After having
imported these two :abbr:`CSV (Comma-separated Values)` files, there are four contacts and three
companies (the first two contacts are linked to the first company). Keep in mind to first import
the companies, and then the people.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 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: 36 KiB

@@ -0,0 +1,191 @@
======================
In-app purchases (IAP)
======================
.. |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::
Enterprise Odoo users with a valid subscription get free credits to test IAP features before
deciding to purchase more credits for the database. This includes demo/training databases,
educational databases, and one-app-free databases.
.. _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 offered 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.
- :guilabel:`Signer identification with itsme®️`: ask document signatories in Odoo *Sign* to provide
their identity using the *itsme®* identity platform, which is available in Belgium and the
Netherlands.
For more information on every service currently available (offered from developers other than Odoo),
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:`📱 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:
First, 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.
Next, find the :guilabel:`📱 SMS` icon that appears to the right of the :guilabel:`Phone` or
:guilabel:`Mobile` fields. Click the :guilabel:`📱 SMS` icon, and a :guilabel:`Send SMS Text
Message` pop-up window appears.
Type a message in the :guilabel:`Message` field of the 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 <../sales/crm/acquire_leads/lead_mining>`
- :doc:`Enrich your contacts base with Partner Autocomplete
<../sales/crm/optimize/partner_autocomplete>`
- :doc:`SMS essentials <../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
<../marketing/sms_marketing/pricing/pricing_and_faq>` documentation.
.. _iap/buying_credits:
Buy credits
-----------
If there are not enough credits to perform a task, the database automatically prompts the purchase
of more credits.
Users can check the current balance of credits for each service, and manually purchase more credits,
by navigating to the :menuselection:`Settings app --> Contacts section`, and beneath the
:guilabel:`Odoo IAP` setting, click :guilabel:`View My Services`.
Doing so reveals a :guilabel:`My Services` 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.
Manually buy credits
~~~~~~~~~~~~~~~~~~~~
To manually buy credits in Odoo, follow these steps:
First, go to the :menuselection:`Settings application` and type `IAP` in the :guilabel:`Search...`
bar. Alternatively users can scroll down to the :guilabel:`Contacts` section. Under the
:guilabel:`Contacts` section, where it says :guilabel:`Odoo IAP`, click :guilabel:`View My
Services`.
.. image:: in_app_purchase/view-services.png
:align: center
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
database. From here, click an |IAP| service to open details about it; additional credits can be
purchased from here.
On the following page, click the :guilabel:`Buy Credit` button. 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.
.. 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.
Once the transaction is complete, the credits are available for use in the database.
.. _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`, and type `IAP` in the :guilabel:`Search...` bar.
Under the :guilabel:`Contacts` section, where it says :guilabel:`Odoo IAP`, 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 details.
On the details page, tick the :guilabel:`Receive threshold warning` checkbox. Doing so reveals two
fields on the form: :guilabel:`Warning Threshold` and :guilabel:`Contact Email`.
In the :guilabel:`Warning Threshold` field, enter an amount of credits Odoo should use as the
minimum threshold for this service. In the :guilabel:`Contact Email` field, enter the email address
that receives the notification.
Odoo sends a low-credit alert to the :guilabel:`Contact Email` when the balance of credits falls
below the amount listed as the :guilabel:`Warning Threshold`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

-2
View File
@@ -9,7 +9,5 @@ Finance
finance/accounting
finance/expenses
finance/documents
finance/sign
finance/payment_acquirers
finance/fiscal_localizations
@@ -47,9 +47,7 @@ Draft invoices
--------------
The system generates invoice which are initially set to the Draft state.
While these invoices
remain unvalidated, they have no accounting impact within the system.
While these invoices remain unvalidated, they have no accounting impact within the system.
There is nothing to stop users from creating their own draft invoices.
Let's create a customer invoice with following information:
@@ -36,22 +36,20 @@ your customers address is set correctly, including the country, before sendin
<developer-mode>`, go to :menuselection:`General Settings --> Technical --> Reporting
section: Paper Format`.
- A square of **15mm by 15mm** on the bottom left corner has to stay clear.
- The postage area has to stay clear (click :download:`here <snailmail/snailmail-template.pdf>`
to get more info about the area).
- The postage area has to stay clear (:download:`download the snailmail PDF template
<snailmail/snailmail-template.pdf>` for more details).
- Pingen (Odoo Snailmail service provider) scans the area to process the address, so if something
gets written outside the area, it is not counted as part of the address.
Pricing
=======
Snailmail is an :doc:`/applications/general/in_app_purchase` service that requires prepaid stamps
Snailmail is an :doc:`/applications/essentials/in_app_purchase` service that requires prepaid stamps
(=credits) to work. Sending one document consumes one stamp.
To buy stamps, go to :menuselection:`Accounting --> Configuration --> Settings --> Customer
invoices: Snailmail`, click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> In-App
Purchases: Odoo IAP`, and click on :guilabel:`View my Services`.
.. tip::
- If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits
to test the feature.
- Click `here <https://iap.odoo.com/privacy#header_4>`_ to know about our *Privacy Policy*.
.. seealso::
`Odoo's IAP Privacy Policy <https://iap.odoo.com/privacy#header_4>`_
@@ -25,11 +25,14 @@ to reflect the change in inventory valuation. However, Odoo does **not** automat
valuation <inventory/avg_price/leaving_inventory>`.
.. note::
This document addresses a specific use case for theoretical purposes. Navigate :ref:`here
<inventory/inventory_valuation_config>` for instructions on how to set up and use |AVCO| in Odoo.
This document addresses a specific use case for theoretical purposes. For instructions on how to
set up and use |AVCO|, refer to the :doc:`inventory valuation configuration
<../../../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`
doc.
.. seealso::
- :ref:`Using inventory valuation <inventory/reporting/using_inventory_val>`
- :doc:`Using inventory valuation
<../../../inventory_and_mrp/inventory/management/reporting/using_inventory_valuation>`
- :ref:`Other inventory valuation methods <inventory/inventory_valuation_config/costing_methods>`
Configuration
@@ -41,7 +44,8 @@ product category page, set :guilabel:`Costing Method` to `Average Cost (AVCO)` a
:guilabel:`Inventory Valuation` to `Automated`.
.. seealso::
:ref:`Inventory valuation configuration <inventory/inventory_valuation_config>`
:doc:`Inventory valuation configuration
<../../../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`
Using average cost valuation
============================
@@ -4,15 +4,15 @@
Payments
========
In Odoo, payments can either be linked automatically to an invoice or bill or be stand-alone records
for use at a later date.
In Odoo, payments can either be automatically linked to an invoice or bill or be stand-alone records
for use at a later date:
If a payment is **linked to an invoice or bill**, it reduces the amount due of the invoice. You can
have multiple payments related to the same invoice.
- If a payment is **linked to an invoice or bill**, it reduces/settles the amount due of the
invoice. You can have multiple payments related to the same invoice.
If a payment is **not linked to an invoice or bill**, the customer has an outstanding credit with
your company, or your company has an outstanding debit with a vendor. You can use those outstanding
amounts to reduce unpaid invoices/bills.
- If a payment is **not linked to an invoice or bill**, the customer has an outstanding credit with
your company, or your company has an outstanding debit with a vendor. You can use those
outstanding amounts to reduce/settle unpaid invoices/bills.
.. seealso::
- :doc:`Internal transfers <payments/internal_transfers>`
@@ -23,69 +23,64 @@ amounts to reduce unpaid invoices/bills.
Registering payment from an invoice or bill
===========================================
When clicking on :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a
new journal entry and changes the amount due according to the amount of the payment. The counterpart
is reflected in an outstanding receipts or payments account. At this point, the customer invoice or
vendor bill is marked as :guilabel:`In payment`. Then, when the outstanding account is reconciled
with a bank statement line, the invoice or vendor bill changes to the :guilabel:`Paid` status.
When clicking :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a new
journal entry and changes the amount due according to the payment amount. The counterpart is
reflected in an :ref:`outstanding <bank/outstanding-accounts>` **receipts** or **payments** account.
At this point, the customer invoice or vendor bill is marked as :guilabel:`In payment`. Then, when
the outstanding account is reconciled with a bank statement line, the invoice or vendor bill changes
to the :guilabel:`Paid` status.
The information icon near the payment line displays more information about the payment. You can
access additional information, such as the related journal, by clicking on :guilabel:`View`.
access additional information, such as the related journal, by clicking :guilabel:`View`.
.. image:: payments/information-icon.png
:alt: See detailed information of a payment
:alt: See detailed information of a payment.
.. note::
- The customer invoice or vendor bill should be in the status :guilabel:`Posted` to register the
- The customer invoice or vendor bill must be in the :guilabel:`Posted` status to register the
payment.
- When clicking on :guilabel:`Register payment`, you can select the amount to pay and make a
partial or full payment.
- If your main bank account is set as :ref:`outstanding account
<bank/outstanding-accounts>`, and the payment is made in Odoo (not related to a
bank statement), invoices and bills are directly registered in the status :guilabel:`Paid`.
- If you unreconciled a payment, it still appears in your books but is no longer linked to the
- If you unreconcile a payment, it still appears in your books but is no longer linked to the
invoice.
- If you (un)reconcile a payment in a different currency, a journal entry is automatically
created to post the currency exchange gains/losses (reversal) amount.
- If you (un)reconcile a payment and an invoice having cash basis taxes, a journal entry is
automatically created to post the cash basis tax (reversal) amount.
.. seealso::
- :doc:`bank/reconciliation`
.. tip::
- If your main bank account is set as an :ref:`outstanding account
<bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a related
bank statement), invoices and bills are directly registered as :guilabel:`Paid`.
Registering payments not tied to an invoice or bill
===================================================
When a new payment is registered via the menu :menuselection:`Customers / Vendors --> Payments`, it
is not directly linked to an invoice or bill. Instead, the account receivable or the account payable
are matched with the outstanding account until they are manually matched with their related invoice
or bill.
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments` menu, it is
not directly linked to an invoice or bill. Instead, the account receivable or the account payable is
matched with the **outstanding account** until it is manually matched with its related invoice or
bill.
Matching invoices and bills with payments
-----------------------------------------
A blue banner appears when you validate a new invoice or bill and there is an outstanding payment
for this specific customer or vendor. It can easily be matched from the invoice or the bill by
clicking on :guilabel:`ADD` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
A blue banner appears when you validate a new invoice/bill and an **outstanding payment** exists for
this specific customer or vendor. It can easily be matched from the invoice or bill by clicking
:guilabel:`ADD` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
.. image:: payments/add-option.png
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment.
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with the bank
statement.
.. seealso::
- :doc:`bank/reconciliation`
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with its
corresponding bank statement.
Batch payment
-------------
Batch payments allow you to group different payments to ease :doc:`reconciliation
<bank/reconciliation>`. They are also useful when you deposit checks to the bank or
for SEPA Payments. To do so, go to :menuselection:`Accounting --> Customers --> Batch Payments` or
:menuselection:`Accounting --> Vendors --> Batch Payments`. In the list view of payments, you can
select several payments and group them in a batch by clicking on :menuselection:`Action --> Create
Batch Payment`.
<bank/reconciliation>`. They are also useful when you deposit :doc:`checks <payments/checks>` to the
bank or for :doc:`SEPA payments <payments/pay_sepa>`. To do so, go to :menuselection:`Accounting -->
Customers --> Batch Payments` or :menuselection:`Accounting --> Vendors --> Batch Payments`. In the
list view of payments, you can select and group several payments in a batch by clicking
:menuselection:`Action --> Create Batch Payment`.
.. seealso::
- :doc:`payments/batch`
@@ -97,36 +92,50 @@ Payments matching
-----------------
The :guilabel:`Payments matching` tool opens all unreconciled customer invoices or vendor bills and
gives you the opportunity to process them all one by one, doing the matching of all their payments
and invoices at once. You can reach this tool from the :menuselection:`Accounting Dashboard -->
Customer Invoices / Vendor Bills`, and click on :guilabel:`` and select :guilabel:`Payments
Matching`, or by going to :menuselection:`Accounting --> Reconciliation`.
allows you to process them individually, matching all payments and invoices in one place. You can
reach this tool from the :menuselection:`Accounting Dashboard --> Customer Invoices / Vendor Bills`,
click the drop-down menu button (:guilabel:`⋮`), and select :guilabel:`Payments Matching`, or go to
:menuselection:`Accounting --> Accounting --> Reconciliation`.
.. image:: payments/payments-journal.png
:alt: Payments matching menu in the drop-down menu.
.. note::
During the :doc:`reconciliation <bank/reconciliation>`, if the sum of the debits
and credits does not match, there is a remaining balance. This either needs to be reconciled at a
later date or needs to be written off directly.
During the :doc:`reconciliation <bank/reconciliation>`, if the sum of the debits and credits does
not match, there is a remaining balance. This either needs to be reconciled at a later date or
needs to be written off directly.
Batch payments matching
-----------------------
To reconcile several outstanding payments or invoices at once, for a specific customer or vendor,
the batch reconciliation feature can be used. Go to :menuselection:`Accounting --> Reporting -->
Aged Receivable / Aged Payable`. You now see all transactions that have not been reconciled yet, and
when you select a customer or vendor, the :guilabel:`Reconcile` option is displayed.
You can use the batch reconciliation feature to reconcile several outstanding payments or invoices
simultaneously for a specific customer or vendor. Go to :menuselection:`Accounting --> Reporting -->
Aged Receivable / Aged Payable`. You can see all transactions that have not been reconciled yet for
that partner, and when you select a customer or vendor, the :guilabel:`Reconcile` option is
displayed.
.. image:: payments/reconcile-option.png
:alt: See the reconcile option
:alt: See the reconcile option.
Registering a partial payment
=============================
To register a **partial payment**, click :guilabel:`Register payment` from the related invoice or
bill, and enter the amount received or paid. Upon entering the amount, a prompt appears to decide
whether to :guilabel:`Keep open` the invoice or bill, or :guilabel:`Mark as fully paid`. Select
:guilabel:`Keep open` and click :guilabel:`Create payment`. The invoice or bill is now marked as
:guilabel:`Partial`. Select :guilabel:`Mark as fully paid` if you wish to settle the invoice or bill
with a difference in the amount.
.. image:: payments/payment-difference.png
:alt: Partial payment of an invoice or bill.
Reconciling payments with bank statements
=========================================
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The
next step is to reconcile it with the related bank statement line to have the transaction finalized
and the invoice or bill marked as :guilabel:`Paid`.
.. seealso::
- :doc:`bank/reconciliation`
next step is :doc:`reconciling <bank/reconciliation>` it with the related bank statement line to
have the transaction finalized and the invoice or bill marked as :guilabel:`Paid`.
.. toctree::
:titlesonly:
@@ -139,5 +148,4 @@ and the invoice or bill marked as :guilabel:`Paid`.
payments/internal_transfers
payments/pay_sepa
payments/pay_checks
payments/multiple
payments/forecast
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

@@ -94,6 +94,6 @@ select all the reports you would like to process, click on the :guilabel:`Action
select :guilabel:`Process follow-ups`.
.. seealso::
- :doc:`../../../general/in_app_purchase`
- :doc:`../../../marketing/sms_marketing/pricing/pricing_and_faq`
- :doc:`/applications/essentials/in_app_purchase`
- :doc:`/applications/marketing/sms_marketing/pricing/pricing_and_faq`
- :doc:`../customer_invoices/snailmail`
@@ -1,53 +0,0 @@
=========================
Pay several bills at once
=========================
Odoo offers the possibility of grouping multiple bills' payments into one, facilitating the
reconciliation process.
.. seealso::
- :doc:`/applications/inventory_and_mrp/purchase/manage_deals/manage`
- :doc:`/applications/finance/accounting/bank/reconciliation`
Group payments
==============
To register the payment of multiple bills at once, go to :menuselection:`Accounting app -->
Vendors --> Bills`. Then, select the bills you wish to register a payment for by **ticking** the
boxes next to the bills. When done, either click :guilabel:`Register Payment` or
:menuselection:`Action --> Register Payment`.
.. image:: multiple/register-payment-button.png
:align: center
:alt: Register payment button.
.. note::
Payments can only be registered for :guilabel:`posted` bills.
When registering the payments, a **pop-up window** appears. From here, you can either create
**separate payments** for each bill all at once by clicking :guilabel:`Create Payment`, *or* create
one payment by combining **all** bills' payments. To **combine** all payments, tick the
:guilabel:`Group Payments` box.
.. note::
The :guilabel:`Group Payments` option only appears when selecting two or more bills.
.. image:: multiple/multiple-group-payments.png
:align: center
:alt: Group payments options when registering a payment.
When selecting :guilabel:`Group Payments`, the :guilabel:`amount, currency, date and memo` are all
set automatically, but you can modify them according to your needs.
Partial group payments with cash discounts
------------------------------------------
In case of **partial group payments with cash discounts**, you can follow the steps found on the
:doc:`cash discount documentation page
</applications/finance/accounting/customer_invoices/cash_discounts>`. Make sure to
apply the :doc:`payment terms
</applications/finance/accounting/customer_invoices/payment_terms>` to the **bills**
*instead* of the invoices.
.. seealso::
:doc:`/applications/finance/accounting/customer_invoices/payment_terms`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

@@ -13,14 +13,15 @@ Activate checks payment methods
-------------------------------
To activate the checks payment method, go to :menuselection:`Accounting --> Configuration -->
Checks`, there you can activate the payment method as well as set up the :guilabel:`Check Layout`.
Once activated the :guilabel:`Checks` setting, the feature is automatically setup for your
:guilabel:`Outgoing Payments`.
Settings`, and scroll down to the :guilabel:`Vendor Payments` section. There, you can activate the
payment method as well as set up the :guilabel:`Check Layout`.
.. note::
Some countries require specific modules to print checks; such modules may be installed by
default. For instance, the :guilabel:`U.S. Checks Layout` module is required to print U.S.
checks.
- Once the :guilabel:`Checks` setting is activated, the **Checks** payment method is
automatically set up in the :guilabel:`Outgoing Payments` tabs of **bank** journals.
- Some countries require specific modules to print checks; such modules may be installed by
default. For instance, the :guilabel:`U.S. Checks Layout` module is required to print U.S.
checks.
Compatible check stationery for printing checks
===============================================
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

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