[IMP] inventory: refactor WH and locations
closes odoo/documentation#10296
X-original-commit: c4fd10f94e
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
|
||||
:alt: Some examples of putaway rules.
|
||||
|
||||
.. _inventory/warehouses_storage/storage-category:
|
||||
|
||||
Storage categories
|
||||
==================
|
||||
|
||||
|
@ -73,7 +73,7 @@ steps below to finish configuring the virtual parent warehouse.
|
||||
:alt: New warehouse form.
|
||||
|
||||
.. 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>`
|
||||
- :doc:`Resupply from another warehouse <../inventory_management/resupply_warehouses>`
|
||||
|
||||
|
@ -1,18 +1,144 @@
|
||||
:nosearch:
|
||||
:show-content:
|
||||
:hide-page-toc:
|
||||
|
||||
====================
|
||||
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::
|
||||
:titlesonly:
|
||||
|
||||
inventory_management/resupply_warehouses
|
||||
inventory_management/warehouse_replenishment_transfer
|
||||
inventory_management/warehouses_locations
|
||||
inventory_management/create_a_second_warehouse
|
||||
inventory_management/use_routes
|
||||
inventory_management/warehouses
|
||||
inventory_management/use_locations
|
||||
inventory_management/count_products
|
||||
inventory_management/cycle_counts
|
||||
inventory_management/scrap_inventory
|
||||
inventory_management/resupply_warehouses
|
||||
inventory_management/warehouse_replenishment_transfer
|
||||
inventory_management/use_routes
|
||||
|
||||
|
@ -1,139 +0,0 @@
|
||||
=========================
|
||||
Create a second warehouse
|
||||
=========================
|
||||
|
||||
In Odoo *Inventory*, a *warehouse* is a physical building or space where items are stored. By
|
||||
default, each Odoo database has one warehouse already pre-configured, with the address set as the
|
||||
company's address.
|
||||
|
||||
However, it is possible to set up multiple additional warehouses, and transfer stored items between
|
||||
them.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To create a second warehouse, the *Storage Locations* feature must be enabled. To enable this
|
||||
feature, navigate to :menuselection:`Inventory app --> Configuration --> Settings`. Under the
|
||||
:guilabel:`Warehouse` section, tick the checkbox next to :guilabel:`Storage Locations`, and
|
||||
:guilabel:`Save` changes.
|
||||
|
||||
.. image:: create_a_second_warehouse/create-a-second-warehouse-enabled-setting.png
|
||||
:align: center
|
||||
:alt: Warning pop-up window for creating a second warehouse before enabling Storage Locations.
|
||||
|
||||
.. note::
|
||||
Creating a second warehouse without first enabling the *Storage Locations* feature triggers a
|
||||
:guilabel:`Warning` pop-up window. It indicates creating a second warehouse automatically
|
||||
activates the *Storage Locations* setting.
|
||||
|
||||
Create new warehouse
|
||||
====================
|
||||
|
||||
To create a new warehouse, navigate to :menuselection:`Inventory app --> Configuration -->
|
||||
Warehouses`, and click :guilabel:`New`. Doing so opens a blank warehouse creation form.
|
||||
|
||||
Fill out the following fields as necessary:
|
||||
|
||||
- :guilabel:`Warehouse`: the full name of the warehouse.
|
||||
- :guilabel:`Short Name`: the abbreviated code used to identify the warehouse, i.e. `WH2` (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. By default, this is set to the
|
||||
company's address in the database.
|
||||
|
||||
.. image:: create_a_second_warehouse/create-a-second-warehouse-new-warehouse-settings.png
|
||||
:align: center
|
||||
:alt: Filled out warehouse name and address settings on warehouse creation form.
|
||||
|
||||
Under the :guilabel:`Warehouse Configuration` tab, configure the warehouse's main workflow in the
|
||||
:guilabel:`Shipments` section, and set available replenishment methods in the :guilabel:`Resupply`
|
||||
section.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Shipments` and :guilabel:`Resupply` sections only appear if the
|
||||
:guilabel:`Multi-Step Routes` checkbox is enabled in :menuselection:`Inventory app -->
|
||||
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>`.
|
||||
|
||||
In the :guilabel:`Shipments` section, choose between one, two, or three-step processes for both
|
||||
incoming and outgoing shipments.
|
||||
|
||||
In the :guilabel:`Resupply` section, edit the following settings:
|
||||
|
||||
- :guilabel:`Dropship Subcontractors`: enable this feature to coordinate with vendors, and have
|
||||
components dropshipped directly to subcontractors for manufacturing.
|
||||
- :guilabel:`Resupply Subcontractors`: allow subcontractors to be resupplied with goods from this
|
||||
warehouse.
|
||||
- :guilabel:`Manufacture to Resupply`: when products are manufactured, they can be delivered to this
|
||||
warehouse.
|
||||
- :guilabel:`Manufacture`: the route that should be followed when manufacturing goods inside the
|
||||
warehouse. Choose from one, two, and three-step production.
|
||||
- :guilabel:`Buy to Resupply`: when products are purchased, they can be delivered to this warehouse.
|
||||
- :guilabel:`Resupply From`: Check the box next to the other warehouses from which this warehouse
|
||||
can replenish products. If the current warehouse does not have the stock, it can also pull
|
||||
products from these selected warehouses in the database. Automatic resupply routes will be created
|
||||
accordingly.
|
||||
|
||||
.. image:: create_a_second_warehouse/create-a-second-warehouse-warehouse-configuration-tab.png
|
||||
:align: center
|
||||
:alt: Filled out Warehouse Configuration tab settings on warehouse creation form.
|
||||
|
||||
Once ready, click :guilabel:`Save` to save the new warehouse's settings.
|
||||
|
||||
Add inventory to a new warehouse
|
||||
================================
|
||||
|
||||
If a new warehouse is created to represent a real-world storage location with existing stock, update
|
||||
the warehouse's stock using an inventory adjustment.
|
||||
|
||||
.. seealso::
|
||||
:doc:`count_products`
|
||||
|
||||
To perform an inventory adjustment, navigate to :menuselection:`Inventory app --> Operations -->
|
||||
Physical Inventory`, and click :guilabel:`New`. Doing so adds a new line at the bottom of the list
|
||||
of inventory adjustments.
|
||||
|
||||
Configure the line by filling out the following fields as necessary:
|
||||
|
||||
- :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:`Product`: the product being added to inventory.
|
||||
- :guilabel:`Lot/Serial Number`: the lot that the product belongs to or the serial number used to
|
||||
identify it, if the product is tracked.
|
||||
- :guilabel:`On Hand Quantity`: the total quantity of the product stored in the location for which
|
||||
inventory is being adjusted. For a new warehouse or location where a count or a prior inventory
|
||||
adjustment has not taken place, this should be set to `0.00`.
|
||||
- :guilabel:`UoM`: the unit of measure (UoM) used for counting the product.
|
||||
- :guilabel:`Counted Quantity`: the amount of the product being added to inventory.
|
||||
- :guilabel:`Difference`: the difference between the on-hand and counted quantities. This
|
||||
automatically updates to reflect the value entered in the :guilabel:`Counted Quantity` column.
|
||||
- :guilabel:`Scheduled Date`: the date selected for the next inventory count for this product.
|
||||
- :guilabel:`User`: the user who recorded the inventory adjustment in the database.
|
||||
|
||||
.. image:: create_a_second_warehouse/create-a-second-warehouse-inventory-adjustment.png
|
||||
:align: center
|
||||
:alt: Filled out inventory adjustment line for product in new warehouse.
|
||||
|
||||
Once each line for the products being added to the new warehouse is configured, click
|
||||
:guilabel:`Apply` on each line to apply the new inventory counts.
|
||||
|
||||
The values in the :guilabel:`On Hand Quantity` column update to reflect those in the
|
||||
:guilabel:`Counted Quantity` column, and the products added appear in the new warehouse's stock.
|
||||
|
||||
.. note::
|
||||
If products tracked using a lot number or serial number are added without specifying the tracking
|
||||
number, a :guilabel:`Tracked Products in Inventory Adjustment` pop-up window appears upon
|
||||
clicking :guilabel:`Apply` on that product's line.
|
||||
|
||||
The pop-up indicates tracked products were added, but the lots/serial numbers were not defined.
|
||||
To apply the adjustment without the numbers, click :guilabel:`Apply`. To add the numbers before
|
||||
applying, click :guilabel:`Discard`, and add the numbers. Then, once ready, click
|
||||
:guilabel:`Apply` again.
|
||||
|
||||
.. image:: create_a_second_warehouse/create-a-second-warehouse-popup-window.png
|
||||
:align: center
|
||||
:alt: Tracked Products in Inventory Adjustment pop-up window.
|
||||
|
||||
.. seealso::
|
||||
:doc:`warehouses_locations`
|
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 90 KiB |
@ -21,21 +21,7 @@ from physical inventory, and placing it in a virtual scrap location (*Virtual Lo
|
||||
physical inventory.
|
||||
|
||||
For more information about virtual locations, see the documentation about the different types of
|
||||
:ref:`locations <inventory/warehouses_storage/difference-warehouse-location>`.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To use locations in warehouse, including a virtual scrap location, the *Storage Locations* feature
|
||||
must first be enabled.
|
||||
|
||||
To do so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and scroll down
|
||||
to the :guilabel:`Warehouse` section. Tick the checkbox next to :guilabel:`Storage Locations` to
|
||||
enable the feature, and click :guilabel:`Save`.
|
||||
|
||||
.. image:: scrap_inventory/scrap-inventory-enabled-setting.png
|
||||
:align: center
|
||||
:alt: Enabled Storage Locations setting in Inventory app settings.
|
||||
:ref:`location types <inventory/warehouses_storage/location-type>`.
|
||||
|
||||
Scrap from stock
|
||||
================
|
||||
|
@ -2,66 +2,71 @@
|
||||
Locations
|
||||
=========
|
||||
|
||||
In Odoo *Inventory*, a *location* is a specific space within a warehouse. This can be a shelf, room,
|
||||
aisle, rack, bin, etc.
|
||||
|
||||
There are also external and virtual locations. For example, customer locations, and locations
|
||||
specifically designated as "virtual", instead of real, physical locations.
|
||||
|
||||
Locations allow for the storage of products in designated areas of the warehouse, to help track
|
||||
inventory accurately.
|
||||
A *location* is a specific space within a warehouse. This can be a shelf, room, aisle, etc.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To specify storage locations, the *Storage Locations* setting must be enabled. To do so, navigate to
|
||||
:menuselection:`Inventory app --> Configuration --> Settings`, and scroll down to the
|
||||
:guilabel:`Warehouse` section. Tick the checkbox next to :guilabel:`Storage Locations` to enable the
|
||||
feature, and click :guilabel:`Save`.
|
||||
To create specific storage locations, enable the *Storage Locations* feature by going to
|
||||
:menuselection:`Inventory app --> Configuration --> Settings`. In the :guilabel:`Warehouses`
|
||||
section, tick the :guilabel:`Storage Locations` checkbox. Then, click :guilabel:`Save`.
|
||||
|
||||
.. image:: use_locations/use-locations-enabled-setting.png
|
||||
.. note::
|
||||
Typically, the :guilabel:`Storage Locations` feature is used with :doc:`Multi-Step Routes
|
||||
<use_routes>`, which controls how products move between locations.
|
||||
|
||||
.. image:: use_locations/enable-location.png
|
||||
:align: center
|
||||
:alt: Enabled Storage Location setting in Inventory app settings.
|
||||
:alt: Show Storage Locations feature.
|
||||
|
||||
Once the :guilabel:`Storage Locations` feature is enabled, two additional internal link options
|
||||
appear below it: :guilabel:`Locations` and :guilabel:`Putaway Rules`. Click :guilabel:`Locations` to
|
||||
open a list of all existing locations in the warehouse.
|
||||
Create new location
|
||||
===================
|
||||
|
||||
Create a new location inside a warehouse
|
||||
========================================
|
||||
After enabling *Storage Locations*, go to :menuselection:`Inventory app --> Configuration -->
|
||||
Locations`.
|
||||
|
||||
To create a new location inside a warehouse, navigate to :menuselection:`Inventory app -->
|
||||
Configuration --> Locations`. Doing so opens a list of all existing locations. Click :guilabel:`New`
|
||||
to open a new location creation form.
|
||||
.. image:: use_locations/locations.png
|
||||
:align: center
|
||||
:alt: List of internal locations.
|
||||
|
||||
In the :guilabel:`Location Name` field, assign a name for the new location. In the :guilabel:`Parent
|
||||
Location` field, assign the location that this new location exists in.
|
||||
On this page, click :guilabel:`New`. The new location form can then be configured as follows:
|
||||
|
||||
.. example::
|
||||
A new location `Gate 1` is created. Its parent location is `Dispatch Zone`. In the
|
||||
:guilabel:`Parent Location` for `Gate 1`, select `Dispatch Zone`.
|
||||
- :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.
|
||||
|
||||
In the :guilabel:`Additional Information` section, fill out the necessary details for the new
|
||||
location.
|
||||
.. 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.
|
||||
|
||||
In the :guilabel:`Location Type` field, select which type of location this is. There are seven
|
||||
different types of locations to choose from:
|
||||
Additional Information section
|
||||
------------------------------
|
||||
|
||||
- :guilabel:`Vendor Location`: virtual location representing the source location for products coming
|
||||
from vendors.
|
||||
- :guilabel:`View`: virtual location used to create a hierarchical structure for a warehouse;
|
||||
aggregates its child locations. **Should not directly contain products**.
|
||||
- :guilabel:`Internal Location`: physical location inside a warehouse.
|
||||
- :guilabel:`Customer Location`: virtual location representing the destination location for products
|
||||
sent to customers.
|
||||
- :guilabel:`Inventory Loss`: virtual location serving as a counterpart for inventory operations.
|
||||
Used to correct stock levels of physical inventory.
|
||||
- :guilabel:`Production`: virtual counterpart location for production operations. This location
|
||||
consumes components and produces finished products.
|
||||
- :guilabel:`Transit Location`: counterpart location that should be used in inter-company or
|
||||
inter-warehouse operations.
|
||||
In addition to the required fields above, configure the following location fields to ensure the
|
||||
location serves its intended purpose in the database:
|
||||
|
||||
.. image:: use_locations/use-locations-new-location-form.png
|
||||
- :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
|
||||
:alt: Additional Information section of new location creation form.
|
||||
|
||||
@ -93,26 +98,50 @@ from this location.
|
||||
|
||||
.. _inventory/location-hierarchy:
|
||||
|
||||
Create location hierarchies
|
||||
===========================
|
||||
Cyclic Counting section
|
||||
-----------------------
|
||||
|
||||
The *Parent Location* setting on the new location form allows for a location to exist within a
|
||||
warehouse, or below another location.
|
||||
To schedule regular inventory counts at this location, set the :guilabel:`Inventory Frequency
|
||||
(Days)` field to the desired interval. By default, it is set to `0` (no scheduled counts).
|
||||
|
||||
Every location can serve as a parent location, and every parent location can have multiple locations
|
||||
within it, allowing for the creation of a 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::
|
||||
Location hierarchy could be organized so that a small refrigerator is located on a specific
|
||||
shelf, which is located in the warehouse.
|
||||
With inventory counts scheduled to occur every `30` days, and the :guilabel:`Last Effective
|
||||
Inventory` count occurring on July 16, the :guilabel:`Next Expected Inventory` is August 15.
|
||||
|
||||
.. image:: use_locations/use-locations-hierarchy.png
|
||||
.. image:: use_locations/scheduled-count.png
|
||||
:align: center
|
||||
:alt: Location hierarchy of small refrigerator, on a shelf in a warehouse.
|
||||
:alt: Show Cyclic Count section of the locations form.
|
||||
|
||||
To create the location hierarchy in the example above (`WH/Stock/Shelf 2/Small Refrigerator`),
|
||||
set the warehouse stock as the parent of the shelf, and the shelf as the parent of the small
|
||||
refrigerator. This can be adapted to a hierarchy of any magnitude.
|
||||
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:`warehouses_locations`
|
||||
:doc:`../removal_strategies`
|
||||
|
||||
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 |
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/basic_setup/one_step_manufacturing>`, :doc:`two
|
||||
<../../../manufacturing/basic_setup/two_step_manufacturing>`, or :doc:`three steps
|
||||
<../../../manufacturing/basic_setup/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,115 +0,0 @@
|
||||
===============================
|
||||
Manage warehouses and locations
|
||||
===============================
|
||||
|
||||
Terminology
|
||||
===========
|
||||
|
||||
Warehouse
|
||||
---------
|
||||
|
||||
In Odoo *Inventory*, a *warehouse* is a physical building or space where items are stored. By
|
||||
default, each Odoo database has one warehouse already pre-configured, with the address set as the
|
||||
company's address.
|
||||
|
||||
Multiple warehouses can be set up in Odoo, and stock moves can be created between warehouses.
|
||||
|
||||
.. _inventory/warehouses_storage/difference-warehouse-location:
|
||||
|
||||
Location
|
||||
--------
|
||||
|
||||
In Odoo *Inventory*, a *location* is a specific space within a warehouse. This can be a shelf, room,
|
||||
aisle, rack, bin, etc. Locations allow for the storage of products in designated areas of the
|
||||
warehouse, to help track inventory accurately.
|
||||
|
||||
A location is only part of *one* warehouse, and can **not** be linked to multiple warehouses. As
|
||||
many locations can be configured as needed under one warehouse.
|
||||
|
||||
There are three types of locations in Odoo *Inventory*:
|
||||
|
||||
- **Physical Locations**: internal locations within a single warehouse owned by the company. This
|
||||
can include shipping and loading docks, aisles, shelves, storage areas, and more.
|
||||
- **Partner Locations**: external locations, such as designated spaces in a customer or vendor's
|
||||
warehouse. They are similar to physical locations, but they are **not** owned by the user's
|
||||
company.
|
||||
- **Virtual Locations**: this type of location does not exist as a physical space, but products can
|
||||
be "stored" here when they are not physically in an inventory yet. *Inventory Loss* and
|
||||
*Procurements* are examples of virtual locations, for products that are lost or in transit to the
|
||||
warehouse.
|
||||
|
||||
Every location within a warehouse can serve as a parent location, and every parent location can have
|
||||
multiple locations within it, allowing for the creation of a hierarchical structure. This allows for
|
||||
more detailed levels of analysis of the stock operations and the organization of the warehouses.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
For companies with one warehouse, no additional settings are required to activate before editing the
|
||||
warehouse.
|
||||
|
||||
For companies with multiple warehouses, and to create locations within a warehouse, the *Storage
|
||||
Locations* feature must be enabled.
|
||||
|
||||
To do so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and scroll down
|
||||
to the :guilabel:`Warehouse` section. Tick the :guilabel:`Storage Locations` checkbox to enable the
|
||||
feature, and click :guilabel:`Save`.
|
||||
|
||||
.. image:: warehouses_locations/warehouses-locations-enabled-setting.png
|
||||
:align: center
|
||||
:alt: Storage Locations feature enabled in the Inventory app settings.
|
||||
|
||||
.. tip::
|
||||
To manage warehouse *routes*, such as two-and-three-step receipts and deliveries, enable the
|
||||
*Multi-Step Routes* feature from the *Inventory* app settings, as well. For more on routes, see
|
||||
:doc:`use_routes`.
|
||||
|
||||
Create a new warehouse
|
||||
======================
|
||||
|
||||
To create a new warehouse, navigate to :menuselection:`Inventory app --> Configuration -->
|
||||
Warehouses`, and click :guilabel:`New`. Doing so opens a blank warehouse creation form.
|
||||
|
||||
Begin by assigning a :guilabel:`Warehouse Name`, and a :guilabel:`Short Name`. The :guilabel:`Short
|
||||
Name` field is limited to a **five** character maximum.
|
||||
|
||||
.. image:: warehouses_locations/warehouses-locations-new-warehouse.png
|
||||
:align: center
|
||||
:alt: New warehouse creation form name configuration fields.
|
||||
|
||||
.. 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]`.
|
||||
|
||||
For example, a warehouse named `Warehouse #2` might have the :guilabel:`Short Name` `WH2` (the
|
||||
short name for the default warehouse in Odoo is `WH`).
|
||||
|
||||
Once the warehouse is created, navigate back to the :menuselection:`Inventory` dashboard. New
|
||||
operations for the newly created warehouse are automatically generated there.
|
||||
|
||||
For more on creating new warehouses, see :doc:`create_a_second_warehouse`.
|
||||
|
||||
.. image:: warehouses_locations/warehouses-locations-new-wh-operations.png
|
||||
:align: center
|
||||
:alt: Inventory app dashboard displaying new transfers for the new warehouse.
|
||||
|
||||
.. note::
|
||||
Creating a second warehouse without first enabling the *Storage Locations* feature triggers a
|
||||
:guilabel:`Warning` pop-up window. It indicates creating a second warehouse automatically
|
||||
activates the *Storage Locations* setting.
|
||||
|
||||
Create a new location
|
||||
=====================
|
||||
|
||||
To create a new location inside a warehouse, navigate to :menuselection:`Inventory app -->
|
||||
Configuration --> Locations`. Doing so opens a list of all existing locations. Click :guilabel:`New`
|
||||
to open a new location creation form.
|
||||
|
||||
In the :guilabel:`Location Name` field, assign a name for the new location. In the :guilabel:`Parent
|
||||
Location` field, assign the location that this new location exists in.
|
||||
|
||||
For more on locations, see :doc:`use_locations`.
|
||||
|
||||
.. image:: warehouses_locations/warehouses-locations-new-location.png
|
||||
:align: center
|
||||
:alt: New warehouse location creation form.
|
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 34 KiB |
@ -24,8 +24,7 @@ and :guilabel:`Category`, which shows products within a selected product categor
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Warehouse` grouping is only available when there are multiple warehouses in the
|
||||
database. Refer to the :doc:`../inventory_management/create_a_second_warehouse` documentation for
|
||||
more details.
|
||||
database. Refer to the :doc:`../inventory_management/warehouses` documentation for more details.
|
||||
|
||||
In the report itself, the columns represent:
|
||||
|
||||
|
@ -14,8 +14,8 @@ space, but rather a designation in Odoo that is used to track items that are no
|
||||
inventory.
|
||||
|
||||
.. seealso::
|
||||
For more information, see the documentation about the different types of :ref:`locations
|
||||
<inventory/warehouses_storage/difference-warehouse-location>`.
|
||||
For more information, see the documentation about the different types of :doc:`locations
|
||||
<../../inventory/warehouses_storage/inventory_management>`.
|
||||
|
||||
Components can be scrapped from both the *Manufacturing* app and the *Shop Floor* module, before the
|
||||
associated manufacturing order (MO) is closed. Finished products can only be scrapped from the
|
||||
|
@ -26,7 +26,7 @@ Once activated, you can:
|
||||
|
||||
.. seealso::
|
||||
- :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
|
||||
=====================
|
||||
|
@ -16,7 +16,7 @@ Configuration
|
||||
=============
|
||||
|
||||
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
|
||||
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>`.
|
||||
|
||||
.. 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:
|
||||
|
||||
|
@ -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/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/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/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/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
|
||||
|