StockOracle AI / Docs
Docs FAQ

Frequently Asked Questions

Answers to the most common questions about StockOracle AI.

General
What is StockOracle AI?
StockOracle AI is a WooCommerce inventory intelligence plugin that calculates sales velocity, forecasts demand, scores your inventory health, classifies products with ABC analysis, and surfaces reorder alerts — all within your WordPress admin. No external services, no monthly fees for the core features (free version is fully functional and WordPress.org listed).
Is StockOracle AI really free? What's crippled?
Nothing is crippled. The free plugin is a fully functional, production-grade inventory tool that you can use forever at no cost. It includes dashboard, inventory analysis, ABC classification, reorder alerts, dead stock detection, CSV export, and weekly email digests. The Pro addon adds additional features (AI forecasting, purchase orders, multi-warehouse, suppliers, etc.) — it doesn't unlock features that were locked in the free version.
Does the free plugin call external services?
No. The free plugin makes zero external HTTP calls. Chart.js is bundled locally — not loaded from a CDN. All data processing happens on your server. Google Fonts in this documentation are for the docs site, not the plugin.
How many products can StockOracle AI handle?
StockOracle AI is designed to scale. It uses a caching layer (stockoracle_cache table + WordPress transients) so most calculations run against pre-aggregated data rather than raw order tables. Stores with up to 10,000 SKUs typically see sub-2s page loads on standard hosting. For larger catalogs, using a real system cron instead of WP-Cron is recommended.
Installation
The plugin says WooCommerce isn't active, but it is. Why?
StockOracle AI boots via plugins_loaded at priority 20. If WooCommerce loads at a higher priority number (later), the check fails. Try deactivating and reactivating both plugins. If using a plugin that delays WooCommerce loading, ensure it runs before priority 20.
The dashboard shows no data after installation. Is that normal?
The 30-day Sales Trend chart requires historical data from the stockoracle_daily_sales table, which is populated nightly by WP-Cron. On the first day, the chart may be empty or sparse. The velocity and health score calculations pull directly from WooCommerce orders and should show data immediately. Click Refresh on the dashboard to force a recalculation.
Can I install StockOracle AI on a multisite network?
The free plugin can be network-activated, but is designed for single-site operation. Each subsite gets its own set of custom tables. Pro licensing is per-domain — contact support for network/multisite pricing.
WooCommerce
Does it work with WooCommerce HPOS (High Performance Order Storage)?
Yes. StockOracle AI is fully HPOS-compatible and declares compatibility via FeaturesUtil::declare_compatibility('custom_order_tables', true). The WC_Compat layer auto-detects whether HPOS is active and queries wc_orders or wp_posts accordingly. Switching HPOS on or off requires no reconfiguration.
Which order statuses are counted in sales velocity?
By default, only wc-completed orders are counted in velocity and sales calculations. Pending, processing, and refunded orders are excluded to ensure accuracy. Use the stockoracle_velocity_calculation filter to adjust if needed.
Does it support variable products?
Yes. Variable products are supported. Each variation is treated as a separate SKU in the Inventory Analysis table. The parent product's summary rolls up variation stock. If a variation has stock management disabled, it inherits from the parent.
My store has external/virtual products. Will they skew the data?
External and virtual products (digital downloads, services) are included in sales velocity but excluded from stock value calculations (since they don't have physical stock). They won't generate reorder alerts because stock management is typically disabled on these products.
Data & Privacy
What data does the plugin store?
StockOracle AI creates three custom tables:
  • stockoracle_daily_sales — Aggregated (product_id, date, quantity_sold). No customer data.
  • stockoracle_cache — Computed metrics cache. No customer data.
  • stockoracle_stockout_log — Timestamps when products went out of stock. No customer data.
Settings are stored in wp_options under the stockoracle_settings key.
Is StockOracle AI GDPR compliant?
The free plugin stores no personal customer data. All data is aggregated at the product level (quantities, dates). No customer names, emails, or order IDs are stored in StockOracle tables. The Pro AI Forecasting feature (BYOK) sends product/stock data to your chosen AI provider — a disclosure is shown in the admin UI before the feature is enabled.
What happens to my data if I uninstall?
When you delete (not just deactivate) the plugin from the Plugins screen, uninstall.php runs and permanently removes: all three custom tables, all stockoracle_* WordPress options, and all scheduled cron events. Your WooCommerce order and product data is never touched.
Features
How is the reorder point calculated?
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. For example, if avg_daily_sales = 5 units, lead_time = 7 days, and safety_stock = 3 days: reorder_point = (5×7) + (3×5) = 50 units.
What's the difference between SMA and WMA forecasting?
SMA (Simple Moving Average) gives equal weight to all periods in the forecast window — useful when demand is stable.

WMA (Weighted Moving Average) uses 3× weight for the most recent period, 2× for the middle, and 1× for the oldest — useful when recent trends are more predictive. StockOracle AI uses WMA as the primary forecast with SMA as a cross-check. The confidence score is derived from the coefficient of variation between periods.
Can I set different lead times for different products?
In the free plugin, lead time is a global setting. With Pro, you can assign suppliers to products, and each supplier has its own lead time that overrides the global default. You can also use the stockoracle_reorder_quantity filter to implement per-product logic programmatically.
My health score is 0. Why?
A score of 0 usually means either: (a) all your products are out of stock, (b) all products are flagged as dead stock, or (c) no velocity data exists yet (new store). Check the five individual factor scores on the dashboard for a breakdown of which factors are pulling the score down. Click Refresh to force a recalculation.
Pro & Licensing
How many sites can I use one Pro license on?
One standard license = one domain. Multi-site licenses are available — see the pricing page at themefreex.com/stockoracle-ai-pro. Development/staging domains on localhost or .local TLDs do not consume a license slot.
What happens if my Pro license expires?
When your license expires: Pro features are deactivated (but not deleted), automatic updates stop, and you see a renewal notice in the admin. All data created by Pro features (purchase orders, supplier records, warehouse data) is preserved. Renewing your license at themefreex.com instantly restores all functionality.
Does Pro require the free plugin to be installed?
Yes. StockOracle AI Pro is an addon, not a standalone plugin. It requires the free plugin to be installed and activated. The Pro plugin checks for defined('STOCKORACLE_VERSION') at boot and displays an admin notice if the free plugin is missing.
Troubleshooting
The charts are blank or not loading. How do I fix this?
Chart issues are usually caused by:
  • JS conflict — Another plugin is using an older version of Chart.js. Check your browser console for errors. StockOracle uses its own bundled chart.min.js enqueued only on StockOracle pages.
  • Empty data — The store has no completed orders in the analysis period. Check your settings to ensure the Analysis Period covers your order history.
  • Caching plugin — Aggressive JS minification may break the chart init code. Exclude StockOracle admin pages from minification.
The CSV export is blank or corrupted. What's wrong?
A corrupted CSV is almost always caused by PHP output buffering issues — another plugin or theme printing output before the CSV headers. Check for:
  • Themes/plugins that add HTML before the wp_head hook
  • PHP notices/warnings output (enable WP_DEBUG_LOG to capture these without outputting)
  • UTF-8 BOM issues in Excel — the file includes a BOM for Excel compatibility; most modern spreadsheet software handles this correctly
WP-Cron isn't running. The 30-day chart stays empty.
Install the WP Crontrol plugin to verify that stockoracle_daily_data_collection is scheduled and running. WP-Cron only fires when someone visits your site — if traffic is very low, the cron may not run daily. The fix is to use a real server cron. See the WP-Cron Setup section in Getting Started.
Where can I get support?
  • Free plugin — WordPress.org support forums (searched/answered by the Codefreex team)
  • Pro users — Priority support at themefreex.com/support with 1-business-day response SLA
  • Email — hello@codefreex.com for pre-sales questions