Odoo Stock Moves and Stock Picking: Understanding Warehouse Operations
Efficient inventory management depends on more than simply knowing how much stock is available. Businesses also need to understand how products move through the warehouse, where they come from, where they are going, and what happens at each stage of the process.
Odoo Inventory provides a powerful framework for managing these warehouse operations through concepts such as Stock Pickings, Stock Moves, and Stock Move Lines.
For new Odoo users, these terms can initially be confusing. A picking, a move, and a move line are related, but they represent different levels of a warehouse operation.
In this article, we will explain Odoo Stock Picking and Stock Moves, how they work together, and how businesses can use them to manage receipts, deliveries, internal transfers, and other warehouse operations efficiently.
What Is a Stock Picking in Odoo?
A Stock Picking represents a warehouse operation involving the movement of products from one location to another.
For example, a customer places an order for:
5 Laptops
10 Monitors
20 Keyboards
Odoo can create a delivery operation for the order. That delivery is represented by a stock picking.
A picking acts as a container or document for the overall warehouse operation.
It can include multiple stock moves.
Example
Customer Order
↓
Delivery Picking
↓
┌───────────────┐
│ Stock Move 1 │ → 5 Laptops
│ Stock Move 2 │ → 10 Monitors
│ Stock Move 3 │ → 20 Keyboards
└───────────────┘
↓
Customer
The picking therefore provides an overview of the operation, while the individual stock moves describe the products being moved.
What Is a Stock Move?
A Stock Move represents the movement of a specific product or quantity between two inventory locations.
For example:
Product: Laptop
Quantity: 5
Source: WH/Stock
Destination: Customer Location
This can be represented as:
WH/Stock │ │ 5 Laptops ↓ Customer
The stock move contains the important information needed to describe that movement.
Depending on the operation, a stock move may include information such as:
Product
Quantity
Source location
Destination location
Unit of measure
Operation type
State
Related picking
Procurement or sales references
Stock Picking vs. Stock Move
One of the easiest ways to understand the difference is:
A picking represents the warehouse operation, while a stock move represents an individual product movement within that operation.
For example, suppose a delivery contains three products.
Stock Picking
Delivery Order: WH/OUT/00045
Contains:
5 Laptops
10 Monitors
20 Keyboards
Stock Moves
The picking may contain:
Move 1: 5 Laptops
Move 2: 10 Monitors
Move 3: 20 Keyboards
So the relationship can be represented as:
Stock Picking
│
├── Stock Move → Laptop
├── Stock Move → Monitor
└── Stock Move → Keyboard
What Is a Stock Move Line?
There is another important concept in Odoo: the Stock Move Line.
A stock move describes what needs to move, while move lines provide more detailed execution information about how the movement actually takes place.
This becomes particularly important when using:
Lots
Serial numbers
Packages
Detailed quantities
Multiple source locations
Multiple destination locations
For example, a stock move might say:
Move: 10 Laptops
During warehouse processing, those 10 laptops might be tracked as:
Move
└── 10 Laptops
│
├── Serial Number LAP001
├── Serial Number LAP002
├── Serial Number LAP003
└── ...
Move lines provide the detailed operational information needed to execute and track the movement.
How Stock Pickings and Stock Moves Work Together
Let's take a simple sales example.
A customer purchases:
2 Televisions
3 Laptops
5 Keyboards
The sales order creates a delivery operation.
Step 1: Sales Order
Customer ↓ Sales Order
Step 2: Delivery Picking
Odoo creates a warehouse delivery operation.
Sales Order ↓ Delivery Picking
Step 3: Stock Moves
The picking contains individual product movements:
Delivery Picking │ ├── 2 Televisions ├── 3 Laptops └── 5 Keyboards
Step 4: Warehouse Execution
Warehouse employees pick the products from their storage locations.
WH/Stock ↓ Picking ↓ Customer
Step 5: Validation
Once the warehouse operation is completed and validated, Odoo updates the inventory quantities.
This creates a traceable record of the warehouse movement.
Types of Stock Pickings in Odoo
Stock pickings are used for several different warehouse operations.
1. Receipts
Receipts represent products coming into the warehouse.
Example:
Vendor ↓ WH/Input ↓ WH/Stock
A purchase order can generate an incoming picking for receiving products.
2. Delivery Orders
Delivery orders represent products leaving the warehouse for a customer.
Example:
WH/Stock ↓ WH/Output ↓ Customer
A sales order can generate a delivery picking.
3. Internal Transfers
Internal transfers move products between locations within the organization.
For example:
WH/Stock ↓ WH/Stock/Accessories
or:
Warehouse A ↓ Warehouse B
Internal transfers are useful for:
Replenishment
Warehouse transfers
Stock redistribution
Production supply
Moving products between storage areas
Example: Internal Transfer
Suppose a company has two warehouses:
Warehouse A: 100 laptops
Warehouse B: 20 laptops
Warehouse B needs additional stock.
An internal transfer can move:
30 Laptops
from:
WH/A/Stock
to:
WH/B/Stock
The operation can be represented as:
Warehouse A
WH/A/Stock
│
│ 30 Laptops
↓
Warehouse B
WH/B/Stock
Odoo records this movement through the appropriate stock picking and stock move records.
Stock Picking Workflow
A typical warehouse workflow can look like this:
Document Created
↓
Stock Picking
↓
Stock Moves
↓
Reservation
↓
Picking / Processing
↓
Move Lines
↓
Validation
↓
Inventory Updated
The exact workflow depends on the warehouse configuration and the operation being performed.
What Is Stock Reservation?
Before products are picked, Odoo can reserve available inventory for a warehouse operation.
For example:
A customer orders:
10 Laptops
The warehouse currently has:
50 Laptops
Odoo can reserve 10 units for the delivery.
The remaining quantity is:
40 available units
This helps prevent the same inventory from being allocated incorrectly to multiple operations.
Reservation and Stock Moves
Reservation is closely connected to stock moves.
A stock move may require:
10 Laptops
Odoo checks whether sufficient inventory is available and can reserve the required quantity.
If inventory is available:
Required: 10 Available: 50 Reserved: 10
If only 6 units are available:
Required: 10 Available: 6 Reserved: 6
The remaining quantity may need to wait for replenishment or another inventory operation, depending on the configuration.
Stock Move States
Stock moves can pass through different states during their lifecycle.
Common states include:
Draft
Waiting
Confirmed
Assigned
Done
Cancelled
The exact behavior depends on the operation and Odoo configuration.
Example
Draft ↓ Confirmed ↓ Assigned ↓ Done
Understanding these states is particularly useful for developers and functional consultants troubleshooting warehouse workflows.
Stock Move Example With Lots
Consider a company selling food products.
A warehouse receives:
100 bottles of Product A
with:
Lot Number: LOT-2026-001
A customer later purchases:
20 bottles
The delivery can identify the relevant lot through detailed warehouse operations.
This provides traceability from:
Vendor ↓ Receipt ↓ Lot ↓ Warehouse Stock ↓ Customer Delivery
Lot tracking is especially valuable for businesses that need product traceability.
Stock Move Example With Serial Numbers
Serial numbers provide even more detailed tracking.
Suppose a company receives:
5 laptops
Each laptop has a unique serial number:
SN001 SN002 SN003 SN004 SN005
When one laptop is delivered to a customer, Odoo can record the specific serial number associated with that delivery.
This creates a detailed traceability chain.
Serial number tracking is commonly used for:
Electronics
Machinery
Medical equipment
High-value products
Warranty-controlled products
Stock Moves and Multi-Step Routes
Odoo can also support more complex warehouse workflows.
For example:
Vendor ↓ Input ↓ Quality Control ↓ Stock ↓ Output ↓ Customer
A product may therefore pass through multiple warehouse locations before reaching its final destination.
Each movement can be represented through stock operations and stock moves.
This allows businesses to maintain visibility into where inventory is located at every stage.
Stock Moves in Manufacturing
Stock moves are not limited to sales and purchases.
They also play an important role in manufacturing.
For example, a manufacturing order requires:
10 kg of raw material
5 units of Component A
2 units of Component B
The required materials may move from inventory to the production location.
WH/Stock
↓
Production
↓
Finished Products
↓
WH/Stock
These inventory movements form an important part of the manufacturing workflow.
Stock Moves and Inventory Valuation
Stock movements can also have an impact on inventory valuation, depending on the company's inventory configuration and valuation method.
For example, businesses may use:
FIFO
AVCO
Standard Cost
When products move into or out of inventory, the related inventory and accounting impact depends on the configured valuation approach.
This is why accurate stock movement records are important not only for warehouse teams but also for accounting and financial reporting.
Why Accurate Stock Pickings Matter
Accurate stock pickings provide several benefits.
Better Inventory Accuracy
The system knows what has been received, transferred, and delivered.
Better Traceability
Businesses can trace products through their warehouse operations.
Improved Order Fulfillment
Warehouse employees have clear instructions for picking and delivering products.
Better Reporting
Managers can analyze warehouse activity and inventory movements.
Reduced Manual Errors
Structured warehouse operations reduce reliance on manual stock adjustments.
Common Mistakes With Stock Pickings and Stock Moves
Mistake 1: Confusing Picking With Move
A picking represents the overall operation, while moves represent the individual product movements within it.
Understanding this distinction is important when configuring or troubleshooting Odoo.
Mistake 2: Ignoring Move Lines
Move lines become particularly important when using lots, serial numbers, packages, or detailed quantities.
Mistake 3: Validating Operations Without Checking Quantities
Warehouse employees should verify quantities and tracking information before validating operations.
Mistake 4: Making Frequent Manual Inventory Adjustments
If inventory is constantly corrected manually, the underlying warehouse workflow should be investigated.
Mistake 5: Poor Location Configuration
Incorrect source and destination locations can create inventory discrepancies and make warehouse reporting unreliable.
Best Practices for Managing Stock Operations in Odoo
1. Create a Clear Warehouse Structure
Define locations according to the physical warehouse.
2. Use Appropriate Routes
Configure routes according to how products actually move through the business.
3. Use Barcode Operations
Barcode scanning can reduce manual data entry and improve warehouse accuracy.
4. Use Lot and Serial Tracking Where Required
Tracking provides better product traceability and accountability.
5. Train Warehouse Employees
Users should understand receipts, deliveries, internal transfers, reservations, and validation.
6. Monitor Inventory Exceptions
Regularly investigate negative stock, unreserved quantities, failed transfers, and unusual inventory adjustments.
Odoo Stock Picking and Stock Move: Quick Comparison
| Feature | Stock Picking | Stock Move | Stock Move Line |
|---|---|---|---|
| Purpose | Represents an operation | Represents product movement | Represents detailed execution |
| Example | Delivery Order | 10 Laptops | Serial-numbered laptops |
| Source Location | Yes | Yes | Yes |
| Destination Location | Yes | Yes | Yes |
| Product | Multiple possible | Specific product | Specific product/detail |
| Lots/Serials | Operation-level context | Product movement | Detailed tracking |
| Quantity | Overall operation context | Planned/demand quantity | Detailed done quantity |
Conclusion
Understanding Stock Pickings, Stock Moves, and Stock Move Lines is essential for anyone working with Odoo Inventory.
A stock picking represents the overall warehouse operation, while stock moves describe the individual product movements within that operation. Stock move lines provide the detailed execution information required for quantities, lots, serial numbers, packages, and other tracking requirements.
Together, these concepts allow Odoo to provide a structured and traceable approach to warehouse management.
Whether your business is handling customer deliveries, vendor receipts, internal transfers, manufacturing operations, or complex multi-step warehouse routes, understanding how stock movements work can help you build a more accurate and efficient Odoo inventory system.
Need Help With Odoo Inventory?
ERP Harbor Consulting Services helps businesses implement, configure, customize, and optimize Odoo Inventory and warehouse operations.
Our services can include:
Odoo Inventory implementation
Warehouse configuration
Stock picking and routing
Putaway and removal strategies
Barcode implementation
Lot and serial number tracking
Multi-warehouse configuration
Inventory valuation
Manufacturing inventory workflows
Odoo customization and integrations
User training and support
A properly configured Odoo warehouse can give your business better inventory accuracy, traceability, visibility, and operational efficiency.