Compare commits
13 Commits
14.0-no_mu
...
14.0-websi
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ce49dc81c9 |
[MOV] live chat: structure
task-3269837 |
||
|
|
08c192e226 |
[MOV] website: structure
As a first step to update the doc - at last! - we first need to update its structure. task-3269837 |
||
|
|
380a5499de |
[ADD] tests: image size checker
closes odoo/documentation#3831 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
1b640a7a30 |
[ADD] Quality: add Create quality alerts
closes odoo/documentation#3715 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
bbbca62f6f |
[IMP] Inventory: Update dropshipping
closes odoo/documentation#3607 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
cbb0e49204 | [I18N] Update translation terms from Transifex | ||
|
|
728a462762 |
[IMP] purchase: update reordering rules config doc
closes odoo/documentation#3444 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
6ea2eb29fb |
[IMP] Inventory: Update inter-warehouse replenishment
closes odoo/documentation#3967 Signed-off-by: John Holton (hojo) <hojo@odoo.com> |
||
|
|
1ce7166f49 |
[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#3970 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com> |
||
|
|
82378f7cb6 | [I18N] Update translation terms from Transifex | ||
|
|
71ede7a3d4 |
[IMP]: add manual valuation section
Add images and manual valuation add ref tag and retitle doc to sentence case Remove trailing whitespaces update explanation closes odoo/documentation#3948 Signed-off-by: Zachary Straub (zst) <zst@odoo.com> |
||
|
|
62e5a356d3 |
[ADD] accounting: enablebanking
task-3232701 closes odoo/documentation#3858 Signed-off-by: Castillo Jonathan (jcs) <jcs@odoo.com> |
||
|
|
166a11ec1b |
[MOV] accounting: structure of bank sync docs
Part-of: odoo/documentation#3858 |
|
|
@@ -71,7 +71,7 @@ way to verify the ownership of your domain name is by adding a DNS record. You c
|
||||||
other providers.
|
other providers.
|
||||||
|
|
||||||
.. seealso::
|
.. 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>`_
|
- `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>`_
|
- `Bing Webmaster Tools - Add and Verify site <https://www.bing.com/webmasters/help/add-and-verify-site-12184f8b>`_
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@@ -8,6 +8,7 @@ Bank and cash
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
bank/setup
|
bank/setup
|
||||||
bank/feeds
|
bank/bank_synchronization
|
||||||
|
bank/bank_statements
|
||||||
bank/reconciliation
|
bank/reconciliation
|
||||||
bank/interbank
|
bank/interbank
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
|
@@ -1,6 +1,8 @@
|
||||||
======================================
|
:show-content:
|
||||||
Bank synchronization: automatic import
|
|
||||||
======================================
|
====================
|
||||||
|
Bank synchronization
|
||||||
|
====================
|
||||||
|
|
||||||
Odoo can synchronize directly with your bank institution to get all bank statements imported
|
Odoo can synchronize directly with your bank institution to get all bank statements imported
|
||||||
automatically into your database.
|
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
|
- **Plaid**: United States of America and Canada
|
||||||
- **Yodlee**: Worldwide
|
- **Yodlee**: Worldwide
|
||||||
- **Salt Edge**: Europe (:doc:`more information <saltedge>`)
|
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Europe
|
||||||
- **Ponto**: Europe (:doc:`more information <ponto>`)
|
- :doc:`Ponto <bank_synchronization/ponto>`: Europe
|
||||||
- **EnableBanking**: Scandinavian countries
|
- :doc:`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
:doc:`bank_statements`
|
||||||
|
|
||||||
Configuration
|
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
|
Configuration --> Accounting: Online Synchronization`,open the connection you want to update your
|
||||||
credentials and click on the :guilabel:`Update Credentials` button.
|
credentials and click on the :guilabel:`Update Credentials` button.
|
||||||
|
|
||||||
.. seealso::
|
.. toctree::
|
||||||
* :doc:`bank_statements`
|
:titlesonly:
|
||||||
* :doc:`ponto`
|
|
||||||
* :doc:`saltedge`
|
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.
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
|
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
|
**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
|
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
|
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>`_.
|
and Odoo. `Its pricing is 4€/month per account/integration <https://myponto.com/en#pricing>`_.
|
||||||
|
|
||||||
.. note::
|
.. seealso::
|
||||||
You can find more information about bank synchronization :doc:`on this page
|
- :doc:`../bank_synchronization`
|
||||||
<bank_synchronization>`.
|
- :doc:`../bank_statements`
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
=============
|
=============
|
||||||
|
|
@@ -115,10 +115,3 @@ and we advise you to contact Ponto directly.
|
||||||
.. important::
|
.. important::
|
||||||
Using an institution in beta is beneficial for Ponto, it allows them to have real
|
Using an institution in beta is beneficial for Ponto, it allows them to have real
|
||||||
feedback on the connection with the institution.
|
feedback on the connection with the institution.
|
||||||
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
* :doc:`bank_synchronization`
|
|
||||||
* :doc:`saltedge`
|
|
||||||
* :doc:`bank_statements`
|
|
||||||
|
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
|
@@ -1,6 +1,6 @@
|
||||||
==========================================
|
=========
|
||||||
Salt Edge as bank synchronization provider
|
Salt Edge
|
||||||
==========================================
|
=========
|
||||||
|
|
||||||
**Salt Edge** is a third-party provider that aggregates banking information
|
**Salt Edge** is a third-party provider that aggregates banking information
|
||||||
from your bank accounts. It supports ~5000 institutions in more than 50
|
from your bank accounts. It supports ~5000 institutions in more than 50
|
||||||
|
|
@@ -8,12 +8,15 @@ countries.
|
||||||
|
|
||||||
.. image:: saltedge/saltedge-logo.png
|
.. image:: saltedge/saltedge-logo.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:width: 50%
|
||||||
:alt: Salt Edge Logo
|
:alt: Salt Edge Logo
|
||||||
|
|
||||||
Odoo can synchronize directly with your bank to get all bank statements imported
|
Odoo can synchronize directly with your bank to get all bank statements imported
|
||||||
automatically into your database.
|
automatically into your database.
|
||||||
|
|
||||||
Salt Edge is a free third-party provider.
|
.. seealso::
|
||||||
|
- :doc:`../bank_synchronization`
|
||||||
|
- :doc:`../bank_statements`
|
||||||
|
|
||||||
Configuration
|
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
|
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
|
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Please make sure to do an
|
||||||
*Update Credentials* to reactivate the connection.
|
*Update Credentials* to reactivate the connection.
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
* :doc:`bank_synchronization`
|
|
||||||
* :doc:`ponto`
|
|
||||||
* :doc:`bank_statements`
|
|
||||||
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
|
@@ -1,13 +0,0 @@
|
||||||
:nosearch:
|
|
||||||
|
|
||||||
==========
|
|
||||||
Bank feeds
|
|
||||||
==========
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:titlesonly:
|
|
||||||
|
|
||||||
feeds/bank_statements
|
|
||||||
feeds/bank_synchronization
|
|
||||||
feeds/ponto
|
|
||||||
feeds/saltedge
|
|
||||||
|
|
@@ -122,5 +122,5 @@ second time.
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
- :doc:`use_cases`
|
- :doc:`use_cases`
|
||||||
- :doc:`../feeds/bank_synchronization`
|
- :doc:`../bank_synchronization`
|
||||||
- :doc:`../../receivables/customer_invoices/cash_discounts`
|
- :doc:`../../receivables/customer_invoices/cash_discounts`
|
||||||
|
|
|
||||||
|
|
@@ -102,4 +102,4 @@ right and validate all related payments :
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
* :doc:`../feeds/bank_synchronization`
|
:doc:`../bank_synchronization`
|
||||||
|
|
|
||||||
|
|
@@ -25,7 +25,7 @@ Add a new Bank Account
|
||||||
======================
|
======================
|
||||||
|
|
||||||
You can either connect your bank account to your Odoo database, or configure your bank account
|
You can either connect your bank account to your Odoo database, or configure your bank account
|
||||||
manually and :doc:`upload the bank statements manually <../feeds/bank_statements>`.
|
manually and :doc:`upload the bank statements manually <../bank_statements>`.
|
||||||
|
|
||||||
Bank Synchronization
|
Bank Synchronization
|
||||||
--------------------
|
--------------------
|
||||||
|
|
@@ -37,7 +37,7 @@ To synchronize a new bank account, go to :menuselection:`Accounting --> Configur
|
||||||
instructions on-screen.
|
instructions on-screen.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
:doc:`Click here <../../bank/feeds/bank_synchronization>` for more information about this bank
|
:doc:`Click here <../../bank/bank_synchronization>` for more information about this bank
|
||||||
synchronization.
|
synchronization.
|
||||||
|
|
||||||
.. image:: bank_accounts/bank_accounts_connect.png
|
.. image:: bank_accounts/bank_accounts_connect.png
|
||||||
|
|
@@ -90,6 +90,6 @@ how the bank statements are recorded and posted in the **Bank Statements** secti
|
||||||
:alt: Advanced configuration of a bank account in Odoo Accounting
|
:alt: Advanced configuration of a bank account in Odoo Accounting
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
* :doc:`../../bank/feeds/bank_synchronization`
|
- :doc:`../bank_synchronization`
|
||||||
* :doc:`../feeds/bank_statements`
|
- :doc:`../bank_statements`
|
||||||
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
|
- `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
|
||||||
|
|
|
||||||
|
|
@@ -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.
|
so, find your bank in the list, click on *Connect*, and follow the instructions on-screen.
|
||||||
|
|
||||||
.. note::
|
.. 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 can’t be synchronized automatically, or if you prefer not to sync it with
|
If your Bank Institution can’t 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
|
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::
|
.. seealso::
|
||||||
* :doc:`../../bank/setup/bank_accounts`
|
* :doc:`../../bank/setup/bank_accounts`
|
||||||
* :doc:`chart_of_accounts`
|
* :doc:`chart_of_accounts`
|
||||||
* :doc:`../../bank/feeds/bank_synchronization`
|
* :doc:`../../bank/bank_synchronization`
|
||||||
* :doc:`../../../fiscal_localizations`
|
* :doc:`../../../fiscal_localizations`
|
||||||
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
|
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
|
||||||
|
|
|
||||||
|
|
@@ -58,4 +58,4 @@ can change the Language to any previously installed language and click
|
||||||
:align: center
|
:align: center
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
* :doc:`../../websites/website/publish/translate`
|
* :doc:`../../websites/website/configuration/translate`
|
||||||
|
|
|
||||||
|
|
@@ -10,7 +10,6 @@ Warehouse Management
|
||||||
|
|
||||||
management/products
|
management/products
|
||||||
management/warehouses
|
management/warehouses
|
||||||
management/replenishment_strategies
|
|
||||||
management/delivery
|
management/delivery
|
||||||
management/incoming
|
management/incoming
|
||||||
management/misc
|
management/misc
|
||||||
|
|
|
||||||
|
|
@@ -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
|
Configure products to be dropshipped
|
||||||
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.
|
|
||||||
|
|
||||||
With drop-shipping, no item is stocked. When a customer places an order
|
To use dropshipping as a fulfillment strategy, navigate to the :guilabel:`Purchase` app and select
|
||||||
in your shop, the item is delivered straight from the supplier to the
|
:menuselection:`Configuration --> Settings`. Under the :guilabel:`Logistics` heading, click the
|
||||||
customer. Therefore, the product doesn't need to get through your
|
:guilabel:`Dropshipping` checkbox, and :guilabel:`Save` to finish.
|
||||||
warehouse.
|
|
||||||
|
|
||||||
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.
|
.. image:: dropshipping/sold-purchased-checkboxes.png
|
||||||
One reason is that you'll always make smaller
|
:align: center
|
||||||
margins on items that are drop-shipped, so you should keep it
|
:alt: Enable the "Can be Sold" and "Can be Purchased" checkboxes on the product form.
|
||||||
only for items that take up a lot of space in your warehouse.
|
|
||||||
|
|
||||||
- Drop-shipping is best for niche products.
|
Click on the :guilabel:`Purchase` tab and specify a vendor and the price that they sell the product
|
||||||
Chances are that products that are in high demand are being offered by large suppliers at a
|
for. Multiple vendors can be added, but the vendor at the top of the list will be the one
|
||||||
fraction of the price you'll be able to charge, so using a more
|
automatically selected for purchase orders.
|
||||||
costly shipping method won't be financially rewarding. But if
|
|
||||||
your product is unique, then it makes sense!
|
|
||||||
|
|
||||||
- To protect your customers from bad experiences.
|
.. image:: dropshipping/product-vendor-config.png
|
||||||
Test drop-shipping companies for yourself beforehand and list the best ones.
|
:align: center
|
||||||
|
:alt: The product form with a vendor specified.
|
||||||
|
|
||||||
- Make sure time is not against you.
|
Finally, select the :guilabel:`Inventory` tab and enable the :guilabel:`Dropship` checkbox in the
|
||||||
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
|
:guilabel:`Routes` section.
|
||||||
to provide your customers with a tracking number.
|
|
||||||
|
|
||||||
- Items have to be available from your supplier.
|
.. image:: dropshipping/enable-dropship-route.png
|
||||||
It's good to know if
|
:align: center
|
||||||
the product you're selling is available upstream. If you don't
|
:alt: Enable the Dropship option in the product inventory tab.
|
||||||
have that information, inform your customers that you don't hold
|
|
||||||
the item in stock and that it's subject to availability from a
|
Fulfill orders using dropshipping
|
||||||
third party.
|
=================================
|
||||||
|
|
||||||
|
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::
|
.. tip::
|
||||||
For more information and insights about Drop-Shipping, you can read our
|
Dropship sales orders can also be created manually through the :guilabel:`Sales` app by selecting
|
||||||
blog: `*What is drop-shipping and how to use
|
:menuselection:`Orders --> Orders --> Create` and adding a product configured for dropshipping.
|
||||||
it* <https://www.odoo.com/blog/business-hacks-1/post/what-is-drop-shipping-and-how-to-use-it-250>`__.
|
|
||||||
|
|
||||||
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
|
Once the :abbr:`RFQ (Request for Quotation)` is confirmed, it becomes a purchase order and a
|
||||||
--> Settings`.
|
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
|
.. image:: dropshipping/dropship-purchase-order.png
|
||||||
:align: center
|
: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
|
The dropship receipt will list the supplier in the :guilabel:`Receive From` section and the customer
|
||||||
activate the *Multi-Step Routes* feature. It will allow you to make
|
in the :guilabel:`Destination Location` section. Upon delivery of the product to the customer, click
|
||||||
the *Route* field appear on the sale order lines to specify you send a
|
on the :guilabel:`Validate` button at the top left of the dropship receipt to confirm the delivered
|
||||||
product via drop-shipping.
|
quantity.
|
||||||
|
|
||||||
.. image:: dropshipping/dropshipping_02.png
|
.. image:: dropshipping/validate-dropship-receipt.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Validate the dropship receipt after delivery.
|
||||||
|
|
||||||
Now, in the *Sales* app, go to :menuselection:`Products --> Products`. Select the
|
To view all dropship orders, simply navigate to the :guilabel:`Inventory` dashboard and click the
|
||||||
product you would like to drop-ship and add a vendor pricelist which
|
teal :guilabel:`# TO PROCESS` button on the :guilabel:`Dropship` card.
|
||||||
contains the right supplier, via the purchase tab.
|
|
||||||
|
|
||||||
.. image:: dropshipping/dropshipping_03.png
|
.. image:: dropshipping/view-all-dropship-orders.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Click the green button on the Dropship card to view all dropship orders.
|
||||||
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
|
|
||||||
won’t 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
|
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
|
@@ -1,11 +0,0 @@
|
||||||
:nosearch:
|
|
||||||
|
|
||||||
====================
|
|
||||||
Inventory Adjustment
|
|
||||||
====================
|
|
||||||
|
|
||||||
.. 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
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
|
@@ -11,4 +11,3 @@ Valuation Methods
|
||||||
reporting/inventory_valuation_config
|
reporting/inventory_valuation_config
|
||||||
reporting/using_inventory_valuation
|
reporting/using_inventory_valuation
|
||||||
reporting/integrating_landed_costs
|
reporting/integrating_landed_costs
|
||||||
/applications/finance/accounting/others/inventory/avg_price_valuation
|
|
||||||
|
|
|
||||||
|
|
@@ -1,7 +1,9 @@
|
||||||
=================================
|
=================================
|
||||||
Inventory Valuation Configuration
|
Inventory valuation configuration
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
|
.. _inventory/inventory_valuation_config:
|
||||||
|
|
||||||
All of a company's stock on-hand contributes to the valuation of its inventory. That value should
|
All of a company's stock on-hand contributes to the valuation of its inventory. That value should
|
||||||
be reflected in the company's accounting records to accurately show the value of the company and
|
be reflected in the company's accounting records to accurately show the value of the company and
|
||||||
all of its assets.
|
all of its assets.
|
||||||
|
|
@@ -27,32 +29,32 @@ between locations in a company's inventory.
|
||||||
need to be periodically checked to ensure accuracy, and adjustments may be needed on an ongoing
|
need to be periodically checked to ensure accuracy, and adjustments may be needed on an ongoing
|
||||||
basis depending on the needs and priorities of the business.
|
basis depending on the needs and priorities of the business.
|
||||||
|
|
||||||
Types of Accounting
|
Types of accounting
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Accounting entries will depend on the accounting mode: Continental or Anglo-Saxon.
|
Accounting entries will depend on the accounting mode: *Continental* or *Anglo-Saxon*.
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
Verify the accounting mode by activating the :ref:`developer-mode`
|
Verify the accounting mode by activating the :ref:`developer-mode` and navigating to
|
||||||
and navigating to :menuselection:`Accounting --> Configuration --> Settings`.
|
:menuselection:`Accounting --> Configuration --> Settings`.
|
||||||
|
|
||||||
In Anglo-Saxon accounting, the costs of goods sold (COGS) are reported when products are sold or
|
In *Anglo-Saxon* accounting, the costs of goods sold (COGS) are reported when products are sold or
|
||||||
delivered. This means that the cost of a good is only recorded as an expense when a customer is
|
delivered. This means that the cost of a good is only recorded as an expense when a customer is
|
||||||
invoiced for a product. Interim Stock Accounts are used for the input and output accounts, and are
|
invoiced for a product. *Interim Stock Accounts* are used for the input and output accounts, and are
|
||||||
both Asset Accounts in the Balance Sheet.
|
both *Asset Accounts* in the balance sheet.
|
||||||
|
|
||||||
In Continental accounting, the cost of a good is reported as soon as a product is received into
|
In *Continental* accounting, the cost of a good is reported as soon as a product is received into
|
||||||
stock. Additionally, a *single* Expense account is used for both input and output accounts in
|
stock. Additionally, a single *Expense* account is used for both input and output accounts in
|
||||||
the Balance Sheet.
|
the balance sheet.
|
||||||
|
|
||||||
Costing Methods
|
Costing methods
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Below are the three costing methods that can be used in Odoo for inventory valuation.
|
Below are the three costing methods that can be used in Odoo for inventory valuation.
|
||||||
|
|
||||||
- **Standard Price**: is the default costing method in Odoo. The cost of the product is manually
|
- **Standard Price**: is the default costing method in Odoo. The cost of the product is manually
|
||||||
defined on the product form, and this cost is used to compute the valuation. Even if the purchase
|
defined on the product form, and this cost is used to compute the valuation. Even if the purchase
|
||||||
price on a Purchase Order differs, the valuation will still use the cost defined on the product
|
price on a purchase order differs, the valuation will still use the cost defined on the product
|
||||||
form.
|
form.
|
||||||
- **Average Cost (AVCO)**: calculates the valuation of a product based on the average cost of that
|
- **Average Cost (AVCO)**: calculates the valuation of a product based on the average cost of that
|
||||||
product, divided by the total number of available stock on-hand. With this costing method,
|
product, divided by the total number of available stock on-hand. With this costing method,
|
||||||
|
|
@@ -81,10 +83,11 @@ valuation method should apply.
|
||||||
Under the :guilabel:`Inventory Valuation` heading are two labels: :guilabel:`Costing Method` and
|
Under the :guilabel:`Inventory Valuation` heading are two labels: :guilabel:`Costing Method` and
|
||||||
:guilabel:`Inventory Valuation`. Pick the desired :guilabel:`Costing Method` using the drop-down
|
:guilabel:`Inventory Valuation`. Pick the desired :guilabel:`Costing Method` using the drop-down
|
||||||
menu (e.g. :guilabel:`Standard`, :guilabel:`Average Cost (AVCO)`, or :guilabel:`First In First Out
|
menu (e.g. :guilabel:`Standard`, :guilabel:`Average Cost (AVCO)`, or :guilabel:`First In First Out
|
||||||
(FIFO)` and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
|
(FIFO)`) and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
:doc:`Using the inventory valuation <using_inventory_valuation>`
|
:doc:`Using the inventory valuation
|
||||||
|
</applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation>`
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, the numerical
|
When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, the numerical
|
||||||
|
|
|
||||||
|
|
@@ -1,77 +1,130 @@
|
||||||
=============================
|
=========================
|
||||||
Using the inventory valuation
|
Using inventory valuation
|
||||||
=============================
|
=========================
|
||||||
|
|
||||||
Inventory valuation refers to how you value your stock. It’s a very
|
*Inventory valuation* is a quintessential accounting procedure that calculates the value of on-hand
|
||||||
important aspect of a business as the inventory can be the biggest asset
|
stock. Once determined, the inventory valuation amount is then incorporated into a company's overall
|
||||||
of a company.
|
value.
|
||||||
|
|
||||||
In this documentation, we will explain how the inventory valuation works
|
In Odoo, this process can be conducted manually— by warehouse employees physically counting the
|
||||||
in Odoo.
|
products— or automatically through the database.
|
||||||
|
|
||||||
Inventory valuation: the basics
|
.. seealso::
|
||||||
===============================
|
:ref:`Inventory valuation configuration <inventory/inventory_valuation_config>`
|
||||||
|
|
||||||
|
Understand the basics of inventory valuation
|
||||||
|
============================================
|
||||||
|
|
||||||
|
In order to understand how moving products in and out of stock affects the company's overall value,
|
||||||
|
consider the following product and stock moves scenario below.
|
||||||
|
|
||||||
Receive a product
|
Receive a product
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
Each time a product enters or leaves your stock, the value of your
|
For example, consider an physical product, a simple *table*, which is categorized as `Office
|
||||||
inventory is impacted. The way it is impacted depends on the
|
Furniture` in the product form's :guilabel:`Product Category` field.
|
||||||
configuration of your product (more info here).
|
|
||||||
|
|
||||||
Let’s take an example with a product - a table - configured with a
|
Navigate to the the product category itself by going to :menuselection:`Inventory app -->
|
||||||
*FIFO costing method* and an automated inventory valuation.
|
Configuration --> Product Categories`, and on the form, set the :guilabel:`Costing Method` as `First
|
||||||
|
In First Out (FIFO)` and the :guilabel:`Inventory Valuation` field as `Automated`.
|
||||||
I purchase 10 tables at a cost of $10.
|
|
||||||
|
|
||||||
.. image:: using_inventory_valuation/use_inventory_valuation_01.png
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
When I’ll confirm the receipt of the products, the value of my inventory
|
|
||||||
will be impacted. If I want to know what this impact is, I can click on
|
|
||||||
the valuation stat button.
|
|
||||||
|
|
||||||
.. tip::
|
.. tip::
|
||||||
The consignment feature allows you to set owners on your stock (discover
|
Alternatively access the :guilabel:`Product Categories` dashboard by clicking on the
|
||||||
more about the consignment feature). When you receive products that are
|
:guilabel:`internal link` arrow on the individual product's form, by hovering over the
|
||||||
owned by another company, they are not taken into account in your
|
:guilabel:`Product Category` field.
|
||||||
inventory valuation.
|
|
||||||
|
|
||||||
.. image:: using_inventory_valuation/use_inventory_valuation_02.png
|
Next, assume 10 tables are purchased at a price of $10.00, each. The :abbr:`PO (Purchase Order)` for
|
||||||
:align: center
|
those tables will show the subtotal of the purchase as $100, plus any additional costs or taxes.
|
||||||
|
|
||||||
.. note::
|
.. image:: using_inventory_valuation/purchase-order.png
|
||||||
You need access rights on the accounting module to see that button.
|
:align: center
|
||||||
|
:alt: Purchase order with 10 tables products valued at $10 each.
|
||||||
|
|
||||||
In this case, I can see that the 10 tables entered the stock for a total
|
After selecting :guilabel:`Validate` on the :abbr:`PO (Purchase Order)`, use the
|
||||||
value of $100.
|
:guilabel:`Valuation` smart button to view how the value of inventory was impacted.
|
||||||
|
|
||||||
.. image:: using_inventory_valuation/use_inventory_valuation_03.png
|
.. image:: using_inventory_valuation/valuation-smart-button.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Valuation smart button on a receipt.
|
||||||
|
|
||||||
I can also easily access the accounting entry that has been generated
|
.. important::
|
||||||
(in case of automated inventory valuation).
|
:ref:`Developer mode <developer-mode>` must be turned on to see the *Valuation* smart button.
|
||||||
|
|
||||||
.. image:: using_inventory_valuation/use_inventory_valuation_04.png
|
.. tip::
|
||||||
:align: center
|
The :doc:`consignment </applications/inventory_and_mrp/inventory/management/misc/owned_stock>`
|
||||||
|
feature allows ownership to items in stock. Thus, products owned by other companies are not
|
||||||
|
accounted for in the host company's inventory valuation.
|
||||||
|
|
||||||
|
The :guilabel:`Stock Valuation` dashboard then displays valuation of all products in the shipment,
|
||||||
|
along with their quantities and valuation. In the example of 10 tables being purchased, the
|
||||||
|
:guilabel:`Total Value` column of the dashboard would display a calculated valuation of $100.
|
||||||
|
|
||||||
|
.. image:: using_inventory_valuation/stock-valuation-product.png
|
||||||
|
:align: center
|
||||||
|
:alt: Stock valuation page depicting the products within a shipment.
|
||||||
|
|
||||||
|
In Odoo, automatic inventory valuation records are also recorded in the *Accounting* app. To access
|
||||||
|
these accounting entries, navigate to :menuselection:`Accounting --> Journal Entries`, and look for
|
||||||
|
inventory valuation entries with the `STJ` prefix in the :guilabel:`Journal` and :guilabel:`Number`
|
||||||
|
columns, respectively.
|
||||||
|
|
||||||
|
.. image:: using_inventory_valuation/inventory-valuation-entry.png
|
||||||
|
:align: center
|
||||||
|
:alt: Accounting entry for the inventory valuation of 10 tables.
|
||||||
|
|
||||||
Deliver a product
|
Deliver a product
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
In the same logic, when a table will be delivered, the stock valuation
|
In the same logic, when a table is shipped to a customer and leaves the warehouse, the stock
|
||||||
will be impacted and you will have access to a similar information.
|
valuation decreases. The :guilabel:`Valuation` smart button on the :abbr:`DO (Delivery Order)`,
|
||||||
|
likewise, displays the stock valuation record as it does on a :abbr:`PO (Purchase Order)`
|
||||||
|
|
||||||
.. image:: using_inventory_valuation/use_inventory_valuation_05.png
|
.. image:: using_inventory_valuation/decreased-stock-valuation.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Decreased stock valuation after a product is shipped.
|
||||||
|
|
||||||
The inventory valuation report
|
The inventory valuation report
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
The summary of this is accessible via the inventory valuation report
|
To view the current value of all products in the warehouse, go to :menuselection:`Inventory app -->
|
||||||
(accessible from :menuselection:`Inventory --> Reporting --> Inventory Valuation`). It gives
|
Reporting --> Inventory Valuation`. The records in the table are organized by product, and selecting
|
||||||
you, product per product, the value of your stock. By clicking on the
|
a product's drop-down menu displays detailed records with the :guilabel:`Date`,
|
||||||
button *Inventory At Date*, you can have the same information for a
|
:guilabel:`Quantity`, and :guilabel:`Total Value` of the inventory.
|
||||||
past date.
|
|
||||||
|
|
||||||
.. image:: using_inventory_valuation/use_inventory_valuation_06.png
|
.. image:: using_inventory_valuation/inventory-valuation-products.png
|
||||||
:align: center
|
:align: center
|
||||||
|
:alt: Inventory valuation report showing multiple products.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The :guilabel:`Inventory At Date` button, located in the top-left corner of the :guilabel:`Stock
|
||||||
|
Valuation` dashboard, shows the inventory valuation of products available during a prior
|
||||||
|
specified date.
|
||||||
|
|
||||||
|
Update product unit price
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
For any company: lead times, supply chain failures, and other risk factors can contribute to
|
||||||
|
invisible costs. Although Odoo attempts to accurately represent the stock value, *manual valuation*
|
||||||
|
serves as an additional tool to update the unit price of products.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
Manual valuation is intended for products that can be purchased and received for a cost greater
|
||||||
|
than 0, or have product categories set with :guilabel:`Costing Method` set as either `Average
|
||||||
|
Cost (AVCO)` or `First In First Out (FIFO)`.
|
||||||
|
|
||||||
|
.. image:: using_inventory_valuation/add-manual-valuation.png
|
||||||
|
:align: center
|
||||||
|
:alt: Add manual valuation of stock value to a product.
|
||||||
|
|
||||||
|
Create manual valuation entries on the :guilabel:`Stock Valuation` dashboard by first navigating to
|
||||||
|
:menuselection:`Inventory app --> Reporting --> Inventory Valuation`, and then click the little gray
|
||||||
|
drop-down icon to the left of a product's name, to then reveal stock valuation line items below as
|
||||||
|
well as a teal :guilabel:`+ (plus)` button on the right.
|
||||||
|
|
||||||
|
Click the teal :guilabel:`+ (plus)` button to open up the :guilabel:`Product Revaluation` form,
|
||||||
|
where updates to the calculation of inventory valuation can be made, by increasing or decreasing the
|
||||||
|
unit price of each product.
|
||||||
|
|
||||||
|
.. image:: using_inventory_valuation/product-revaluation.png
|
||||||
|
:align: center
|
||||||
|
:alt: Product revaluation form adding a value of $1.00 with the reason being inflation.
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
|
@@ -9,3 +9,4 @@ Warehouses
|
||||||
:glob:
|
:glob:
|
||||||
|
|
||||||
warehouses/difference_warehouse_location
|
warehouses/difference_warehouse_location
|
||||||
|
warehouses/warehouse_replenishment_transfer
|
||||||
|
|
|
||||||
|
|
@@ -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.
|
||||||
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
|
@@ -9,6 +9,5 @@ Concepts
|
||||||
:glob:
|
:glob:
|
||||||
|
|
||||||
concepts/use-routes
|
concepts/use-routes
|
||||||
concepts/inter_warehouse
|
|
||||||
concepts/cross_dock
|
concepts/cross_dock
|
||||||
concepts/stock_warehouses
|
concepts/stock_warehouses
|
||||||
|
|
|
||||||
|
|
@@ -1,129 +0,0 @@
|
||||||
=========================
|
|
||||||
Inter-warehouse transfers
|
|
||||||
=========================
|
|
||||||
|
|
||||||
When owning several warehouses, you might need to transfer goods from one warehouse to another.
|
|
||||||
Proceeding to such behavior is called *inter-warehouse transfers*. If this action is physically
|
|
||||||
easy to perform, the administrative part can be arduous. Fortunately, Odoo comes with an intuitive
|
|
||||||
flow that helps save time when registering those transfers.
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
First of all, go to :menuselection:`Configuration --> Settings` and enable **Storage Locations**.
|
|
||||||
Then, hit save.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/feature-storage-location.png
|
|
||||||
:align: center
|
|
||||||
:alt: Enabling the storage location feature in Odoo Inventory.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
If you want to manage several routes within your warehouses, then enable **Multi-Step Routes**
|
|
||||||
and check :doc:`use-routes`.
|
|
||||||
|
|
||||||
Creating a new warehouse
|
|
||||||
========================
|
|
||||||
|
|
||||||
The next step is to create your new warehouse. To do so, go to :menuselection:`Configuration -->
|
|
||||||
Warehouse Management --> Warehouses` and click on **Create**.
|
|
||||||
|
|
||||||
Fill out a **Warehouse Name** and a **Short Name**. The short name is five characters maximum.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/create-new-warehouse.png
|
|
||||||
:align: center
|
|
||||||
:alt: Short name field of a warehouse on Odoo Inventory.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The **Short Name** appears on your transfer orders and other warehouse documents. We recommend
|
|
||||||
using an understandable one (e.g.: WH/[first letters of location]).
|
|
||||||
|
|
||||||
Now, go back to your dashboard. There, new operations related to your warehouse have been
|
|
||||||
automatically generated.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/new-transfer-types.png
|
|
||||||
:align: center
|
|
||||||
:alt: Inventory app dashboard displaying new transfer type for the recently created warehouse.
|
|
||||||
|
|
||||||
Creating a new inventory
|
|
||||||
========================
|
|
||||||
|
|
||||||
If you create a new warehouse, you might already have an existing inventory in it. In that case, you
|
|
||||||
should create an inventory in Odoo. If this is not the case, you can skip this step.
|
|
||||||
|
|
||||||
Into the inventory application, select :menuselection:`Operations --> Inventory Adjustment`.
|
|
||||||
Then, create a new inventory by clicking on **Create**. Fill in the **Inventory Reference**,
|
|
||||||
**Date** and make sure to select the right warehouse and location.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/annual-inventory.png
|
|
||||||
:align: center
|
|
||||||
:alt: View of the inventory adjustment form before hitting the start button.
|
|
||||||
|
|
||||||
Next, click on **Start Inventory**. You will be able to input your existing products in the new
|
|
||||||
window. Select add an item and indicate the **Real Quantity** available in the warehouse.
|
|
||||||
The theoretical quantity can not be changed as it represents a computed one from purchase and sales
|
|
||||||
orders.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/in-progress-annual-inventory.png
|
|
||||||
:align: center
|
|
||||||
:alt: View of the actual physical inventory of the new warehouse.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
Don't forget to validate your inventory once you have recorded the state of all your products.
|
|
||||||
|
|
||||||
Create an internal transfer
|
|
||||||
===========================
|
|
||||||
|
|
||||||
The final step is to create your internal transfer. If you want to transfer eight units of a product
|
|
||||||
from your first warehouse to another one, proceed as follows:
|
|
||||||
|
|
||||||
From your dashboard, select an internal movement of one of the two warehouses. To do so, click on
|
|
||||||
:menuselection:`Manage --> 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 window, select the source location zone (in this case, your "old" warehouse) and the
|
|
||||||
destination location zone (in this case, your "new" warehouse).
|
|
||||||
|
|
||||||
Add the products you want to transfer by clicking on **Add an Item**, then click on **Save** and
|
|
||||||
**Mark as TODO** once you are done.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/planned-internal-transfer.png
|
|
||||||
:align: center
|
|
||||||
:alt: View of the internal transfer form.
|
|
||||||
|
|
||||||
If you selected **Immediate Transfer**, Odoo processes the transfer automatically after you clicked
|
|
||||||
on **Validate**.
|
|
||||||
|
|
||||||
If you select **Mark as TODO**, Odoo puts the transfer in **Waiting Availability** status.
|
|
||||||
Click on **Reserve** to reserve the number of products in your source warehouse.
|
|
||||||
|
|
||||||
It is also possible to manually transfer each product:
|
|
||||||
|
|
||||||
- Via your dashboard, select the transfer order in the source location.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/in-progress-internal-transfer.png
|
|
||||||
:align: center
|
|
||||||
:alt: View of the dashboard with a zoom of the pending internal transfer.
|
|
||||||
|
|
||||||
- Select the right transfer order.
|
|
||||||
|
|
||||||
.. image:: inter_warehouse/internal-transfers-list.png
|
|
||||||
:align: center
|
|
||||||
:alt: View of the pending internal transfers list.
|
|
||||||
|
|
||||||
- Click on the little pencil logo in the lower right corner to open the operation details window.
|
|
||||||
In this new window you can manually indicate how many products you process.
|
|
||||||
|
|
||||||
.. 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::
|
|
||||||
If you decide 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 you wish to create a
|
|
||||||
**backorder**.
|
|
||||||
|
|
||||||
- Create a backorder if you expect to process the remaining products later.
|
|
||||||
- Do not create a backorder if you will not supply/receive the remaining products.
|
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
|
@@ -8,3 +8,4 @@ Quality control
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
quality_control/quality_control_points
|
quality_control/quality_control_points
|
||||||
|
quality_control/quality_alerts
|
||||||
|
|
|
||||||
|
|
@@ -0,0 +1,79 @@
|
||||||
|
=====================
|
||||||
|
Create quality alerts
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Configuring quality control points is a great way to ensure that quality checks are performed at
|
||||||
|
routine stages during specific operations. However, quality issues can often appear outside of these
|
||||||
|
scheduled checks. Using Odoo *Quality*, users can create quality alerts for issues that are not
|
||||||
|
detected by automated processes.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
:doc:`Add quality control points <quality_control_points>`
|
||||||
|
|
||||||
|
Find and fill out the quality alerts form
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
In some situations, it is necessary to manually create quality alerts within the *Quality* module.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
A helpdesk user who is notified of a product defect by a customer ticket can create an alert that
|
||||||
|
brings the issue to the attention of the relevant quality team.
|
||||||
|
|
||||||
|
To create a new quality alert, start from the :menuselection:`Quality` module and select
|
||||||
|
:menuselection:`Quality Control --> Quality Alerts --> Create`. The quality alert form can then be
|
||||||
|
filled out as follows:
|
||||||
|
|
||||||
|
- :guilabel:`Title`: choose a concise, yet descriptive title for the quality alert
|
||||||
|
- :guilabel:`Product`: the product about which the quality alert is being created
|
||||||
|
- :guilabel:`Product Variant`: the specific variant of the product that has the quality issue, if
|
||||||
|
applicable
|
||||||
|
- :guilabel:`Lot`: the lot number assigned to the product
|
||||||
|
- :guilabel:`Work Center`: the work center where the quality issue originated
|
||||||
|
- :guilabel:`Picking`: the picking operation during which the quality issue originated
|
||||||
|
- :guilabel:`Team`: the quality team that will be notified by the quality alert
|
||||||
|
- :guilabel:`Responsible`: the individual responsible for managing the quality alert
|
||||||
|
- :guilabel:`Tags`: classify the quality alert based on user-created tags
|
||||||
|
- :guilabel:`Root Cause`: the cause of the quality issue, if known
|
||||||
|
- :guilabel:`Priority`: assign a priority between one and three stars to ensure more
|
||||||
|
urgent issues are prioritized
|
||||||
|
|
||||||
|
The tabs at the bottom of the form can be used to provide additional information to quality teams:
|
||||||
|
|
||||||
|
- :guilabel:`Description`: provide additional details about the quality issue
|
||||||
|
- :guilabel:`Corrective Actions`: the method for fixing affected products
|
||||||
|
- :guilabel:`Preventive Actions`: procedures for preventing the issue from occurring in
|
||||||
|
the future
|
||||||
|
- :guilabel:`Miscellaneous`: the product vendor (if applicable), the company that produces
|
||||||
|
the product, and the date assigned
|
||||||
|
|
||||||
|
.. image:: quality_alerts/quality-alert-form.png
|
||||||
|
:align: center
|
||||||
|
:alt: An example of a completed quality alert form.
|
||||||
|
|
||||||
|
Add quality alerts during the manufacturing process
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
Odoo enables manufacturing employees to create quality alerts within a work order without accessing
|
||||||
|
the *Quality* module. From the work order tablet view, click the :guilabel:` ☰ ` hamburger menu
|
||||||
|
icon in the top left corner and select :guilabel:`Quality Alert`.
|
||||||
|
|
||||||
|
.. image:: quality_alerts/work-order-tablet-view-menu-button.png
|
||||||
|
:align: center
|
||||||
|
:alt: Access the work order menu.
|
||||||
|
|
||||||
|
The quality alert form can then be filled out as detailed in the previous section. After saving the
|
||||||
|
form, a new alert will appear on the :guilabel:`Quality Alerts` dashboard that can be found through
|
||||||
|
the :menuselection:`Quality --> Quality Control` menu.
|
||||||
|
|
||||||
|
Manage existing quality alerts
|
||||||
|
==============================
|
||||||
|
|
||||||
|
By default, quality alerts are organized in a kanban board view. The stages of the kanban board are
|
||||||
|
fully configurable and alerts can be moved from one stage to the next by dragging and dropping or
|
||||||
|
from within each alert. Additional options are available for viewing alerts, including graph,
|
||||||
|
calendar, and pivot table views.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
Filter alerts based on diverse criteria like date assigned or date closed. Alerts can also be
|
||||||
|
grouped by quality team, root cause, or other parameters found under the :guilabel:`Filters`
|
||||||
|
button menu.
|
||||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
|
@@ -1,96 +1,94 @@
|
||||||
============================================
|
==========================
|
||||||
Don’t run out of stock with reordering rules
|
Configure reordering rules
|
||||||
============================================
|
==========================
|
||||||
|
|
||||||
To make sure you never run out of stock, you can define *Reordering Rules* on products. Thanks to
|
For certain products, it is necessary to ensure that there is always a minimum amount available on
|
||||||
them, Odoo can help you replenish your stock automatically when it reaches set quantities or
|
hand at any given time. By adding a reordering rule to a product, it is possible to automate the
|
||||||
whenever a sales order is created.
|
reordering process so that a purchase order is automatically created whenever the amount on hand
|
||||||
|
falls below a set threshold.
|
||||||
|
|
||||||
.. important:: You need to install the *Inventory app* to use reordering rules.
|
.. important::
|
||||||
|
The *Inventory* module must be installed to use reordering rules.
|
||||||
|
|
||||||
Configure your storable product
|
Configure products for reordering
|
||||||
===============================
|
=================================
|
||||||
|
|
||||||
Open or create a product with its *Product Type* set to *Storable Product*.
|
Products must be configured in a specific way before a reordering rule can be added to them.
|
||||||
|
|
||||||
.. image:: reordering/reordering-storable-product.png
|
Starting from the :menuselection:`Inventory`, :menuselection:`Manufacturing`,
|
||||||
|
:menuselection:`Purchase`, or :menuselection:`Sales` module, navigate to :menuselection:`Products
|
||||||
|
--> Products` and then click :guilabel:`Create` to make a new product. Alternatively, find a product
|
||||||
|
that already exists in the database and click into it's product form.
|
||||||
|
|
||||||
|
Next, on the product form, enable reordering by checking the :guilabel:`Can be Purchased` option
|
||||||
|
underneathe the :guilabel:`Product Name` field. Finally, set the :guilabel:`Product Type` to
|
||||||
|
`Storable Product` under the :guilabel:`General Information` tab.
|
||||||
|
|
||||||
|
.. image:: reordering/product-configured-for-reordering.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Set the product type in Odoo
|
:alt: Configure a product for reordering in Odoo.
|
||||||
|
|
||||||
As you are purchasing this product from a vendor, go to the product's *Purchase tab* and add a
|
Add a reordering rule to a product
|
||||||
vendor by clicking on *Add a line*. You can add multiple vendors, but make sure to order them
|
==================================
|
||||||
correctly, since reordering rules always use the first vendor in a list. You can add a price, but it
|
|
||||||
isn't necessary for the reordering rule to work. In addition, you can add a minimum quantity you
|
After properly configuring a product, a reordering rule can be added to it by selecting the now
|
||||||
must order to benefit from that price.
|
visible :guilabel:`Reordering Rules` tab at the top of that product's form, and then clicking
|
||||||
|
:guilabel:`Create` on the :guilabel:`Reordering Rules` dashboard.
|
||||||
|
|
||||||
|
.. image:: reordering/reordering-rules-tab.png
|
||||||
|
:align: center
|
||||||
|
:alt: Access reordering rules for a product from the product page in Odoo.
|
||||||
|
|
||||||
|
Once created, the reordering rule can be configured to generate purchase orders automatically by
|
||||||
|
defining the following fields:
|
||||||
|
|
||||||
|
- :guilabel:`Location` specifies where the ordered quantities should be stored once they are
|
||||||
|
received and entered into stock.
|
||||||
|
- :guilabel:`Min Quantity` sets the lower threshold for the reordering rule while :guilabel:`Max
|
||||||
|
Quantity` sets the upper threshold. If the stock on hand falls below the minimum quantity, a new
|
||||||
|
purchase order will be created to replenish it up to the maximum quantity.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
If :guilabel:`Min Quantity` is set to `5` and :guilabel:`Max Quantity` is set to `25` and the
|
||||||
|
stock on hand falls to four, a purchase order will be created for 21 units of the product.
|
||||||
|
|
||||||
|
- :guilabel:`Multiple Quantity` can be configured so that products are only ordered in batches of a
|
||||||
|
certain quantity. Depending on the number entered, this can result in the creation of a purchase
|
||||||
|
order that would put the resulting stock on hand above what is specified in the :guilabel:`Max
|
||||||
|
Quantity` field.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
If :guilabel:`Max Quantity` is set to `100` but :guilabel:`Multiple Quantity` is set to order
|
||||||
|
the product in batches of `200`, a purchase order will be created for 200 units of the
|
||||||
|
product.
|
||||||
|
|
||||||
|
- :guilabel:`UoM` specifies the unit of measurement by which the quantity will be ordered. For
|
||||||
|
discrete products, this should be set to `Units`. However, it can also be set to units of
|
||||||
|
measurement like `Volume` or `Weight` for non-discrete products like water or bricks.
|
||||||
|
|
||||||
|
.. image:: reordering/reordering-rule-configuration.png
|
||||||
|
:align: center
|
||||||
|
:alt: Configure the reordering rule in Odoo.
|
||||||
|
|
||||||
|
Manually trigger reordering rules using the scheduler
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
Reordering rules will be automatically triggered by the scheduler, which runs once a day by
|
||||||
|
default. To trigger reordering rules manually, navigate to :menuselection:`Inventory --> Operations
|
||||||
|
--> Run Scheduler`. On the pop-up window, confirm the manual action by clicking :guilabel:`Run
|
||||||
|
Scheduler`.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
If the quantity Odoo has to reorder doesn't match the minimum quantity specified, Odoo selects
|
Manually triggering reordering rules will also trigger any other scheduled actions.
|
||||||
the next vendor on your list. If you don't have another vendor on your list, the reordering rule
|
|
||||||
won't work. For that purpose, you can add the same vendor multiple times with different prices
|
|
||||||
for different quantities.
|
|
||||||
|
|
||||||
.. image:: reordering/reordering-product-vendor.png
|
Manage reordering rules
|
||||||
:align: center
|
=======================
|
||||||
:alt: Add vendor to a product in Odoo
|
|
||||||
|
|
||||||
.. tip::
|
To manage the reordering rules for a single product, navigate to that product page's form and select
|
||||||
By default, a draft purchase order is created. However, if you have enabled *Purchase
|
the :guilabel:`Reordering Rules` tab at the top of the form.
|
||||||
Agreements*, you can *Propose a call for tenders* instead as shown in the image above. For more
|
|
||||||
information, see :doc:`../manage_deals/agreements`
|
|
||||||
|
|
||||||
Next, make sure the correct route is selected under the Inventory tab of your product. If you
|
To manage all reordering rules for every product, go to :menuselection:`Inventory --> Configuration
|
||||||
created your product within the Purchase app, the *Buy* route is selected by default. If you are
|
--> Reordering Rules`. From this dashboard, typical bulk actions in Odoo can be performed such as
|
||||||
looking to dropship your product, select *Dropship*.
|
exporting data or archiving rules that are no longer needed. As well, the :guilabel:`Filters`,
|
||||||
|
:guilabel:`Group By` or triple-dotted menu on the form are available to search for and/or organize
|
||||||
.. image:: reordering/reordering-product-routes.png
|
the reordering rules as desired.
|
||||||
:align: center
|
|
||||||
:alt: Choose product routes in Odoo
|
|
||||||
|
|
||||||
Set up your reordering rule
|
|
||||||
===========================
|
|
||||||
|
|
||||||
Open your product and click on the *Reordering Rules* button.
|
|
||||||
|
|
||||||
.. image:: reordering/reordering-button.png
|
|
||||||
:align: center
|
|
||||||
:alt: Reordering rules button on a product in Odoo
|
|
||||||
|
|
||||||
Once you are on the product's reordering rules page, click on *Create*.
|
|
||||||
|
|
||||||
.. tip::
|
|
||||||
You can access and create reordering rules from :menuselection:`Inventory --> Configuration -->
|
|
||||||
Reordering Rules` and from :menuselection:`Inventory --> Operations --> Replenishment`. By
|
|
||||||
default, the replenishment view presents a summary of all the products that you might need to
|
|
||||||
purchase to fulfill your sales orders. From there, you can ask Odoo with a single click to order
|
|
||||||
a product once or automate all orders for that product, future orders included.
|
|
||||||
|
|
||||||
Define quantities
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
You can set a **minimum quantity** your stock should always have. Once set, if your stock goes below
|
|
||||||
the minimum quantity, and if you selected the Buy route, a request for quotation is automatically
|
|
||||||
generated to reach that minimum quantity, plus any additional quantity needed to fill in a sales
|
|
||||||
order for example.
|
|
||||||
|
|
||||||
If you set a **maximum quantity**, every time the product has to be replenished, enough products are
|
|
||||||
reordered to reach the maximum quantity.
|
|
||||||
|
|
||||||
If you want to order only the exact quantity needed to fill in a sales order for example, set both
|
|
||||||
both the minimum and maximum quantity to **zero**. The quantity mentioned in the sales order is then
|
|
||||||
used by the reordering rule.
|
|
||||||
|
|
||||||
You can also add a **quantity multiple** to only order products in batches of a certain quantity.
|
|
||||||
Click on the optional columns drop-down menu, and select *Multiple Quantity* to show the column.
|
|
||||||
Bear in mind that you might go over the maximum quantity you set if your rule includes a quantity
|
|
||||||
multiple, as Odoo orders enough products to reach the maximum quantity and respect the set quantity
|
|
||||||
multiple.
|
|
||||||
|
|
||||||
.. image:: reordering/reordering-create-rule.png
|
|
||||||
:align: center
|
|
||||||
:alt: Create a reordering rule in Odoo
|
|
||||||
|
|
||||||
.. note:: If you selected multiple routes for the same product under its Inventory tab, make sure to
|
|
||||||
select your *Preferred Route* on your reordering rule by clicking on the optional columns
|
|
||||||
drop-down menu, adding the *Preferred Route* column, and selecting the right route.
|
|
||||||
|
|
||||||
.. Add link when inventory doc on replenishment is updated for v14. .. seealso:: - :doc:`../../..inventory/xxx/xxx`
|
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |