Inventory management in Odoo 18 goes far beyond just keeping track of products; it encompasses the complete organization of warehouses, product variants, storage locations, and logistics. Among these components, warehouse and location management stand out as crucial pillars for ensuring efficient storage and smooth movement of goods. Odoo 18 Inventory simplifies this by providing a structured approach to handling various types of product locations, helping businesses stay organized and responsive.
In Odoo, a location refers to any designated area where products are stored or moved. This can be either a physical location, such as a warehouse shelf or a delivery zone, or a virtual location used to represent non-physical operations like inventory loss, scrap, or transit. Physical locations hold tangible products, while virtual locations play an important role in tracking inventory adjustments, returns, and damaged goods without representing an actual physical space.
One of the standout features of Odoo 18 Inventory is its support for hierarchical location management. Users can create a network of Parent and Child Locations, which helps organize storage structures with precision. For instance, a warehouse (parent location) can contain several zones (child locations), and each zone can be further broken down into shelves or bins. This layered system allows for granular product tracking, streamlined stock movement, and easier inventory audits. However, before taking full advantage of location and location type management, first-time users should ensure that relevant configuration options are enabled in the settings to unlock these advanced capabilities.

Before diving into the different types of locations available in Odoo 18, users must first enable the Storage Locations feature. To do this, navigate to the Inventory module > Configuration > Settings, and under the Warehouses section, check the box labeled Storage Locations. Once saved, a new menu option, Locations, will appear under Configuration in the Inventory module. Clicking on this opens a list of predefined locations and allows you to create new ones tailored to your storage needs.

Odoo categorizes storage locations into three primary types: Physical Locations, Partner Locations, and Virtual Locations. Each plays a distinct role in ensuring accurate stock movement, traceability, and inventory visibility.
1. Physical Locations
Physical locations are a subset of internal locations and represent the actual storage spaces within your warehouse. These are the designated areas where products are received, stored, and shipped from. In Odoo, internal warehouse locations are often labeled with a short name such as WH to denote the main warehouse. These locations facilitate the day-to-day operations like product loading, unloading, stock picking, and order fulfillment. With hierarchical location support, users can break down physical locations into shelves, zones, or bins, making it easier to organize and locate stock efficiently.
2. Partner Locations
Partner locations refer to the locations associated with external entities like vendors and customers. These are not physically a part of your warehouse, but they are treated similarly to physical locations for tracking stock movements to and from partners. For example, when you send goods to a customer or receive items from a vendor, Odoo uses partner locations to represent these transactional points. Though external, they help maintain consistency in inventory operations by integrating partner-based logistics directly into your system.
3. Virtual Locations
Virtual locations are conceptual storage spaces used to track products that are not physically present in your warehouse. They are essential for representing transitional or exceptional inventory states. For instance, when products are shipped from a vendor but haven’t yet arrived at your warehouse, they are moved into a "Transit" virtual location. Similarly, damaged goods that are removed from inventory are placed in a "Scrap" or "Inventory Loss" virtual location.
These virtual spaces are instrumental in tracing the movement history of products, highlighting discrepancies, and maintaining accurate inventory records. They ensure that stock levels in your physical warehouse reflect reality, while also allowing you to account for in-transit, lost, or scrapped items separately.

To create a new storage location in Odoo 18 Inventory, go to the Locations page within the Inventory module and click on the New button. This action opens a form where you can define the specifics of the new location.

Start by entering a recognizable name for the location; this will help users quickly identify it during inventory operations. Next, specify the Parent Location, which refers to the broader area under which this new location falls. For instance, if you're creating a shelf within a particular warehouse zone, that zone would be set as the parent.
Odoo uses this parent-child relationship to establish a location hierarchy, visually organizing storage spaces in a structured manner. Once the location is saved, it becomes part of this hierarchical view, helping users understand how specific storage spots relate to the overall warehouse layout. This not only streamlines product movement and tracking but also enhances the efficiency of inventory management across complex or multi-tiered storage environments.

In Odoo 18, Location Types play a vital role in categorizing storage spaces and managing the flow of goods throughout the supply chain. These location types determine how products are treated, whether they are part of inventory, in transit, sold, or lost. Odoo offers a total of seven location types, which can be explored by selecting the Location Type field.
The Vendor Location represents a virtual space where products from suppliers originate before being physically received. Products in this location are not considered in stock yet. View locations are not actual storage areas but serve to organize the warehouse structure logically. For example, the WH (Warehouse) view location might include various internal locations like stock areas, docks, or packing zones, helping visualize the overall warehouse hierarchy.
Internal Locations are the physical storage areas inside the warehouse where items are counted as part of the company’s inventory. In contrast, Customer Locations are used to track products that have been sold and delivered; goods in these locations are no longer part of available inventory. The Inventory Loss type accounts for discrepancies found during stock audits or damage reports. Odoo includes specific examples like Inventory Adjustment, for mismatches during counting, and Scrap, where unusable or damaged items are moved.
The Production location type is used in manufacturing workflows. It designates the space where raw materials are consumed and finished goods are created. Finally, Transit Locations are used during inter-warehouse or inter-company movements. These locations represent goods that are on the move between warehouses or addresses and help keep inventory tracking accurate even when items are in transit.

Select a suitable Storage Category for the location from the drop-down menu. The Company field allows you to specify the company to which the location belongs. This is especially useful in multi-company environments. If the location is intended to be shared across multiple companies, you can simply leave this field blank. The ‘Is a Scrap Location?’ checkbox should be enabled if the location is designated for storing damaged or unusable goods. When enabled, this setting allows products that are scrapped during inventory operations to be moved to this location, ensuring they are excluded from available stock while still being traceable.
A new field introduced in Odoo 18 is ‘Is a Dock Location?’. This option is intended for locations that serve as docking areas within the warehouse, typically where goods are received from vendors or prepared for dispatch to customers. When this checkbox is enabled, the system treats the location as a temporary staging area, ideal for managing incoming or outgoing shipments. The Barcode field lets you assign a unique barcode to the location, which simplifies scanning and identification during stock operations, especially in barcode-enabled warehouse environments.
The Replenish Location option is another useful setting. When this is ticked, the system will consider this location as one that regularly requires restocking. It can be used in conjunction with replenishment rules or manual replenishment to ensure that stock levels remain consistent at critical points in the warehouse.

In Odoo 18 Inventory, the Cyclic Counting section of the location creation form introduces key fields that help automate and streamline the inventory counting process for each location. The Inventory Frequency (Days) field is crucial in this context. By default, it is set to 0, which means there is no automated frequency for inventory checks. However, if you set a value greater than 0, Odoo will treat this as the interval in days at which products stored in this location should be counted. This feature is especially useful for high-value or fast-moving stock, as it helps ensure regular and systematic stock verification without relying on full inventory audits.
The Last Inventory field automatically records the date when the last inventory count was performed for this specific location. Correspondingly, the Next Expected field displays the upcoming due date for the next inventory count, calculated based on the frequency you’ve set in the Inventory Frequency field.

In the Logistics section of the location creation form in Odoo 18, the Removal Strategy field plays a vital role in defining how products should be picked from the location during sales or internal transfers. This setting determines the order in which products are removed from stock, helping maintain consistency, optimize inventory turnover, and support product traceability. Odoo offers several strategies to choose from, based on different warehouse needs. First In First Out (FIFO) ensures that the oldest stock is removed first, ideal for perishable goods or regulated industries. Last In First Out (LIFO) does the opposite, picking the most recently received items first; this may suit non-perishable or bulk items stored for convenience. Closest Location allows the system to prioritize picking products from locations that are physically nearer to the picking point, enhancing operational speed. Least Packages is used when minimizing the number of packages picked is preferred, improving efficiency in packing and shipping. Lastly, First Expiry First Out (FEFO) ensures products with the earliest expiration dates are picked first, essential for managing shelf-life-sensitive items. Selecting the appropriate removal strategy helps streamline logistics, reduce waste, and ensure the accuracy of inventory flow.
Odoo 18 Inventory offers a highly organized and flexible system for managing warehouse locations, supporting both physical and virtual logistics operations. From defining internal and partner locations to configuring advanced features like removal strategies, cyclic inventory counting, and scrap handling, Odoo ensures precision and clarity in inventory flow. By understanding and effectively configuring these various location types and settings, businesses can streamline their warehouse processes, reduce errors, and improve overall inventory accuracy.
To read more about How to Manage Different Location Types in Odoo 17 Inventory, refer to our blog How to Manage Different Location Types in Odoo 17 Inventory.