[IMP] inventory: refactor WH and locations
closes odoo/documentation#10238 Signed-off-by: Felicia Kuan (feku) <feku@odoo.com> Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com> Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
@ -93,6 +93,8 @@ match is found:
|
|||||||
:align: center
|
:align: center
|
||||||
:alt: Some examples of putaway rules.
|
:alt: Some examples of putaway rules.
|
||||||
|
|
||||||
|
.. _inventory/warehouses_storage/storage-category:
|
||||||
|
|
||||||
Storage categories
|
Storage categories
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
@ -2,8 +2,6 @@
|
|||||||
Removal strategies (FIFO, LIFO, FEFO)
|
Removal strategies (FIFO, LIFO, FEFO)
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
.. _inventory/routes/strategies/removal:
|
|
||||||
|
|
||||||
For companies with warehouses, **removal strategies** determine which products are taken from the
|
For companies with warehouses, **removal strategies** determine which products are taken from the
|
||||||
warehouse, and when. Removal strategies are typically defined for specific picking operations. This
|
warehouse, and when. Removal strategies are typically defined for specific picking operations. This
|
||||||
helps companies to select the best products, optimize the distance workers need to travel when
|
helps companies to select the best products, optimize the distance workers need to travel when
|
||||||
|
@ -73,7 +73,7 @@ steps below to finish configuring the virtual parent warehouse.
|
|||||||
:alt: New warehouse form.
|
:alt: New warehouse form.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`Warehouse configurations <../inventory_management/warehouses_locations>`
|
- :doc:`Warehouse configurations <../inventory_management/warehouses>`
|
||||||
- :ref:`Incoming and outgoing shipments <inventory/receipts_delivery_one_step/wh>`
|
- :ref:`Incoming and outgoing shipments <inventory/receipts_delivery_one_step/wh>`
|
||||||
- :doc:`Resupply from another warehouse <../inventory_management/resupply_warehouses>`
|
- :doc:`Resupply from another warehouse <../inventory_management/resupply_warehouses>`
|
||||||
|
|
||||||
|
@ -1,18 +1,144 @@
|
|||||||
:nosearch:
|
:show-content:
|
||||||
|
:hide-page-toc:
|
||||||
|
|
||||||
====================
|
====================
|
||||||
Inventory management
|
Inventory management
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
In the Odoo *Inventory* app, :doc:`warehouses <inventory_management/warehouses>` handle the broader
|
||||||
|
organization and distribution of stock across different physical sites, while :doc:`locations
|
||||||
|
<inventory_management/use_locations>` provide a more detailed breakdown within each warehouse for
|
||||||
|
efficient item management.
|
||||||
|
|
||||||
|
This document serves as an introduction to the terminology and concepts necessary to master
|
||||||
|
*Inventory*. For specific instructions and examples of how things work, refer to individual
|
||||||
|
documentation pages.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
`Odoo Tutorials: Warehouses & Locations <https://www.youtube.com/watch?v=zMvudZVLuUo>`_
|
||||||
|
|
||||||
|
Warehouses
|
||||||
|
==========
|
||||||
|
|
||||||
|
:doc:`Warehouses <inventory_management/warehouses>` represent a physical place, with a physical
|
||||||
|
address, where a company's items are stored.
|
||||||
|
|
||||||
|
Configure :doc:`routes <inventory_management/use_routes>` in a warehouse to control how products
|
||||||
|
move to customers, from vendors, within the warehouse, or :doc:`between warehouses
|
||||||
|
<inventory_management/resupply_warehouses>`.
|
||||||
|
|
||||||
|
Locations
|
||||||
|
=========
|
||||||
|
|
||||||
|
:doc:`Locations <inventory_management/use_locations>` refer to specific areas within a warehouse,
|
||||||
|
such as shelves, floors, or aisles. These are sub-divisions within a warehouse, and are unique to
|
||||||
|
that warehouse. Users can create and manage numerous locations within a single warehouse to organize
|
||||||
|
inventory more precisely.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
- :doc:`inventory_management/use_locations`
|
||||||
|
- :doc:`inventory_management/count_products`
|
||||||
|
- :doc:`inventory_management/cycle_counts`
|
||||||
|
- :doc:`inventory_management/scrap_inventory`
|
||||||
|
|
||||||
|
.. _inventory/warehouses_storage/location-type:
|
||||||
|
|
||||||
|
Location types
|
||||||
|
--------------
|
||||||
|
|
||||||
|
*Location types* in Odoo help categorize and manage where products are, and what actions need to be
|
||||||
|
taken with them. By default, on the :menuselection:`Inventory app --> Configuration --> Locations`
|
||||||
|
page, only internal locations are displayed.
|
||||||
|
|
||||||
|
To view the seven location types in Odoo, select any location, and in the :guilabel:`Location Type`
|
||||||
|
field, there are:
|
||||||
|
|
||||||
|
- :guilabel:`Vendor Location`: defines an area where products purchased from vendors originate.
|
||||||
|
Items here are **not** in stock.
|
||||||
|
|
||||||
|
- :guilabel:`View`: used to organize and structure the warehouse hierarchy. For example, the view
|
||||||
|
location `WH` (short for warehouse) groups all internal locations, such as `Stock`, receiving
|
||||||
|
docks, quality checkpoints, and packing areas to show they all belong to the same warehouse.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
View locations should **not** contain products, but it is possible to move them there.
|
||||||
|
|
||||||
|
- :guilabel:`Internal Location`: storage locations within the warehouse. Items stored in these
|
||||||
|
locations are accounted for in :doc:`inventory valuation
|
||||||
|
<inventory_valuation/using_inventory_valuation>`.
|
||||||
|
|
||||||
|
- :guilabel:`Customer Location`: where sold products are tracked; items here are no longer in stock.
|
||||||
|
|
||||||
|
- :guilabel:`Inventory Loss`: counterpart location to consume missing items or create stock,
|
||||||
|
accounting for discrepancies.
|
||||||
|
|
||||||
|
In Odoo, examples of inventory loss locations are *Inventory Adjustment*, used to account for
|
||||||
|
discrepancies during an inventory count, and *Scrap*, which is where damaged goods are sent to
|
||||||
|
account for inventory losses.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
`Virtual Locations/Inventory Adjustment` is a location with the :guilabel:`Inventory Loss`
|
||||||
|
type. The database shows `65` units in `WH/Stock`, but an inventory check reveals `60`. To
|
||||||
|
correct the quantity, five units are moved from `WH/Stock` to `Virtual Locations/Inventory
|
||||||
|
Adjustment`.
|
||||||
|
|
||||||
|
.. image:: inventory_management/inventory_management/inventory-loss.png
|
||||||
|
:align: center
|
||||||
|
:alt: Product ends up in Virtual Locations/Inventory Adjustment.
|
||||||
|
|
||||||
|
- :guilabel:`Production`: where raw materials are consumed, and :doc:`manufactured products
|
||||||
|
<../../manufacturing>` are created.
|
||||||
|
|
||||||
|
- :guilabel:`Transit Location`: used for inter-company or inter-warehouse operations to track
|
||||||
|
products shipped between different addresses, such as :ref:`Physical Locations/Inter-warehouse
|
||||||
|
transit <inventory/warehouses_storage/interwarehouse-transit>`.
|
||||||
|
|
||||||
|
.. image:: inventory_management/inventory_management/locations.png
|
||||||
|
:align: center
|
||||||
|
:alt: List of locations in Odoo.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
In Odoo, location types are color-coded:
|
||||||
|
- **Red**: internal locations
|
||||||
|
- **Blue**: view locations
|
||||||
|
- **Black**: external locations (including inventory loss, vendor, and customer locations).
|
||||||
|
|
||||||
|
View locations in Odoo
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Odoo databases include pre-configured view locations to organize the hierarchy of locations. These
|
||||||
|
provide helpful context, and distinguish between internal and external locations.
|
||||||
|
|
||||||
|
- *Physical locations* serve as an umbrella for external locations, without changing a product's
|
||||||
|
inventory value. (Inventory valuation changes occur when products move from internal to external
|
||||||
|
locations).
|
||||||
|
|
||||||
|
.. _inventory/warehouses_storage/interwarehouse-transit:
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
When moving products in warehouses `WH` and `WH2`, the items are not in either warehouse, but
|
||||||
|
still belong to the company. While in transit, they are placed in the `Inter-warehouse transit`
|
||||||
|
location, a :guilabel:`Transit Location` type.
|
||||||
|
|
||||||
|
This location is under the view location, `Physical Locations`, indicating that
|
||||||
|
`Inter-warehouse transit` is outside of a warehouse, but still part of the company. Doing so
|
||||||
|
does not affect the inventory valuation of the products.
|
||||||
|
|
||||||
|
- *Partner locations* group customer and vendor locations (external locations) together. Transfers
|
||||||
|
to these locations affect inventory valuation.
|
||||||
|
- *Virtual locations* are locations that do **not** exist physically, but it is where items that are
|
||||||
|
not in inventory can be placed. These can be items that are no longer in inventory due to loss, or
|
||||||
|
other factors.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
inventory_management/resupply_warehouses
|
inventory_management/warehouses
|
||||||
inventory_management/warehouse_replenishment_transfer
|
|
||||||
inventory_management/warehouses_locations
|
|
||||||
inventory_management/create_a_second_warehouse
|
|
||||||
inventory_management/use_routes
|
|
||||||
inventory_management/use_locations
|
inventory_management/use_locations
|
||||||
inventory_management/count_products
|
inventory_management/count_products
|
||||||
inventory_management/cycle_counts
|
inventory_management/cycle_counts
|
||||||
inventory_management/scrap_inventory
|
inventory_management/scrap_inventory
|
||||||
|
inventory_management/resupply_warehouses
|
||||||
|
inventory_management/warehouse_replenishment_transfer
|
||||||
|
inventory_management/use_routes
|
||||||
|
|
||||||
|
@ -1,100 +0,0 @@
|
|||||||
=========================
|
|
||||||
Create a second warehouse
|
|
||||||
=========================
|
|
||||||
|
|
||||||
A *warehouse* is a physical building or space where items are stored. In Odoo, it is possible to set
|
|
||||||
up multiple warehouses and transfer stored items between them.
|
|
||||||
|
|
||||||
By default, the Odoo platform has one warehouse that is already configured, with the address set as
|
|
||||||
the company's address. To create a second warehouse, select :menuselection:`Configuration -->
|
|
||||||
Warehouses`, then click :guilabel:`Create` and configure the form as follows:
|
|
||||||
|
|
||||||
- :guilabel:`Warehouse`: the full name of the warehouse
|
|
||||||
- :guilabel:`Short Name`: the abbreviated code by which the warehouse is referred to; the short name
|
|
||||||
for the default warehouse in Odoo is **WH**
|
|
||||||
- :guilabel:`Company`: the company that owns the warehouse; this can be set as the company that owns
|
|
||||||
the Odoo database or the company of a customer or vendor
|
|
||||||
- :guilabel:`Address`: the address where the warehouse is located
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The options below will only appear if the :guilabel:`Multi-Step Routes` checkbox is enabled in
|
|
||||||
:menuselection:`Configuration --> Settings` under the :guilabel:`Warehouse` heading. For more
|
|
||||||
information about routes and how they work in Odoo, see :ref:`Using Routes and Pull/Push Rules
|
|
||||||
<use-routes>`.
|
|
||||||
|
|
||||||
- :guilabel:`Incoming/Outgoing Shipments`: select the routes that incoming and outgoing shipments
|
|
||||||
should follow
|
|
||||||
- :guilabel:`Resupply Subcontractors`: allow subcontractors to be resupplied from this warehouse
|
|
||||||
- :guilabel:`Manufacture to Resupply`: allow for items to be manufactured in this warehouse
|
|
||||||
- :guilabel:`Manufacture`: select the route that should be followed when manufacturing goods inside
|
|
||||||
the warehouse
|
|
||||||
- :guilabel:`Buy to Resupply`: check the box to allow for purchased products to be delivered to the
|
|
||||||
warehouse
|
|
||||||
- :guilabel:`Resupply From`: select warehouses that can be used to resupply the warehouse being
|
|
||||||
created
|
|
||||||
|
|
||||||
.. image:: create_a_second_warehouse/new-warehouse-configuration.png
|
|
||||||
:align: center
|
|
||||||
:alt: A filled out form for creating a new warehouse.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
Creating a second warehouse will automatically enable the *Storage Locations* setting, which
|
|
||||||
allows location tracking of products within a warehouse. To toggle this setting, navigate to
|
|
||||||
:menuselection:`Configuration --> Settings` and click the checkbox under the
|
|
||||||
:guilabel:`Warehouse` heading.
|
|
||||||
|
|
||||||
After filling out the form, click :guilabel:`Save` and the new warehouse will be created.
|
|
||||||
|
|
||||||
Add inventory to a new warehouse
|
|
||||||
================================
|
|
||||||
|
|
||||||
If a new warehouse is created that has existing inventory in it, the inventory counts should be
|
|
||||||
added to Odoo so that the stock listed in the Odoo database reflects what is in the physical
|
|
||||||
warehouse. To add inventory to a new warehouse, navigate to :menuselection:`Inventory -->
|
|
||||||
Operations --> Inventory Adjustments`, and then click :guilabel:`Create`. The inventory adjustment
|
|
||||||
form can then be filled out as follows:
|
|
||||||
|
|
||||||
- :guilabel:`Inventory Reference`: the name or code that the inventory adjustment can be referred to
|
|
||||||
by
|
|
||||||
- :guilabel:`Locations`: the location(s) where the inventory is stored; include the new warehouse
|
|
||||||
and any locations within it that inventory will be added to
|
|
||||||
- :guilabel:`Products`: include all products that will be added to inventory or leave blank to
|
|
||||||
select any product during the next step
|
|
||||||
- :guilabel:`Include Exhausted Products`: include products with a quantity of zero; does not affect
|
|
||||||
inventory adjustments for new warehouses since they have no existing inventory
|
|
||||||
- :guilabel:`Accounting Date`: the date used by accounting teams for bookkeeping related to the
|
|
||||||
inventory
|
|
||||||
- :guilabel:`Company`: the company that owns the inventory; can be set as the user's company or as a
|
|
||||||
customer or vendor
|
|
||||||
- :guilabel:`Counted Quantities`: choose whether the counted quantities for products being added
|
|
||||||
should default to stock on hand or zero; does not affect inventory adjustments for new warehouses
|
|
||||||
since they have no existing inventory
|
|
||||||
|
|
||||||
.. image:: create_a_second_warehouse/inventory-adjustment-configuration.png
|
|
||||||
:align: center
|
|
||||||
:alt: A filled out form for an inventory adjustment.
|
|
||||||
|
|
||||||
Once the form is properly configured, click on :guilabel:`Start Inventory` to be taken to the next
|
|
||||||
page where products can be added to the inventory adjustment. Add a new product by clicking on
|
|
||||||
:guilabel:`Create` and then fill out the product line as follows:
|
|
||||||
|
|
||||||
- :guilabel:`Product`: the product being added to inventory
|
|
||||||
- :guilabel:`Location`: the location where the product is currently stored in the new warehouse;
|
|
||||||
this can be set as the overall warehouse or a location within the warehouse
|
|
||||||
- :guilabel:`Lot/Serial Number`: the lot that the product belongs to or the serial number used to
|
|
||||||
identify it
|
|
||||||
- :guilabel:`On Hand`: the total quantity of the product stored in the location for which inventory
|
|
||||||
is being adjusted; this should be zero for a new location or warehouse
|
|
||||||
- :guilabel:`Counted`: the amount of the product that is being added to inventory
|
|
||||||
- :guilabel:`Difference`: the difference between the *On Hand* and *Counted* values; this will
|
|
||||||
automatically update to reflect the value entered in the :guilabel:`Counted` column
|
|
||||||
- :guilabel:`UoM`: the unit of measure used for counting the product
|
|
||||||
|
|
||||||
.. image:: create_a_second_warehouse/product-line-configuration.png
|
|
||||||
:align: center
|
|
||||||
:alt: Include a line for each product being added to inventory.
|
|
||||||
|
|
||||||
After adding all the products already stored in the new warehouse, click :guilabel:`Validate
|
|
||||||
Inventory` to complete the inventory adjustment. The values in the :guilabel:`On Hand` column will
|
|
||||||
update to reflect those in the :guilabel:`Counted` column and the products added will appear in the
|
|
||||||
inventory of the new warehouse.
|
|
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 90 KiB |
@ -23,7 +23,7 @@ rather a designation in Odoo that is used to track items that are no longer in p
|
|||||||
.. admonition:: Learn more
|
.. admonition:: Learn more
|
||||||
|
|
||||||
For more information about virtual locations, see the documentation about the different types of
|
For more information about virtual locations, see the documentation about the different types of
|
||||||
:ref:`locations <inventory/management/difference-warehouse-location>`.
|
:ref:`location types <inventory/warehouses_storage/location-type>`.
|
||||||
|
|
||||||
Scrap from stock
|
Scrap from stock
|
||||||
================
|
================
|
||||||
|
@ -2,58 +2,118 @@
|
|||||||
Locations
|
Locations
|
||||||
=========
|
=========
|
||||||
|
|
||||||
A *location* is a specific space within a warehouse. This can be a shelf, room, aisle, etc. There
|
A *location* is a specific space within a warehouse. This can be a shelf, room, aisle, etc.
|
||||||
are three types of locations in Odoo:
|
|
||||||
|
|
||||||
- *Physical locations* are spaces within a warehouse owned by the user's company. These can be a an
|
Configuration
|
||||||
area where items are stored like an aisle or shelf, or an area where operations take place, like
|
=============
|
||||||
loading and unloading bays.
|
|
||||||
- *Partner locations* are the same as physical locations except that they exist within the warehouse
|
|
||||||
of a customer or vendor.
|
|
||||||
- *Virtual locations* are locations that do not exist physically, but where items that are not in
|
|
||||||
inventory can be placed. These can be items that have not yet entered inventory, like products
|
|
||||||
that are on the way to a warehouse, or items that are no longer in inventory due to loss or other
|
|
||||||
factors.
|
|
||||||
|
|
||||||
.. important::
|
To create specific storage locations, enable the *Storage Locations* feature by going to
|
||||||
In order to use locations, the :guilabel:`Storage Locations` setting must be enabled. To do so,
|
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouses`
|
||||||
navigate to :menuselection:`Inventory --> Configuration --> Settings`, scroll down to the
|
section, tick the :guilabel:`Storage Locations` checkbox. Then, click :guilabel:`Save`.
|
||||||
:guilabel:`Warehouse` heading, and enable the :guilabel:`Storage Locations` checkbox.
|
|
||||||
|
|
||||||
Create a new location inside a warehouse
|
.. note::
|
||||||
========================================
|
Typically, the :guilabel:`Storage Locations` feature is used with :doc:`Multi-Step Routes
|
||||||
|
<use_routes>`, which controls how products move between locations.
|
||||||
|
|
||||||
Starting from the :menuselection:`Inventory` app, select :menuselection:`Configuration --> Locations
|
.. image:: use_locations/enable-location.png
|
||||||
--> Create`. The new location form can then be configured as follows:
|
:align: center
|
||||||
|
:alt: Show Storage Locations feature.
|
||||||
|
|
||||||
- :guilabel:`Location Name`: the name that will be used to reference the location
|
Create new location
|
||||||
- :guilabel:`Parent Location`: the location or warehouse that the new location exists within
|
===================
|
||||||
- :guilabel:`Location Type`: choose the category that the location belongs to
|
|
||||||
- :guilabel:`Company`: the company that owns the warehouse that the location is inside of
|
|
||||||
- :guilabel:`Is a Scrap Location?`: check this box to allow for scrapped/damaged goods to be stored
|
|
||||||
in this location
|
|
||||||
- :guilabel:`Is a Return Location?`: check this box to allow products to be returned to this
|
|
||||||
location
|
|
||||||
- :guilabel:`Barcode`: the barcode number assigned to the location
|
|
||||||
- :guilabel:`Removal Strategy`: the :ref:`strategy <inventory/routes/strategies/removal>` for how
|
|
||||||
items should be taken from inventory
|
|
||||||
|
|
||||||
.. image:: use_locations/new-location-form.png
|
After enabling *Storage Locations*, go to :menuselection:`Inventory app --> Configuration -->
|
||||||
|
Locations`.
|
||||||
|
|
||||||
|
.. image:: use_locations/locations.png
|
||||||
|
:align: center
|
||||||
|
:alt: List of internal locations.
|
||||||
|
|
||||||
|
On this page, click :guilabel:`New`. The new location form can then be configured as follows:
|
||||||
|
|
||||||
|
- :guilabel:`Location Name`: recognizable name of the location.
|
||||||
|
- :guilabel:`Parent Location`: the location within which the new location exists. After the location
|
||||||
|
is created, it is listed on the :guilabel:`Locations` page using a *location hierarchy*, to
|
||||||
|
describe how a specific location fits within larger areas of the warehouse.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
In `WH/Stock/Zone A/Refrigerator 1`, "Refrigerator 1" is the location name, "Zone A" is the
|
||||||
|
parent location, and everything before it is the path showing where this spot is within the
|
||||||
|
warehouse.
|
||||||
|
|
||||||
|
Additional Information section
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
In addition to the required fields above, configure the following location fields to ensure the
|
||||||
|
location serves its intended purpose in the database:
|
||||||
|
|
||||||
|
- :guilabel:`Location Type`: from the drop-down menu, choose :guilabel:`Vendor Location`,
|
||||||
|
:guilabel:`View`, :guilabel:`Internal Location`, :guilabel:`Customer Location`,
|
||||||
|
:guilabel:`Inventory Loss`, :guilabel:`Production`, or :guilabel:`Transit Location` to categorize
|
||||||
|
the location. For details on each location type, refer to the :ref:`Location Types section
|
||||||
|
<inventory/warehouses_storage/location-type>`.
|
||||||
|
- :guilabel:`Storage Category`: only available with the :ref:`Storage Categories
|
||||||
|
<inventory/warehouses_storage/storage-category>` feature enabled in :menuselection:`Inventory app
|
||||||
|
--> Configuration --> Settings`.
|
||||||
|
- :guilabel:`Company`: the company the location belongs to.
|
||||||
|
- :guilabel:`Is a Scrap Location?`: tick this checkbox to allow for scrapped/damaged goods to be
|
||||||
|
stored in this location.
|
||||||
|
- :guilabel:`Is a Return Location?`: tick this checkbox to allow products to be returned to this
|
||||||
|
location.
|
||||||
|
- :guilabel:`Barcode`: used with the *Barcode* app, enter the barcode to :ref:`identify actions
|
||||||
|
<barcode/setup/location>` at this location when scanned.
|
||||||
|
- :guilabel:`Replenish Location`: used for :doc:`configuring routes <use_routes>`, tick this
|
||||||
|
checkbox to set the location as a destination for receiving products from *Buy*, *Manufacture*, or
|
||||||
|
other procurement routes, ensuring products are correctly supplied to the warehouse.
|
||||||
|
|
||||||
|
.. image:: use_locations/new-location.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: The form for creating a new location.
|
:alt: The form for creating a new location.
|
||||||
|
|
||||||
Create location hierarchies
|
Cyclic Counting section
|
||||||
===========================
|
-----------------------
|
||||||
|
|
||||||
The *Parent Location* setting on the new location form allows for a location to exist within a
|
To schedule regular inventory counts at this location, set the :guilabel:`Inventory Frequency
|
||||||
warehouse or another location. Every location can serve as a parent location, and every parent
|
(Days)` field to the desired interval. By default, it is set to `0` (no scheduled counts).
|
||||||
location can have multiple locations within it, allowing for the creation of a virtually infinite
|
|
||||||
hierarchical structure.
|
For example, setting this field to `30`, schedules a count every thirty days. For more specifics on
|
||||||
|
setting up and using this feature, refer to the :doc:`Cycle Counts documentation <cycle_counts>`.
|
||||||
|
|
||||||
|
The :guilabel:`Last Effective Inventory` field displays the date the last inventory count at this
|
||||||
|
location occurred. When scheduled inventory counts are enabled, the :guilabel:`Next Expected
|
||||||
|
Inventory` field displays the date of the next inventory count.
|
||||||
|
|
||||||
.. example::
|
.. example::
|
||||||
Location hierarchy could be organized so that a shelf is located within an aisle, which is
|
With inventory counts scheduled to occur every `30` days, and the :guilabel:`Last Effective
|
||||||
located within a room, which is located within the overall warehouse.
|
Inventory` count occurring on July 16, the :guilabel:`Next Expected Inventory` is August 15.
|
||||||
|
|
||||||
To create the location hierarchy in the example above, set the warehouse as the parent of the room,
|
.. image:: use_locations/scheduled-count.png
|
||||||
the room as the parent of the aisle, and the aisle as the parent of the shelf. This can be adapted
|
:align: center
|
||||||
to a hierarchy of any magnitude.
|
:alt: Show Cyclic Count section of the locations form.
|
||||||
|
|
||||||
|
Logistics section
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
In the :guilabel:`Logistics` section of the locations form, optionally select a :guilabel:`Removal
|
||||||
|
Strategy` to determine the order and priority of how products are picked from inventory. The options
|
||||||
|
are: :guilabel:`First In First Out (FIFO)`, :guilabel:`Last In First Out (LIFO)`, :guilabel:`Closest
|
||||||
|
Location`, and :guilabel:`First Expiry First Out (FEFO)`.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
:doc:`../advanced_operations_warehouse/removal`
|
||||||
|
|
||||||
|
Current stock at location
|
||||||
|
=========================
|
||||||
|
|
||||||
|
To view the current stock at a single location, go to :menuselection:`Inventory app -->
|
||||||
|
Configuration --> Locations`, and select the desired location.
|
||||||
|
|
||||||
|
Next, click the :guilabel:`Current Stock` smart button to get a list of all products at the
|
||||||
|
location.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
A list of current stock at `Shelf 1` consists of `266` cabinets and `39` desks.
|
||||||
|
|
||||||
|
.. image:: use_locations/current-stock.png
|
||||||
|
:align: center
|
||||||
|
:alt: Show stock at Shelf 1.
|
||||||
|
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.2 KiB |
@ -0,0 +1,73 @@
|
|||||||
|
==========
|
||||||
|
Warehouses
|
||||||
|
==========
|
||||||
|
|
||||||
|
In the Odoo *Inventory* app, a *warehouse* is a physical space with an address for storing items,
|
||||||
|
such as a storage facility, distribution center, or physical store.
|
||||||
|
|
||||||
|
Each database has a pre-configured warehouse with the company's address. Users can set up multiple
|
||||||
|
warehouses, and :doc:`create stock moves <use_routes>` between them.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
To create or manage warehouses, go to :menuselection:`Inventory app --> Configuration -->
|
||||||
|
Warehouses`.
|
||||||
|
|
||||||
|
Then, select an existing warehouse, or create a new one by clicking :guilabel:`New`. Doing so opens
|
||||||
|
the warehouse form, which contains the following fields:
|
||||||
|
|
||||||
|
- :guilabel:`Warehouse` (*required field*): the full name of the warehouse.
|
||||||
|
- :guilabel:`Short Name` (*required field*): the abbreviated code for the warehouse (maximum five
|
||||||
|
characters). The short name for the default warehouse in Odoo is `WH`.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The :guilabel:`Short Name` appears on warehouse documents, so it is recommended to use an
|
||||||
|
memorable one, like "WH[first letters of location]" (e.g. `WHA`, `WHB`, etc.).
|
||||||
|
|
||||||
|
- :guilabel:`Address` (*required field*): the address of the warehouse. To change the warehouse
|
||||||
|
address when creating two or more warehouses, hover over the field, and click the
|
||||||
|
:icon:`fa-arrow-right` :guilabel:`(right arrow)`.
|
||||||
|
- :guilabel:`Company` (*required field*): the company that owns the warehouse; this can be set as
|
||||||
|
the company that owns the Odoo database, or the company of a customer or vendor.
|
||||||
|
- :guilabel:`Intrastat region`: :doc:`region name
|
||||||
|
<../../../../finance/accounting/reporting/intrastat>` required for companies in the European
|
||||||
|
Union.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
The options below are available **only** when the *Multi-Step Routes* feature is enabled in
|
||||||
|
:menuselection:`Inventory app --> Configuration --> Settings`.
|
||||||
|
|
||||||
|
- :guilabel:`Incoming Shipments`: select the option to receive products from the warehouse in
|
||||||
|
:doc:`one <../../shipping_receiving/daily_operations/receipts_delivery_one_step>`, :doc:`two
|
||||||
|
<../../shipping_receiving/daily_operations/receipts_delivery_two_steps>`, or :doc:`three
|
||||||
|
<../../shipping_receiving/daily_operations/receipts_three_steps>` steps.
|
||||||
|
|
||||||
|
- :guilabel:`Outgoing Shipments`: select the option to deliver products from the warehouse in
|
||||||
|
:doc:`one <../../shipping_receiving/daily_operations/receipts_delivery_one_step>`, :doc:`two
|
||||||
|
<../../shipping_receiving/daily_operations/receipts_delivery_two_steps>`, or :doc:`three
|
||||||
|
<../../shipping_receiving/daily_operations/delivery_three_steps>` steps.
|
||||||
|
|
||||||
|
- :guilabel:`Dropship Subcontractors`: available with the *Subcontracting* feature enabled in
|
||||||
|
:menuselection:`Manufacturing app --> Configuration --> Settings`. Tick this checkbox to purchase
|
||||||
|
components from vendors, and dropship them to subcontractors.
|
||||||
|
- :guilabel:`Resupply Subcontractors`: available with the *Subcontracting* feature, tick this
|
||||||
|
checkbox to supply subcontractors with raw materials stored in *this* specific warehouse.
|
||||||
|
- :guilabel:`Manufacture to Resupply`: tick this checkbox to allow for items to be manufactured in
|
||||||
|
this warehouse.
|
||||||
|
- :guilabel:`Manufacture`: choose whether to manufacture products in :doc:`one
|
||||||
|
<../../../manufacturing/management/one_step_manufacturing>`, :doc:`two
|
||||||
|
<../../../manufacturing/management/two_step_manufacturing>`, or :doc:`three steps
|
||||||
|
<../../../manufacturing/management/three_step_manufacturing>`.
|
||||||
|
- :guilabel:`Buy to Resupply`: tick this checkbox to allow for purchased products to be delivered to
|
||||||
|
the warehouse.
|
||||||
|
- :guilabel:`Resupply From`: available with multiple warehouses in the database, select warehouses
|
||||||
|
to pull stock *from* to fulfill orders.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
:doc:`Use inventory adjustments to add stock to new warehouses <count_products>`
|
||||||
|
|
||||||
|
.. image:: warehouses/warehouse-form.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example warehouse form.
|
||||||
|
|
After Width: | Height: | Size: 22 KiB |
@ -1,95 +0,0 @@
|
|||||||
===============================
|
|
||||||
Manage Warehouses and Locations
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Terminology
|
|
||||||
===========
|
|
||||||
|
|
||||||
Warehouse
|
|
||||||
---------
|
|
||||||
|
|
||||||
In Odoo, a **Warehouse** is the actual building/place in which a company's items are stocked.
|
|
||||||
Multiple warehouses can be set up in Odoo and the user can create moves between warehouses.
|
|
||||||
|
|
||||||
.. _inventory/management/difference-warehouse-location:
|
|
||||||
|
|
||||||
Location
|
|
||||||
--------
|
|
||||||
|
|
||||||
A **Location** is a specific space within the warehouse. It can be a sublocation of the warehouse
|
|
||||||
(a shelf, a floor, an aisle, and so on). Therefore, a location is part of one warehouse only and it
|
|
||||||
is not possible to link one location to multiple warehouses. In Odoo, as many locations can be
|
|
||||||
configured as needed under one warehouse.
|
|
||||||
|
|
||||||
There are three types of locations:
|
|
||||||
|
|
||||||
- The **Physical Locations** are internal locations that are part of the warehouses that the
|
|
||||||
company owns. They can be the loading and unloading areas of the warehouse, a shelf, a department,
|
|
||||||
etc.
|
|
||||||
|
|
||||||
- The **Partner Locations** are spaces within a customer and/or vendor's warehouse. They work the
|
|
||||||
same way as physical locations, with the only difference being that they are not owned by the
|
|
||||||
user's company.
|
|
||||||
|
|
||||||
- The **Virtual Locations** are places that do not exist, but in which products can be placed when
|
|
||||||
they are not physically in an inventory yet (or anymore). They come in handy when recording lost
|
|
||||||
products (**Inventory Loss**), or accounting for products that are on their way to the warehouse
|
|
||||||
(**Procurements**).
|
|
||||||
|
|
||||||
In Odoo, locations are structured hierarchically. Locations can be structured as a tree, dependent
|
|
||||||
on a parent-child relationship. This gives more detailed levels of analysis of the stock operations
|
|
||||||
and the organization of the warehouses.
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
To activate locations, go to :menuselection:`Configuration --> Settings` and enable
|
|
||||||
:guilabel:`Storage Locations`. Then, click :guilabel:`Save`.
|
|
||||||
|
|
||||||
.. image:: warehouses_locations/storage-location-warehouse-setting.png
|
|
||||||
:align: center
|
|
||||||
:alt: Enable the storage location feature in Odoo Inventory settings.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
To manage several routes within the warehouses, also enable :guilabel:`Multi-Step Routes` and
|
|
||||||
check :doc:`/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_routes`.
|
|
||||||
|
|
||||||
Create a new warehouse
|
|
||||||
======================
|
|
||||||
|
|
||||||
To create a warehouse, go to :menuselection:`Configuration --> Warehouse Management --> Warehouses`
|
|
||||||
and click on :guilabel:`Create`.
|
|
||||||
|
|
||||||
Then, fill out a :guilabel:`Warehouse Name` and a :guilabel:`Short Name`. The short name is five
|
|
||||||
characters maximum.
|
|
||||||
|
|
||||||
.. image:: warehouses_locations/create-new-warehouse.png
|
|
||||||
:align: center
|
|
||||||
:alt: Short name field of a warehouse on Odoo Inventory.
|
|
||||||
|
|
||||||
.. important::
|
|
||||||
The :guilabel:`Short Name` appears on transfer orders and other warehouse documents. Odoo
|
|
||||||
recommends using an understandable one like "WH/[first letters of location]".
|
|
||||||
|
|
||||||
Now, go back to the :guilabel:`Inventory` dashboard. There, new operations related to the newly
|
|
||||||
created warehouse have been automatically generated.
|
|
||||||
|
|
||||||
.. image:: warehouses_locations/new-transfer-types.png
|
|
||||||
:align: center
|
|
||||||
:alt: Inventory app dashboard displaying new transfer types for the recently created warehouse.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
Adding a second warehouse will automatically activate the :guilabel:`Locations` setting.
|
|
||||||
|
|
||||||
Create a new location
|
|
||||||
=====================
|
|
||||||
|
|
||||||
To create a location, go to :menuselection:`Configuration --> Warehouse Management --> Locations`
|
|
||||||
and click on :guilabel:`Create`.
|
|
||||||
|
|
||||||
Then, fill out a :guilabel:`Location Name` and a :guilabel:`Parent Location` and click
|
|
||||||
:guilabel:`Save`.
|
|
||||||
|
|
||||||
.. image:: warehouses_locations/create-new-location.png
|
|
||||||
:align: center
|
|
||||||
:alt: Create a new warehouse location in Odoo Inventory.
|
|
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 6.5 KiB |
@ -26,7 +26,7 @@ Once activated, you can:
|
|||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/delivery_method`
|
- :doc:`../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/delivery_method`
|
||||||
- :doc:`../../../inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations`
|
- :doc:`../../../inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses`
|
||||||
|
|
||||||
Practical application
|
Practical application
|
||||||
=====================
|
=====================
|
||||||
|
@ -16,7 +16,7 @@ Configuration
|
|||||||
=============
|
=============
|
||||||
|
|
||||||
To set up a user default warehouse, the :doc:`storage locations
|
To set up a user default warehouse, the :doc:`storage locations
|
||||||
</applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations>`
|
<../../inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations>`
|
||||||
feature needs to be activated in the **Inventory** app. It is also necessary to have more than one
|
feature needs to be activated in the **Inventory** app. It is also necessary to have more than one
|
||||||
warehouse in your database.
|
warehouse in your database.
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ You can either set it up :ref:`for your profile <default-warehouse/my-profile>`,
|
|||||||
users <default-warehouse/all-users>`.
|
users <default-warehouse/all-users>`.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
:doc:`/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations`
|
:doc:`../../inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations`
|
||||||
|
|
||||||
.. _default-warehouse/my-profile:
|
.. _default-warehouse/my-profile:
|
||||||
|
|
||||||
|
@ -70,7 +70,9 @@ applications/inventory_and_mrp/inventory/management/warehouses.rst applications/
|
|||||||
applications/inventory_and_mrp/inventory/management/warehouses/resupply_warehouses.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/resupply_warehouses.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
applications/inventory_and_mrp/inventory/management/warehouses/resupply_warehouses.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/resupply_warehouses.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
||||||
applications/inventory_and_mrp/inventory/management/warehouses/warehouse_replenishment_transfer.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouse_replenishment_transfer.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
applications/inventory_and_mrp/inventory/management/warehouses/warehouse_replenishment_transfer.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouse_replenishment_transfer.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
||||||
applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
||||||
|
applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst # /inventory/warehouses_storage/inventory_management/warehouses_locations -> /inventory/warehouses_storage/inventory_management/warehouses
|
||||||
applications/inventory_and_mrp/inventory/management/warehouses/create_a_second_warehouse.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
applications/inventory_and_mrp/inventory/management/warehouses/create_a_second_warehouse.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
||||||
|
applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst # Move all info about warehouses onto /inventory/warehouses_storage/inventory_management/warehouses.rst
|
||||||
applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst # /inventory_and_mrp/inventory/management/warehouses/* -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
||||||
applications/inventory_and_mrp/inventory/routes/concepts/use_routes.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_routes.rst # /inventory_and_mrp/inventory/routes/concepts/use_routes -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
applications/inventory_and_mrp/inventory/routes/concepts/use_routes.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_routes.rst # /inventory_and_mrp/inventory/routes/concepts/use_routes -> /inventory_and_mrp/inventory/warehouses_storage/inventory_management/*
|
||||||
applications/inventory_and_mrp/inventory/management/reporting.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_valuation.rst # /inventory_and_mrp/inventory/management/reporting -> /inventory_and_mrp/inventory/warehouses_storage/inventory_valuation
|
applications/inventory_and_mrp/inventory/management/reporting.rst applications/inventory_and_mrp/inventory/warehouses_storage/inventory_valuation.rst # /inventory_and_mrp/inventory/management/reporting -> /inventory_and_mrp/inventory/warehouses_storage/inventory_valuation
|
||||||
|