How to Manage Inventory Levels
Think of it this way: An Inventory Level tracks the actual stock of a specific product variant at a specific store location. It's where you manage quantities, costs, and reorder settings for each item you sell.
The Big Picture
Inventory Level
├── Quantity Control (What you have in stock)
│ ├── Quantity When Created (Starting inventory)
│ ├── Quantity On Hand (Current physical stock)
│ ├── Quantity Reserved (Held for pending orders)
│ └── Current Quantity (Auto-calculated total)
├── Identification (What and where)
│ ├── Product & Variant (Which item)
│ ├── Store Location (Where it's stocked)
│ └── Active Status (Is it currently tracked)
├── Costing & Strategy (Financial tracking)
│ ├── Cost Method (How you calculate costs)
│ ├── Cost Per Unit (What you paid)
│ └── Sale Pricing (Discounts and promotions)
├── Inventory Settings (Automated restocking)
│ ├── Reorder Point (When to restock)
│ ├── Reorder Quantity (How much to order)
│ └── Max Stock Level (Storage limits)
└── System & Analytics (Historical data)
├── Transaction Count
├── Total Revenue
└── Last Updated timestamps
Quantity Control
This is the most important section—it tracks your actual stock levels in real-time.
Quantity When Created
The initial stock level when this inventory record was first created.
Use for:
- Setting starting inventory for new products
- Recording initial stock after physical counts
- Establishing baseline quantities
Read-only after creation: This value doesn't change—it's a historical record of where you started.
Quantity On Hand
The current physical quantity available in the store.
This is your main inventory number.
How it works:
- Increases when you receive shipments or returns
- Decreases when you sell items or process adjustments
- Updated automatically through inventory movements
- Should match your physical count
Example:
- You receive 100 units → Quantity On Hand = 100
- You sell 25 units → Quantity On Hand = 75
- You receive 50 more → Quantity On Hand = 125
Quantity Reserved
Items held for pending orders or transactions that haven't completed yet.
How it works:
- When a customer starts checkout, items are reserved
- Reserved items are still "on hand" but not available for new orders
- Reservations release if the order cancels
- Reservations convert to sales when the order completes
Example:
- Quantity On Hand: 100
- Customer adds 5 to cart → Quantity Reserved: 5
- Available to sell: 95 (100 - 5)
Current Quantity
Read-only field: Auto-calculated total quantity across all locations.
This is managed by the system and shows the overall inventory picture for reporting purposes.
Identification
This section defines WHAT product variant you're tracking and WHERE it's located.
Product & Variant SKU
Both required. These fields link this inventory record to a specific product variant.
Critical Rule: Each combination of Product + Variant SKU + Store must be unique. You can't have two inventory records for the same variant at the same store.
Example:
- Product: "Classic Cotton T-Shirt"
- Variant SKU: "TSH-SM-BLU"
- Store: "Downtown Location"
Variant Name
Optional display name for the variant (e.g., "Small, Blue").
Auto-populated from the product variant but can be overridden if needed.
Store
Required. Which store location holds this inventory.
Why this matters:
- Different stores have different stock levels
- Customers can only buy what's available at their selected store
- Transfers between stores are tracked separately
Active Inventory Item
Toggle this OFF to stop tracking this inventory record without deleting it.
Use for:
- Seasonal products that aren't currently stocked
- Items being phased out
- Temporarily discontinued variants
Don't use for:
- Out-of-stock items (just set Quantity On Hand to 0)
- Permanently discontinued items (delete the record instead)
Store Specific Product
Toggle ON if this variant is only available in select stores.
When enabled:
- You can choose which stores carry this variant
- The variant won't appear in stores not on the list
- Useful for location-exclusive products or test markets
Costing & Strategy
This section manages financial tracking and pricing strategies.
Cost Method
Choose how costs are calculated:
- Standard Cost: Fixed cost per unit (most common)
- Average Cost: Weighted average of all purchases (auto-calculated)
- FIFO: First In, First Out (uses oldest inventory cost first)
Standard Cost is recommended unless you have specific accounting requirements.
Cost Per Unit
What you paid for each unit of this item.
Use for:
- Recording vendor costs
- Calculating profit margins
- Inventory valuation
Example:
- You buy t-shirts for $8 each → Cost Per Unit = $8.00
- You sell them for $25 each → Margin = $17.00
Standard Cost
Your baseline expected cost for this item.
Use for:
- Budget planning
- Variance analysis (comparing actual vs expected costs)
- Financial forecasting
Current Cost
Read-only. Calculated based on your Cost Method setting.
- Standard Cost method → Shows Standard Cost
- Average Cost method → Shows Average Cost (auto-calculated)
- FIFO method → Shows cost of oldest inventory
Average Cost
Read-only. Automatically calculated by the system based on all purchase transactions.
How it's calculated:
Total Cost of All Purchases ÷ Total Units Purchased = Average Cost
Example:
- Purchase 1: 50 units @ $8 each = $400
- Purchase 2: 50 units @ $10 each = $500
- Average Cost: $900 ÷ 100 = $9.00 per unit
Last Purchase Cost
Read-only. What you paid in your most recent purchase order.
Useful for tracking price changes from vendors.
Last Transaction Cost & Date
Read-only. Cost and timestamp of the most recent inventory movement.
Helps you track when inventory was last updated.
Sale Pricing
On Sale Toggle
Turn ON to mark this variant as currently on sale.
Sale Price
Only appears when "On Sale" is enabled.
Example:
- Regular Price: $25.00
- On Sale: Enabled
- Sale Price: $19.99
Important: This sale price is specific to this store location. The same variant might have different sale prices at different stores.
Inventory Settings
Automated restocking thresholds to help you maintain optimal stock levels.
Reorder Point
The quantity level that triggers a restocking alert.
Example:
- Reorder Point: 20
- When Quantity On Hand drops to 20 or below → System alerts you to reorder
How to set it:
- Calculate average daily sales
- Multiply by lead time (days to receive new stock)
- Add safety buffer for unexpected demand
Example calculation:
- Average daily sales: 5 units
- Lead time: 7 days
- Safety buffer: 5 units
- Reorder Point: (5 × 7) + 5 = 40 units
Reorder Quantity
How many units to order when you reach the Reorder Point.
Example:
- Reorder Point: 20
- Reorder Quantity: 100
- When stock hits 20 → Order 100 more units
How to determine:
- Consider vendor minimum order quantities
- Factor in storage capacity
- Balance holding costs vs. ordering frequency
- Account for bulk pricing discounts
Maximum Stock Level
Optional ceiling to prevent overstocking.
Use for:
- Limited storage space
- Perishable items
- Seasonal products
- Preventing excess capital tied up in inventory
Skip for:
- Bestsellers with unlimited storage
- Items with long shelf life and high demand
System & Analytics
All fields in this section are read-only—they're automatically updated by the system.
Total Transactions
Count of all inventory movements for this item at this location.
Includes:
- Sales
- Purchases
- Transfers
- Adjustments
- Returns
Total Revenue
Cumulative revenue generated from sales of this inventory item.
Formula: Sum of (Quantity Sold × Sale Price) for all transactions
Created At
When this inventory record was first created.
Last Updated
Most recent change to any field in this record.
Last Cost Update
When cost-related fields were last modified.
Django ID
Internal database identifier for system integration.
Last Synced At
Timestamp of most recent synchronization with the backend system.
Common Workflows
Receiving New Inventory
- Navigate to the inventory level for the product variant and store
- Quantity Control → Update Quantity On Hand with new total
- Example: Had 50, received 100 → New Quantity On Hand = 150
- Costing & Strategy → Update Cost Per Unit if price changed
- Save changes
Note: In production, you'll use Inventory Movements to record receipts, which automatically update these values.
Setting Up Reorder Alerts
- Inventory Settings → Set Reorder Point
- Calculate: (Daily Sales × Lead Time Days) + Safety Buffer
- Set Reorder Quantity
- Consider: Vendor minimums, storage limits, price breaks
- Optional: Set Maximum Stock Level to prevent overordering
Managing Store-Specific Variants
- Identification → Toggle Store Specific Product ON
- Select which stores should carry this variant in Store Locations
- Create separate inventory levels for each selected store
- Set different quantities and reorder points per location
Marking Items for Seasonal Rotation
- Identification → Toggle Active Inventory Item OFF
- Inventory stops appearing in active listings
- Historical data and records are preserved
- Toggle back ON when the season returns
Understanding Available vs. On Hand
This is critical for preventing overselling:
- Quantity On Hand: Physical units in the store
- Quantity Reserved: Held for pending orders
- Available to Sell: On Hand - Reserved
Example:
Quantity On Hand: 100
Quantity Reserved: 15 (5 pending orders)
Available to Sell: 85
New customer tries to buy 90 units → ORDER BLOCKED
Only 85 units are actually available
The system automatically manages reservations:
- Creates reservation when customer adds to cart
- Releases reservation if cart times out or order cancels
- Converts reservation to sale when order completes
Cost Method Deep Dive
When to Use Standard Cost
Best for:
- Stable vendor pricing
- Simple accounting needs
- Consistent product costs
- Small to medium businesses
How it works:
- You set a fixed cost per unit
- All sales use this cost for margin calculations
- Update manually when vendor prices change
When to Use Average Cost
Best for:
- Fluctuating vendor prices
- Bulk purchase discounts
- Inflation tracking
- More accurate profitability analysis
How it works:
- System calculates weighted average of all purchases
- Automatically adjusts as new inventory arrives
- More accurate but slightly more complex
Example:
Purchase 1: 100 units @ $8 = $800
Purchase 2: 100 units @ $10 = $1,000
Average Cost: $1,800 ÷ 200 = $9.00
Purchase 3: 100 units @ $12 = $1,200
New Average: $3,000 ÷ 300 = $10.00
When to Use FIFO
Best for:
- Perishable goods
- Strict accounting requirements
- Regulated industries
- Complex cost tracking needs
How it works:
- Assumes oldest inventory sells first
- Matches physical flow for dated products
- Required by some accounting standards
Best Practices
Keep Quantities Accurate
- Perform regular physical counts
- Reconcile discrepancies immediately
- Use inventory movements to track all changes
- Investigate negative available quantities
Set Realistic Reorder Points
- Monitor actual sales patterns
- Adjust for seasonal fluctuations
- Account for vendor lead times
- Review and update quarterly
Cost Tracking
- Update costs when vendor prices change
- Review margin reports monthly
- Compare actual vs. standard costs
- Adjust pricing strategies based on cost trends
Multi-Store Management
- Set location-specific reorder points
- Balance inventory between high/low-traffic stores
- Use transfers to optimize stock placement
- Monitor each location's performance separately
Quick Checklist
Before activating an inventory level:
- Product and Variant SKU are selected
- Store location is assigned
- Quantity On Hand reflects actual physical count
- Cost Per Unit is entered
- Cost Method is selected (Standard recommended)
- Reorder Point is set based on sales velocity
- Reorder Quantity accounts for vendor minimums
- Active Inventory Item toggle is ON
- Store Specific Product settings match availability
Common Questions
"Why is Available to Sell less than Quantity On Hand?"
Quantity Reserved is holding inventory for pending orders. Check:
- Open carts that haven't checked out
- Pending transactions awaiting payment
- Incomplete orders awaiting fulfillment
Available = On Hand - Reserved
"How do I transfer inventory between stores?"
You don't do it directly in Inventory Levels. Use Inventory Movements to:
- Record a transfer out from Store A
- Record a transfer in to Store B
- Both inventory levels update automatically
"What happens when I toggle Active OFF?"
The inventory record is hidden from active listings but:
- Data is preserved
- Historical transactions remain
- You can toggle it back ON anytime
- No inventory quantities are changed
"Should I use Standard or Average Cost?"
Use Standard Cost if:
- Vendor prices are stable
- You want simple, predictable costs
- You're a small to medium business
- You manually track price changes
Use Average Cost if:
- Vendor prices fluctuate frequently
- You buy in bulk with varying discounts
- You need precise profitability tracking
- You want automated cost updates
"Can different stores have different sale prices?"
Yes! Each Inventory Level is store-specific, so:
- Store A can have the item on sale for $19.99
- Store B can keep it at regular price $25.00
- Each location manages its own pricing strategy
Need Help?
- Products: Learn how to create products and variants
- Inventory Movements: Understand how to record stock changes
- Stores: Set up and manage store locations
- Costing Methods: Deep dive into accounting and cost tracking