Free Plugin Reference
Complete documentation for the StockOracle AI free plugin — every feature, every setting, every screen.
Overview
The free plugin is a fully standalone, production-ready inventory intelligence layer for WooCommerce. It is listed on WordPress.org and requires no paid features to be useful — nothing is crippled.
The four admin pages are accessible from the StockOracle top-level menu in WordPress admin (dashicons-chart-line, position 56):
- Dashboard — Visual overview of your inventory health
- Inventory — Detailed per-product analysis table
- Alerts — Filterable list of reorder alerts
- Settings — All configuration options (4 tabs)
Dashboard
The main dashboard (StockOracle → Dashboard) provides an instant visual overview of your entire inventory in one screen.
Dashboard Header
The header shows the page title, the last-updated timestamp, a Refresh button that forces recalculation of all metrics via AJAX, and a View Full Inventory link to the Inventory Analysis page.
Stat Cards Row
Six key metric cards appear in a responsive grid:
| Card | What it shows | Data Source |
|---|---|---|
| Total SKUs | Count of all published WooCommerce products | Live WP_Query |
| In Stock | Products currently in stock | WooCommerce stock_status |
| Low Stock | Products at or below the configured threshold | Settings: low_stock_threshold |
| Out of Stock | Products with zero or negative stock | WooCommerce stock_status |
| Total Inventory Value | Sum of (stock × price) for all SKUs | Analyzer module |
| Dead Stock Value | Capital tied up in unsold inventory | DeadStock module |
Inventory Health Score
The health score is a 0–100 composite index graded A–F. It measures five equally-weighted factors (20 points each):
| Factor | Points | What it measures |
|---|---|---|
| Stockout Rate | 0–20 | % of SKUs currently out of stock (lower = better) |
| Low Stock Rate | 0–20 | % of SKUs dangerously low (lower = better) |
| Dead Stock Rate | 0–20 | % of SKUs with no recent sales (lower = better) |
| Reorder Alert Rate | 0–20 | % of SKUs past their reorder point (lower = better) |
| Velocity Coverage | 0–20 | % of SKUs with measurable sales velocity (higher = better) |
Pro users can extend the scoring model by adding custom factors via the stockoracle_health_score_factors filter. See Developer API.
Dashboard Charts
All three charts are rendered with Chart.js v4.4.0, bundled locally (no CDN calls). Data is passed via wp_localize_script as JSON.
Stock Distribution (Doughnut)
Shows the proportion of In Stock, Low Stock, and Out of Stock products. Useful for a quick visual of overall stock health.
Sales Velocity — Top 10 (Horizontal Bar)
Shows the top 10 products by daily sales velocity (units/day) over the configured analysis period. Helps identify your fastest movers for priority restocking.
30-Day Sales Trend (Line Chart)
Shows daily total units sold over the past 30 days. Data is drawn from the stockoracle_daily_sales table, populated nightly by the WP-Cron job.
First Run
The 30-day trend chart will show sparse data for the first month. The daily cron job only populates yesterday's data on each run, so history builds up over time.
Inventory Analysis
Navigate to StockOracle → Inventory for the full per-product analysis table, built on WordPress's native WP_List_Table.
Table Columns
| Column | Description | Sortable |
|---|---|---|
| Product Name | Product title with link to edit screen | Yes |
| SKU | WooCommerce product SKU | Yes |
| Current Stock | Current stock quantity | Yes |
| Sales (30d) | Total units sold in the last 30 days | Yes |
| Velocity/Day | Average daily sales rate | Yes |
| Days Until Stockout | Current stock ÷ daily velocity | Yes |
| Status | In Stock / Low Stock / Out of Stock badge | No |
| ABC | ABC inventory classification badge | No |
Filtering & Search
- Use the search box to filter by product name or SKU.
- Use the status filter links (All / In Stock / Low Stock / Out of Stock) above the table.
- Click any sortable column header to sort ascending/descending.
- Pagination is shown at 20 products per page.
ABC Inventory Classification
ABC analysis classifies products using the Pareto principle applied to cumulative revenue contribution:
| Class | Products | Revenue | Strategy |
|---|---|---|---|
| A | Top ~20% | ~80% of revenue | Tight control, frequent replenishment, high safety stock |
| B | Next ~30% | ~15% of revenue | Moderate control, regular reviews |
| C | Bottom ~50% | ~5% of revenue | Simple controls, consider rationalizing |
Classification is computed from the analysis period (configurable, default 90 days). Results are cached in a 24-hour transient for performance.
Reorder Alerts
Navigate to StockOracle → Alerts to see which products need immediate attention.
Alert Levels
| Level | Trigger Condition |
|---|---|
| CRITICAL | Stock at or below reorder point and days-to-stockout ≤ lead time |
| WARNING | Stock at or below reorder point |
| INFO | Stock within 1.5× the reorder point (approaching reorder) |
Reorder Point Formula
reorder_point = (avg_daily_sales × lead_time) + (safety_stock_days × avg_daily_sales)
Where lead_time and safety_stock_days are set in Settings → General.
Filtering Alerts
Use the tab filters (All / Critical / Warning / Info) at the top of the Alerts page. Each alert card shows the product name, SKU, current stock, reorder point, and suggested reorder quantity.
Dead Stock Detection
Products with stock greater than zero but zero sales within the Dead Stock Threshold (configurable, default 90 days) are flagged as dead stock.
Each dead stock product receives a tiered recommendation:
- No sales > 365 days — "Consider discontinuing — no sales in over a year."
- No sales > 180 days — "Consider clearance sale — no sales in over 6 months."
- No sales > threshold — "Consider promotional pricing to move this stock."
The dashboard shows a Dead Stock Summary card with the count of dead stock items and the total capital tied up.
CSV Export
Click Export All CSV on the Inventory Analysis page to download a full CSV of your inventory data.
CSV Columns
The export includes 10 columns:
- Product ID
- Product Name
- SKU
- Current Stock
- Sales (30d)
- Daily Velocity
- Days Until Stockout
- Stock Value
- Stock Status
- ABC Class
The file uses UTF-8 encoding with a BOM marker for correct display in Excel. It is generated server-side via AJAX and streamed directly to the browser.
Settings Reference
All settings are stored in a single WordPress option: stockoracle_settings. Navigate to StockOracle → Settings.
General Tab
| Setting | Default | Range | Description |
|---|---|---|---|
| Forecast Period | 30 | 7–365 | Days of data used for demand forecasting |
| Dead Stock Threshold | 90 | 30–365 | Days with no sales to classify as dead stock |
| Default Lead Time | 7 | 1–90 | Days from order to receipt of stock |
| Safety Stock Buffer | 3 | 0–30 | Extra buffer days added to reorder point |
| Low Stock Threshold | 5 | 1–100 | Unit count at which a product is flagged as low stock |
| Analysis Period | 90 | 30–365 | Historical days used for velocity calculations |
Alerts Tab
| Setting | Default | Description |
|---|---|---|
| Enable Email Alerts | Off | Toggle weekly digest email |
| Alert Email | Admin email | Recipient for digest emails |
| Alert Types | All | Which severity levels trigger emails |
Advanced Tab
| Setting | Description |
|---|---|
| Reset All Data | Truncates all StockOracle custom tables (not WooCommerce orders) |
Go Pro Tab
Information about the Pro addon with a feature comparison and upgrade CTA. No configuration here.
Cron Jobs
stockoracle_daily_data_collection
Frequency: Daily. Populates the stockoracle_daily_sales table with yesterday's completed order data from WooCommerce. Also refreshes ABC classification and the health score cache.
stockoracle_weekly_alerts
Frequency: Weekly. Sends the email alert digest if email alerts are enabled in settings and there are products requiring attention.