diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/putaway.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/putaway.rst index acc0400f1..d9b6cb942 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/putaway.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/putaway.rst @@ -93,6 +93,8 @@ match is found: :align: center :alt: Some examples of putaway rules. +.. _inventory/warehouses_storage/storage-category: + Storage categories ================== diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/stock_warehouses.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/stock_warehouses.rst index 23c4e8476..f52ef53cb 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/stock_warehouses.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/advanced_operations_warehouse/stock_warehouses.rst @@ -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 ` - :doc:`Resupply from another warehouse <../inventory_management/resupply_warehouses>` diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.rst index 8997de81a..7f6ceaaf7 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management.rst @@ -1,18 +1,144 @@ -:nosearch: +:show-content: +:hide-page-toc: ==================== Inventory management ==================== +In the Odoo *Inventory* app, :doc:`warehouses ` handle the broader +organization and distribution of stock across different physical sites, while :doc:`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 `_ + +Warehouses +========== + +:doc:`Warehouses ` represent a physical place, with a physical +address, where a company's items are stored. + +Configure :doc:`routes ` in a warehouse to control how products +move to customers, from vendors, within the warehouse, or :doc:`between warehouses +`. + +Locations +========= + +:doc:`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 + `. + +- :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 `. + +.. 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 + diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse.rst deleted file mode 100644 index df5642b7d..000000000 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse.rst +++ /dev/null @@ -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 `. - -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` diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-enabled-setting.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-enabled-setting.png deleted file mode 100644 index 704405485..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-enabled-setting.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-inventory-adjustment.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-inventory-adjustment.png deleted file mode 100644 index 64bb27fa1..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-inventory-adjustment.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-new-warehouse-settings.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-new-warehouse-settings.png deleted file mode 100644 index b7d69a065..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-new-warehouse-settings.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-popup-window.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-popup-window.png deleted file mode 100644 index 7b2012473..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-popup-window.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-warehouse-configuration-tab.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-warehouse-configuration-tab.png deleted file mode 100644 index a5f20f888..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/create_a_second_warehouse/create-a-second-warehouse-warehouse-configuration-tab.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/inventory_management/inventory-loss.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/inventory_management/inventory-loss.png new file mode 100644 index 000000000..c6f49c659 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/inventory_management/inventory-loss.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/inventory_management/locations.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/inventory_management/locations.png new file mode 100644 index 000000000..6ff91f2bc Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/inventory_management/locations.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.rst index c950cc212..55ac4d439 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/scrap_inventory.rst @@ -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 `. - -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 `. Scrap from stock ================ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst index 16b279ad2..2a627ca04 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst @@ -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 + `, 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 + `. +- :guilabel:`Storage Category`: only available with the :ref:`Storage Categories + ` 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 + ` at this location when scanned. +- :guilabel:`Replenish Location`: used for :doc:`configuring 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 `. + +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. diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/current-stock.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/current-stock.png new file mode 100644 index 000000000..420d89f33 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/current-stock.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/enable-location.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/enable-location.png new file mode 100644 index 000000000..2fb2edfd3 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/enable-location.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/locations.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/locations.png new file mode 100644 index 000000000..826315522 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/locations.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/new-location.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/new-location.png new file mode 100644 index 000000000..f4f502731 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/new-location.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/scheduled-count.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/scheduled-count.png new file mode 100644 index 000000000..8f3255c48 Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations/scheduled-count.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst new file mode 100644 index 000000000..39f31ae20 --- /dev/null +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst @@ -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 ` 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 ` + +.. image:: warehouses/warehouse-form.png + :align: center + :alt: Example warehouse form. + diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses/warehouse-form.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses/warehouse-form.png new file mode 100644 index 000000000..e4eb9d06a Binary files /dev/null and b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses/warehouse-form.png differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations.rst deleted file mode 100644 index ebf37b29c..000000000 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations.rst +++ /dev/null @@ -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. diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-enabled-setting.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-enabled-setting.png deleted file mode 100644 index e551c063f..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-enabled-setting.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-location.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-location.png deleted file mode 100644 index e6fd68e52..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-location.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-warehouse.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-warehouse.png deleted file mode 100644 index b1bfc954e..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-warehouse.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-wh-operations.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-wh-operations.png deleted file mode 100644 index 8fccae4a4..000000000 Binary files a/content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses_locations/warehouses-locations-new-wh-operations.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.rst index 99f2479d5..b73a609ce 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.rst @@ -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: diff --git a/content/applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.rst b/content/applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.rst index dd0f3c877..1f98fdb25 100644 --- a/content/applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.rst +++ b/content/applications/inventory_and_mrp/manufacturing/workflows/scrap_manufacturing.rst @@ -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 - `. + 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 diff --git a/content/applications/sales/point_of_sale/shop/ship_later.rst b/content/applications/sales/point_of_sale/shop/ship_later.rst index b90c6bfc6..34dd97217 100644 --- a/content/applications/sales/point_of_sale/shop/ship_later.rst +++ b/content/applications/sales/point_of_sale/shop/ship_later.rst @@ -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 ===================== diff --git a/content/applications/services/field_service/default_warehouse.rst b/content/applications/services/field_service/default_warehouse.rst index dca9f493a..67bc2ce6f 100644 --- a/content/applications/services/field_service/default_warehouse.rst +++ b/content/applications/services/field_service/default_warehouse.rst @@ -16,7 +16,7 @@ Configuration ============= To set up a user default warehouse, the :doc:`storage 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 `, 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: diff --git a/redirects/16.0.txt b/redirects/16.0.txt index 3113d3d5c..407f824f3 100644 --- a/redirects/16.0.txt +++ b/redirects/16.0.txt @@ -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