Overview
Inventory features include:- Multi-workspace stock tracking
- Automatic stock deductions on sales
- Manual stock adjustments
- Stock movement history
- Minimum stock level alerts
- Inventory valuation
Product Stock Configuration
Before tracking inventory, products must be configured:Enabling Stock Tracking
When creating or editing a product:- Navigate to Products → Create Product or edit an existing product
- Enable Track Stock checkbox
- Set Minimum Quantity for low stock alerts (optional)
- Set Cost for inventory valuation
Only products with
track_stock = true will have inventory managed. Products without stock tracking can be sold unlimited quantities.Viewing Stock Levels
Current Stock by Workspace
View real-time stock levels:- Navigate to Inventory → Stock Levels
- Filter by:
- Workspace (location)
- Product category
- Low stock items
- Product name/SKU
- Current quantity per workspace
- Minimum quantity threshold
- Stock value (quantity × cost)
- Available/Reserved quantities
Product-Specific Stock View
- Go to Products → Select a product
- View the Inventory tab
- See stock breakdown by workspace
- View recent stock movements
ProductStock model stores quantity per product per workspace
Stock Movements
All inventory changes are tracked as stock movements:Movement Types
| Type | Description | Impact |
|---|---|---|
IN | Stock received | Increases quantity |
OUT | Stock sold/removed | Decreases quantity |
ADJUSTMENT | Manual correction | Increases or decreases |
TRANSFER_OUT | Sent to another workspace | Decreases at source |
TRANSFER_IN | Received from another workspace | Increases at destination |
INITIAL | Initial stock setup | Sets starting quantity |
StockMovementType enum in app/Enums/StockMovementType.php
Viewing Stock Movements
Filter Movements
Filter by:
- Date range
- Movement type
- Product
- Workspace
- User who created the movement
Automatic Stock Movements
Stock movements are created automatically when:-
Invoice Created: Stock moves
OUTfor each line item- Reference:
CreateInvoiceItemActioncreates stock movements - Type:
StockMovementType::OUT - Related to invoice
- Reference:
-
Stock Transfer: Two movements created
TRANSFER_OUTat source workspaceTRANSFER_INat destination workspace- Both linked by
reference_number
Stock Adjustments
Manual inventory corrections for damaged goods, loss, found items, or count corrections.Navigate to Adjustments
Go to Inventory → Stock Adjustments → New AdjustmentReference:
ProductInventoryAdjustmentController::create()Select Workspace
Choose the workspace where inventory is being adjusted.The form loads:
- All workspaces the user has access to
- All products with stock tracking enabled
- Current stock levels for each product in each workspace
Add Adjustment Items
For each product being adjusted:
- Select Product: Choose from products with stock tracking
- Current Stock: System displays current quantity
- New Quantity: Enter the corrected quantity
- Adjustment: System calculates difference automatically
- Reason: Select reason (damaged, lost, found, count correction)
- Notes: Add explanation for the adjustment
Adjustment Process
When an adjustment is saved:Setting Initial Stock
For new products or when starting to use OptiFlow:Select Products and Workspaces
Choose:
- Products to set initial stock for
- Workspaces where stock exists
- Initial quantities per workspace
- Unit cost for valuation
Multi-Workspace Stock Management
OptiFlow supports tracking inventory across multiple locations (workspaces).Workspace Context
- Each workspace maintains independent stock levels
- Users can have access to one or multiple workspaces
- Inventory reports can be workspace-specific or consolidated
Viewing Stock Across Workspaces
For users withViewAllLocations permission:
- Navigate to Inventory → Stock by Location
- View consolidated stock levels across all workspaces
- See stock distribution per location
Stock Transfers Between Workspaces
Transfer inventory between locations without creating invoices. See the dedicated guide: Stock TransfersInventory Reporting
Available Reports
-
Stock Valuation Report
- Total inventory value by workspace
- Value by product category
- Cost basis calculation
-
Stock Movement Report
- Movements by date range
- In/Out/Adjustment breakdown
- Movement trends
-
Low Stock Report
- Products below minimum quantity
- Workspaces affected
- Reorder recommendations
-
Stock Aging Report
- Products by time in inventory
- Slow-moving items
- Inventory turnover
Low Stock Alerts
Configure automatic alerts for low stock:Set Minimum Quantities
For each product:
- Edit the product
- Set Minimum Quantity threshold
- Save changes
View Low Stock Items
Navigate to Inventory → Low StockProducts below minimum quantity are highlighted.
Stock Count Procedures
Physical Inventory Count
Best practice for periodic stock verification:Compare and Adjust
- Compare physical count to system quantities
- Create stock adjustment for discrepancies
- Document reasons for variances
Common Issues
Negative Stock
Problem: System shows negative inventory Solution:- Review stock movements for the product
- Identify incorrect transactions
- Create stock adjustment to correct
- Enable “Prevent Negative Stock” in settings (if available)
Stock Deduction Not Happening
Problem: Invoice created but stock not deducted Solution:- Verify product has
track_stockenabled - Check if product has ProductStock record for the workspace
- Review stock movement history for the transaction
Incorrect Stock Levels After Transfer
Problem: Stock levels don’t match after workspace transfer Solution:- Navigate to Inventory → Stock Transfers
- Find the transfer record
- Verify both TRANSFER_OUT and TRANSFER_IN movements exist
- Check the reference numbers match
- Create manual adjustment if needed