Compare commits

...

40 Commits

Author SHA1 Message Date
Mahmoud Metwally 23786f6cc9 Update web_services.rst
X-original-commit: e8c29ef8c2
2023-04-13 19:20:49 +02:00
Martin Trigaux 62a362f30a [I18N] *: export source terms
closes odoo/documentation#4150

X-original-commit: d53ba8c7e2
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-04-13 17:57:26 +02:00
wangting 9fb8c5c354 [FIX] tutorials/js_framework: fix typo
closes odoo/documentation#4148

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-13 16:40:41 +02:00
Martin Trigaux 1e39949363 [IMP] reference: update markup documentation
closes odoo/documentation#3612

Related: odoo/odoo#111850
Related: odoo/enterprise#36728
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-04-13 16:39:45 +02:00
Brandon Seltenrich (BRSE) afe0282420 [IMP] inventory: update owned_stock
closes odoo/documentation#4143

X-original-commit: 1289a9ec45
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2023-04-13 05:07:57 +02:00
Loan (LSE) 74f4204857 [IMP] iot: add documentation regarding HTTPS certificate
Also include details/troubleshoot/solutions for redundant
support issues:
 - Error code details for HTTPS certificate generation
   (see: https://github.com/odoo/odoo/pull/114993 )
 - DNS issue with HTTPS domain

 OPW-3227004

closes odoo/documentation#4137

X-original-commit: 6f4822cb2b
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-13 05:07:52 +02:00
Elisabeth Dickinson 81d1f2d21b [IMP] odoo_theme: design improvements
Revamp of the side menu;
Round all borders for consistency with the buttons;
Improve .sig-* and .o_code elements;
Improve sphinx-tabs hover effect;

task-3046383

closes odoo/documentation#4114

X-original-commit: 3056c7b62d
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-12 12:26:14 +02:00
Elisabeth Dickinson 9dc32cdd4e [IMP] odoo_theme: general cleanup
A general reorganization of the code was needed for more clarity.
The different markup styles have been grouped together under a common
"chapter", comments have been rewritten and example pages have been
added for context.

Some levels have been removed Where there were too many for no reason.
By removing one level of styles (e.g.: `#wrap`) we avoid needing to
force overrides or adding `!important` to our code.
⌙ e.g.: before commit 9ef86cd93d8c6fc0fd96b437f629237e7a562c6e,
`.o_spoilers .accordion-body >:first-child` was being involuntarily
overridden.

task-3046383

X-original-commit: 620e3c33ef
Part-of: odoo/documentation#4114
2023-04-12 12:26:14 +02:00
Antoine Vandevenne (anv) febf7c4188 [IMP] odoo_theme: tweak the HTML structure of TOC entries
task-3046383

X-original-commit: 877d1de3c2
Part-of: odoo/documentation#4114
2023-04-12 12:26:14 +02:00
Antoine Vandevenne (anv) 71f3ea88bd [IMP] extensions/custom_admonitions: tweak the HTML structure of dfn
The structure of the `dfn` role is changed from its default
`<em class="dfn">text</em>` to
`<span class="dfn"><span>text</span></span>` to ease the styling.

task-3046383

X-original-commit: 281a893540
Part-of: odoo/documentation#4114
2023-04-12 12:26:13 +02:00
Jonathan Castillo (jcs) ad4e8e649a [MOV] calendar: "Calendar" app from "Misc" to "Productivity"
To improve the structure of the documentation, the "Miscellaneous"
section should be limited as much as possible.

This commit:
- renames "Calendars" into "Calendar" (as the app name)
- moves the app from the "Miscellaneous" section to the "Productivity"
  section
- fixes the wrong file structure to follow the toc
  (e.g. general/calendars/outlook/outlook_calendar -> productivity/calendar/outlook)

task-3217827

closes odoo/documentation#4128

X-original-commit: 3d2c5d7c16
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-12 08:05:50 +02:00
Jonathan Castillo (jcs) 5cfec84463 [MOV] live chat: structure
task-3269837

closes odoo/documentation#4129

X-original-commit: 1685449f61
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-12 07:07:47 +02:00
Jonathan Castillo (jcs) 59066fed29 [MOV] website: structure
As a first step to update the doc - at last! - we first need to update
its structure.

task-3269837

X-original-commit: 180963cd89
Part-of: odoo/documentation#4129
2023-04-12 07:07:46 +02:00
fvz-odoo eabb865415 [l10n_mx] Update exempt tax configuration.
In Mexico there are two 0% taxes, 0% VAT and 0% exempt VAT. This change
makes the tip clearer so users do not confuse both taxes. Forward to
master.

closes odoo/documentation#4120

X-original-commit: 5ef339fe82
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-11 19:48:38 +02:00
Jess Rogers (jero) e4624b9fdb [IMP] helpdesk: update ticket closing
closes odoo/documentation#4104

X-original-commit: a1b86849b7
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2023-04-11 18:49:34 +02:00
Victor Feyens b5140e2d22 [ADD] tests: image size checker
closes odoo/documentation#4100

X-original-commit: 380a5499de
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-11 15:17:26 +02:00
Brandon Seltenrich (BRSE) 4314b73e2c [IMP] purchase: update bill control policies doc
closes odoo/documentation#4094

X-original-commit: c59db7d9f8
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-11 01:35:58 +02:00
John Holton (hojo) 46881ee8fb [IMP] Inventory: Update dropshipping
closes odoo/documentation#4082

X-original-commit: bbbca62f6f
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-10 23:07:48 +02:00
John Holton (hojo) e445c1117b [ADD] Quality: add Create quality alerts
closes odoo/documentation#4090

X-original-commit: 1b640a7a30
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-10 22:10:54 +02:00
Jonathan Castillo (jcs) 6b4bc0b680 [IMP] subscriptions: overhaul of the basic docs
This commit improves the structure of the Subscription doc and updates
its content (recurring products, subscription plans, sales flow)

task-3222232

closes odoo/documentation#4070

X-original-commit: 878fc0e21f
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
Co-authored-by: Xavier Platteau <xpl@odoo.com>
Co-authored-by: Tom Aarab <toaa@odoo.com>"
2023-04-08 13:40:25 +02:00
Sam Lieber (sali) cd55555d79 [IMP] purchase: update reordering rules config doc
closes odoo/documentation#4076

X-original-commit: 728a462762
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-08 05:27:49 +02:00
Jess Rogers (jero) c44801c718 [IMP] helpdesk: updated sla policies
closes odoo/documentation#4069

X-original-commit: 401a19fcdc
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-08 00:54:56 +02:00
“Chiara 2eafd205de [IMP] accounting: update batch payments
closes odoo/documentation#4058

X-original-commit: 67f10d3eca
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
Signed-off-by: chiaraprattico <chpr@odoo.com>
2023-04-06 13:51:59 +02:00
John Holton (hojo) 2c819a05c2 [IMP] Inventory: Update inter-warehouse replenishment
closes odoo/documentation#4046

X-original-commit: 6f6e018db4
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-06 04:16:51 +02:00
KC (ksc) 6a597e2e94 [ADD] sms marketing: added essentials/getting started docs
closes odoo/documentation#4051

X-original-commit: e8ad53cead
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-04-06 03:15:42 +02:00
Jonathan Castillo (jcs) 03dc488290 [IMP] accounting: bank statements in the transactions page
task-3264491

closes odoo/documentation#4041

X-original-commit: 2d7a48a65e
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-05 23:25:15 +02:00
Melanie Nguyen (meng) 5c2e78c8a5 [FIX] crm: replace old lead scoring content with predictive lead scoring
closes odoo/documentation#4030

X-original-commit: 9f72036be8
Signed-off-by: Melanie Nguyen (meng) <meng@odoo.com>
2023-04-05 21:03:54 +02:00
Tiffany Chang (tic) ab1563e7c7 [REF] developer: rewrite sql view as a howto
SQL view was formerly part of the dashboard tutorial which is now
obsolete. Since creating a SQL view as a tutorial does not make sense
anymore, it has been converted into a simple howto.

closes odoo/documentation#4035

Task: 3226581
X-original-commit: 7124542ed9
Signed-off-by: Tiffany Chang <tic@odoo.com>
2023-04-05 17:31:58 +02:00
Tiffany Chang (tic) e18b24a176 [REM] developer: remove references to web_dashboard view
Since odoo/enterprise#31641 the dashboard view no longer exists since it
is now replaced with spreadsheet_dashboard, therefore we remove it from
the backend Views documentation.

Task: 3226581
X-original-commit: e2c880aafe
Part-of: odoo/documentation#4035
2023-04-05 17:31:58 +02:00
fdardenne 56a5b0480e [IMP] create JavaScript howtos
The JavaScript cheatsheet is outdated, we therefore remove it and
replace it by multiple howtos:

- Create a view from scratch
- Extending an existing view
- Create a field from scratch
- Extend an existing field
- Create a client action

There is other subjects to introduce as the web framework is big. Other
future contributions will cover them.

closes odoo/documentation#4020

X-original-commit: 7e4435deb8
Signed-off-by: Dardenne Florent (dafl) <dafl@odoo.com>
2023-04-05 13:57:53 +02:00
“Audrey 931920bc31 [IMP] payment_providers/flutterwave: recommend ticking all checkboxes
task-3254461

closes odoo/documentation#4023

X-original-commit: 0a384a2a35
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: auva-odoo <auva@odoo.com>
2023-04-05 09:42:34 +02:00
Tom Aarab (toaa) 2b784e9ec1 [ADD] ecommerce: performance monitoring
Adding a doc page on performance monitoring and analysis for eCommerce
websites

closes odoo/documentation#4019

Taskid: 3246984
X-original-commit: 4c623b69b1
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
Signed-off-by: Aarab Tom (toaa) <toaa@odoo.com>
2023-04-05 07:44:42 +02:00
luvi 5e248b7017 [IMP] web: Add core components documentation
This commit adds the documentation for core components that have
been improved or moved during the Studio refactor. Some new props
have been added, and the documentation is now present as expected.

Components involved:
- Notebook
- SelectMenu
- TagsList

closes odoo/documentation#4007

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-04 18:07:11 +02:00
kcv-odoo ff846cc48d [IMP] backend: add disable_linking option in cohort view
Related PR: https://github.com/odoo/enterprise/pull/37396

task-3186590

closes odoo/documentation#3646

Related: odoo/enterprise#37396
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-04-04 18:07:01 +02:00
Loredana Perazzo 41e1bda1cc [ADD] pos: how to add/modify customer notes from POS UI
Task ID: 2622090

closes odoo/documentation#4013

X-original-commit: 3a0e23f3f9
Signed-off-by: Platteau Xavier (xpl) <xpl@odoo.com>
Signed-off-by: Perazzo Loredana (lrpz) <lrpz@odoo.com>
2023-04-04 16:02:03 +02:00
oskarenablebanking ae399fc411 [ADD] accounting: enablebanking
task-3232701

closes odoo/documentation#4002

X-original-commit: cc194eb979
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-03 21:47:10 +02:00
Jonathan Castillo (jcs) d70bd0b773 [MOV] accounting: structure of bank sync docs
X-original-commit: d694c6c9f5
Part-of: odoo/documentation#4002
2023-04-03 21:47:09 +02:00
Zuzanna Luczynska ddb34dd21c [ADD] field service: default warehouse
task-2948598

closes odoo/documentation#3999

X-original-commit: 40ef1a26f9
Signed-off-by: zulu-odoo <zulu@odoo.com>
Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com>
2023-04-03 18:08:55 +02:00
Benoit Socias 39d5455110 [IMP] tutorials: add warning about mutable global variables
The whole concept of multi-tenancy is not really approached within the
tutorial.

This commit adds a warning about never using mutable global variables
within odoo to seed the idea in the reader's mind.

task-3059110

closes odoo/documentation#3991

X-original-commit: 1ce7166f49
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Benoit Socias (bso) <bso@odoo.com>
2023-04-03 13:55:23 +02:00
“Audrey 59bf54b668 [IMP] Website: review website translation page
task-3255779

closes odoo/documentation#3978

X-original-commit: 67bada80e6
Signed-off-by: auva-odoo <auva@odoo.com>
2023-04-03 10:41:43 +02:00
433 changed files with 13805 additions and 48318 deletions
@@ -13,7 +13,7 @@ personal email address or an address created by a custom domain.
.. seealso::
- :doc:`/applications/general/auth/azure`
- :doc:`/applications/general/calendars/outlook/outlook_calendar`
- :doc:`/applications/productivity/calendar/outlook`
Setup in Microsoft Azure Portal
===============================
@@ -71,7 +71,7 @@ way to verify the ownership of your domain name is by adding a DNS record. You c
other providers.
.. seealso::
- :doc:`/applications/websites/website/optimize/seo`
- :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>`_
@@ -13,7 +13,7 @@ email address or an address created by a custom domain.
.. seealso::
- :doc:`/applications/general/auth/google`
- :doc:`/applications/general/calendars/google/google_calendar_credentials`
- :doc:`/applications/productivity/calendar/google`
Setup in Google
===============
@@ -8,6 +8,7 @@ Bank and cash
:titlesonly:
bank/setup
bank/feeds
bank/bank_synchronization
bank/transactions
bank/reconciliation
bank/interbank
@@ -1,6 +1,8 @@
======================================
Bank synchronization: automatic import
======================================
:show-content:
====================
Bank synchronization
====================
Odoo can synchronize directly with your bank institution to get all bank statements imported
automatically into your database.
@@ -15,9 +17,12 @@ To connect to the banks, Odoo uses multiple web-services:
- **Plaid**: United States of America and Canada
- **Yodlee**: Worldwide
- **Salt Edge**: Europe (:doc:`more information <saltedge>`)
- **Ponto**: Europe (:doc:`more information <ponto>`)
- **EnableBanking**: Scandinavian countries
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Europe
- :doc:`Ponto <bank_synchronization/ponto>`: Europe
- :doc:`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
.. seealso::
:doc:`transactions`
Configuration
=============
@@ -196,7 +201,9 @@ You can update your credentials by going to :menuselection:`Accounting Dashboard
Configuration --> Accounting: Online Synchronization`,open the connection you want to update your
credentials and click on the :guilabel:`Update Credentials` button.
.. seealso::
* :doc:`transactions`
* :doc:`ponto`
* :doc:`saltedge`
.. toctree::
:titlesonly:
bank_synchronization/saltedge
bank_synchronization/ponto
bank_synchronization/enablebanking
@@ -0,0 +1,36 @@
==============
Enable Banking
==============
**Enable Banking** is a third-party provider aggregating banking information from bank accounts all
in one place. It offers non-intrusive connectivity to ASPSPs' official APIs across Europe without
storing data.
.. image:: enablebanking/enablebanking.png
:align: center
:alt: Enable Banking logo
**Odoo** synchronizes directly with banks to get access to all bank transactions and automatically
import them into your database.
.. seealso::
- :doc:`../bank_synchronization`
- `Enable Banking website <https://enablebanking.com/>`_
Configuration
=============
Link bank accounts with Odoo
----------------------------
#. Start synchronization by clicking on :menuselection:`Accounting --> Configuration -->
Add a Bank Account`;
#. Select your bank;
#. Make sure you give your consent to share your account information with Odoo by clicking
:guilabel:`Continue authentication`;
.. image:: enablebanking/enablebankingauth.png
:align: center
:alt: Enable Banking authentication page
#. Finally, you are redirected to your bank's login page.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -1,6 +1,6 @@
======================================
Ponto as bank synchronization provider
======================================
=====
Ponto
=====
**Ponto** is a service that allows companies and professionals to aggregate their accounts in one
place and directly see all their transactions within one app. It is a third-party solution that is
@@ -16,9 +16,9 @@ into your database.
Ponto is a paid third-party provider that can handle the synchronization between your bank accounts
and Odoo. `Its pricing is 4€/month per account/integration <https://myponto.com/en#pricing>`_.
.. note::
You can find more information about bank synchronization :doc:`on this page
<bank_synchronization>`.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
Configuration
=============
@@ -115,10 +115,3 @@ and we advise you to contact Ponto directly.
.. important::
Using an institution in beta is beneficial for Ponto, it allows them to have real
feedback on the connection with the institution.
.. seealso::
* :doc:`bank_synchronization`
* :doc:`saltedge`
* :doc:`transactions`
@@ -1,6 +1,6 @@
==========================================
Salt Edge as bank synchronization provider
==========================================
=========
Salt Edge
=========
**Salt Edge** is a third-party provider that aggregates banking information
from your bank accounts. It supports ~5000 institutions in more than 50
@@ -8,12 +8,15 @@ countries.
.. image:: saltedge/saltedge-logo.png
:align: center
:width: 50%
:alt: Salt Edge Logo
Odoo can synchronize directly with your bank to get all bank statements imported
automatically into your database.
Salt Edge is a free third-party provider.
.. seealso::
- :doc:`../bank_synchronization`
- :doc:`../transactions`
Configuration
=============
@@ -103,9 +106,3 @@ In case you already have a connection with the same credentials present on your
and this synchronization was created with Odoo, you will normally be able to find it by going to
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Please make sure to do an
*Update Credentials* to reactivate the connection.
.. seealso::
* :doc:`bank_synchronization`
* :doc:`ponto`
* :doc:`transactions`
@@ -1,13 +0,0 @@
:nosearch:
==========
Bank feeds
==========
.. toctree::
:titlesonly:
feeds/transactions
feeds/bank_synchronization
feeds/ponto
feeds/saltedge
@@ -1,46 +0,0 @@
============
Transactions
============
Importing transactions from your bank statements allows keeping track of bank account transactions
and reconciling them with the ones recorded in your accounting.
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
want to use it or if your bank is not yet supported, other options exist:
- :ref:`Import bank transactions <import-statements>` delivered by your bank;
- :ref:`Register bank transactions <register-transactions>` manually.
.. _import-statements:
Import transactions
===================
Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
click on :guilabel:`Import Transactions`.
.. image:: transactions/import-transactions.png
:align: center
:alt: Import bank transactions from bank journal
Next, select the file and upload it.
After setting the necessary formatting options and mapping the needed columns, you can run a
:guilabel:`Test` and :guilabel:`Import` your bank transactions.
.. _register-transactions:
Register bank transactions manually
===================================
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.
@@ -91,7 +91,7 @@ Manage and reconcile bank statements
------------------------------------
The next step is to book the bank statements to finalize the transaction by creating,
:doc:`importing <feeds/transactions>`, or :doc:`synchronizing <feeds/bank_synchronization>` your
:doc:`importing <transactions>`, or :doc:`synchronizing <bank_synchronization>` your
:guilabel:`Transactions lines`. Fill in the :guilabel:`Ending balance` and click on the
:guilabel:`Reconcile` button.
@@ -125,5 +125,5 @@ line*.
.. seealso::
- :doc:`use_cases`
- :doc:`../feeds/bank_synchronization`
- :doc:`../bank_synchronization`
- :doc:`../../receivables/customer_invoices/cash_discounts`
@@ -102,4 +102,4 @@ right and validate all related payments :
:align: center
.. seealso::
* :doc:`../feeds/bank_synchronization`
:doc:`../bank_synchronization`
@@ -4,7 +4,7 @@ Bank and cash accounts
You can manage as many bank or cash accounts as needed on your database. Configuring them well
allows you to have all your banking data up-to-date and ready for :doc:`reconciliation
<../../bank/reconciliation/use_cases>` with your journal entries.
<../reconciliation/use_cases>` with your journal entries.
In Odoo Accounting, each bank account has a dedicated journal set to post all entries in a dedicated
account. Both the journal and the account are automatically created and configured whenever you add
@@ -33,7 +33,7 @@ To connect your bank account to your database, go to :menuselection:`Accounting
follow the instructions.
.. seealso::
:doc:`../../bank/feeds/bank_synchronization`
:doc:`../bank_synchronization`
Create a bank account
---------------------
@@ -83,7 +83,7 @@ You can edit the accounting information and bank account number according to you
.. seealso::
- :doc:`../../others/multi_currency`
- :doc:`../../bank/feeds/transactions`
- :doc:`../transactions`
- :doc:`../../bank/setup/outstanding_accounts`
Suspense account
@@ -132,5 +132,5 @@ Bank feeds
with your database.
.. seealso::
- :doc:`../../bank/feeds/bank_synchronization`
- :doc:`../../bank/feeds/transactions`
- :doc:`../bank_synchronization`
- :doc:`../transactions`
@@ -0,0 +1,94 @@
============
Transactions
============
Importing transactions from your bank statements allows keeping track of bank account transactions
and reconciling them with the ones recorded in your accounting.
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
want to use it or if your bank is not yet supported, other options exist:
- :ref:`Import bank transactions <transactions/import>` delivered by your bank;
- :ref:`Register bank transactions <transactions/register>` manually.
.. note::
:ref:`Grouping transactions by statement <transactions/statements>` is optional.
.. _transactions/import:
Import transactions
===================
Odoo supports multiple file formats to import transactions:
- SEPA recommended Cash Management format (CAMT.053);
- Comma-separated values (.CSV);
- Open Financial Exchange (.OFX);
- Quicken Interchange Format (.QIF);
- Belgium: Coded Statement of Account (.CODA).
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
click on :guilabel:`Import Transactions`.
.. image:: transactions/import-transactions.png
:alt: Import bank transactions from the bank journal
Next, select the file and upload it.
After setting the necessary formatting options and mapping the file columns with their related Odoo
fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions.
.. seealso::
:doc:`/applications/general/export_import_data`
.. _transactions/register:
Register bank transactions manually
===================================
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.
.. _transactions/statements:
Statements
==========
A **bank statement** is a document provided by a bank or financial institution that lists the
transactions that have occurred in a particular bank account over a specified period of time.
In Odoo Accounting, it is optional to group transactions by their related statement, but depending
on your business flow, you may want to record them for control purposes.
.. important::
If you want to compare the ending balances of your bank statements with the ending balances of
your financial records, *don't forget to create an opening transaction* to record the bank
account balance as of the date you begin synchronizing or importing transactions. This is
necessary to ensure the accuracy of your accounting.
To access a list of statements, go to your :guilabel:`Accounting Dashboard`, click on the vertical
ellipsis (:guilabel:`⋮`) button next to the bank or cash journal you want to check, then on
:guilabel:`Statements`
Statement creation from the kanban view
---------------------------------------
Open the bank reconciliation view by clicking on the name of the bank journal, and identify the
transaction corresponding to the last transaction of your bank statement. Click on the
:guilabel:`STATEMENT` button when hovering on the upper separator line.
.. image:: transactions/statements-kanban.png
:alt: A "STATEMENT" button is visible when hovering on the line separating two transactions.
Fill out the statement's details and save. The newly created statement includes the previous
transactions following the last statement.
Statement creation from the list view
-------------------------------------
Open the list of transactions by clicking on the name of the bank journal and switching to the list
view. Select all the transactions corresponding to the bank statement, and, in the
:guilabel:`Statement` column, select an existing statement or create a new one by typing its
reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and
saving.
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -55,7 +55,7 @@ Connect your bank account to your database and have your bank statements synced
so, find your bank in the list, click on *Connect*, and follow the instructions on-screen.
.. note::
:doc:`Click here <../../bank/feeds/bank_synchronization>` for more information about this feature.
:doc:`Click here <../../bank/bank_synchronization>` for more information about this feature.
If your Bank Institution cant be synchronized automatically, or if you prefer not to sync it with
your database, you may also configure your bank account manually by clicking on *Create it*, and
@@ -188,6 +188,6 @@ Send yourself a sample invoice by email to make sure everything is correctly con
.. seealso::
* :doc:`../../bank/setup/bank_accounts`
* :doc:`chart_of_accounts`
* :doc:`../../bank/feeds/bank_synchronization`
* :doc:`../../bank/bank_synchronization`
* :doc:`../../../fiscal_localizations`
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
@@ -103,7 +103,7 @@ The frequency of the invoicing and the services/products invoiced are
defined on the contract.
.. seealso::
- :doc:`/applications/sales/sales/invoicing/subscriptions`
- :doc:`/applications/sales/subscriptions`
Others
======
@@ -1,99 +1,71 @@
==================================================
Batch payments: Batch deposits (checks, cash etc.)
==================================================
==============================
Batch payments by bank deposit
==============================
A **Batch Deposit** groups multiple payments in a single batch. This allows you to deposit several
payments into your bank account with a single transaction. This is particularly useful to deposit
cash and checks.
This feature allows you to list several customer payments and print a **deposit slip**. This ticket
contains the details of the transactions and a reference to the batch deposit. You can then select
this reference during a bank reconciliation to match the single bank statement line with all the
transactions listed in the batch deposit.
A **batch deposit** is a convenient way to group customer payments and deposit them into your bank
account. The feature lets you list multiple payments and generate a detailed deposit slip with a
batch reference. This reference can be used when reconciling to match bank statement lines with
transactions in the batch deposit.
Configuration
=============
To activate the feature, go to :menuselection:`Accounting --> Configuration --> Settings -->
Customer Payments`, activate **Batch Payments**, and click on *Save*.
Payment Method Types
--------------------
To record new payments as part of a Batch Deposit, you have to configure first the Journal on which
you record them.
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open the Journal
you want to edit, click on *Edit*, and open the *Advanced Settings* tab. In the *Payment Method
Types* section, enable **Batch Deposit**, and click on *Save*.
.. image:: batch/batch-journal-settings.png
:align: center
:alt: Payment Method Types in a journal's advanced settings
.. note::
Your main bank accounts are automatically configured to process batch payments when you activate
the feature.
Go to :menuselection:`Accounting --> Configuration --> Settings --> Customer Payments` and tick
:guilabel:`Batch Payments` to activate the feature.
Deposit multiple payments in batch
==================================
Record payments to deposit in batch
-----------------------------------
Register payments
-----------------
:doc:`Register the payments <recording>` on the bank account on which you plan to deposit them by
opening the *Customer Invoice* for which you received a payment, and clicking on *Register Payment*.
There, select the appropriate Journal linked to your bank account and select *Batch Deposit* as
Payment Method.
Before performing a batch deposit, it is necessary to register each transaction's payment. To do so,
open the corresponding customer invoice and click :guilabel:`Register Payment`. In the pop-up
window, select the :guilabel:`Journal` linked to your bank account and :guilabel:`Batch Deposit` as
the :guilabel:`Payment Method`, and click :guilabel:`Create Payment`.
.. image:: batch/batch-register-payment.png
.. image:: batch/batch-payments.png
:align: center
:alt: Registering a customer payment as part of a Batch Deposit in Odoo Accounting
:alt: Registering a customer payment as part of a batch deposit
Do this step for all checks or payments you want to process in batch.
.. note::
Make sure to write the payment reference in the **Memo** field.
Add payments to a Batch Deposit
Add payments to a batch deposit
-------------------------------
To add the payments to a Batch Deposit, go to :menuselection:`Accounting --> Customers --> Batch
Payments`, and click on *Create*. Next, select the Bank and Payment Method, then click on *Add a
line*.
To add payments to a batch deposit, go to :menuselection:`Accounting --> Customers --> Batch
Payments`, and click :guilabel:`New`. Next, select the :guilabel:`Bank` and choose :guilabel:`Batch
Deposit` as the :guilabel:`Payment Method`.
.. image:: batch/batch-new-inbound.png
.. image:: batch/batch-customer-payment.png
:align: center
:alt: Filling out a new Inbound Batch Payment form on Odoo Accounting
:alt: Filling out a new inbound batch payment form
Select all payments to include in the current Batch Deposit and click on *Select*. You can also
record a new payment and add it to the list by clicking on *Create*.
Click :guilabel:`Add a line`. In the pop-up window, tick all payments to include in the batch
deposit, then click :guilabel:`Select`.
.. image:: batch/batch-payments-selection.png
.. image:: batch/batch-lines-selection.png
:align: center
:alt: Selection of all payments to include in the Batch Deposit
:alt: Selecting all payments to include in the batch deposit
Once done, click on *Validate* to finalize your Batch Deposit. You can then click on *Print* to
download a PDF file to include with the deposit slip that the bank usually requires to fill out.
Once done, click :guilabel:`Validate` to finalize the batch deposit.
Bank Reconciliation
.. tip::
Click :guilabel:`Print` to download a PDF file to include with the deposit slip.
Bank reconciliation
-------------------
Once the bank statements are on your database, you can reconcile the bank statement line with the
*Batch Payment* reference. To do so, start your **Bank Reconciliation** by going to your Accounting
dashboard and clicking on *Reconcile Items* on the related bank account. At the bank statement line,
click on *Choose counterpart or Create Write-off* to display more options, open the *Batch Payments*
tab, and select your Batch Payment. All related payments are automatically added.
Once the bank transactions are on your database, you can reconcile bank statement lines with the
batch payment. To do so, go to the :guilabel:`Accounting Dashboard` and click :guilabel:`Reconcile
Items` on the related bank account. Go to the :guilabel:`Batch Payments` tab to select a specific
batch and click :guilabel:`Validate` to finalize the process.
.. image:: batch/batch-reconciliation.png
:align: center
:alt: Reconciling the batch payment with all its transactions
.. note::
The *Batch Payments* tab won't appear if a Partner is selected for this bank statement line.
.. image:: batch/batch-bank-reconciliation.png
:align: center
:alt: Reconciliation of the Batch Payment with all its transactions
If a check, or a payment, couldn't be processed by the bank and is missing, remove the related
payment before validating the bank reconciliation.
If a specific payment could not be processed by the bank or is missing, remove the related
payment before reconciling.
.. seealso::
- :doc:`recording`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

@@ -174,8 +174,9 @@ Do the same for all the sales taxes that the company needs, either those that co
Odoo, or those that you add that are necessary for your company bill.
.. tip::
For the 0% VAT tax, select the option *Exento* instead of *Tasa* within the **Factor Type**
field.
For the 0% VAT tax, select the option :guilabel:`Tasa` within the :guilabel:`Factor Type` field.
For the 0% VAT **exempt** tax, select the option :guilabel:`Exento` instead of :guilabel:`Tasa`
within the :guilabel:`Factor Type` field.
When registering a payment, Odoo will carry out the movement of taxes from the **Cash Basis
Transition Account** to the account set in the **Definition** tab. For such movement, a tax base
@@ -17,9 +17,12 @@ Configuration on Flutterwave Dashboard
`/payment/flutterwave/webhook` in the :guilabel:`URL` text field.
| For example: `https://yourcompany.odoo.com/payment/flutterwave/webhook`.
#. Fill the :guilabel:`Secret hash` with a password that you generate and save its value for later.
#. Make sure all the remaining checkboxes are ticked.
#. Make sure *all* the remaining checkboxes are ticked.
#. Click on **Save** to finalize the configuration.
.. image:: flutterwave/flutterwave-settings.png
:alt: Flutterwave settings
.. _payment_providers/flutterwave/configure_odoo:
Configuration on Odoo
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

-1
View File
@@ -12,7 +12,6 @@ Miscellaneous
general/reporting
general/email_communication
general/voip
general/calendars
general/digest_emails
general/in_app_purchase
general/developer_mode
+1 -1
View File
@@ -6,5 +6,5 @@ Due to specific requirements in Azure's OAuth implementation, Microsoft Azure OA
is NOT compatible with Odoo at the moment.
.. seealso::
- :doc:`/applications/general/calendars/outlook/outlook_calendar`
- :doc:`../../productivity/calendar/outlook`
- :doc:`/administration/maintain/azure_oauth`
+1 -1
View File
@@ -9,7 +9,7 @@ This is particularly helpful if your organization uses Google Workforce and you
within your organization to connect to Odoo with their Google Accounts.
.. seealso::
- :doc:`/applications/general/calendars/google/google_calendar_credentials`
- :doc:`../../productivity/calendar/google`
- :doc:`/administration/maintain/google_oauth`
.. _google-sign-in/configuration:
@@ -1,11 +0,0 @@
:nosearch:
=========
Calendars
=========
.. toctree::
:titlesonly:
calendars/outlook/outlook_calendar
calendars/google/google_calendar_credentials
@@ -58,4 +58,4 @@ can change the Language to any previously installed language and click
:align: center
.. seealso::
* :doc:`../../websites/website/publish/translate`
* :doc:`../../websites/website/configuration/translate`
@@ -10,7 +10,6 @@ Warehouse Management
management/products
management/warehouses
management/replenishment_strategies
management/inventory_adjustments
management/delivery
management/incoming
@@ -1,109 +1,80 @@
==================================================================
Send Products to Customers Directly from Suppliers (Drop-shipping)
==================================================================
=============================================================
Use dropshipping to ship directly from suppliers to customers
=============================================================
What is Drop-Shipping?
======================
Dropshipping is an order fulfillment strategy that allows sellers to have items shipped directly
from suppliers to customers. Normally, a seller purchases a product from a supplier, stores it in
their inventory, and ships it to the end customer once an order is placed. With dropshipping, the
supplier is responsible for storing and shipping the item. This benefits the seller by reducing
inventory costs, including the price of operating warehouses.
Drop-Shipping is a system that allows orders taken from your store to be
shipped straight from your supplier to your customer. On a usual
delivery system, products are sent from your supplier to your warehouse
to be put in stock and then shipped to your customers after ordering.
Configure products to be dropshipped
====================================
With drop-shipping, no item is stocked. When a customer places an order
in your shop, the item is delivered straight from the supplier to the
customer. Therefore, the product doesn't need to get through your
warehouse.
To use dropshipping as a fulfillment strategy, navigate to the :guilabel:`Purchase` app and select
:menuselection:`Configuration --> Settings`. Under the :guilabel:`Logistics` heading, click the
:guilabel:`Dropshipping` checkbox, and :guilabel:`Save` to finish.
Points to be Considered while Implementing Drop-Shipping
========================================================
Next, go to the :guilabel:`Sales` app, click :menuselection:`Products --> Products` and choose an
existing product or select :guilabel:`Create` to configure a new one. On the product page, make sure
that the :guilabel:`Can be Sold` and :guilabel:`Can be Purchased` checkboxes are enabled.
- Use drop-shipping only for the products you can't or don't want to keep in stock.
One reason is that you'll always make smaller
margins on items that are drop-shipped, so you should keep it
only for items that take up a lot of space in your warehouse.
.. image:: dropshipping/sold-purchased-checkboxes.png
:align: center
:alt: Enable the "Can be Sold" and "Can be Purchased" checkboxes on the product form.
- Drop-shipping is best for niche products.
Chances are that products that are in high demand are being offered by large suppliers at a
fraction of the price you'll be able to charge, so using a more
costly shipping method won't be financially rewarding. But if
your product is unique, then it makes sense!
Click on the :guilabel:`Purchase` tab and specify a vendor and the price that they sell the product
for. Multiple vendors can be added, but the vendor at the top of the list will be the one
automatically selected for purchase orders.
- To protect your customers from bad experiences.
Test drop-shipping companies for yourself beforehand and list the best ones.
.. image:: dropshipping/product-vendor-config.png
:align: center
:alt: The product form with a vendor specified.
- Make sure time is not against you.
Drop-shipping should take a reasonable amount of time and surely not more than it would have taken you to handle it all by yourself. It's also nice to be able
to provide your customers with a tracking number.
Finally, select the :guilabel:`Inventory` tab and enable the :guilabel:`Dropship` checkbox in the
:guilabel:`Routes` section.
- Items have to be available from your supplier.
It's good to know if
the product you're selling is available upstream. If you don't
have that information, inform your customers that you don't hold
the item in stock and that it's subject to availability from a
third party.
.. image:: dropshipping/enable-dropship-route.png
:align: center
:alt: Enable the Dropship option in the product inventory tab.
Fulfill orders using dropshipping
=================================
When a customer completes an online purchase for a dropshipped product, a sales order will be
automatically created with an associated request for quotation (:abbr:`RFQ (Request for Quotation)`)
for the supplier. Sales orders can be viewed in the :guilabel:`Sales` app by selecting
:menuselection:`Orders --> Orders`. Click the :guilabel:`Purchase` smart button at the top right of
a sales order to view the associated :abbr:`RFQ (Request for Quotation)`.
.. tip::
For more information and insights about Drop-Shipping, you can read our
blog: `*What is drop-shipping and how to use
it* <https://www.odoo.com/blog/business-hacks-1/post/what-is-drop-shipping-and-how-to-use-it-250>`__.
Dropship sales orders can also be created manually through the :guilabel:`Sales` app by selecting
:menuselection:`Orders --> Orders --> Create` and adding a product configured for dropshipping.
Configure Drop-Shipping
=======================
.. image:: dropshipping/dropship-sales-order.png
:align: center
:alt: A dropship sales order with the Purchase smart button in the top right corner.
Activate the functionality in the *Purchase* application by going to :menuselection:`Configuration
--> Settings`.
Once the :abbr:`RFQ (Request for Quotation)` is confirmed, it becomes a purchase order and a
dropship receipt is created and linked to it. The receipt can be viewed by clicking the
:guilabel:`Receipt` smart button in the top right corner of the purchase order form.
.. image:: dropshipping/dropshipping_01.png
:align: center
.. image:: dropshipping/dropship-purchase-order.png
:align: center
:alt: A dropship purchase order with the Receipt smart button in the top right corner.
Then, go to the *Inventory* app, in :menuselection:`Configuration --> Settings` to
activate the *Multi-Step Routes* feature. It will allow you to make
the *Route* field appear on the sale order lines to specify you send a
product via drop-shipping.
The dropship receipt will list the supplier in the :guilabel:`Receive From` section and the customer
in the :guilabel:`Destination Location` section. Upon delivery of the product to the customer, click
on the :guilabel:`Validate` button at the top left of the dropship receipt to confirm the delivered
quantity.
.. image:: dropshipping/dropshipping_02.png
:align: center
.. image:: dropshipping/validate-dropship-receipt.png
:align: center
:alt: Validate the dropship receipt after delivery.
Now, in the *Sales* app, go to :menuselection:`Products --> Products`. Select the
product you would like to drop-ship and add a vendor pricelist which
contains the right supplier, via the purchase tab.
To view all dropship orders, simply navigate to the :guilabel:`Inventory` dashboard and click the
teal :guilabel:`# TO PROCESS` button on the :guilabel:`Dropship` card.
.. image:: dropshipping/dropshipping_03.png
:align: center
Send Products from the Suppliers Directly to the Customers
==========================================================
Create a *Sales Order* and add the product on which you just set the
vendor. Add the *Route* field thanks to the widget on the right of the
sale order line. Now, you are able to specify that your products route
is *Drop-Shipping*.
.. image:: dropshipping/dropshipping_04.png
:align: center
.. image:: dropshipping/dropshipping_05.png
:align: center
Once the sale order is confirmed, Odoo automatically generates a
*Request for Quotation* for the supplier who will proceed to the
drop-shipping. You can find it in the *Purchase* app, with the sale
order as *Source Document*.
.. image:: dropshipping/dropshipping_06.png
:align: center
Once this *Purchase Order* is confirmed, a *Receipt Order* is
created and linked to it. The source location is the vendor location and
the destination location is the customer location. Then, the product
wont go through your own stock when you validate the dropship document.
.. image:: dropshipping/dropshipping_07.png
:align: center
You can also easily access the dropship document directly from your
inventory dashboard.
.. image:: dropshipping/dropshipping_08.png
:align: center
.. image:: dropshipping/view-all-dropship-orders.png
:align: center
:alt: Click the green button on the Dropship card to view all dropship orders.
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

@@ -1,45 +1,125 @@
===============================
Manage Stock that you don't own
===============================
=================================================
Consignment: buy and sell stock without owning it
=================================================
Sometimes, suppliers can offer you to store and sell products without
having to buy those items. This technique is called *consignee stock*.
Most of the time, products stored in a company's warehouse are either purchased from suppliers, or
are manufactured in-house. However, suppliers will sometimes let companies store and sell products
in the company's warehouse, without having to buy those items up-front. This is called
*consignment*.
Consignee stock is a great way for manufacturers and suppliers to launch
new products. As resellers may be reluctant to buy a product they are
not sure to be able to sell, consignee stock will allow them to offer an
item to check its market without having to pay for it in the first
place.
Consignment is a useful method for suppliers to launch new products, and easily deliver to their
customers. It's also a great way for the company storing the products (the consignee) to earn
something back for their efforts. Consignees can even charge a fee for the convenience of storing
products they don't actually own.
Of course, Odoo has the ability to manage those consignee stocks through
advanced settings.
Enable the consignment setting
==============================
Configuration
=============
To receive, store, and sell consignment stock, the feature needs to be enabled in the settings. To
do this, go to :menuselection:`Inventory --> Configuration --> Settings`, and under the
:guilabel:`Traceability` section, check the box next to :guilabel:`Consignment`, and then click
:guilabel:`Save` to finish.
To use this feature, go to :menuselection:`Inventory --> Configuration --> Settings` in
the inventory app. Then, enable the *Consignment* feature in the
*Traceability* section. Now, hit save.
.. image:: owned_stock/owned-stock-enable-consignment.png
:align: center
:alt: Enabled Consignment setting in Inventory configuration.
.. image:: owned_stock/owned_stock_01.png
:align: center
Receive (and store) consignment stock
=====================================
Reception of Consignee Stock
============================
When in the *Inventory* app, open the receipts and create a new
reception. On the right side, you will see that a new line called
*Assign Owner* has appeared. There, you can specify the partner which
owns the stock.
.. image:: owned_stock/owned_stock_02.png
:align: center
With the feature enabled in Odoo, consignment stock can now be received into a warehouse. From the
main :menuselection:`Inventory` dashboard, click into the :guilabel:`Receipts`
section. Then, click :guilabel:`Create`.
.. note::
If you are the owner, you can leave the field blank.
Consignment stock is not actually purchased from the vendor; it is simply received and stored.
Because of this, there are no quotations or purchase orders involved in receiving consignment
stock. So, *every* receipt of consignment stock will start by creating manual receipts.
Once the receipt is validated, the products enter your stock but still
belong to the owner. They dont impact your inventory valuation.
Choose a vendor to enter in the :guilabel:`Receive From` field, and then choose the same vendor to
enter in the :guilabel:`Assign Owner` field.
.. image:: owned_stock/owned_stock_03.png
:align: center
.. important::
Since the products received from the vendor will be owned by the same vendor, the
:guilabel:`Receive From` and :guilabel:`Assign Owner` fields must match.
Once the vendor-related fields are set, enter products into the :guilabel:`Product` lines, and set
the quantities to be received into the warehouse under the :guilabel:`Done` column. If the
:guilabel:`Units of Measure` feature is enabled, the :abbr:`UoM (Units of Measure)` can be changed,
as well. Once all the consignment stock has been received, :guilabel:`Validate` the receipt.
.. image:: owned_stock/owned-stock-receipt-fields.png
:align: center
:alt: Matching vendor fields in consignment Receipt creation.
Sell and deliver consignment stock
==================================
Once consignment stock has been received into the warehouse, it can be sold the same as any other
in-stock product that has the :guilabel:`Can Be Sold` option enabled on the product form.
To create a sales order, navigate to the :menuselection:`Sales` app, and from the
:guilabel:`Quotations` overview, click :guilabel:`Create`. Next, choose a customer to enter into the
:guilabel:`Customer` field.
.. note::
The :guilabel:`Customer` *must* be different from the :guilabel:`Vendor` that supplied the
consignment stock received (and stored) in the warehouse.
Add the consignment product under the :guilabel:`Product` column in the order lines, set the
:guilabel:`Quantity`, and fill out any other pertinent product details on the form. Once the
quotation is complete, click :guilabel:`Confirm`.
.. image:: owned_stock/owned-stock-sales-order.png
:align: center
:alt: Sales order of consignment stock.
Once the :abbr:`RFQ (Request for Quotation)` has been confirmed, it will become a sales order. From
here, the products can be delivered by clicking on the :guilabel:`Delivery` smart button, and
selecting :guilabel:`Validate` to validate the delivery.
Traceability and reporting of consignment stock
===============================================
Although consignment stock is owned by the vendor who supplied it, and not by the company storing it
in their warehouse, consignment products will *still* appear in certain inventory reports.
To find inventory reports, go to :menuselection:`Inventory --> Reporting`, and choose a report to
view.
.. note::
Since the consignee does not actually own consigment stock, these products are *not* reflected
in the :guilabel:`Stock Valuation` report, and have no impact on the consignee's inventory
valuation.
Product moves report
--------------------
To view all information about on-hand stock moves, navigate to the the :guilabel:`Product Moves`
dashboard by going to :menuselection:`Inventory --> Reporting --> Product Moves`. For consignment
products, the information in this report is the same as any other product: the history
of its product moves can be reviewed; the :guilabel:`Quantity Done` and :guilabel:`Reference`
document are available; and its :guilabel:`Locations` are available, as well. The consignment stock
will originate from :guilabel:`Partner Location/Vendors`.
.. tip::
To view a consignment product's moves by ownership, select the :guilabel:`Group By` filter,
choose the :guilabel:`Add Custom Group` parameter, and then select :guilabel:`From Owner`, and
:guilabel:`Apply` to finish.
.. image:: owned_stock/owned-stock-moves-history.png
:align: center
:alt: Consignment stock moves history.
.. tip::
To see forecasted units of consignment stock, go to :menuselection:`Inventory --> Reporting -->
Forecasted Inventory`.
Stock on hand report
--------------------
View the :guilabel:`Stock On Hand` dashboard by navigating to :menuselection:`Inventory -->
Reporting --> Inventory Report`. From this report, the :guilabel:`Locations` of all stock on-hand
are displayed, in addition to the quantities per location. For consigment products, the
:guilabel:`Owner` column will be populated with the owner of those products, or the original vendor
who supplied the products in the first place.
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

@@ -1,11 +0,0 @@
:nosearch:
========================
Replenishment strategies
========================
.. toctree::
:titlesonly:
:glob:
replenishment_strategies/virtual_warehouses
@@ -1,53 +0,0 @@
===============================
Resupply from another Warehouse
===============================
Configuration
=============
In order to be able to resupply from another warehouse, you need to
activate \*multi-step routes\*.
.. image:: virtual_warehouses/virtual-warehouses-settings.png
:align: center
:alt: Enable Multi-Step Routes in an Odoo database's settings
You can then access your warehouses via :menuselection:`Inventory --> Configuration -->
Warehouses`.
Enter the warehouse which should be resupplied by another one. You will
have the possibility to directly indicate through which warehouse it
gets resupplied.
.. image:: virtual_warehouses/virtual_warehouses_02.png
:align: center
By activating this option, a new route will now be available on your
products \*Supply Product from Second warehouse\*. It can now be
selected, along with either a \*reordering rule\* or a \*make to
order\*.
.. image:: virtual_warehouses/virtual_warehouses_03.png
:align: center
For the demonstration, I set a reordering rule with a minimum of 5 units
in stock and a maximum of 10 units in stock, having currently 0 units on
hand. I will run the scheduler by going to :menuselection:`Inventory --> Operations -->
Run scheduler`.
.. image:: virtual_warehouses/virtual_warehouses_04.png
:align: center
The system automatically creates two pickings, one \*delivery order\*
from my Second Warehouse which contains the necessary products, and a
receipt in my main warehouse WH/Stock for the same products. The source
document is the \*reordering rule\* which triggered the route \*Supply
Product from Second warehouse\*.
.. image:: virtual_warehouses/virtual_warehouses_05.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_06.png
:align: center
.. image:: virtual_warehouses/virtual_warehouses_07.png
:align: center
@@ -8,5 +8,6 @@ Warehouses
:titlesonly:
:glob:
warehouses/warehouses_locations
warehouses/resupply_warehouses
warehouses/warehouse_replenishment_transfer
warehouses/warehouses_locations
@@ -0,0 +1,150 @@
========================================================
Transfer products between warehouses using replenishment
========================================================
For companies that use multiple warehouses, it is often necessary to transfer items between them.
This is referred to as an *inter-warehouse transfer*. Odoo *Inventory* handles the administrative
process of inter-warehouse transfers to ensure that inventory counts remain accurate during and
after the transfer. This document will detail the method for conducting an inter-warehouse transfer
using replenishment.
Configure warehouses for inter-warehouse replenishment
======================================================
First, ensure the :guilabel:`Multi-Step Routes` setting is enabled by navigating to
:menuselection:`Inventory --> Configuration --> Settings`, and then check the box under the
:guilabel:`Warehouse` tab. This will provide additional configuration options when creating a second
warehouse that are needed for inter-warehouse replenishment.
By default, Odoo comes with a main warehouse already configured. If an additional warehouse has not
already been created, do so now from the :guilabel:`Inventory` module by selecting
:menuselection:`Configuration --> Warehouses --> Create`. Otherwise, select the warehouse that
products will be transferred to from the :guilabel:`Warehouses` page and then click :guilabel:`Edit`
to change its settings. Configure the warehouse as follows:
- :guilabel:`Warehouse`: choose a name that is not already being used for another warehouse (e.g.
`Alternative Warehouse`)
- :guilabel:`Short Name`: choose a short name by which the warehouse will be identified (e.g.
`ALT_WH`)
Click :guilabel:`Save` and the new warehouse will be created. In addition, a new :guilabel:`Resupply
From` field will appear on the warehouse's form. Click :guilabel:`Edit` and then check the box next
to the warehouse that will be used to resupply the warehouse that is currently being configured.
.. image:: warehouse_replenishment_transfer/new-warehouse-configuration.png
:align: center
:alt: A warehouse settings form configured to allow resupplying between warehouses.
.. note::
For the purposes of this demonstration, the warehouse that products are transferred from
(outgoing) will be titled "San Francisco", and the warehouse that products are transferred to
(incoming) will be titled "San Francisco 2".
Configure products for inter-warehouse replenishment
====================================================
Products must also be configured properly in order for them to be transferred between warehouses.
Navigate to :menuselection:`Inventory --> Products --> Products` and select an existing product or
:guilabel:`Create` a new one, if necessary.
Then, on the product form, go to the :guilabel:`Inventory` tab and enable the checkbox for
:guilabel:`X: Supply Product from Y`, with *X* being the warehouse receiving the transferred
products and *Y* being the warehouse that products are transferred from.
.. image:: warehouse_replenishment_transfer/product-transfer-configuration.png
:align: center
:alt: Enable the checkbox to resupply one warehouse from another.
Replenish one warehouse from another
====================================
Starting in the :menuselection:`Inventory` module, select :menuselection:`Products --> Products` and
then choose the product that will be replenished. Click the :guilabel:`Replenish` button on the top
left of the product page and fill out the pop-up form as follows:
- :guilabel:`Quantity`: the number of units that will be sent to the warehouse being replenished
- :guilabel:`Scheduled Date`: the date that the replenishment is scheduled to take place
- :guilabel:`Warehouse`: the warehouse that will be replenished
- :guilabel:`Preferred Routes`: select `X: Supply Product from Y`, with *X* being the warehouse to
be replenished and *Y* being the warehouse that the product will be transferred from
.. image:: warehouse_replenishment_transfer/product-replenishment-form.png
:align: center
:alt: The form for replenishing a product.
Click :guilabel:`Confirm` and a delivery order will be created for the outgoing warehouse along with
a receipt for the warehouse that will receive the product. Depending on the configuration settings
for the outgoing and incoming warehouses, processing delivery orders and receipts will require
between one and three steps. This document will detail how to process one-step deliveries and
receipts.
Process the delivery order
--------------------------
The first stage of a replenishment order is processing the delivery from the warehouse that the
product is being transferred from. On the :menuselection:`Inventory` dashboard, select the
:guilabel:`X to Process` button on the :guilabel:`Delivery Orders` card for the outgoing warehouse,
then the delivery order created for the replenishment. On the delivery order page, click the
:guilabel:`Check Availability` button in the top left to reserve the quantity of the product to be
transferred. Once the delivery has been dispatched, click the :guilabel:`Validate` button to
register the quantities shipped.
.. image:: warehouse_replenishment_transfer/delivery-orders-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
Process the receipt
-------------------
Once the goods arrive at the incoming warehouse, the receipt created for that warehouse must be
processed as well. Return to the :menuselection:`Inventory` dashboard and select the :guilabel:`X to
Process` button on the :guilabel:`Receipts` card for the incoming warehouse, then the receipt
created for the replenishment. On the receipt page, click the :guilabel:`Validate` button in the top
left of the page to register the quantities received.
.. image:: warehouse_replenishment_transfer/receipts-card.png
:align: center
:alt: The delivery orders card for the outgoing warehouse.
After processing the receipt, the products transferred will now appear in the inventory of the
incoming warehouse. The stock numbers for both warehouses can be viewed by returning to the product
page and selecting the :guilabel:`X Units On Hand` button at the top of the screen.
Automate inter-warehouse replenishment
======================================
Using reordering rules, it is possible to automate the process of replenishing one warehouse from
another.
To get started, navigate to :menuselection:`Inventory --> Products --> Products`, and then
choose the product that will be replenished. From the product page, select the :guilabel:`Reordering
Rules` smart button at the top of the form, and then on the next page, click :guilabel:`Create` to
configure the form as follows:
- :guilabel:`Location`: the location that the reordering rule will replenish when triggered, in this
case, the incoming warehouse
- :guilabel:`Min Quantity`: when the quantity on hand at the incoming warehouse falls below this
number, the reordering rule will be triggered
- :guilabel:`Max Quantity`: when the reordering rule is triggered, the product will be replenished
at the incoming warehouse up to this quantity
- :guilabel:`Multiple Quantity`: specify if the product should be replenished in batches of a
certain quantity; for example, a product could be replenished in batches of 20
- :guilabel:`UoM`: the unit of measure used for reordering the product; this value can simply be
`Units`, or a specific unit of measurement for weight, length, etc.
.. image:: warehouse_replenishment_transfer/reordering-rule-configuration.png
:align: center
:alt: A fully configured reordering rule.
Finish by clicking :guilabel:`Save` and the reordering rule will be created. Now, when the scheduler
runs automatically each day, a transfer will be created for each reordering rule that has been
triggered.
.. tip::
To manually trigger reordering rules, start from the :menuselection:`Inventory` module and select
:menuselection:`Operation --> Run Scheduler`, then click the green :guilabel:`Run Scheduler`
button in the pop-up that appears.
After the scheduler runs, a delivery order and receipt will be created for the outgoing and incoming
warehouses, respectively. Both the delivery order and receipt should be processed using the same
method as detailed above.
@@ -9,6 +9,5 @@ Concepts
:glob:
concepts/use_routes
concepts/inter_warehouse
concepts/cross_dock
concepts/stock_warehouses
@@ -1,71 +0,0 @@
=========================
Inter-warehouse transfers
=========================
When owning several warehouses, goods might need to be transferred from one warehouse to another.
This type of transfer is called an *inter-warehouse transfer*. While physically performing the
inter-warehouse transfer might be simple, the administrative part can be complex. Fortunately, Odoo
comes with an intuitive flow that helps save time when registering inter-warehouse transfers.
Create an internal transfer
===========================
The following paragraphs detail a sample inter-warehouse transfer, referred to as an *internal
transfer*, use case. The sample use case assumes that the user has already configured their second
warehouse.
To transfer eight units of a product from the first warehouse to another one, proceed as follows:
From the :guilabel:`Inventory` dashboard, select an internal movement operation of one of the two
warehouses. To do so, click on the three vertical dots icon on the top right corner of the
operation card and select :guilabel:`Planned Transfer`.
.. image:: inter_warehouse/internal-transfer-choice.png
:align: center
:alt: View of the choice between planned transfer and immediate transfer.
On the new planned transfer form, select the :guilabel:`Source Location` (in this case, the first
warehouse) and the :guilabel:`Destination Location` (in this case, the second warehouse).
Next, add the products that will be transferred by clicking on :guilabel:`Add a line`, then click
on :guilabel:`Save` and :guilabel:`Mark as ToDo` once done. After that, Odoo puts the transfer in
the :guilabel:`Waiting` status. Then, click on :guilabel:`Reserve` to reserve the number of
products in the source warehouse.
.. image:: inter_warehouse/planned-internal-transfer.png
:align: center
:alt: View of the internal transfer form.
.. note::
If :guilabel:`Immediate Transfer` was selected instead of :guilabel:`Planned Transfer`, Odoo
processes the transfer automatically after the :guilabel:`Validate` button is clicked on the
internal transfer form.
It is also possible to manually transfer each product:
#. On the :guilabel:`Inventory` dashboard, open the souce location's internal transfer operation
page.
.. image:: inter_warehouse/in-progress-internal-transfer.png
:align: center
:alt: View of the dashboard with a zoom of the pending internal transfer.
#. Open the desired transfer order form.
.. image:: inter_warehouse/internal-transfers-list.png
:align: center
:alt: View of the pending internal transfers list.
#. Click on the pencil icon in the lower right corner to open the operation details window. In this
new window, the quantity of products can be manually set.
.. image:: inter_warehouse/backorder.png
:align: center
:alt: View of a backorder pop-up window because all products are not moved at the same time.
.. note::
To process the transfer order partially (e.g., a part of the products can't be shipped yet due
to an unexpected event), Odoo automatically asks if a *backorder* should be created.
- Create a backorder if it is expected that the remaining products will be processed later.
- Do not create a backorder if the remaining products will not be supplied/received.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

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