A build-to-order Frappe app that adds scheduled ABC-based cycle counts, mobile scan-based counting, and blind recount and variance-approval workflows to ERPNext, so inventory accuracy stays high without full stocktakes. ECOSIRE scopes, builds, installs, and supports it on your v15 or v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that adds scheduled ABC-based cycle counts, mobile scan-based counting, and blind recount and variance-approval workflows to ERPNext, so inventory accuracy stays high without full stocktakes. ECOSIRE scopes, builds, installs, and supports it on your v15 or v16 site.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Warehouse teams running ERPNext usually discover inventory drift the hard way: a Sales Order confirms stock the bin does not actually hold, or a year-end count writes off value nobody can explain. ERPNext ships a Stock Reconciliation DocType and a Stock Balance report, but that is a manual, all-or-nothing correction tool. It has no concept of a recurring count cadence, no ABC prioritization so high-velocity SKUs get counted more often, no blind-count discipline to stop counters from rubber-stamping the system quantity, and no structured approval before an adjustment posts to your stock ledger and General Ledger. Once you have more than a few hundred SKUs across multiple Warehouse records and bins, the native path effectively forces a full physical stocktake to trust your numbers — which is exactly what continuous cycle counting exists to avoid.
`Cycle Count Plan` DocType defining count cadence per ABC class, scoped by `Warehouse`, item group, and brand
Daily `scheduler_events` job that auto-classifies items into A/B/C bands using stock-ledger consumption or valuation value
Automatic generation and assignment of `Cycle Count Sheet` tasks so high-velocity SKUs are counted more frequently than slow movers
Mobile scan-based counting that reuses the ERPNext `Item` `barcode` field for item and bin scanning on phones/handhelds
True blind counting: system on-hand quantity hidden from the counter until submission to prevent rubber-stamping
Configurable variance tolerance that forces a mandatory recount before a sheet can be submitted
ECOSIRE builds a dedicated Frappe app that installs cleanly onto your bench as its own module, so nothing in ERPNext core is patched and upgrades stay safe. We add DocTypes such as Cycle Count Plan (ABC-class cadence rules, warehouse and item-group scope), Cycle Count Sheet (the count task assigned to an operator), and Count Variance (a per-line discrepancy record). A scheduler_events entry in hooks.py runs a daily job that reads each plan, classifies items into A/B/C bands by consumption or valuation value using ERPNext's own Bin and stock-ledger data, and auto-generates count sheets so the right SKUs surface on the right day — A-class items far more often than C-class.
Counting itself is scan-driven. Operators open an assigned Cycle Count Sheet on a phone or handheld, scan the item barcode (reusing ERPNext's existing barcode field on Item) and the bin, and enter a counted quantity — with the system quantity hidden by default so the count is genuinely blind. A validate doc-event and whitelisted server methods (exposed through the Frappe REST API for the mobile client) compute the variance, and a configurable tolerance triggers a mandatory recount before anything can be submitted. Confirmed variances flow through a Frappe Workflow: a supervisor reviews each Count Variance, and on approval an on_submit hook posts a scoped Stock Reconciliation for only the counted lines, writing a full audit trail of who counted, who approved, and when. Count-accuracy KPIs — hit rate, absolute variance, and value variance by bin and by operator — are delivered as Query/Script Reports and dashboard charts. Role profiles and permission rules keep counters, supervisors, and stock managers cleanly separated, and client scripts streamline the scan-and-count screen.
Because this is build-to-order, you are not downloading a fixed marketplace app. We start with a short scoping call to confirm your warehouse and bin structure, ABC rules, tolerance thresholds, and approval chain, then build against your Frappe/ERPNext v15 or v16 site. You get the installable app source for your version, installation and configuration on your environment, a UAT pass on a staging bench with a rollback plan, and a post-go-live support window. Typical delivery is 2–4 weeks from confirmed scope, and the full git repository is handed over to you at the end.
Owns inventory accuracy across multiple warehouses and bins on ERPNext. Needs a recurring, prioritized count cadence and clear accuracy KPIs by bin and operator instead of a disruptive annual stocktake.
Runs day-to-day stock integrity and investigates discrepancies. Needs blind counting, enforced recounts on out-of-tolerance variances, and a full audit trail before any adjustment posts to the ledger.
Responsible for the Frappe site and its upgrade path. Wants cycle counting delivered as a standalone module with clean hooks, whitelisted APIs, and role profiles — no core patches that break v15/v16 upgrades.
Cares that stock valuation on the balance sheet is trustworthy. Wants variance value tracked and every adjustment approved and auditable before it flows through to the General Ledger.
Buy the license on ecosire.com and download the Cycle Counting & Stock Audit for ERPNext app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install Cycle Counting & Stock Audit for ERPNext and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Count scheduling | Automated ABC-class cadence via daily scheduler job | Whatever you build; often manual triggers | Fixed schedule, limited ABC logic | |
| Blind counting | System qty hidden until submit, enforced | Possible but must be built and tested | Sometimes optional, rarely enforced | |
| Variance approval | Frappe Workflow with supervisor sign-off | Depends on developer discipline | Basic or absent approval step | |
| Mobile scan counting | Scan-driven screen over whitelisted REST APIs | Extra project scope to build | Varies; often web-only | |
| Accuracy KPIs | Hit rate and variance by bin and operator | Build your own reports | Limited or generic dashboards | |
| Upgrade safety | Standalone module, no core patches, v15/v16 | Risk of core edits and upgrade breakage | Depends on app quality | |
| Fit to your rules | Scoped to your warehouses, tolerances, approvals | Fully custom but you own the risk | Generic, one-size configuration | |
| Support & handover | Post-go-live window plus full git repo | Only if separately contracted | Vendor SLA, no source handover |
No. This is a build-to-order engagement, not a Frappe Marketplace download. ECOSIRE builds the app against your specific ERPNext version and warehouse rules, then installs and supports it. There is no instant-download package.
Typical delivery is 2–4 weeks from confirmed scope. After the scoping call we lock the ABC rules, tolerances, and approval chain, build the app, run a UAT pass on a staging bench, and then schedule go-live. Complex multi-warehouse or heavily customized sites may extend this, which we flag during scoping.
We build and test for Frappe/ERPNext v15 and v16. The app installs as its own module and does not patch ERPNext core, so your normal upgrade path stays intact. Tell us your exact version and hosting (Frappe Cloud, self-hosted, or ECOSIRE-managed) during scoping.
Approved variances post through a scoped `Stock Reconciliation` covering only the counted lines — never a blanket warehouse overwrite. Every adjustment carries a full audit trail: who counted, who approved, timestamps, and the originating count sheet, so finance can trust the resulting valuation.
No. Cycle counting is designed to replace disruptive full stocktakes. The scheduler generates small, prioritized count sheets daily based on ABC class, so counters check a manageable subset each day while operations continue. Existing ERPNext stock data is used as the starting baseline.
Yes to mobile: counting runs on phones or handhelds by scanning the existing ERPNext item and bin barcodes, with whitelisted REST endpoints backing the screen. Offline-first behavior is an optional scope item we confirm during the scoping call, since it affects the mobile client architecture.
Every engagement includes a post-go-live support window for defect fixes and configuration tuning, and you receive the full git repository so your team can maintain or extend it. Longer-term support, feature additions, and version-upgrade retesting are available as a follow-on arrangement.
A build-to-order Frappe app that adds scheduled ABC-based cycle counts, mobile scan-based counting, and blind recount and variance-approval workflows to ERPNext, so inventory accuracy stays high without full stocktakes. ECOSIRE scopes, builds, installs, and supports it on your v15 or v16 site.