Overview
The Inventory entity manages stock levels and availability for products in the e-commerce system. It tracks current quantities, reserved stock, and provides reorder management capabilities.
Entity Properties
Name | Type | Required | Description |
---|---|---|---|
inventoryId | UUID | Required | Unique identifier for the inventory record |
productId | UUID | Required | Product this inventory record tracks |
sku | string | Required | Stock Keeping Unit matching the product SKU |
quantityOnHand | integer | Required | Current available stock quantity |
quantityReserved | integer | Required | Quantity reserved for pending orders |
quantityAvailable | integer | Required | Calculated available quantity (onHand - reserved) |
minimumStockLevel | integer | Required | Minimum stock level before reorder alert |
maximumStockLevel | integer | Optional | Maximum stock level for inventory management |
reorderPoint | integer | Required | Stock level that triggers reorder process |
reorderQuantity | integer | Required | Quantity to order when restocking |
unitCost | decimal | Optional | Cost per unit for inventory valuation |
warehouseLocation | string | Optional | Physical location or bin where item is stored |
lastRestockedAt | DateTime | Optional | Date and time of last restock |
lastSoldAt | DateTime | Optional | Date and time of last sale |
isTrackingEnabled | boolean | Required | Whether inventory tracking is enabled for this product |
backorderAllowed | boolean | Required | Whether backorders are allowed when out of stock |
createdAt | DateTime | Required | Date and time when the inventory record was created |
updatedAt | DateTime | Optional | Date and time when the inventory record was last updated |
Relationships
- Product: Each inventory record belongs to one
Product
(identified byproductId
). - OrderItem: Inventory quantities are affected by
OrderItem
entities when orders are placed.
Stock Calculations
- Available Quantity = Quantity On Hand - Quantity Reserved
- Reorder Needed = Quantity Available <= Reorder Point
- Stock Value = Quantity On Hand × Unit Cost
Examples
- Inventory #1: iPhone 15 Pro - 25 on hand, 5 reserved, 20 available, reorder at 10 units.
- Inventory #2: Running Shoes Size 9 - 0 on hand, 2 reserved, backorder allowed.
Business Rules
- Quantity on hand cannot be negative
- Quantity reserved cannot exceed quantity on hand
- Available quantity is automatically calculated
- Reorder alerts are triggered when available = reorder point
- Stock reservations are created when orders are placed
- Stock is decremented when orders are shipped
- Inventory adjustments must be logged for audit trail