Overview
The inventory management system provides complete control over your product catalog, including adding/editing products, barcode scanning, automatic UPC database lookups, stock level tracking, and low stock alerts.Barcode scanning
Fast product lookup and creation with barcode scanner support
UPC database integration
Automatic product information from UPC Item Database
Stock level tracking
Real-time inventory counts with low stock alerts
Category management
Organize products with customizable categories
Product catalog
Product information
Each product includes:- Barcode (required) - Unique identifier, UPC/EAN/SKU
- Name (required) - Product display name
- Variant/Size (optional) - e.g., “500ml”, “Large”, “16GB”
- Brand (optional) - Manufacturer or brand name
- Category (optional) - Product classification
- Quantity (required) - Current stock level
- Low stock alert (required) - Minimum quantity threshold
- Cost price (required) - Wholesale/purchase cost
- Selling price (required) - Retail price
- Image URL (optional) - Product image from UPC database or custom URL
- Unit (default: “pcs”) - Unit of measurement
- Status (default: active) - Active products appear in POS
Product grid view
Products are displayed in a responsive grid with:- 2-5 column layout - Adapts to screen size (mobile to desktop)
- Product images - Display from URL or show placeholder
- Click to view - Full product details in modal
- Hover actions - Edit button appears on hover
- Color-coded status:
- Red text: Out of stock (quantity = 0)
- Orange text: Low stock (quantity ≤ minimum stock level)
- Normal: Adequate stock
Search and filtering
Search bar filters products by:- Product name
- Barcode
- Brand
- Category
Adding products
Enter barcode
Scan or manually type the product barcode. The barcode field accepts:
- UPC codes (12 digits)
- EAN codes (13 digits)
- Custom SKUs (any length ≥5 characters)
Search UPC database (optional)
Click “Find” to search for the product in the UPC Item Database. If found:
- Product name is auto-filled
- Brand is populated
- Category is suggested
- Variant/size is detected
- Product image is downloaded
Fill in product details
Complete required fields:
- Product name - What customers will see
- Quantity - Initial stock count
- Cost price - Your purchase cost
- Selling price - Retail price to customers
- Low stock alert - Reorder threshold (default: 5)
Add optional information
Enhance product details:
- Variant/Size - Helps distinguish similar products
- Brand - Useful for filtering and search
- Category - Select from pre-configured categories
Review image preview
If UPC database found an image, it will appear in the preview. The image will be saved with the product.
API endpoint
Create product:POST /api/products
Editing products
Click 'Edit' or select product
Hover over the product card and click “Edit”, or click the product to view details then click “Edit Product”.
Modify fields
Update any field except the barcode. Changes to stock quantity are tracked in user activity logs.
API endpoint
Update product:PUT /api/products/{id}
Deleting products
API endpoint
Delete product:DELETE /api/products/{id}
Barcode scanning
Scanner detection
The system automatically detects barcode scanner input:- Scanner sends rapid keystrokes (barcode digits)
- Scanner sends Enter key at the end
- System buffers keystrokes within 100ms window
- When buffer reaches ≥5 characters, barcode search is triggered
Barcode search workflow
Local database search
System searches for product:
GET /api/products/barcode/{barcode}If found, product is loaded into the edit form for viewing/editing.UPC database fallback
If not found locally, system queries UPC Item Database API:
GET https://api.upcitemdb.com/prod/trial/lookup?upc={barcode}If found, product information is pre-filled in the add form.UPC database integration
Automatic product information
When a barcode is not found locally, the system queries the UPC Item Database to retrieve:- Product title → Name
- Brand name → Brand
- Product size → Variant
- Category → Category
- Product images → Image URL
Image selection logic
The system intelligently selects product images:-
Filter reliable sources - Prefers images from:
- walmart.com
- amazon.com
- target.com
- walgreens.com
-
Exclude broken URLs - Skips URLs containing:
spin_prod_ec_(known placeholder images)rpx/i/s/i/spin(broken image patterns)
- Prefer HTTPS - Uses secure image URLs when available
- Fallback - Uses first available HTTPS image if no reliable sources found
UPC database limitations
- Trial API - Free tier has rate limits (100 requests/day)
- Coverage - Not all barcodes are in the database
- Accuracy - Product information may be incomplete or outdated
- Images - Some image URLs may expire or break over time
Stock level management
Current stock
The “Quantity” field shows current available stock. This number:- Decreases automatically when sales are processed
- Increases automatically when returns are restocked
- Can be manually adjusted in the edit form
Low stock alerts
The “Low Stock Alert” threshold triggers visual warnings when:- Inventory grid (orange text)
- POS product grid (orange “LOW STOCK” banner)
- Dashboard low stock report
Stock adjustments
To manually adjust stock:- Edit the product
- Change the “Quantity” field
- Click “Save Changes”
- User who made the change
- Old quantity → New quantity
- Change amount (+/-)
- Timestamp
API endpoint
Update stock:PUT /api/products/{id}/stock
Low stock products
View all products below minimum stock level: API endpoint:GET /api/products/low-stock
Response:
- Dashboard alerts
- Inventory reports
- Reorder notifications
Category management
Configuring categories
Product categories are configured in: System Settings → Product Categories Enter comma-separated category names:Using categories
In inventory management:- Select category from dropdown when adding/editing products
- Filter product grid by category
- Search products by category
- Filter product grid by category (future enhancement)
- Group sales by product category
- Analyze category performance
Product images
Image sources
- UPC Database - Automatically downloaded during barcode search
- Manual URL - Enter image URL directly (not currently exposed in UI)
- Upload - Not yet implemented
Image display
In inventory grid:- Thumbnail size: 72px height
- Fallback: “Image” placeholder text
- Object-fit: contain (preserves aspect ratio)
- Thumbnail size: 88px height
- Fallback: “Image” placeholder text
- Lazy loading for performance
- Full size: 192px height
- Fallback: “No Image Available” message
Image URL validation
The system performs client-side validation:- Tests image loading with
onLoadevent - Falls back to placeholder on
onErrorevent - Logs loading failures to console for debugging
API endpoints
Complete inventory management API:| Endpoint | Method | Purpose |
|---|---|---|
/api/products | GET | List all active products |
/api/products/{id} | GET | Get single product details |
/api/products/barcode/{barcode} | GET | Search by barcode |
/api/products/low-stock | GET | List low stock products |
/api/products | POST | Create new product |
/api/products/{id} | PUT | Update product |
/api/products/{id}/stock | PUT | Adjust stock quantity |
/api/products/{id} | DELETE | Delete product |
Inventory reports
Stock value calculation
Potential revenue
Profit margin per product
Best practices
For inventory managers
For inventory managers
- Scan barcodes instead of typing to reduce errors
- Set realistic low stock alert thresholds based on sales velocity
- Regularly review low stock reports to avoid stockouts
- Use variants to distinguish similar products (e.g., sizes, flavors)
- Keep product images up-to-date for better POS experience
- Assign categories consistently for accurate reporting
For system administrators
For system administrators
- Configure product categories before first use
- Test barcode scanner with various product types
- Monitor UPC database API usage to avoid rate limits
- Back up product database regularly
- Review user activity logs for unauthorized stock adjustments
- Set up low stock email alerts (future enhancement)
For store managers
For store managers
- Audit physical inventory monthly and adjust quantities
- Investigate discrepancies between system and physical counts
- Train staff on proper barcode scanning technique
- Review profit margins regularly and adjust pricing
- Monitor category performance to optimize product mix
Troubleshooting
Barcode scanner not working in inventory
Barcode scanner not working in inventory
Symptoms: Scanned barcodes don’t appear in barcode fieldSolutions:
- Click in the barcode input field first
- Verify scanner is not in sleep mode
- Check USB connection is secure
- Test scanner in a text editor
- Ensure scanner sends Enter key after barcode
UPC database returns no results
UPC database returns no results
Symptoms: Click “Find” but product info doesn’t populateSolutions:
- Verify barcode format is correct (12-13 digits for UPC/EAN)
- Check internet connectivity
- Try manual search at upcitemdb.com to verify barcode exists
- Some products may not be in UPC database - add manually
- Check browser console for API errors
Product images not displaying
Product images not displaying
Symptoms: “Image” placeholder shown instead of product photoSolutions:
- Check image URL is valid and accessible
- Verify CORS headers allow image loading
- Test image URL in browser address bar
- Try different image URL from UPC database
- Check browser console for CORS/404 errors
Stock quantities incorrect after sales
Stock quantities incorrect after sales
Symptoms: Physical count doesn’t match system quantitySolutions:
- Review recent sales in Sales History
- Check for manual stock adjustments in User Activity logs
- Verify all sales were processed through POS (not external)
- Look for failed transactions that may have partially updated stock
- Perform physical inventory count and adjust as needed
Cannot edit or delete products
Cannot edit or delete products
Symptoms: “Save” button disabled or delete failsSolutions:
- Verify you have Inventory or Manager role permissions
- Check product is selected (blue border on card)
- Ensure all required fields are filled
- Check for validation errors (barcode already exists, etc.)
- Try refreshing the page and re-selecting product
Related documentation
- Sales processing - How inventory affects POS
- System settings - Configure categories and stock alerts
- User activity - Audit stock adjustments
- Reports and analytics - Inventory value and low stock reports