Compare commits
1 Commits
14.0-contr
...
14.0-iot_h
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
c6e3853edf |
[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 |
|
|
@@ -43,7 +43,7 @@ API permissions
|
|||
---------------
|
||||
|
||||
The :guilabel:`API permissions` should be set next. Odoo will need specific API permissions to be
|
||||
able to read (IMAP) and send (SMTP) emails in the Microsoft 365 setup. First, click the
|
||||
able to read (IMAP) and send (IMAP) emails in the Microsoft 365 setup. First, click the
|
||||
:guilabel:`API permissions` link, located in the left menu bar. Next, click on the
|
||||
:guilabel:`(+) Add a Permission` button and select :guilabel:`Microsoft Graph` under
|
||||
:guilabel:`Commonly Used Microsoft APIs`. After, select the :guilabel:`Delegated Permissions`
|
||||
|
|
|
|||
|
|
@@ -21,87 +21,64 @@ Setup in Google
|
|||
Create a new project
|
||||
--------------------
|
||||
|
||||
To get started, go to the `Google API Console <https://console.developers.google.com>`_. Log in
|
||||
with your *Google Workspace* account if you have one, otherwise log in with your personal Gmail
|
||||
account (this should match the email address you want to configure in Odoo).
|
||||
To get started, go to the `Google API Platform
|
||||
<https://console.cloud.google.com/apis/credentials/consent>`_. Log in with your *Google Workspace*
|
||||
account if you have one, otherwise log in with your personal Gmail account (this should match the
|
||||
email address you want to configure in Odoo).
|
||||
|
||||
After that, click on :guilabel:`Create Project`, located on the far right of the :guilabel:`OAuth
|
||||
consent screen`. If a project has already been created in this account, then the :guilabel:`New
|
||||
Project` option will be located on the top right under the :guilabel:`Select a project` drop-down
|
||||
menu.
|
||||
After that, click on :guilabel:`Create Project`, located on the far right of the OAuth consent
|
||||
screen. If a project has already been created in this account, then the :guilabel:`New Project`
|
||||
option will be located on the top left under the :guilabel:`Select a project` drop-down menu.
|
||||
|
||||
On the :menuselection:`New Project` screen, rename the :guilabel:`Project name` to `Odoo` and
|
||||
browse for the :guilabel:`Location`. Set the :guilabel:`Location` as the *Google Workspace
|
||||
organization*. If you are using a personal Gmail account, then leave the :guilabel:`Location` as
|
||||
:guilabel:`No Organization`.
|
||||
On the :guilabel:`New Project` screen, rename the :guilabel:`Project name` to `Odoo` and browse for
|
||||
the :guilabel:`Location`. Set the :guilabel:`Location` as the `Google Workspace` organization. If
|
||||
you are using a personal Gmail account, then leave the :guilabel:`Location` as `No Organization`.
|
||||
|
||||
.. image:: google_oauth/new-project.png
|
||||
:align: center
|
||||
:alt: Project Name and Location for Google OAuth.
|
||||
:alt: Project Name and Location for Google Oauth.
|
||||
|
||||
Click on :guilabel:`Create` to finish this step.
|
||||
|
||||
OAuth consent screen
|
||||
--------------------
|
||||
|
||||
If the page doesn't redirect to the :menuselection:`User Type` options, click on :guilabel:`OAuth
|
||||
consent screen` in the left menu.
|
||||
|
||||
Under :guilabel:`User Type` options, select the appropriate :guilabel:`User Type`, and then click on
|
||||
:guilabel:`Create` again, which will finally navigate to the :menuselection:`Edit app registration`
|
||||
page.
|
||||
|
||||
.. warning::
|
||||
*Personal* Gmail Accounts are only allowed to be **External** User Type, which means Google may
|
||||
require an approval, or for *Scopes* to be added on. However, using a *Google WorkSpace* account
|
||||
allows for **Internal** User Type to be used.
|
||||
|
||||
Note, as well, that while the API connection is in the *External* testing mode, then no approval is
|
||||
necessary from Google. User limits in this testing mode is set to 100 users.
|
||||
Click on :guilabel:`Create` to finish this step. On the next screen, :guilabel:`User Type` options,
|
||||
select the :guilabel:`External` option, and then click on :guilabel:`Create` again, which will
|
||||
finally navigate to the :guilabel:`Edit app registration` page.
|
||||
|
||||
Edit app registration
|
||||
---------------------
|
||||
|
||||
Next we will configure the app registration of the project.
|
||||
|
||||
On the :guilabel:`OAuth consent screen` step, under the :guilabel:`App information` section, enter
|
||||
`Odoo` in the :guilabel:`App name` field. Select the organization's email address under the
|
||||
:guilabel:`User support` email field.
|
||||
|
||||
Next, under :menuselection:`App Domain --> Authorized domains`, click on :guilabel:`Add Domain` and
|
||||
enter `odoo.com`.
|
||||
|
||||
After that, under the :guilabel:`Developer contact information` section, enter the organization's
|
||||
email address. Google uses this email address to notify the organization about any changes to your
|
||||
project.
|
||||
|
||||
Next, click on the :guilabel:`Save and Continue` button. Then, skip the :menuselection:`Scopes` page
|
||||
by scrolling to the bottom and clicking on :guilabel:`Save and Continue`.
|
||||
|
||||
If continuing in testing mode (External), add the email addresses being configured under the
|
||||
:guilabel:`Test users` step, by clicking on :guilabel:`Add Users`, and then the :guilabel:`Save and
|
||||
Continue` button. A summary of the app registration appears.
|
||||
|
||||
Finally, scroll to the bottom and click on :guilabel:`Back to Dashboard` to finish setting up the
|
||||
project.
|
||||
- On the :guilabel:`Oauth consent screen` step, under the :guilabel:`App information` section,
|
||||
enter `Odoo` in the :guilabel:`App name` field. Select the organization's email address under the
|
||||
:guilabel:`User support` email field.
|
||||
- Next, under :menuselection:`App Domain --> Authorized domains`, click on :guilabel:`Add Domain`
|
||||
and enter `odoo.com`.
|
||||
- After that, under the :guilabel:`Developer contact information` section, enter the organization's
|
||||
email address. Google uses this email address to notify the organization about any changes to
|
||||
your project.
|
||||
- Next, click on the :guilabel:`Save and Continue` button.
|
||||
- Then, skip the :guilabel:`Scopes` page by scrolling to the bottom and clicking on
|
||||
:guilabel:`Save and Continue`.
|
||||
- Next, add the email being configured under the :guilabel:`Test users` step by clicking on
|
||||
:guilabel:`Add Users` and then the :guilabel:`Save and Continue` button. A summary of the
|
||||
:guilabel:`App registration` appears.
|
||||
- Finally, scroll to the bottom and click on :guilabel:`Back to Dashboard`.
|
||||
|
||||
Create Credentials
|
||||
------------------
|
||||
|
||||
Now that the project is set up, credentials should be created, which includes the *Client ID* and
|
||||
*Client Secret*. First, click on :guilabel:`Credentials` in the left sidebar menu.
|
||||
Now that you have set up the project, you need to create credentials, which includes the
|
||||
:guilabel:`Client ID` and :guilabel:`Client Secret`. First, click on :guilabel:`Credentials` in the
|
||||
left sidebar menu.
|
||||
|
||||
Then, click on :guilabel:`Create Credentials` in the top menu and select :guilabel:`OAuth client ID`
|
||||
from the dropdown menu.
|
||||
Then, click on :guilabel:`Create Credentials` in the top menu and select
|
||||
:guilabel:`OAuth client ID` from the dropdown menu.
|
||||
|
||||
- Under :guilabel:`Application Type`, select :guilabel:`Web Application` from the dropdown menu.
|
||||
- In the :guilabel:`Name` field, enter `Odoo`.
|
||||
- In the :guilabel:`Client ID` field, enter `Odoo`.
|
||||
- Under the :guilabel:`Authorized redirect URIs` label, click the button :guilabel:`ADD URI`, and
|
||||
then input `https://yourdbname.odoo.com/google_gmail/confirm` in the :guilabel:`URIs 1` field.
|
||||
Be sure to replace the *yourdbname* part of the URL with the actual Odoo database name.
|
||||
- Next, click on :guilabel:`Create` to generate an OAuth :guilabel:`Client ID` and :guilabel:`Client
|
||||
Secret`. Finally, copy each generated value for later use when configuring in Odoo, and then
|
||||
navigate to the Odoo database.
|
||||
then input `https://yourdbname.odoo.com/google_gmail/confirm` in the :guilabel:`URIs 1` field. Be
|
||||
sure to replace the *yourdbname* part of the URL with your actual Odoo database name.
|
||||
- Next, click on :guilabel:`Create` to generate an OAuth :guilabel:`Client ID` and
|
||||
:guilabel:`Client Secret`. Finally, copy each generated value for later use when configuring in
|
||||
Odoo, and then navigate to the Odoo database.
|
||||
|
||||
.. image:: google_oauth/client-credentials.png
|
||||
:align: center
|
||||
|
|
@@ -114,37 +91,32 @@ Enter Google Credentials
|
|||
------------------------
|
||||
|
||||
First, open Odoo and navigate to the :guilabel:`Apps` module. Then, remove the :guilabel:`Apps`
|
||||
filter from the search bar and type in `Google`. Install the module called :guilabel:`Google
|
||||
Gmail`.
|
||||
filter from the search bar and type in `Google`. Install the module called :guilabel:`Google Gmail`.
|
||||
|
||||
Next, navigate to :menuselection:`Settings --> General Settings`, and under the :guilabel:`Discuss`
|
||||
section, ensure that the checkbox for :guilabel:`Custom Email Servers` or :guilabel:`External Email
|
||||
Servers` is checked. This populates a new option for :guilabel:`Gmail Credentials` or :guilabel:`Use
|
||||
a Gmail Sever`. Then, copy and paste the respective values into the :guilabel:`Client ID` and
|
||||
:guilabel:`Client Secret` fields and :guilabel:`Save` the settings.
|
||||
section, ensure that the checkbox for :guilabel:`Custom Email Servers` is checked. This populates a
|
||||
new option for :guilabel:`Gmail Credentials`. Then, copy and paste the :guilabel:`Client ID` and
|
||||
:guilabel:`Client Secret` into the respective fields and :guilabel:`Save` the settings.
|
||||
|
||||
Configure outgoing email server
|
||||
-------------------------------
|
||||
|
||||
To configure the external Gmail account, return to the top of the :guilabel:`Custom Email Servers`
|
||||
setting and then click the :guilabel:`Outgoing Email Servers` link.
|
||||
After that, on the :guilabel:`General Settings` page, under :guilabel:`Custom Email Servers`, click
|
||||
:guilabel:`Outgoing Email Servers` to configure the external Gmail account.
|
||||
|
||||
.. image:: google_oauth/outgoing-servers.png
|
||||
:align: center
|
||||
:alt: Configure Outgoing Email Servers in Odoo.
|
||||
|
||||
Then, click on :guilabel:`New` or :guilabel:`Create` to create a new email server, and fill in the
|
||||
:guilabel:`Name`, :guilabel:`Description`, and the email :guilabel:`Username` (if required).
|
||||
Then, :guilabel:`Create` a new email server and select the option for :guilabel:`Gmail`. Next, fill
|
||||
in the :guilabel:`Description` (can be anything) and the email :guilabel:`Username` and click on
|
||||
:guilabel:`Connect your Gmail account`.
|
||||
|
||||
Next, click on :guilabel:`Gmail OAuth Authentication` or :guilabel:`Gmail` (under the
|
||||
:guilabel:`Authenticate with` or :guilabel:`Connection` section). Finally, click on
|
||||
:guilabel:`Connect your Gmail Account`.
|
||||
|
||||
A new window labeled :guilabel:`Google` opens to complete the authorization process. Select the
|
||||
A new window from :guilabel:`Google` opens to complete the authorization process. Select the
|
||||
appropriate email address that is being configured in Odoo.
|
||||
|
||||
If the email address is a personal account, then an extra step pops up, so click
|
||||
:guilabel:`Continue` to allow the verification and connect the Gmail account to Odoo.
|
||||
If the email address is a personal account, an extra step pops up, click :guilabel:`Continue` to
|
||||
allow the verification and connect the Gmail account to Odoo.
|
||||
|
||||
Then, allow Odoo to access the Google account by clicking on :guilabel:`Continue` or
|
||||
:guilabel:`Allow`. After that, the page navigates back to the newly configured outgoing email
|
||||
|
|
@@ -155,8 +127,9 @@ server in Odoo. The configuration automatically loads the token in Odoo, and a t
|
|||
:align: center
|
||||
:alt: Configure Outgoing Email Servers in Odoo.
|
||||
|
||||
Finally, :guilabel:`Test the Connection`. A confirmation message should appear. The Odoo database
|
||||
can now send safe, secure emails through Google using OAuth authentication.
|
||||
Finally, save the settings and :guilabel:`Test the Connection`. A confirmation message should
|
||||
appear. The Odoo database can now send safe, secure emails through Google using OAuth
|
||||
authentication.
|
||||
|
||||
Google OAuth FAQ
|
||||
================
|
||||
|
|
@@ -164,8 +137,8 @@ Google OAuth FAQ
|
|||
Production VS Testing Publishing Status
|
||||
---------------------------------------
|
||||
|
||||
Choosing :guilabel:`Production` as the :guilabel:`Publishing Status` (instead of
|
||||
:guilabel:`Testing`) will display the following warning message:
|
||||
Choosing :guilabel:`Production` as the :guilabel:`Publishing Status` (instead of Testing) will
|
||||
display the following warning message:
|
||||
|
||||
.. image:: google_oauth/published-status.png
|
||||
:align: center
|
||||
|
|
@@ -185,35 +158,39 @@ populate.
|
|||
:align: center
|
||||
:alt: 403 Access Denied Error.
|
||||
|
||||
To correct this error, return to the :guilabel:`OAuth consent screen` under :guilabel:`APIs &
|
||||
Services` and add test user(s) to the app. Add the email that you are configuring in Odoo.
|
||||
To correct this error, return to the :guilabel:`OAuth consent screen` under
|
||||
:guilabel:`APIs & Services` and add test user(s) to the app. Add the email that you are configuring
|
||||
in Odoo.
|
||||
|
||||
Gmail Module not updated
|
||||
------------------------
|
||||
|
||||
If the *Google Gmail* module in Odoo has not been updated to the latest version, then a
|
||||
If the :guilabel:`Gmail Module` in Odoo has not been updated to the latest version, then a
|
||||
:guilabel:`Forbidden` error message populates.
|
||||
|
||||
.. image:: google_oauth/forbidden-error.png
|
||||
:align: center
|
||||
:alt: Forbidden you don't have the permission to access the requested resource.
|
||||
|
||||
To correct this error, go to the :menuselection:`Apps` module and clear out the search terms. Then,
|
||||
search for `Gmail` or `Google` and upgrade the :guilabel:`Google Gmail` module. Finally, click
|
||||
on the three dots on the upper right of the module and select :guilabel:`Upgrade`.
|
||||
To correct this error, go to the :guilabel:`Apps` module and clear out the search terms. Then,
|
||||
search for `Gmail` or `Google` and upgrade the :guilabel:`Google Gmail` module. Finally, click on
|
||||
the three dots on the upper right of the module and select :guilabel:`Upgrade`.
|
||||
|
||||
Application Type
|
||||
----------------
|
||||
|
||||
When creating the credentials (OAuth *Client ID* and *Client Secret*), if :guilabel:`Desktop App` is
|
||||
selected for the :guilabel:`Application Type`, an :guilabel:`Authorization Error` appears.
|
||||
When creating the :guilabel:`Credentials` (OAuth Client ID and Client Secret), if
|
||||
:guilabel:`Desktop App` is selected for the :guilabel:`Application Type`, an
|
||||
:guilabel:`Authorization Error` appears.
|
||||
|
||||
.. image:: google_oauth/error-400.png
|
||||
:align: center
|
||||
:alt: Error 400 Redirect URI Mismatch.
|
||||
|
||||
To correct this error, delete the credentials already created and create new credentials, selecting
|
||||
:guilabel:`Web Application` for the :guilabel:`Application Type`. Then, under :guilabel:`Authorized
|
||||
redirect URIs`, click :guilabel:`ADD URI` and type:
|
||||
`https://yourdbname.odoo.com/google_gmail/confirm` in the field, being sure to replace *yourdbname*
|
||||
in the URL with the Odoo database name.
|
||||
:guilabel:`Web Application` for the :guilabel:`Application Type`. Then, under
|
||||
:guilabel:`Authorized redirect URIs`, click :guilabel:`ADD URI` and type:
|
||||
`https://yourdbname.odoo.com/google_gmail/confirm` in the field.
|
||||
|
||||
.. note::
|
||||
Replace *yourdbname* in the URL with the Odoo database name.
|
||||
|
|
|
|||
|
|
@@ -196,7 +196,7 @@ Help
|
|||
|
||||
.. _upgrade/contact:
|
||||
|
||||
Contact our upgrade service support
|
||||
Contact our Upgrade service support
|
||||
-----------------------------------
|
||||
|
||||
Should you have any more questions about the upgrade, do not hesitate to send a message to `Odoo
|
||||
|
|
@@ -219,46 +219,39 @@ upgrade again).
|
|||
|
||||
.. _upgrade/sla:
|
||||
|
||||
Service-level agreement (SLA)
|
||||
=============================
|
||||
Service Level Agreement
|
||||
=======================
|
||||
|
||||
With Odoo Enterprise, upgrading a database to the most recent version of Odoo is **free**, including
|
||||
any support required to rectify potential discrepancies in the upgraded database.
|
||||
What is covered by the Enterprise Licence?
|
||||
------------------------------------------
|
||||
|
||||
Information about the upgrade services included in the Enterprise Licence is available in the
|
||||
:ref:`Odoo Enterprise Subscription Agreement <upgrade>`. However, this section clarifies what
|
||||
upgrade services you can expect.
|
||||
Databases hosted on Odoo's Cloud platforms (Odoo Online and Odoo.sh) or On-Premise (Self-Hosting)
|
||||
enjoy the following services at all times.
|
||||
|
||||
Upgrade services covered by the SLA
|
||||
-----------------------------------
|
||||
The upgrade of:
|
||||
|
||||
Databases hosted on Odoo's cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can
|
||||
benefit from upgrade services at all times for:
|
||||
* standard applications
|
||||
* Studio customization (as long as the :guilabel:`Studio` app is still active)
|
||||
* customizations *if* they are covered by a "Maintenance of Customizations" subscription
|
||||
|
||||
- the upgrade of all **standard applications**;
|
||||
- the upgrade of all **customizations created with the Studio app**, as long as Studio is still
|
||||
installed and the respective subscription is still active; and
|
||||
- the upgrade of all **developments and customizations covered by a maintenance of customizations
|
||||
subscription**.
|
||||
The Upgrade Service is limited to your database's technical conversion and adaptation (standard
|
||||
modules and data) to make it compatible with the targeted version.
|
||||
|
||||
Upgrade services are limited to the technical conversion and adaptation of a database (standard
|
||||
modules and data) to make it compatible with the version targeted by the upgrade.
|
||||
What upgrading does NOT cover
|
||||
-----------------------------
|
||||
|
||||
Upgrade services not covered by the SLA
|
||||
---------------------------------------
|
||||
* The cleaning of pre-existing data & configuration while upgrading
|
||||
* Any new developments and/or upgrades of your own :ref:`custom modules
|
||||
<upgrade-faq/custom-modules>`
|
||||
* Lines of code added to standard modules that are not created with Odoo Studio.
|
||||
* `Training <https://www.odoo.com/learn>`_ on the latest version
|
||||
|
||||
The following upgrade-related services are **not** included:
|
||||
|
||||
- the **cleaning** of pre-existing data and configurations while upgrading;
|
||||
- the upgrade of **custom modules created in-house or by third parties**, including Odoo partners;
|
||||
- lines of **code added to standard modules**, i.e., customizations created outside the Studio app,
|
||||
code entered manually, and :ref:`automated actions using Python code
|
||||
<studio/automated-actions/actions>`; and
|
||||
- **training** on using the upgraded version's features and workflows.
|
||||
You can get more information about your Enterprise Licence on our :ref:`Odoo Enterprise Subscription
|
||||
Agreement <upgrade>` page.
|
||||
|
||||
.. note:: |assistance-contact|
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Upgrade FAQ <upgrade/faq>`
|
||||
- :doc:`Odoo.sh documentation <odoo_sh>`
|
||||
- :doc:`Supported Odoo versions <maintain/supported_versions>`
|
||||
- :doc:`upgrade/faq`
|
||||
- :doc:`odoo_sh`
|
||||
- :doc:`maintain/supported_versions`
|
||||
|
|
|
|||
|
|
@@ -17,7 +17,7 @@ To connect to the banks, Odoo uses multiple web-services:
|
|||
|
||||
- **Plaid**: United States of America and Canada
|
||||
- **Yodlee**: Worldwide
|
||||
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Worldwide
|
||||
- :doc:`Salt Edge <bank_synchronization/saltedge>`: Europe
|
||||
- :doc:`Ponto <bank_synchronization/ponto>`: Europe
|
||||
- :doc:`Enable Banking <bank_synchronization/enablebanking>`: Scandinavian countries
|
||||
|
||||
|
|
|
|||
|
|
@@ -17,11 +17,11 @@ To configure a :guilabel:`Follow-Up Action`, go to :menuselection:`Accounting --
|
|||
Follow-up Levels`. Several follow-up actions are available by default, and you can customize them
|
||||
any way you want or create new ones to trigger the following actions:
|
||||
|
||||
- Send an email;
|
||||
- :ref:`Send an SMS message <pricing/pricing_and_faq>`;
|
||||
- Print a letter;
|
||||
- :ref:`Send a letter <customer_invoices/snailmail>`;
|
||||
- Manual action (creates a task).
|
||||
- Send an Email
|
||||
- :ref:`Send an SMS Message <pricing/pricing_and_faq>`
|
||||
- Print a Letter
|
||||
- :ref:`Send a Letter <customer_invoices/snailmail>`
|
||||
- Manual Action (creates a task)
|
||||
|
||||
It is also possible to automatically send a reminder by enabling the :guilabel:`Auto Execute`
|
||||
option, within a specific :guilabel:`Follow-Up Action`.
|
||||
|
|
@@ -73,8 +73,3 @@ Send reminders in batches
|
|||
You can send reminder emails in batches from the :guilabel:`Follow-up Reports` page. To do so,
|
||||
select all the reports you would like to process, click on the :guilabel:`Action` gear icon, and
|
||||
select :guilabel:`Process follow-ups`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../../../../general/in_app_purchase`
|
||||
- :doc:`../../../../marketing/sms_marketing/pricing/pricing_and_faq`
|
||||
- :doc:`../customer_invoices/snailmail`
|
||||
|
|
|
|||
|
|
@@ -72,9 +72,9 @@ POS.
|
|||
- Sell products without a valid VAT number.
|
||||
- Use a POS that is not connected to an IoT box.
|
||||
|
||||
- The :doc:`cash rounding <../../sales/point_of_sale/pricing/cash_rounding>` feature must be
|
||||
activated and set to a :guilabel:`Rounding Precision` of `0,05` and a :guilabel:`Rounding Method`
|
||||
set as :guilabel:`Half-Up`.
|
||||
- The :doc:`cash rounding <../../sales/point_of_sale/shop/cash_rounding>` feature must be activated
|
||||
and set to a :guilabel:`Rounding Precision` of `0,05` and a :guilabel:`Rounding Method` set as
|
||||
:guilabel:`Half-Up`.
|
||||
- Taxes must be set as included in the price. To set it up, go to :menuselection:`Point of Sale -->
|
||||
Configuration --> Settings`, and from the :guilabel:`Taxes` section, open the :guilabel:`Default
|
||||
Sales Tax` form by clicking the arrow next to the default sales tax field. There, click
|
||||
|
|
|
|||
|
|
@@ -2,14 +2,14 @@
|
|||
Google Sign-In Authentication
|
||||
=============================
|
||||
|
||||
The *Google Sign-In Authentication* is a useful function that allows Odoo users to sign in to their
|
||||
database with their Google account.
|
||||
The **Google Sign-In Authentication** is a useful function that allows your users to sign in to Odoo
|
||||
with their Google account.
|
||||
|
||||
This is particularly helpful if the organization uses Google Workspace, and wants employees within
|
||||
the organization to connect to Odoo using their Google Accounts.
|
||||
This is particularly helpful if your organization uses Google Workforce and you want the employees
|
||||
within your organization to connect to Odoo with their Google Accounts.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/productivity/calendar/google`
|
||||
- :doc:`../../productivity/calendar/google`
|
||||
- :doc:`/administration/maintain/google_oauth`
|
||||
|
||||
.. _google-sign-in/configuration:
|
||||
|
|
@@ -17,7 +17,7 @@ the organization to connect to Odoo using their Google Accounts.
|
|||
Configuration
|
||||
=============
|
||||
|
||||
The integration of the Google sign-in function requires configuration both on Google *and* Odoo.
|
||||
The integration of the Google sign-in function requires configuration both on Google and on Odoo.
|
||||
|
||||
.. _google-sign-in/api:
|
||||
|
||||
|
|
@@ -25,16 +25,15 @@ Google API Dashboard
|
|||
--------------------
|
||||
|
||||
#. Go to the `Google API Dashboard <https://console.developers.google.com/>`_.
|
||||
#. Make sure the right project is opened. If there isn't a project yet, click on :guilabel:`Create
|
||||
Project`, fill out the project name and other details of the company, and click on
|
||||
:guilabel:`Create`.
|
||||
#. Make sure the right project is opened. If you don't have a project yet, click on *Create
|
||||
Project*, fill out the project name and other details of your company, and click on *Create*.
|
||||
|
||||
.. image:: google/new-project-details.png
|
||||
:align: center
|
||||
:alt: Filling out the details of a new project.
|
||||
:alt: Filling out the details of a new project
|
||||
|
||||
.. tip::
|
||||
Choose the name of the company from the drop-down menu.
|
||||
Choose the name of your own company from the drop-down menu.
|
||||
|
||||
.. _google-sign-in/oauth:
|
||||
|
||||
|
|
@@ -45,30 +44,16 @@ OAuth consent screen
|
|||
|
||||
.. image:: google/consent-selection.png
|
||||
:align: center
|
||||
:alt: Google OAuth consent selection menu.
|
||||
:alt: Google oauth consent selection menu
|
||||
|
||||
#. Choose one of the options (:guilabel:`Internal` / :guilabel:`External`), and click on
|
||||
:guilabel:`Create`.
|
||||
#. Choose the option for :guilabel:`internal`, and click on :guilabel:`Create`.
|
||||
|
||||
.. image:: google/consent.png
|
||||
:align: center
|
||||
:alt: Choice of a user type in OAuth consent.
|
||||
:alt: Choice of a user type in oauth consent
|
||||
|
||||
.. warning::
|
||||
*Personal* Gmail Accounts are only allowed to be **External** User Type, which means Google
|
||||
may require an approval, or for *Scopes* to be added on. However, using a *Google WorkSpace*
|
||||
account allows for **Internal** User Type to be used.
|
||||
|
||||
Note, as well, that while the API connection is in the *External* testing mode, then no
|
||||
approval is necessary from Google. User limits in this testing mode is set to 100 users.
|
||||
|
||||
#. Fill out the required details and domain info, then click on :guilabel:`Save and Continue`.
|
||||
#. On the :menuselection:`Scopes` page, leave all fields as is, and click on :guilabel:`Save and
|
||||
Continue`.
|
||||
#. Next, if continuing in testing mode (*External*), add the email addresses being configured under
|
||||
the :guilabel:`Test users` step by clicking on :guilabel:`Add Users`, and then the
|
||||
:guilabel:`Save and Continue` button. A summary of the app registration appears.
|
||||
#. Finally, scroll to the bottom, and click on :guilabel:`Back to Dashboard`.
|
||||
#. Fill out your details and domain info, then click on *Save and Continue*.
|
||||
#. On the **Scopes** page, leave all fields as is, and click on *Save and Continue*.
|
||||
|
||||
.. _google-sign-in/credentials:
|
||||
|
||||
|
|
@@ -79,24 +64,24 @@ Credentials
|
|||
|
||||
.. image:: google/credentials-button.png
|
||||
:align: center
|
||||
:alt: Credentials button menu.
|
||||
:alt: Credentials button menu
|
||||
|
||||
#. Click on :guilabel:`Create Credentials`, and select :guilabel:`OAuth client ID`.
|
||||
#. Click on *Create Credentials* and select **OAuth client ID**.
|
||||
|
||||
.. image:: google/client-id.png
|
||||
:align: center
|
||||
:alt: OAuth client id selection.
|
||||
:alt: Oauth client id selection
|
||||
|
||||
#. Select :guilabel:`Web Application` as the :guilabel:`Application Type`. Now, configure the
|
||||
allowed pages on which Odoo will be redirected.
|
||||
#. Select **Web Application** as the Application type. Now configure the allowed pages on which you
|
||||
will be redirected.
|
||||
|
||||
In order to achieve this, in the :guilabel:`Authorized redirect URIs` field, enter the database's
|
||||
domain immediately followed by `/auth_oauth/signin`. For example:
|
||||
`https://mydomain.odoo.com/auth_oauth/signin`, then click on :guilabel:`Create`.
|
||||
In order to achieve this, in the **Authorized redirect URIs** field, enter your database's domain
|
||||
immediately followed by ``/auth_oauth/signin``. For example:
|
||||
``https://mydomain.odoo.com/auth_oauth/signin``, then click on *Create*.
|
||||
|
||||
#. Now that the *OAuth client* has been created, a screen will appear with the :guilabel:`Client ID`
|
||||
and :guilabel:`Client Secret`. Copy the :guilabel:`Client ID` for later, as it will be necessary
|
||||
for the configuration in Odoo, which will be covered in the following steps.
|
||||
.. image:: google/create-client-id.png
|
||||
:align: center
|
||||
:alt: Creating oauth client id
|
||||
|
||||
.. _google-sign-in/auth-odoo:
|
||||
|
||||
|
|
@@ -108,53 +93,47 @@ Google Authentication on Odoo
|
|||
Retrieve the Client ID
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once the previous steps are complete, two keys are generated on the Google API Dashboard:
|
||||
:guilabel:`Client ID` and :guilabel:`Client Secret`. Copy the :guilabel:`Client ID`.
|
||||
Once you have done the previous steps, two keys are generated on the Google API Dashboard: *Client
|
||||
ID* and *Client Secret*. Copy the *Client ID*.
|
||||
|
||||
.. image:: google/secret-ids.png
|
||||
:align: center
|
||||
:alt: Google OAuth Client ID generated.
|
||||
:alt: Google OAuth Client ID generated
|
||||
|
||||
.. _google-sign-in/odoo-activation:
|
||||
|
||||
Odoo activation
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
#. Go to :menuselection:`Odoo General Settings --> Integrations` and activate :guilabel:`OAuth
|
||||
Authentication`.
|
||||
#. Go to :menuselection:`Odoo General Settings --> Integrations` and activate **OAuth
|
||||
Authentication**.
|
||||
|
||||
.. note::
|
||||
Odoo may prompt the user to log-in again after this step.
|
||||
You may have to log in again after this step.
|
||||
|
||||
#. Go back to :menuselection:`General Settings --> Integrations --> OAuth Authentication`, activate
|
||||
the selection and :guilabel:`Save`. Next, return to :menuselection:`General Settings -->
|
||||
Integrations --> Google Authentication` and activate the selection. Then fill out the
|
||||
:guilabel:`Client ID` with the key from the Google API Dashboard, and :guilabel:`Save`.
|
||||
#. Go back to :menuselection:`General Settings --> Integrations`, activate **Google
|
||||
Authentication**, then fill out the *Client ID* with the key from the Google API Dashboard, and
|
||||
*Save*.
|
||||
|
||||
.. image:: google/odoo-client-id.png
|
||||
:align: center
|
||||
:alt: Filling out the client id in Odoo settings.
|
||||
|
||||
.. note::
|
||||
Google OAuth2 configuration can also be accessed by clicking on :guilabel:`OAuth Providers`
|
||||
under the :guilabel:`OAuth Authentication` heading in :menuselection:`Integrations`.
|
||||
:alt: Filling out the client id in Odoo settings
|
||||
|
||||
.. _google-sign-in/log-in:
|
||||
|
||||
Log in to Odoo with Google
|
||||
==========================
|
||||
|
||||
To link the Google account to the Odoo profile, click on :guilabel:`Log in with Google` when first
|
||||
logging into Odoo.
|
||||
To link your Google account to your Odoo profile, click on *Log in with Google* when you are asked
|
||||
to choose a new password.
|
||||
|
||||
.. image:: google/first-login.png
|
||||
:align: center
|
||||
:alt: Reset password screen with "Log in with Google" button.
|
||||
:alt: Reset password screen with "Log in with Google" button
|
||||
|
||||
|
||||
Existing users must :ref:`reset their password <users/reset-password>` to access the
|
||||
:menuselection:`Reset Password` page, while new users can directly click on :guilabel:`Log in with
|
||||
Google`, instead of choosing a new password.
|
||||
Existing users must :ref:`reset their password <users/reset-password>` to access the *reset
|
||||
password* page, while new users can directly click on *Log in with Google* instead of choosing a new
|
||||
password.
|
||||
|
||||
.. seealso::
|
||||
- `Google Cloud Platform Console Help - Setting up OAuth 2.0
|
||||
|
|
|
|||
BIN
content/applications/general/auth/google/create-client-id.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
|
|
@@ -10,7 +10,8 @@ Warehouse Management
|
|||
|
||||
management/products
|
||||
management/warehouses
|
||||
management/shipments_deliveries
|
||||
management/delivery
|
||||
management/incoming
|
||||
management/misc
|
||||
management/planning
|
||||
management/lots_serial_numbers
|
||||
|
|
|
|||
|
|
@@ -0,0 +1,16 @@
|
|||
:nosearch:
|
||||
|
||||
===============
|
||||
Delivery Orders
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
delivery/inventory_flow
|
||||
delivery/one_step
|
||||
delivery/two_steps
|
||||
delivery/three_steps
|
||||
delivery/dropshipping
|
||||
delivery/label_type
|
||||
|
|
@@ -11,14 +11,13 @@ inventory costs, including the price of operating warehouses.
|
|||
Configure products to be dropshipped
|
||||
====================================
|
||||
|
||||
To use dropshipping as a fulfillment strategy, navigate to the :menuselection:`Purchase` app and
|
||||
select :menuselection:`Configuration --> Settings`. Under the :guilabel:`Logistics` heading, click
|
||||
the :guilabel:`Dropshipping` checkbox, and :guilabel:`Save` to finish.
|
||||
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.
|
||||
|
||||
Next, go to the :menuselection:`Sales` app, click :menuselection:`Products --> Products` and choose
|
||||
an existing product or select :guilabel:`Create` to configure a new one. On the :guilabel:`Product`
|
||||
page, make sure that the :guilabel:`Can be Sold` and :guilabel:`Can be Purchased` checkboxes are
|
||||
enabled.
|
||||
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.
|
||||
|
||||
.. image:: dropshipping/sold-purchased-checkboxes.png
|
||||
:align: center
|
||||
|
|
@@ -44,14 +43,13 @@ 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 :menuselection:`Sales` app by selecting
|
||||
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::
|
||||
Dropship sales orders can also be created manually through the :menuselection:`Sales` app by
|
||||
selecting :menuselection:`Orders --> Orders --> Create` and adding a product configured for
|
||||
dropshipping.
|
||||
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.
|
||||
|
||||
.. image:: dropshipping/dropship-sales-order.png
|
||||
:align: center
|
||||
|
|
@@ -74,8 +72,8 @@ quantity.
|
|||
:align: center
|
||||
:alt: Validate the dropship receipt after delivery.
|
||||
|
||||
To view all dropship orders, simply navigate to the :menuselection:`Inventory` :guilabel:`Overview`
|
||||
dashboard and click the teal :guilabel:`# TO PROCESS` button on the :guilabel:`Dropship` card.
|
||||
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/view-all-dropship-orders.png
|
||||
:align: center
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
|
|
@@ -0,0 +1,52 @@
|
|||
=================================================================
|
||||
How to choose the right inventory flow to handle delivery orders?
|
||||
=================================================================
|
||||
|
||||
Depending on factors such as the type of items you sell, the size of
|
||||
your warehouse, the number of orders you register everyday... the way you
|
||||
handle deliveries to your customers can vary a lot.
|
||||
|
||||
Odoo allows you to handle shipping from your warehouse in 3 different
|
||||
ways:
|
||||
|
||||
- **One step (shipping)**: Ship directly from stock
|
||||
|
||||
- **Two steps (pick + ship)**: Bring goods to output location before
|
||||
shipping
|
||||
|
||||
- **Three steps (pick + pack + ship)**: Make packages into a dedicated
|
||||
location, then bring them to the output location for shipping
|
||||
|
||||
For companies having a rather small warehouse and that do not require
|
||||
high stock of items or don't sell perishable items, a one step shipping
|
||||
is the simplest solution, as it does not require a lot of configuration
|
||||
and allows to handle orders very quickly.
|
||||
|
||||
Using inventory methods such as FIFO, LIFO and FEFO require to have at
|
||||
least two steps to handle a shipment. The picking method will be
|
||||
determined by the removal strategy, and the items removed will then be
|
||||
shipped to the customer. This method is also interesting if you hold
|
||||
larger stocks and especially when the items you stock are big in size.
|
||||
|
||||
The three steps system becomes useful in more specific situations, the
|
||||
main one being for handling very large stocks. The items are transferred
|
||||
to a packing area, where they will be assembled by area of destination,
|
||||
and then set to outbound trucks for final delivery to the customers.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
One step flow
|
||||
-------------
|
||||
|
||||
Please read documentation on :doc:`one_step`
|
||||
|
||||
Two steps flow
|
||||
--------------
|
||||
|
||||
Please read documentation on :doc:`two_steps`
|
||||
|
||||
Three steps flow
|
||||
----------------
|
||||
|
||||
Please read documentation on :doc:`three_steps`
|
||||
|
|
@@ -0,0 +1,53 @@
|
|||
================================
|
||||
How can I change the label type?
|
||||
================================
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
With Odoo, you can choose among different types of labels for your
|
||||
delivery orders. Follow the steps below and give an appropriate label
|
||||
type to your delivery.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
In the **Inventory** module, Go to **Configuration** and click on
|
||||
**Delivery methods**.
|
||||
|
||||
Choose a delivery method and then click on **Edit**.
|
||||
|
||||
.. image:: label_type/label_type01.png
|
||||
:align: center
|
||||
|
||||
In the **Pricing** tab, under **Fedex label stock type**, you can choose
|
||||
one of the label types available. The availability will vary depending
|
||||
on the carrier.
|
||||
|
||||
.. image:: label_type/label_type02.png
|
||||
:align: center
|
||||
|
||||
Once this is done, you can see the result if you go to the Sales module
|
||||
and you create a new sale order.
|
||||
|
||||
As you confirm the sale and validate the delivery with the carrier for
|
||||
which you have modified the label type, The label will appear in your
|
||||
history.
|
||||
|
||||
.. image:: label_type/label_type03.png
|
||||
:align: center
|
||||
|
||||
.. image:: label_type/label_type04.png
|
||||
:align: center
|
||||
|
||||
.. image:: label_type/label_type05.png
|
||||
:align: center
|
||||
|
||||
The default label type is paper letter, and if you choose the label type
|
||||
bottom half for example, here is the difference :
|
||||
|
||||
.. image:: label_type/label_type06.png
|
||||
:align: center
|
||||
|
||||
.. image:: label_type/label_type07.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 378 KiB |
|
|
@@ -0,0 +1,55 @@
|
|||
==============================================
|
||||
Process Delivery Orders in one Step (Shipping)
|
||||
==============================================
|
||||
|
||||
There is no configuration needed to deliver in one step. The default
|
||||
outgoing shipments are configured to be directly delivered from the
|
||||
stock to the customers.
|
||||
|
||||
However, if advanced routes have been activated and you set another
|
||||
shipping configuration on your warehouse, you can set it back to the
|
||||
one-step delivery configuration. Go to :menuselection:`Inventory --> Configuration --> Warehouses`
|
||||
and edit the warehouse in question.
|
||||
|
||||
Then, choose *Deliver goods directly* as your *Outgoing Shipments*
|
||||
strategy.
|
||||
|
||||
.. image:: one_step/one_step_01.png
|
||||
:align: center
|
||||
|
||||
Create a Sales Order
|
||||
====================
|
||||
|
||||
In the *Sales* application, create a quotation with some storable
|
||||
products to deliver and confirm it.
|
||||
|
||||
Notice that we now see 1 delivery associated with this *sales order*
|
||||
in the stat button above the sales order. If you click on the 1 Delivery
|
||||
stat button, you should now see your delivery order.
|
||||
|
||||
.. image:: one_step/one_step_02.png
|
||||
:align: center
|
||||
|
||||
Process a Delivery
|
||||
==================
|
||||
|
||||
You can also find the *delivery order* directly from the *Inventory*
|
||||
application. In the dashboard, you can click the *1 TO PROCESS* button
|
||||
under the Delivery Orders Kanban card.
|
||||
|
||||
.. image:: one_step/one_step_03.png
|
||||
:align: center
|
||||
|
||||
Enter the picking that you want to process. You will be able to click on
|
||||
*Validate* to complete the move if you have products in stock.
|
||||
|
||||
.. image:: one_step/one_step_04.png
|
||||
:align: center
|
||||
|
||||
Once you *Validate* the delivery order, the products leave your
|
||||
*WH/Stock location* and are moved to the *Customer location*. You
|
||||
can easily see that the delivery took place thanks to the status of the
|
||||
document which is now *Done*.
|
||||
|
||||
.. image:: one_step/one_step_05.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
|
@@ -0,0 +1,104 @@
|
|||
===========================================================
|
||||
Process Delivery Orders in three Steps (Pick + Pack + Ship)
|
||||
===========================================================
|
||||
|
||||
When an order goes to the shipping department for final delivery, Odoo
|
||||
is set up by default to utilize a one-step operation: once all goods are
|
||||
available, they are able to be shipped in a single delivery order.
|
||||
However, that process may not reflect reality and your company could
|
||||
require more steps before shipping.
|
||||
|
||||
With the delivery in 3 steps (Pick + Pack + Ship), the items will be
|
||||
picked to be transferred to a packing area. Then, they will be moved to
|
||||
an output location before being effectively shipped to the customers.
|
||||
|
||||
Activate Multi-Step Routes
|
||||
==========================
|
||||
|
||||
The first step is to allow using *multi-step routes*. Indeed, routes
|
||||
provide a mechanism to chain different actions together. In this case,
|
||||
we will chain the picking step to the shipping step.
|
||||
|
||||
To allow *multi-step routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
|
||||
activate the option. Note that activating *Multi-Step
|
||||
Routes* will also activate *Storage Locations*.
|
||||
|
||||
.. image:: three_steps/three_steps_01.png
|
||||
:align: center
|
||||
|
||||
Configure Warehouse for Delivery in 3 Steps
|
||||
===========================================
|
||||
|
||||
Once *Multi-Step Routes* has been activated, you can go to
|
||||
:menuselection:`Inventory --> Configuration --> Warehouse` and enter the warehouse which will use
|
||||
delivery in 3 steps. You can then select the option *Pack goods, send
|
||||
goods in output and then deliver (3 steps)* for *Outgoing Shipments*.
|
||||
|
||||
.. image:: three_steps/three_steps_02.png
|
||||
:align: center
|
||||
|
||||
Activating this option will lead to the creation of two new locations,
|
||||
*Output* and *Packing Zone*. If you want to rename it go to :menuselection:`Inventory -->
|
||||
Configuration --> Locations`, *Select* the one you want to rename and update its name.
|
||||
|
||||
Create a Sales Order
|
||||
====================
|
||||
|
||||
In the *Sales* application, you can create a quotation with some
|
||||
storable products to deliver. Once you confirm the quotation, three
|
||||
pickings will be created and automatically linked to your sale order.
|
||||
|
||||
.. image:: three_steps/three_steps_03.png
|
||||
:align: center
|
||||
|
||||
If you click the button, you should now see three different pickings:
|
||||
|
||||
1. The first one with a reference PICK to designate the picking process,
|
||||
|
||||
2. The second one with the reference PACK that is the packing process,
|
||||
|
||||
3. The last one with a reference OUT to designate the shipping process.
|
||||
|
||||
.. image:: three_steps/three_steps_04.png
|
||||
:align: center
|
||||
|
||||
Process the Picking, Packing, and Delivery
|
||||
==========================================
|
||||
|
||||
The picking operation is the first one to be processed and has a
|
||||
*Ready* status while the other ones are *Waiting Another Operation*.
|
||||
The Packing operation will become *Ready* as soon as the picking one
|
||||
is marked as done.
|
||||
|
||||
You can enter the picking operation from here, or access it through the
|
||||
inventory dashboard.
|
||||
|
||||
.. image:: three_steps/three_steps_05.png
|
||||
:align: center
|
||||
|
||||
In case you have the product in stock, it has automatically been
|
||||
reserved and you can simply validate the picking document.
|
||||
|
||||
.. image:: three_steps/three_steps_06.png
|
||||
:align: center
|
||||
|
||||
Once the picking has been validated, the packing order is ready to be
|
||||
processed. Thanks to the fact that the documents are chained, the
|
||||
products which have been previously picked are automatically reserved on
|
||||
the packing order which can be directly validated.
|
||||
|
||||
.. image:: three_steps/three_steps_07.png
|
||||
:align: center
|
||||
|
||||
.. image:: three_steps/three_steps_08.png
|
||||
:align: center
|
||||
|
||||
Once the packing has been validated, the delivery order is ready to be
|
||||
processed. Here again, it is directly ready to be validated in order to
|
||||
transfer the products to the customer location.
|
||||
|
||||
.. image:: three_steps/three_steps_09.png
|
||||
:align: center
|
||||
|
||||
.. image:: three_steps/three_steps_10.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
|
@@ -0,0 +1,92 @@
|
|||
==================================================
|
||||
Process Delivery Orders in two Steps (Pick + Ship)
|
||||
==================================================
|
||||
|
||||
When an order goes to the shipping department for final delivery, Odoo
|
||||
is set up by default to utilize a one-step operation: once all goods are
|
||||
available, they are able to be shipped in a single delivery order.
|
||||
|
||||
However, your company's business process may have one or more steps that
|
||||
happen before shipping. In the two steps process, the products which are
|
||||
part of the delivery order are picked in the warehouse and brought to an
|
||||
output location before being effectively shipped.
|
||||
|
||||
Activate Multi-Step Routes
|
||||
==========================
|
||||
|
||||
The first step is to allow using *multi-step routes*. Indeed, routes
|
||||
provide a mechanism to chain different actions together. In this case,
|
||||
we will chain the picking step to the shipping step.
|
||||
|
||||
To allow *multi-step routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
|
||||
activate the option. Note that activating *Multi-Step Routes* will also
|
||||
activate *Storage Locations*.
|
||||
|
||||
.. image:: two_steps/two_steps_01.png
|
||||
:align: center
|
||||
|
||||
Warehouse configuration
|
||||
=======================
|
||||
|
||||
Once *Multi-Step Routes* has been activated, you can go to :menuselection:`Inventory -->
|
||||
Configuration --> Warehouse` and enter the warehouse which will use
|
||||
delivery in 2 steps. You can then select the option *Send goods in
|
||||
output and then deliver (2 steps)* for Outgoing Shipments.
|
||||
|
||||
.. image:: two_steps/two_steps_02.png
|
||||
:align: center
|
||||
|
||||
Activating this option will lead to the creation of a new *Output*
|
||||
location. If you want to rename it go to :menuselection:`Inventory --> Configuration -->
|
||||
Locations`, Select Output and update its name.
|
||||
|
||||
.. image:: two_steps/two_steps_03.png
|
||||
:align: center
|
||||
|
||||
Create a Sales Order
|
||||
====================
|
||||
|
||||
In the *Sales* application, you can create a quotation with some
|
||||
storable products to deliver. Once you confirm the quotation, two
|
||||
pickings will be created and automatically linked to your sale order.
|
||||
|
||||
.. image:: two_steps/two_steps_04.png
|
||||
:align: center
|
||||
|
||||
If you click on the *2 Delivery* button, you should now see two
|
||||
different pickings, one with a reference *PICK* to designate the
|
||||
picking process and another one with a reference *OUT* to designate
|
||||
the shipping process.
|
||||
|
||||
.. image:: two_steps/two_steps_05.png
|
||||
:align: center
|
||||
|
||||
Process the Picking and the Delivery
|
||||
====================================
|
||||
|
||||
The picking operation is the first one to be processed and has a
|
||||
*Ready* status while the delivery operation will only become *Ready*
|
||||
once the picking operation has been marked as done.
|
||||
|
||||
You can enter the picking operation from here, or access it through the
|
||||
inventory dashboard.
|
||||
|
||||
.. image:: two_steps/two_steps_06.png
|
||||
:align: center
|
||||
|
||||
In case you have the product in stock, it has automatically been
|
||||
reserved and you can simply validate the picking document.
|
||||
|
||||
.. image:: two_steps/two_steps_07.png
|
||||
:align: center
|
||||
|
||||
Once the picking has been validated, the delivery order is ready to be
|
||||
processed. Thanks to the fact that the documents are chained, the
|
||||
products which have been previously picked are automatically reserved on
|
||||
the delivery order.
|
||||
|
||||
.. image:: two_steps/two_steps_08.png
|
||||
:align: center
|
||||
|
||||
.. image:: two_steps/two_steps_09.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
|
@@ -0,0 +1,14 @@
|
|||
:nosearch:
|
||||
|
||||
==================
|
||||
Incoming Shipments
|
||||
==================
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
incoming/handle_receipts
|
||||
incoming/one_step
|
||||
incoming/two_steps
|
||||
incoming/three_steps
|
||||
|
|
@@ -0,0 +1,69 @@
|
|||
================================================
|
||||
How to choose the right flow to handle receipts?
|
||||
================================================
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
Depending on factors such as the type of items you receive, the size of
|
||||
your warehouse, the number of receipt you register everyday... the way you
|
||||
handle receipts to your customers can vary a lot.
|
||||
|
||||
Odoo allows you to handle receipts from your warehouse in 3 different
|
||||
ways:
|
||||
|
||||
- **One step**: Receive goods directly in stock.
|
||||
|
||||
- **Two steps**: Unload in input location then go to stock.
|
||||
|
||||
- **Three steps**: Unload in input location, go through a quality control
|
||||
before being admitted in stock.
|
||||
|
||||
Odoo uses **routes** to define exactly how you will handle the different
|
||||
receipt steps. The configuration is done at the level of the warehouse.
|
||||
In standard, the reception is a one step process, but changing the
|
||||
configuration can allow to have 2 or even 3 steps.
|
||||
|
||||
The principles are the following:
|
||||
|
||||
1. **One step**: You receive the goods directly in your stock.
|
||||
|
||||
2. **Two steps**: You receive the goods in an input area then transfer them
|
||||
from input area to your stock. As long as the goods are not
|
||||
transferred in your stock, they will not be available for further
|
||||
processing.
|
||||
|
||||
3. **Three steps**: In many companies, it is necessary to assess the
|
||||
received good. The goal is to check that the products
|
||||
correspond to the quality requirements agreed with the
|
||||
suppliers. Adding a quality control step in the goods receipt
|
||||
process can become essential.
|
||||
|
||||
You receive the goods in an input area, then transfer them into
|
||||
quality area for quality control. When your quality check
|
||||
process finishes then you can move the goods from QC to stock.
|
||||
Of course, you may change the quantity and only transfer to
|
||||
Stock the quantity that is valid and decide that you will
|
||||
return the quantity that is not good.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
One step flow
|
||||
-------------
|
||||
|
||||
This is the default configuration in Odoo.
|
||||
|
||||
Two steps flow
|
||||
--------------
|
||||
|
||||
Please read documentation on :doc:`two_steps`
|
||||
|
||||
Three steps flow
|
||||
----------------
|
||||
|
||||
Please read documentation on :doc:`three_steps`
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../delivery/inventory_flow`
|
||||
- :doc:`/applications/inventory_and_mrp/purchase/advanced/analyze`
|
||||
|
|
@@ -0,0 +1,62 @@
|
|||
=======================================
|
||||
Process a Receipt in one step (Receipt)
|
||||
=======================================
|
||||
|
||||
There is no configuration needed to receive in one step. The default
|
||||
incoming shipments are configured to be directly received from the
|
||||
vendors to the stock.
|
||||
|
||||
However, if advanced routes have been activated and you set another
|
||||
incoming configuration on your warehouse, you can set it back to the
|
||||
one-step receipt configuration. To do so, go to :menuselection:`Configuration -->
|
||||
Warehouses` and edit the warehouse in question.
|
||||
|
||||
Set the *Incoming Shipments* option to *Receive goods directly (1
|
||||
step)*.
|
||||
|
||||
.. image:: one_step/one_step_01.png
|
||||
:align: center
|
||||
|
||||
Create a Purchase Order
|
||||
=======================
|
||||
|
||||
To create a *Request for Quotation*, go to the *Purchase*
|
||||
application and click on *Create*. Then, add some storable products to
|
||||
receive and confirm the *RfQ*.
|
||||
|
||||
Notice that, now, we see 1 receipt associated with the purchase order
|
||||
you just created. If you click on the button, you will see your receipt
|
||||
order.
|
||||
|
||||
.. image:: one_step/one_step_02.png
|
||||
:align: center
|
||||
|
||||
Process a Receipt
|
||||
=================
|
||||
|
||||
You can also fin the receipt directly from the *Inventory* app. When
|
||||
on the dashboard, you can click the *1 TO PROCESS* button under the
|
||||
*Receipts* Kanban card. Then, you will see your receipt.
|
||||
|
||||
.. image:: one_step/one_step_03.png
|
||||
:align: center
|
||||
|
||||
Now, enter the picking that you want to process. You will be able to
|
||||
click on *Validate* to complete the move directly as products coming
|
||||
from suppliers are considered as being always available.
|
||||
|
||||
.. note::
|
||||
If you have :guilabel:`Storage Locations` activated, you can click the hamburger menu next to
|
||||
the :guilabel:`Done quantity` to specify the location(s) where you are storing the received
|
||||
product(s).
|
||||
|
||||
.. image:: one_step/one_step_04.png
|
||||
:align: center
|
||||
|
||||
Once you *Validate* the receipt, the products leave the *Supplier
|
||||
Location* to enter your *WH/Stock Location*. You can easily see that
|
||||
the receipt took place thanks to the status of the document, which is
|
||||
now *Done*.
|
||||
|
||||
.. image:: one_step/one_step_05.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
|
@@ -0,0 +1,109 @@
|
|||
==========================================================
|
||||
Process a Receipt in three steps (Input + Quality + Stock)
|
||||
==========================================================
|
||||
|
||||
Quality is essential for most companies. To make sure we maintain quality throughout the supply
|
||||
chain, it only makes sense that we assess the quality of the products received from suppliers.
|
||||
To do so, we will add a quality control step.
|
||||
|
||||
Odoo uses routes to define how to handle the different receipt steps.
|
||||
Configuration of those routes is done at the warehouse level. By default, the reception is a
|
||||
one-step process, but it can also be configured to have two-steps or three-steps processes.
|
||||
|
||||
The three-steps flow works as follows: you receive the goods in your receiving area, then transfer
|
||||
them into a quality area for quality control (QC). When the quality check is completed, the goods
|
||||
that match the QC requirements are moved to stock
|
||||
|
||||
Activate Multi-Step Routes
|
||||
==========================
|
||||
|
||||
The first step is to allow the use of *Multi-Step Routes*. Routes provide a mechanism to chain different
|
||||
actions together. In this case, we will chain the picking step to the shipping step.
|
||||
|
||||
To enable *Multi-Step Routes*, go to :menuselection:`Inventory --> Configuration --> Settings` and
|
||||
activate the option.
|
||||
|
||||
.. image:: three_steps/three_steps_01.png
|
||||
:align: center
|
||||
:alt: View of the features to enable in order to use multi-step routes for goods reception
|
||||
|
||||
.. note::
|
||||
By default, activating *Multi-Step Routes* also activates *Storage
|
||||
Locations*.
|
||||
|
||||
Configure warehouse for receipt in 3-steps
|
||||
==========================================
|
||||
|
||||
Once *Multi-Step Routes* has been activated, go to :menuselection:`Inventory --> Configuration -->
|
||||
Warehouse` and enter the warehouse which should work with the 3-steps reception. Then, select
|
||||
*Receive goods in input, then quality and then stock (3 steps)* for *Incoming Shipments*.
|
||||
|
||||
.. image:: three_steps/three_steps_02.png
|
||||
:align: center
|
||||
:alt: View of the incoming shipment strategy to choose to receive goods in three steps
|
||||
|
||||
Activating this option leads to the creation of two new locations: *Input* and *Quality Control*.
|
||||
To rename them, go to :menuselection:`Inventory --> Configuration --> Locations` and select
|
||||
the one you want to rename.
|
||||
|
||||
Create a Purchase Order
|
||||
=======================
|
||||
|
||||
To start the 3-steps reception process, create a *Request for Quotation* from the *Purchase* app,
|
||||
add some storable products to it and confirm. Then, three pickings are created with your *Purchase
|
||||
Order* as the source document:
|
||||
|
||||
1. The first one with a reference *IN* to designate the receipt
|
||||
process;
|
||||
|
||||
2. The second one with a reference *INT*, which is the move to the
|
||||
quality control zone;
|
||||
|
||||
3. The last one with a reference *INT* to designate the move to stock.
|
||||
|
||||
.. image:: three_steps/three_steps_03.png
|
||||
:align: center
|
||||
:alt: View of the three moves created by the purchase of products in three steps strategy
|
||||
|
||||
Process the receipt, quality control and entry in stock
|
||||
=======================================================
|
||||
|
||||
As the receipt operation is the first one to be processed, it has a *Ready* status while the others
|
||||
are *Waiting Another Operation*.
|
||||
|
||||
To access the receipt operation, click on the button from the *Purchase Order* or go back to the
|
||||
*Inventory* app dashboard and click on *Receipts*.
|
||||
|
||||
.. image:: three_steps/three_steps_04.png
|
||||
:align: center
|
||||
:alt: View of the button to click to see the receipts that need to be processed
|
||||
|
||||
In the receipt order, products are always considered available because they come from the supplier.
|
||||
Then, the receipt can be validated.
|
||||
|
||||
.. image:: three_steps/three_steps_05.png
|
||||
:align: center
|
||||
:alt: View of the move (internal transfer) from the reception area to the warehouse input area
|
||||
|
||||
Once the receipt has been validated, the transfer to quality becomes *Ready*. And, because the documents
|
||||
are chained to each other, products previously received are automatically reserved on the
|
||||
transfer. Then, the transfer can be directly validated.
|
||||
|
||||
.. image:: three_steps/three_steps_06.png
|
||||
:align: center
|
||||
:alt: View of the button to click to see the internal transfers that need to be processed
|
||||
|
||||
.. image:: three_steps/three_steps_07.png
|
||||
:align: center
|
||||
:alt: View of the move (internal transfer) from the input area to the quality control area
|
||||
|
||||
Now, the transfer that enters the products to stock is *Ready*. Here, it is again ready to be
|
||||
validated in order to transfer the products to your stock location.
|
||||
|
||||
.. image:: three_steps/three_steps_08.png
|
||||
:align: center
|
||||
:alt: View of the button to click to see the internal transfers that need to be processed
|
||||
|
||||
.. image:: three_steps/three_steps_09.png
|
||||
:align: center
|
||||
:alt: View of the move (internal transfer) from the quality control area to the stock
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
|
@@ -0,0 +1,97 @@
|
|||
==============================================
|
||||
Process a Receipt in two steps (Input + Stock)
|
||||
==============================================
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Odoo uses routes to define exactly how you will handle the different
|
||||
receipt steps. The configuration is done at the *Warehouse* level. By
|
||||
default, the reception is a one-step process, but changing the
|
||||
configuration can allow you to have 2 steps.
|
||||
|
||||
The 2 steps flow is like this: you receive the goods in an input area,
|
||||
then transfer them to your stock. As long as the goods are not
|
||||
transferred in your stock, they will not be available for further
|
||||
processing.
|
||||
|
||||
Activate Multi-Step Routes
|
||||
==========================
|
||||
|
||||
The first step is to allow using *multi-step routes*. Indeed, routes
|
||||
provide a mechanism to chain different actions together. In this case,
|
||||
we will chain the unload step in the input area to the step entering the
|
||||
products in stock.
|
||||
|
||||
To allow *multi-step routes*, go to :menuselection:`Configuration --> Settings` and
|
||||
activate the feature. By default, activating *multi-step routes* will
|
||||
also activate *Storage Locations*.
|
||||
|
||||
.. image:: two_steps/two_steps_01.png
|
||||
:align: center
|
||||
|
||||
Configure warehouse for receipt in 2 steps
|
||||
==========================================
|
||||
|
||||
Once *multi-step routes* is activated, you can go to :menuselection:`Configuration -->
|
||||
Warehouse` and enter the warehouse which will use receipt in 2 steps.
|
||||
Then, you can select the option *Receive goods in input and then stock
|
||||
(2 steps)* for *Incoming Shipments*.
|
||||
|
||||
.. image:: two_steps/two_steps_02.png
|
||||
:align: center
|
||||
|
||||
Activating this option will lead to the creation of a new *Input*
|
||||
location. If you want to rename it, you can go to :menuselection:`Configuration -->
|
||||
Locations --> Select Input` and update its name.
|
||||
|
||||
.. image:: two_steps/two_steps_03.png
|
||||
:align: center
|
||||
|
||||
Create a purchase order
|
||||
=======================
|
||||
|
||||
In the *Purchase* application, you can create a *Request for
|
||||
Quotation* with some storable products to receive from a supplier. Once
|
||||
the *RfQ* is confirmed, the receipt picking will be created and
|
||||
automatically linked to your purchase order.
|
||||
|
||||
.. image:: two_steps/two_steps_04.png
|
||||
:align: center
|
||||
|
||||
Now, by clicking on the *1 Receipt* button, you will see the first
|
||||
picking which will allow entering the product in the *input location*.
|
||||
Then, another picking, an internal transfer, has been created in order
|
||||
to move the products to *Stock*.
|
||||
|
||||
Process the receipt and the internal transfer
|
||||
=============================================
|
||||
|
||||
The receipt is the first one to be processed and has a *Ready* status
|
||||
while the internal transfer will only become *Ready* once the receipt
|
||||
has been marked as *Done*.
|
||||
|
||||
You can enter the receipt operation from the purchase order, or access
|
||||
it through the inventory dashboard.
|
||||
|
||||
.. image:: two_steps/two_steps_05.png
|
||||
:align: center
|
||||
|
||||
By default, a receipt is always considered as ready to be processed.
|
||||
Then, you will be able to directly click on *Validate* to mark it as
|
||||
done.
|
||||
|
||||
.. image:: two_steps/two_steps_06.png
|
||||
:align: center
|
||||
|
||||
Once the receipt has been validated, the internal transfer is ready to
|
||||
be processed. As documents are chained, the products which have been
|
||||
received are automatically reserved on the internal transfer. Once the
|
||||
transfer is validated, those products enter the stock and you will be
|
||||
able to use them to fulfill customer deliveries or manufacture products.
|
||||
|
||||
.. image:: two_steps/two_steps_07.png
|
||||
:align: center
|
||||
|
||||
.. image:: two_steps/two_steps_08.png
|
||||
:align: center
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
|
@@ -1,317 +1,147 @@
|
|||
====================================
|
||||
Use serial numbers to track products
|
||||
====================================
|
||||
========================
|
||||
Work with serial numbers
|
||||
========================
|
||||
|
||||
*Serial numbers* are one of the two ways to identify and track products in Odoo. A serial number is
|
||||
a unique identifier assigned incrementally (or sequentially) to an item or product, used to
|
||||
distinguish it from other items and products.
|
||||
To track products with serial numbers, you can use the serial number
|
||||
tracking. With them, you can track the current location of the product
|
||||
and, when the products are moved from one location to another, the
|
||||
system will automatically identify the current location of the product,
|
||||
based on its last movement.
|
||||
|
||||
Serial numbers can consist of many different types of characters: they can be strictly numerical,
|
||||
they can contain letters and other typographical symbols, or they can be a mix of all of the above.
|
||||
If you want to do it or run very advanced traceability, the Odoo
|
||||
double-entry management is the feature you need.
|
||||
|
||||
The goal of assigning serial numbers to individual products is to make sure that every item's
|
||||
history is identifiable when it travels through the supply chain. This can be especially useful for
|
||||
manufacturers that provide after-sales services to products that they sell and deliver.
|
||||
Configurations
|
||||
==============
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/inventory_and_mrp/inventory/management/lots_serial_numbers/lots`
|
||||
Application configuration
|
||||
-------------------------
|
||||
|
||||
Enable lots & serial numbers
|
||||
============================
|
||||
First, you need to activate the serial numbers tracking. To do so, go to
|
||||
:menuselection:`Configuration --> Settings` in the *Inventory* application. Then,
|
||||
enable the feature and hit save.
|
||||
|
||||
To track products using serial numbers, the :guilabel:`Lots & Serial Numbers` feature must be
|
||||
enabled. To enable this, go to :menuselection:`Inventory app --> Configuration --> Settings`, scroll
|
||||
down to the :guilabel:`Traceability` section, and click the box next to :guilabel:`Lots & Serial
|
||||
Numbers`. Remember to click the :guilabel:`Save` button to save changes.
|
||||
.. image:: serial_numbers/serial_numbers_01.png
|
||||
:align: center
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-enabled-setting.png
|
||||
:align: center
|
||||
:alt: Enabled lots and serial numbers setting.
|
||||
Product configuration
|
||||
---------------------
|
||||
|
||||
Configure serial number tracking on products
|
||||
============================================
|
||||
Now, you have to configure the products you want to track by serial
|
||||
numbers. To do so, go to :menuselection:`Master Data --> Products` and open the product
|
||||
of your choice. Edit it and select *Tracking By Unique Serial Number*
|
||||
in the *Inventory tab*. Then, click on save.
|
||||
|
||||
Once the :guilabel:`Lots & Serial Numbers` setting has been activated, individual products can now
|
||||
be tracked using serial numbers. To configure this, go to :menuselection:`Inventory app --> Products
|
||||
--> Products`, and choose a desired product to track.
|
||||
.. image:: serial_numbers/serial_numbers_02.png
|
||||
:align: center
|
||||
|
||||
Once on the product form, click :guilabel:`Edit`, and click the :guilabel:`Inventory` tab.
|
||||
.. image:: serial_numbers/serial_numbers_03.png
|
||||
:align: center
|
||||
|
||||
Once on the product form, click :guilabel:`Edit`, navigate to the :guilabel:`Inventory` tab, and
|
||||
scroll to the :guilabel:`Traceability` section. Then, select the :guilabel:`By Unique Serial Number`
|
||||
option, and click :guilabel:`Save` to save the changes. Existing or new serial numbers can now be
|
||||
selected and assigned to newly-received or manufactured batches of this product.
|
||||
Manage Serial Numbers
|
||||
=====================
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-product-tracking.png
|
||||
:align: center
|
||||
:alt: Enabled serial number tracking on product form.
|
||||
Receipts
|
||||
--------
|
||||
|
||||
.. warning::
|
||||
If a product doesn't have a serial number assigned to it, a user error pop-up window will appear.
|
||||
The error message states that the product(s) in stock have no lot/serial number. However, a
|
||||
lot/serial number can be assigned to the product by making an inventory adjustment.
|
||||
To receive a product that is tracked by serial number, you have to
|
||||
specify its serial number. Of course, you have several ways of doing so:
|
||||
|
||||
Create new serial numbers for products already in stock
|
||||
-------------------------------------------------------
|
||||
- Manual assignation
|
||||
|
||||
New serial numbers can be created for products already in stock with no assigned serial number. To
|
||||
do this, go to :menuselection:`Inventory --> Products --> Lots/Serial Numbers`, and click
|
||||
:guilabel:`Create`. Doing so reveals a blank lots/serial numbers form. On this form, a new
|
||||
:guilabel:`Lot/Serial Number` is generated automatically.
|
||||
- Multi-assignation
|
||||
|
||||
- Copy/pasting from an Excel file
|
||||
|
||||
Whatever could be your favorite way to assign serial numbers, you
|
||||
firstly need to open the detailed operations of your picking.
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_04.png
|
||||
:align: center
|
||||
|
||||
Manual assignation of the different serial numbers
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
When opening the detailed operations, you can click on *Add a line*.
|
||||
Then, you will be able to fill in the serial number field. Once done,
|
||||
you can click again on *Add a line* to register a new serial number.
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_05.png
|
||||
:align: center
|
||||
|
||||
Multi-assignation
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
By using the multi-assignation of serial numbers, Odoo will
|
||||
automatically create the necessary lines. To do so, you have to enter
|
||||
the first serial number of your set and the number of products you have
|
||||
to assign a serial number to.
|
||||
|
||||
Once done, click on *Assign Serial Numbers* and Odoo will do the rest.
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_06.png
|
||||
:align: center
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_07.png
|
||||
:align: center
|
||||
|
||||
Copy/pasting from an Excel file
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To use copy/pasting, open the spreadsheet containing the serial numbers
|
||||
you received and copy the list. Then, past them in the *Lot/Serial
|
||||
Number Name* column of the wizard. Doing so, Odoo will automatically
|
||||
create the lines you need.
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_08.png
|
||||
:align: center
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_09.png
|
||||
:align: center
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_10.png
|
||||
:align: center
|
||||
|
||||
Operation types
|
||||
===============
|
||||
|
||||
You also have the possibility to define how you will manage lots for
|
||||
each operation type. To define it, go to :menuselection:`Configuration --> Operation Types` in the
|
||||
*Inventory* app.
|
||||
|
||||
For each type, you can decide if you allow the creation of new lot
|
||||
numbers or want to use existing ones. By default, the creation of new
|
||||
lots is only allowed at product reception.
|
||||
|
||||
.. image:: serial_numbers/serial_numbers_11.png
|
||||
:align: center
|
||||
|
||||
.. tip::
|
||||
While Odoo automatically generates a new lot/serial number to follow the most recent number, it
|
||||
can be edited and changed to any desired number, by clicking the line under the
|
||||
:guilabel:`Lot/Serial Number` field, and changing the generated number.
|
||||
If you have inter-warehouse transfers and track products by lots, it can
|
||||
be useful to allow using existing lot numbers in receipts too.
|
||||
|
||||
Once the :guilabel:`Lot/Serial Number` is generated, click the blank field next to
|
||||
:guilabel:`Product` to reveal a drop-down menu. From this menu, select the product to which this new
|
||||
number will be assigned.
|
||||
|
||||
This form also provides the option to adjust the :guilabel:`Quantity`, to assign a unique
|
||||
:guilabel:`Internal Reference` number (for traceability purposes), and to assign this specific
|
||||
lot/serial number configuration to a specific website in the :guilabel:`Website` field (if working
|
||||
in a multi-website environment).
|
||||
|
||||
A detailed description of this specific lot/serial number can also be added in the
|
||||
:guilabel:`Description` tab below.
|
||||
|
||||
When all desired configurations are complete, click the :guilabel:`Save` button to save all changes.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-new-serial-number.png
|
||||
:align: center
|
||||
:alt: New serial number created for existing product stock.
|
||||
|
||||
After a new serial number has been created, assigned to the desired product, and saved, navigate
|
||||
back to the product form, by going to :menuselection:`Products --> Products`, and selecting the
|
||||
product that this newly-created serial number was just assigned to.
|
||||
|
||||
On that product's detail form, click the :guilabel:`Lot/Serial Numbers` smart button to view the new
|
||||
serial number.
|
||||
|
||||
Manage serial numbers for shipping and receiving
|
||||
================================================
|
||||
|
||||
Serial numbers can be assigned for both **incoming** and **outgoing** goods. For incoming goods, lot
|
||||
numbers are assigned directly on the purchase order form. For outgoing goods, lot numbers are
|
||||
assigned directly on the sales order form.
|
||||
|
||||
Manage serial numbers on receipts
|
||||
---------------------------------
|
||||
|
||||
Assigning serial numbers to **incoming** goods can be done directly from the purchase order (PO).
|
||||
|
||||
To create a :abbr:`PO (purchase order)`, go to the :menuselection:`Purchase app --> Create`. Doing
|
||||
so reveals a new, blank request for quotation (RFQ) form.
|
||||
|
||||
On this :abbr:`RFQ (request for quotation)` form, fill out the necessary information, by adding a
|
||||
:guilabel:`Vendor`, and by adding the desired products to the :guilabel:`Product` lines, by clicking
|
||||
:guilabel:`Add a product`, under the :guilabel:`Products` tab.
|
||||
|
||||
Choose the desired quantity of the product to order, by changing the number in the
|
||||
:guilabel:`Quantity` column.
|
||||
|
||||
When the necessary configurations are complete, click :guilabel:`Confirm Order`. This will convert
|
||||
the :abbr:`RFQ (request for quotation)` to a purchase order.
|
||||
|
||||
Then, click the :guilabel:`Receipt` smart button to be taken to the warehouse receipt form page for
|
||||
that specific :abbr:`PO (purchase order)`.
|
||||
|
||||
.. warning::
|
||||
Clicking :guilabel:`Validate` before assigning a serial number to the ordered product quantities
|
||||
will cause a :guilabel:`User Error` pop-up to appear. The pop-up requires entry of a lot or
|
||||
serial number for the ordered products. The :abbr:`RFQ (request for quotation)` **cannot** be
|
||||
validated without a serial number being assigned.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-user-error-popup.png
|
||||
:align: center
|
||||
:alt: User error popup prompting serial number entry.
|
||||
|
||||
From here, click the :guilabel:`Additional Options` menu, represented by a `hamburger` icon (four
|
||||
horizontal lines, located to the right of the :guilabel:`Unit of Measure` column in the
|
||||
:guilabel:`Operations` tab). Clicking that icon reveals a :guilabel:`Detailed Operations` pop-up.
|
||||
|
||||
In this pop-up, configure a number of different fields, including the assignation of a serial number
|
||||
(or serial numbers) under the :guilabel:`Lot/Serial Number Name` column, located at the bottom of
|
||||
the pop-up.
|
||||
|
||||
There are three ways to do this: manually assigning serial numbers, automatically assigning serial
|
||||
numbers, and copy/pasting serial numbers from a spreadsheet.
|
||||
|
||||
Assign serial numbers manually
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To assign serial numbers manually, click :guilabel:`Add a line` from the :guilabel:`Detailed
|
||||
Operations` pop-up, and first choose the location where the product will be stored under the
|
||||
:guilabel:`To` column.
|
||||
|
||||
Then, type a new :guilabel:`Serial Number Name`, and set the :guilabel:`Done` quantity in the
|
||||
appropriate columns.
|
||||
|
||||
Repeat this process for the quantity of products shown in the :guilabel:`Demand` field, and until
|
||||
the :guilabel:`Quantity Done` field displays the correct (matching) number of products processed.
|
||||
|
||||
Assign serial numbers automatically
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If a large quantity of products need individual serial numbers assigned to them, Odoo can
|
||||
automatically generate and assign serial numbers to each of the individual products.
|
||||
|
||||
To accomplish this, start with the :guilabel:`First SN` field in the :guilabel:`Detailed Operations`
|
||||
pop-up window, and type the first serial number in the desired order to be assigned.
|
||||
|
||||
Then, in the :guilabel:`Number of SN` field, type the total number of items that need
|
||||
newly-generated unique serial numbers assigned to them.
|
||||
|
||||
Finally, click :guilabel:`Assign Serial Numbers`, and a list will populate with new serial numbers
|
||||
matching the ordered quantity of products.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-auto-assign-sn.png
|
||||
:align: center
|
||||
:alt: Automatic serial number assignment in detailed operations popup.
|
||||
|
||||
Copy/paste serial numbers from a spreadsheet
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To copy and paste serial numbers from an existing spreadsheet, first populate a spreadsheet with all
|
||||
of the serial numbers received from the supplier (or manually chosen upon receipt). Then, copy and
|
||||
paste them in the :guilabel:`Lot/Serial Number Name` column. Odoo will automatically create the
|
||||
necessary number of lines based on the amount of numbers pasted in the column.
|
||||
|
||||
From here, the :guilabel:`To` locations and :guilabel:`Done` quantities can be manually entered in
|
||||
each of the serial number lines.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-excel-spreadsheet.png
|
||||
:align: center
|
||||
:alt: List of serial numbers copied in Excel spreadsheet.
|
||||
|
||||
.. tip::
|
||||
For purchase orders that include large quantities of products to receive, the best method of
|
||||
serial number assignment is to automatically assign serial numbers using the :guilabel:`Assign
|
||||
Serial Numbers` button located on the :abbr:`PO (purchase order)`. This prevents any serial
|
||||
numbers from being reused or duplicated, and improves traceability reporting.
|
||||
|
||||
Once all product quantities have been assigned a serial number, click the :guilabel:`Confirm` button
|
||||
to close the pop-up. Then, click :guilabel:`Validate`.
|
||||
|
||||
A :guilabel:`Traceability` smart button appears upon validating the receipt. Click the
|
||||
:guilabel:`Traceability` smart button to see the updated :guilabel:`Traceability Report`, which
|
||||
includes: a :guilabel:`Reference` document, the :guilabel:`Product` being traced, the
|
||||
:guilabel:`Lot/Serial #`, and more.
|
||||
|
||||
Once all product quantities have been assigned a serial number, click :guilabel:`Confirm` to close
|
||||
the popup, and click :guilabel:`Validate`. A :guilabel:`Traceability` smart button will appear upon
|
||||
validating the receipt. Click the :guilabel:`Traceability` smart button to see the updated
|
||||
:guilabel:`Traceability Report`, which includes: a :guilabel:`Reference` document, the
|
||||
:guilabel:`Product` being traced, the :guilabel:`Lot/Serial #`, and more.
|
||||
|
||||
Manage serial numbers on delivery orders
|
||||
----------------------------------------
|
||||
|
||||
Assigning serial numbers to **outgoing** goods can be done directly from the sales order (SO).
|
||||
|
||||
To create an :abbr:`SO (sales order)`, navigate to the :menuselection:`Sales` app, and click the
|
||||
:guilabel:`Create` button. Doing so reveals a new, blank quotation form. On this blank quotation
|
||||
form, fill out the necessary information, by adding a :guilabel:`Customer`, and adding products to
|
||||
the :guilabel:`Product` lines (in the :guilabel:`Order Lines` tab), by clicking :guilabel:`Add a
|
||||
product`.
|
||||
|
||||
Then, choose the desired quantity to sell by changing the number in the :guilabel:`Quantity` column.
|
||||
|
||||
Once the quotation has been filled out, click the :guilabel:`Confirm` button to confirm the
|
||||
quotation. When the quotation is confirmed, the quotation becomes an :abbr:`SO (sales order)`, and a
|
||||
:guilabel:`Delivery` smart button appears.
|
||||
|
||||
Click the :guilabel:`Delivery` smart button to view the warehouse receipt form for that specific
|
||||
:abbr:`SO (sales order)`.
|
||||
|
||||
From here, click the :guilabel:`Additional Options` menu, represented by a `hamburger` icon (four
|
||||
horizontal lines, located to the right of the :guilabel:`Unit of Measure` column in the
|
||||
:guilabel:`Operations` tab). Clicking that icon reveals a :guilabel:`Detailed Operations` pop-up.
|
||||
|
||||
In the pop-up, a :guilabel:`Lot/Serial Number` will be chosen by default, with each product of the
|
||||
total :guilabel:`Reserved` quantity listed with their unique serial numbers (most likely listed in
|
||||
sequential order).
|
||||
|
||||
To manually change a product's serial number, click the drop-down menu under :guilabel:`Lot/Serial
|
||||
Number`, and choose (or type) the desired serial number. Then, mark the :guilabel:`Done` quantities,
|
||||
and click :guilabel:`Confirm` to close the pop-up.
|
||||
|
||||
Finally, click the :guilabel:`Validate` button to deliver the products.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-detailed-operations-popup.png
|
||||
:align: center
|
||||
:alt: Serial numbers listed in detailed operations popup.
|
||||
|
||||
Upon validating the delivery order, a :guilabel:`Traceability` smart button appears. Click the
|
||||
:guilabel:`Traceability` smart button to see the updated :guilabel:`Traceability Report`, which
|
||||
includes: a :guilabel:`Reference` document, the :guilabel:`Product` being traced, the
|
||||
:guilabel:`Date`, and the :guilabel:`Lot/Serial #` assigned.
|
||||
|
||||
The :guilabel:`Traceability Report` can also include a :guilabel:`Reference` receipt from the
|
||||
previous purchase order (PO), if any of the product quantities shared a serial number assigned
|
||||
during receipt of that specific :abbr:`PO (purchase order)`.
|
||||
|
||||
Manage serial numbers for different operations types
|
||||
====================================================
|
||||
|
||||
By default in Odoo, the creation of new serial numbers is only allowed upon **receiving** products
|
||||
from a purchase order. **Existing** serial numbers cannot be used. For sales orders, the opposite is
|
||||
true: new serial numbers cannot be created on the delivery order, only existing serial numbers can
|
||||
be used.
|
||||
|
||||
To change the ability to use new (or existing) serial numbers on any operation type, go to
|
||||
:menuselection:`Inventory app --> Configuration --> Operations Types`, and select the desired
|
||||
:guilabel:`Operation Type`.
|
||||
|
||||
For the :guilabel:`Receipts` operation type, found on the :guilabel:`Operations Types` page, the
|
||||
:guilabel:`Use Existing Lots/Serial Numbers` option can be enabled, by selecting
|
||||
:guilabel:`Receipts` from the :guilabel:`Operations Types` page, clicking :guilabel:`Edit`, and then
|
||||
clicking the checkbox beside the :guilabel:`Use Existing Lots/Serial Numbers` option (in the
|
||||
:guilabel:`Traceability` section). Lastly, click the :guilabel:`Save` button to save the changes.
|
||||
|
||||
For the :guilabel:`Delivery Orders` operation type, located on the :guilabel:`Operations Types`
|
||||
page, the :guilabel:`Create New Lots/Serial Numbers` option can be enabled, by selecting
|
||||
:guilabel:`Delivery Orders` from the :guilabel:`Operations Types` page, clicking :guilabel:`Edit`,
|
||||
and clicking the checkbox beside the :guilabel:`Create New Lots/Serial Numbers` option (in the
|
||||
:guilabel:`Traceability` section). Be sure to click :guilabel:`Save` to save changes.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-operations-types.png
|
||||
:align: center
|
||||
:alt: Enabled traceability setting in operations type form.
|
||||
|
||||
Serial number traceability
|
||||
Serial Number traceability
|
||||
==========================
|
||||
|
||||
Manufacturers and companies can refer to the traceability reports to see the entire lifecycle of a
|
||||
product: where it came from (and when), where it was stored, and who it went to.
|
||||
Using serial numbers allows you to keep track of where the products were
|
||||
received, put in stock, to whom they were sold, and where they were
|
||||
shipped to.
|
||||
|
||||
To see the full traceability of a product, or group by serial numbers, go to
|
||||
:menuselection:`Inventory app --> Products --> Lots/Serial Numbers`. Doing so reveals the
|
||||
:guilabel:`Lots/Serial Numbers` dashboard.
|
||||
Tracking an item is easy: open the *Inventory* app, and go to :menuselection:`Master Data -->
|
||||
Lots/Serial Numbers` and click on the serial number corresponding to your search. Then, open the
|
||||
*Traceability* information. There, you will see in which documents the serial number has been used.
|
||||
|
||||
From here, products with serial numbers assigned to them will be listed by default, and can be
|
||||
expanded to show what serial numbers have been specifically assigned to them.
|
||||
.. image:: serial_numbers/serial_numbers_12.png
|
||||
:align: center
|
||||
|
||||
To group by serial numbers (or lots), first remove any default filters from the search bar in the
|
||||
upper-right corner. Then, click :guilabel:`Group By`, and select :guilabel:`Add Custom Group`, which
|
||||
reveals a mini drop-down menu. From this mini drop-down menu, select :guilabel:`Lot/Serial Number`,
|
||||
and click :guilabel:`Apply`.
|
||||
.. image:: serial_numbers/serial_numbers_13.png
|
||||
:align: center
|
||||
|
||||
Doing so reveals all existing serial numbers and lots, and can be expanded to show all quantities of
|
||||
products with that assigned number. For unique serial numbers that are not reused, there should be
|
||||
just one product per serial number.
|
||||
And, if you want to locate a serial number, you can do so by clicking on
|
||||
the *Location* button available on the serial number form.
|
||||
|
||||
.. image:: serial_numbers/serial-numbers-reporting-page.png
|
||||
:align: center
|
||||
:alt: Serial numbers reporting page with drop-down lists.
|
||||
.. image:: serial_numbers/serial_numbers_14.png
|
||||
:align: center
|
||||
|
||||
.. tip::
|
||||
For additional information regarding an individual serial number (or lot number), click the line
|
||||
item for the serial number to reveal that specific serial number's :guilabel:`Serial Number`
|
||||
form. From this form, click the :guilabel:`Location` and :guilabel:`Traceability` smart buttons
|
||||
to see all stock on-hand using that serial number, and any operations made using that serial
|
||||
number.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/inventory_and_mrp/inventory/management/lots_serial_numbers/differences`
|
||||
.. image:: serial_numbers/serial_numbers_15.png
|
||||
:align: center
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 11 KiB |