I Built a WooCommerce Inventory Forecasting Plugin — Self-Hosted, No Monthly Fees
Source: Dev.to
Introduction
After months of development, I just launched StockPulse — a WooCommerce plugin that turns your order history into an inventory intelligence system.
Running a WooCommerce store means constantly answering questions like:
- “How many days of stock do I have left for each product?”
- “When should I reorder before I run out?”
- “Which products have been sitting in my warehouse for 60+ days with zero sales?”
Existing solutions are either expensive SaaS tools ($49–199/month) or ancient CodeCanyon plugins that haven’t been updated since 2017. StockPulse is self‑hosted, a one‑time payment solution with no external API calls.
Features
Days of Stock Remaining
Calculates how many days your current stock will last based on your actual sales velocity.
Smart Reorder Points
Tells you exactly when to reorder, factoring in your supplier lead time plus a 25 % safety buffer.
reorder_point = (daily_velocity × lead_time_days) + safety_stock
safety_stock = daily_velocity × (lead_time_days × 0.25)Dead Stock Detection
Flags products with 60+ days of stock and zero recent sales so you can run promotions before they become a write‑off.
30/60/90‑Day Demand Forecasts
Projects future demand using three algorithms (SMA, WMA, Exponential Smoothing) with automatic selection based on data availability.
Email Alerts
Notifies you when products hit critical stock levels.
CSV Export
Full data export for deeper analysis.
Technical Details
- Built with PHP 7.4+ (OOP, PSR‑4 structure)
- Vanilla JS + Chart.js for the admin dashboard
- WordPress REST API for data endpoints
- WP‑Cron for daily cache refresh
- Fully HPOS‑compatible (uses
wc_get_orders()— no raw SQL on order tables) - All calculations happen on your server – no data leaves your store
- GDPR compliant by design
- No API key to manage, no external service to go down
Demo
Try it out:
CodeCanyon Listing
Call for Feedback
I’d love feedback from the WooCommerce/WordPress developer community. What features would you like to see in v1.1?