Skip to main content
Stock Card Report — A made-to-order Odoo Stock Card report that shows opening balance, every in/out move, and running closing — 1/1Illustrative preview

A made-to-order Odoo Stock Card report that shows opening balance,

every in/out move, and running closing balance per product, location, and date range.

ECOSIRE builds, installs, and supports it after you request a quotation.

What is Stock Card Report?

A made-to-order Odoo Stock Card report that shows opening balance, every in/out move, and running closing balance per product, location, and date range. ECOSIRE builds, installs, and supports it after you request a quotation. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Per-product stock card with opening balance computed as of the report start date from done `stock.move.line` records
Chronological in/out transaction rows with quantity in, quantity out, and a running closing balance carried down each line
Transient wizard (`models.TransientModel`) for report parameters: product/variant, location or warehouse, date range, and optional lot/serial
Location-aware balances that reuse Odoo's native `location_id` domain so figures reconcile to standard on-hand and Inventory valuation
QWeb PDF and HTML report layout plus an on-screen filterable list/pivot view built in XML/OWL
Drill-down from any card row back to the originating `stock.move` and source document (receipt, delivery, internal transfer, adjustment)
Lot/serial-level stock cards when tracked products require serial traceability in the ledger
Unit-of-measure display per row with correct conversion against the product's reference UoM
Multi-warehouse and multi-location support with per-location subtotals and consolidated totals
Access control via `ir.model.access.csv` plus record rules for branch/warehouse-level data isolation
Menu integration under Inventory and, optionally, an automated action or scheduled month-end email export
`XML-RPC`/`JSON-RPC` API exposure so stock cards can be pulled into BI tools, portals, or external reconciliation jobs
Optional CSV/XLSX export of the rendered card for hand-off to auditors and accounting reconciliation
Version-matched build for Odoo 17.0, 18.0, or 19.0 on Community or Enterprise with a clean `__manifest__.py`

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Warehouse and finance teams constantly need a single ledger-style view of how a product's on-hand quantity got to where it is: what it opened at for a period, every receipt and delivery that moved it, and where it closed. Odoo core gives you the stock.move and stock.move.line data and the on-hand/forecasted figures on the product form, plus the Inventory Report and Stock Report pivots — but none of them render as a classic stock card: an opening balance, a chronological in/out transaction list with a running balance, and a closing balance you can hand to an auditor or reconcile against your accounts. Teams end up exporting move lines to spreadsheets and rebuilding that running balance by hand, per product, every month-end. That is slow, error-prone, and impossible to audit consistently.

This is a build-to-order module that ECOSIRE designs, builds, installs, and supports for your specific Odoo database — it is not an existing download you install yourself. We build a dedicated stock card engine on top of Odoo's native inventory ledger. A transient wizard (a models.TransientModel) collects the report parameters — product or product variant, warehouse/location, date range, and optional lot/serial — and a computed query walks stock.move.line (with state = 'done') to derive the opening balance as of the start date, list each qualifying move with quantity in, quantity out, unit of measure, source/destination location, reference document, and a @api.depends-style running closing balance carried down the rows. The report respects the same location_id domain logic Odoo uses for on-hand quantities, so the numbers reconcile to the standard Inventory valuation rather than drifting from it.

Delivery is rendered as a QWeb PDF/HTML report and a filterable on-screen list/pivot view (XML views, OWL where interactivity helps), so users can drill from a card row into the underlying stock move. Access is scoped with ir.model.access.csv and, where you need warehouse-level separation, record rules so a branch only sees its own locations. We wire the report into the Inventory menu, expose it over the XML-RPC/JSON-RPC API if you want to pull cards into a BI tool or portal, and can add an automated action or scheduled export (email the month-end cards to finance) if that is in scope. Everything ships with a proper __manifest__.py, is version-pinned to your Odoo edition, and works on Community or Enterprise (Enterprise-only widgets are used only when you run Enterprise).

Because it is built to order, we start with a short scoping call to confirm your exact fields, filters, valuation basis, and multi-warehouse rules, then build against Odoo 17.0, 18.0, or 19.0 to match your database. Typical delivery is one working week from confirmed scope, on a fixed quote agreed after scoping. Pricing starts from $999 (indicative, single-company base scope); multi-company consolidation, extra localization or valuation methods (FIFO/AVCO nuances, lot/serial-level cards), heavy historical data migration, or additional integrations increase the quoted scope. You receive the full installable source and git repository at handover — no lock-in.

What you get

  • Installable source code for your Odoo version (17.0, 18.0, or 19.0), Community or Enterprise
  • Installation and configuration on your staging then production database
  • Technical documentation: data model, computed-balance logic, security rules, and manifest notes
  • End-user guide plus a live training session for warehouse and finance users
  • UAT on a staging copy with a documented rollback plan before production go-live
  • Post-go-live support window for defect fixes and questions
  • Full git repository handover with commit history and no vendor lock-in
  • Handover walkthrough covering how to extend filters, fields, and the QWeb layout

Who this is for

Inventory / Warehouse Manager

Runs Odoo Inventory daily and needs a proper stock card per product — opening balance, every movement, closing balance — to answer 'why is on-hand this number?' without exporting move lines to a spreadsheet each time.

Finance / Accounting Controller

Reconciles inventory value to the general ledger at month-end and wants an auditable, ledger-style card that ties movements to closing quantities and standard valuation, ready to hand to internal or external auditors.

Auditor / Compliance Reviewer

Needs traceable, chronological evidence of stock movements per product and location — including lot/serial where tracked — with drill-down to the source document, exported as PDF or XLSX for the audit file.

Operations Director (multi-warehouse)

Oversees several branches or warehouses and needs per-location stock cards with record-rule isolation so each site sees only its own stock while head office gets the consolidated view.

How Stock Card Report Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Opening/closing balance cardPurpose-built ledger card with running balancePossible but you build the balance logic from scratchGeneric card, may not fit your fields/filtersNo stock card view; only pivots and on-hand figures
Fit to your processScoped to your exact fields, filters, and warehouse rulesFully bespoke if you have the developer timeFixed feature set; you adapt to itStandard reports only, no tailoring
Reconciles to Odoo valuationReuses native `location_id` domain, ties to on-handDepends on your implementation qualityVaries; often recomputes independentlyNative figures, but no card presentation
Multi-warehouse isolationRecord rules per branch plus consolidated viewYou design and test the security modelRarely includes record-rule isolationStandard access groups, no per-card scoping
Install & configurationWe install on staging then productionYour team or contractor handles itSelf-install from the marketplaceBuilt in, nothing to install
Support & warrantyPost-go-live support window plus source handoverOnly what you arrange internallyVendor ticket queue, variable SLAOdoo standard support/maintenance only
Version coverageBuilt for 17.0/18.0/19.0, Community or EnterpriseWhatever you build and maintainDepends on the listing's supported versionsCurrent version behavior only
OwnershipFull source and git repo, no lock-inYou own it outrightLicensed, source may be obfuscatedN/A — core feature

Frequently Asked Questions about Stock Card Report

Is this an app I can download and install right now?

No. This is a build-to-order module. ECOSIRE builds it for your specific Odoo database, then installs, configures, and supports it. There is no instant download — you request a quotation and we build it to your confirmed scope.

How long does delivery take?

Typical delivery is one working week from confirmed scope. We start with a short scoping call, agree the exact fields, filters, and warehouse rules, then build, test on staging, and deploy. Complex multi-company or heavy data-migration scope can extend the timeline, which we state in the quote.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for single-company base scope. After a scoping call we give you a fixed quote. Drivers such as multi-company consolidation, lot/serial-level cards, extra valuation methods, historical data migration, or API/BI integrations increase the quoted scope.

Will the numbers match Odoo's standard on-hand and valuation?

Yes. The report is built on Odoo's native `stock.move.line` ledger and reuses the same `location_id` domain logic Odoo uses for on-hand quantities, so opening and closing balances reconcile to standard Inventory figures rather than drifting from them.

Which Odoo versions and editions are supported?

We build and version-pin to Odoo 17.0, 18.0, or 19.0 to match your database, on Community or Enterprise. Enterprise-only widgets are used only when you run Enterprise; the core stock card logic works on Community.

What about support and future updates?

Every build includes a post-go-live support window for defect fixes and questions. Because you receive the full source and git repository, you can extend it yourself or engage us for version upgrades and enhancements later — there is no lock-in.

Can we get the card over the API or as a scheduled export?

Yes, if it is in scope. We can expose the stock card over Odoo's `XML-RPC`/`JSON-RPC` API for BI tools or portals, and add an automated/scheduled action to email month-end cards to finance or drop CSV/XLSX exports for reconciliation.

Request a quote

Stock Card Report

A made-to-order Odoo Stock Card report that shows opening balance, every in/out move, and running closing balance per product, location, and date range. ECOSIRE builds, installs, and supports it after you request a quotation.

  • Per-product stock card with opening balance computed as of the report start date from done `stock.move.line` records
  • Chronological in/out transaction rows with quantity in, quantity out, and a running closing balance carried down each line
  • Transient wizard (`models.TransientModel`) for report parameters: product/variant, location or warehouse, date range, and optional lot/serial
  • Location-aware balances that reuse Odoo's native `location_id` domain so figures reconcile to standard on-hand and Inventory valuation

Request a Quotation

Tell us about your Stock Card Report requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.