ML demand forecasts that replace static reorder rules with dynamic min/max, safety stock and EOQ across every Odoo warehouse. One-time license from $499.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

ML demand forecasts that replace static reorder rules with dynamic min/max, safety stock and EOQ across every Odoo warehouse.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Odoo's native reorder rules force you to hand-set a fixed min and max on every product, in every warehouse, forever. Demand shifts, seasons turn, a promo lands — and your static thresholds quietly bleed cash: cash trapped in overstock on slow movers, and lost sales on the fast ones you under-buy. This build-to-order module replaces that guesswork with a machine-learning demand engine that reads your own Odoo sales history and recalculates optimal stocking policy on a schedule.
Historical-sales demand forecasting per product using a Prophet-style time-series model that decomposes trend and seasonality from your `sale.order.line` and `stock.move` history
Per-warehouse forecasting so each `stock.warehouse` gets its own demand curve instead of one blended company-wide number
Per-warehouse stockout-risk score that flags SKUs projected to hit zero before the next scheduled receipt
Dynamic minimum/maximum quantities recomputed on a schedule and written back into native `stock.warehouse.orderpoint` reorder rules
Safety-stock calculation derived from forecast error and a configurable target service level (e.g. 95%)
Economic Order Quantity (EOQ) computed from vendor lead time, holding cost and ordering cost, exposed as an `@api.depends` compute field
ECOSIRE designs, builds, installs and supports this as a net-new module tailored to your catalog, your warehouses and your Odoo version (17, 18 or 19; Community or Enterprise). It is NOT an off-the-shelf apps.odoo.com download — after purchase we scope your data, engineer the models and hand over a running, documented, supported system. Typical delivery is 2–4 weeks.
Under the hood, a Python forecasting layer (Prophet-style time-series with seasonality and trend decomposition) trains on sale.order.line and stock.move history per product and per stock.warehouse. A new ecosire.demand.forecast model stores the predicted demand curve, while compute fields decorated with @api.depends derive dynamic minimum/maximum quantities, safety stock (from forecast error and your target service level) and Economic Order Quantity (EOQ) from lead time, holding cost and order cost. A scheduled ir.cron job refreshes forecasts nightly and — where you allow it — writes the results straight back into Odoo's own stock.warehouse.orderpoint reorder rules, so the standard Replenishment dashboard and procurement run keep working exactly as your team already knows them, just with intelligent numbers instead of static ones.
Every product is auto-classified — fast / medium / slow / dead — using ABC-XYZ style velocity and variability analysis, surfaced in filterable list and Kanban views (XML/OWL) so planners can see at a glance where cash is stuck and where stockout risk is climbing. A per-warehouse stockout-risk score flags SKUs likely to hit zero before the next receipt. When you're ready to act, one click generates draft purchase orders (or internal transfers) grouped by vendor, respecting MOQs and lead times, ready for your buyer to review and confirm.
Access is locked down with ir.model.access.csv plus record rules so planners see only their own warehouses, and a QWeb PDF replenishment report gives buyers and management a clean, printable order plan. A documented JSON-RPC/XML-RPC surface lets external BI, PLM or supplier systems read forecasts and push actuals. You keep full control: nothing auto-purchases without human confirmation unless you explicitly opt in.
Owns min/max and reorder rules today and is drowning in per-SKU manual tuning. Wants dynamic thresholds, clear stockout-risk flags and dead-stock visibility so they stop fire-fighting and start planning.
Confirms POs and manages vendor relationships. Wants EOQ- and MOQ-aware, vendor-grouped draft orders and a clean printable plan, without losing final human sign-off on every purchase.
Answers for working capital and service levels. Wants less cash frozen in overstock, fewer lost sales from stockouts, and auditable forecast accuracy — all inside the Odoo system the business already runs.
Buy the license on ecosire.com and download the AI Demand Forecasting & Auto-Replenishment for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for AI Demand Forecasting & Auto-Replenishment for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Demand forecasting method | ML time-series (Prophet-style) trained on your own sales history, with seasonality and trend | Whatever you can build and maintain in-house — often a spreadsheet or basic average | Usually simple moving averages or fixed formulas, if any | |
| Min/max & safety stock | Dynamic, recomputed nightly per warehouse from forecast error and service level | Possible but you own all the math and upkeep | Often static or semi-manual thresholds | |
| EOQ & MOQ-aware ordering | EOQ computed from lead time, holding and order cost; POs honor MOQ | Only if you code and validate it yourself | Rarely included, varies by app | |
| Stock classification (fast/slow/dead) | Automatic ABC-XYZ style fast/medium/slow/dead with dashboard tiles | Manual analysis or custom reports | Sometimes basic ABC only | |
| Writes back to native reorder rules | Yes — updates `stock.warehouse.orderpoint`, procurement run unchanged | Depends on your integration effort | Varies; some bypass native flows | |
| Tailoring & ownership | Built for your catalog, warehouses and version; you own the code | Fully yours but you carry all build risk and time | Generic; limited to the vendor's roadmap | |
| Delivery & support | 2–4 week build, install, training, support window, upgrade path | Your team's timeline and your team's support burden | Instant install but self-serve / ticket support |
This is a build-to-order module, not an instant download. After purchase we scope your sales history, catalog and warehouses, then engineer, install and validate the module — typically 2–4 weeks depending on data volume and how many warehouses and edge cases are involved. We deploy to staging first, run it against your real history, then promote to production with a rollback plan. You'll get a delivery timeline confirmed in writing at kickoff.
Every build includes a post-go-live support window for bug fixes and forecast tuning, plus documentation and a recorded training session. Beyond that window we offer ongoing support and maintenance plans, and we handle updates and Odoo version upgrades (17 → 18 → 19) as a defined, quoted service. Because we build the module for you, we know the codebase and can extend or adjust it as your catalog and processes evolve.
We build for Odoo 17, 18 and 19, on both Community and Enterprise. The forecasting layer and dynamic policy engine are custom Python, so they don't depend on Enterprise-only apps — but if you run Enterprise we integrate cleanly with its inventory and purchase features. Tell us your exact version and edition at kickoff and we target it precisely.
No — it enhances them. Instead of bypassing Odoo, the module writes its computed min/max, safety stock and reorder quantities back into the standard `stock.warehouse.orderpoint` records. Your Replenishment dashboard, procurement run and existing routes keep working exactly as your team knows them; the numbers are just smarter. You can also run it in advisory-only mode where it never writes back automatically.
Accuracy depends on your data history and demand stability, so we don't quote fictional numbers — instead the module tracks forecast accuracy (MAPE and bias) per product so you can see and audit real performance over time, and we tune the models during the support window. Purchasing stays human-in-the-loop by default: the system generates draft POs and transfers for your buyer to review and confirm. Full automation is available only if you explicitly enable it.
Forecasts are computed per `stock.warehouse`, so each location gets its own demand curve, safety stock and reorder policy rather than a blended company-wide figure. Access is controlled with `ir.model.access.csv` and record rules, so a planner can be restricted to only the warehouses they own. External systems can read forecasts and post actuals through documented JSON-RPC/XML-RPC endpoints, keeping your data inside Odoo.
Primarily your Odoo sales and stock history — `sale.order.line` and `stock.move` records — plus vendor lead times, MOQs, and holding/order cost assumptions. The more clean history you have, the faster the models warm up. We handle the backfill and ingestion as part of the build, and we validate the forecasts against known periods before go-live so you can trust the output.
ML demand forecasts that replace static reorder rules with dynamic min/max, safety stock and EOQ across every Odoo warehouse.