Hi,
By default, Odoo reserves products for a Sales Order based on the source location configured in the delivery operation type (usually your main warehouse’s Stock location). It doesn’t automatically search across all locations for availability.
If you want Odoo to pull from any location:
Enable Multi-Locations in Inventory > Configuration > Settings.
Make sure each location is set as an internal location under Inventory > Configuration > Locations.
In your delivery order type (Inventory > Configuration > Operation Types > Delivery Orders), adjust the “Default Source Location” to a parent location that contains all your sub-locations.
Alternatively, use Routes & Rules to define how products are picked- e.g., create a “Pick from any internal location” route and assign it to your products/customers.
For more advanced control, you can create a custom picking rule or use a module that implements “location priority” or “location fallback” logic.
Keep in mind that allowing picking from multiple locations may affect traceability and cycle counting, so make sure your route setup still supports your counting method.
You can refer to this blog for managing storage locations- http://cybrosys.com/blog/how-to-manage-storage-categories-and-locations-in-odoo-18.
Hope it helps.