Overview
The Inventory module manages physical and logical inventory, providing:- Inventory entries per product
- Product instances (serialized, batched)
- Availability management and blockades
- Resource allocation
- Instance-to-resource mapping
- Counting and filtering
Architecture
Core Components
InventoryEntry
Central registry for a product’s inventory:InventoryEntry
Instance
Physical or logical product instances:Instance Types
InventoryFacade
Main entry point for inventory operations:Creating Inventory Entries
Creating Entries
Creating Instances
Counting and Filtering
Instance Criteria
Filter instances based on criteria:InstanceCriteria
Counting Products
Counting Examples
Finding Instances
Finding Instances
Availability Management
The module delegates availability toAvailabilityFacade:
Resources
Resources represent allocatable inventory:Resource
Blockades
Temporary reservations of resources:Blockade
Locking Inventory
Lock Operations
Resource Mapping
Map instances to availability resources:Instance-Resource Mapping
Querying
Inventory Entry Views
Entry Queries
Instance Views
Instance Views
Product Definition Validation
Validate instances against product definitions:Validation
Real-World Example: Warehouse Operations
Complete Warehouse Flow
Expiry Management
Expiry Tracking
Best Practices
Choose Tracking
Select appropriate tracking strategy per product
Use Criteria
Create reusable InstanceCriteria for common queries
Map Resources
Link instances to availability resources
Validate Features
Always validate instance features against product definition
Configuration
Related Modules
- Uses Common for Result pattern
- Uses Quantity for quantities
- Uses Product for product definitions
- Integrates with Ordering for order fulfillment
- Can track Accounting inventory valuations
