A build-to-order Odoo module that restricts product cost price visibility to the exact user roles you nominate, hardened across form views, list views, reports, and the RPC API. ECOSIRE scopes, builds, installs, and supports it for your database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
アプリマニフェスト
あなたのワークフローに合わせて構築
A build-to-order Odoo module that restricts product cost price visibility to the exact user roles you nominate, hardened across form views, list views, reports, and the RPC API. ECOSIRE scopes, builds, installs, and supports it for your database.
自分での設定は不要 — ECOSIRE が構築・インストール・サポートする実働アプリです。
一回限りの構築料金から始めます。キックオフで一緒に範囲を決めます。
ECOSIRE がお客様の Odoo 上で構築・設定・インストールします。
約2〜4週間で稼働し、リリース後のサポート期間が付きます。
Cost price is one of the most sensitive numbers in your Odoo database, yet by default it is visible to anyone who can open a product form. Salespeople, POS cashiers, warehouse operators, and external consultants all land on the product.template / product.product standard_price field with nothing standing between them and your margins. Odoo's native controls only get you part of the way there: you can gate the field behind the groups="..." attribute in a view or hide it with the Product Costs access group, but that leaves the value fully readable through list exports, invoice and inventory valuation reports, the Developer Tools inspector, and any read() call over XML-RPC/JSON-RPC. The moment a user has export rights or a bit of technical curiosity, "hidden in the view" stops being hidden.
We build a Hide Cost Price module that treats cost visibility as a first-class access-control concern rather than a UI convenience. At the presentation layer we apply groups and computed-visibility on standard_price (and related cost fields such as product.supplierinfo price, purchase price on stock moves/layers, and margin columns) across every form, tree, kanban, and search view where it surfaces. But the enforcement does not stop at the view: we add an ORM guard so that users outside the authorized security group receive a masked or zeroed cost when they read the field — including through list-view exports, read_group aggregations, and direct RPC calls — while authorized users see the real figure. This is driven by a dedicated security group defined in the manifest, wired through ir.model.access.csv and record rules, so "who can see cost" becomes an assignable role, not a scattered set of view tweaks.
Technically, the module is a clean, versioned addon: a __manifest__.py declaring the new group_view_cost_price security group and its data files, a small models/ layer that overrides the relevant read/compute paths using @api.depends and environment-context checks (self.env.user.has_group(...)), XML view inheritance to bind the groups attribute onto every cost-bearing field, and adjustments to QWeb report templates so cost columns render blank or "—" for unauthorized users on valuation, margin, and sale/purchase reports. We keep the logic idempotent and upgrade-safe so it survives future Odoo updates, and we test the escape hatches specifically — export, RPC, studio-added views, and superuser bypass expectations are all covered. It works on Community and Enterprise, and we target Odoo 17.0, 18.0, and 19.0 with a build matched to your exact edition and version.
Delivery is build-to-order. After a short scoping call we confirm precisely which cost fields, reports, and RPC surfaces must be locked, which security group(s) map to your org's roles, and how masking should behave (blank, zero, or "restricted"). We build against a copy of your configuration, validate on a staging database with a rollback plan, and hand over installable source plus a git repository. Typical delivery is 2-4 weeks from confirmed scope. Pricing starts from $249 (indicative, single-company base scope); multi-company cost isolation, custom report templates, additional cost-bearing models, and stricter RPC/export hardening increase the quoted scope. You receive a fixed quote after the scoping call — never a surprise on the invoice.
CFOs and finance leads who need standard cost and margin locked to accounting and management, invisible to sales, POS, and warehouse staff, with the certainty that exports and reports don't leak the number.
The internal admin who owns roles and security groups and wants cost visibility managed as an assignable group with clean `ir.model.access.csv` and record rules, not a fragile pile of per-view `groups` edits.
Teams that grant portal, consultant, or contractor access and must ensure those users — and any RPC integration they touch — can transact on products without ever reading purchase cost.
Controllers running several companies in one database who need cost isolated per company and role, so shared catalogs don't expose one entity's buying prices to another.
| 基準 | エコシエール | カスタムビルド | 競合他社 | オドゥー ネイティブ |
|---|---|---|---|---|
| Cost hidden in product views | All form, tree, kanban, search views gated by security group | Possible, but only the views you remember to edit | Usually gates the main product form field | |
| Export / list-dump protection | Masked in CSV/XLSX export for unauthorized roles | Rarely covered unless explicitly built | Often leaks via export | |
| RPC / API enforcement | ORM read guard masks cost over XML-RPC/JSON-RPC | Depends entirely on developer diligence | Typically view-only, RPC exposes real cost | |
| Report masking | QWeb valuation/margin/analysis columns masked by role | Extra bespoke work per report | Seldom touches reports | |
| Role model | Dedicated assignable security group + record rules | However the developer wires it | Usually a single fixed group | |
| Upgrade safety (17/18/19) | Idempotent inheritance, tested per version | Maintenance is on you | Varies; may lag Odoo releases | |
| Delivery model | Build-to-order, installed + supported, 2-4 weeks | In-house build and maintenance | Instant download, self-install | |
| Support & handover | Training, docs, git repo, post-go-live window | Internal only | Vendor ticket queue, no source guarantee |
No. This is a build-to-order module. ECOSIRE builds it against your exact Odoo edition and version, matched to your roles and reports, then installs and supports it. There is no instant download — you request a quotation and we build.
Typical delivery is 2-4 weeks from confirmed scope. After the scoping call we agree on the exact cost fields, reports, and RPC surfaces to lock; the timeline depends on how many models and custom reports are in scope, multi-company requirements, and staging/UAT.
Pricing starts from $249 as an indicative single-company base scope. We hold a short scoping call, then issue a fixed quote — no surprises on the invoice. Drivers like multi-company cost isolation, extra cost-bearing models, custom report masking, and stricter export/RPC hardening increase the quoted scope.
Odoo can hide `standard_price` in a view via the `groups` attribute or the Product Costs access group, but the value stays readable through list exports, valuation and margin reports, the developer inspector, and RPC `read()` calls. We enforce the restriction at the ORM and report layers as well, so hiding the field actually hides the number.
Yes — that is a core reason to build it. Users and integrations outside the authorized security group receive the masked value through `read`, `read_group`, and CSV/XLSX export, not just in the on-screen form. We test these escape hatches explicitly.
You get a post-go-live support window for fixes and questions, plus a git handover. The module is written to be upgrade-safe and idempotent. When you move to a new Odoo major version, we can quote a compatibility pass for 17.0, 18.0, or 19.0 as needed.
Both. The security group, ORM guard, and view/report masking rely on core ORM and security mechanisms present in Community and Enterprise alike. We build and test against your specific edition and version.
A build-to-order Odoo module that restricts product cost price visibility to the exact user roles you nominate, hardened across form views, list views, reports, and the RPC API. ECOSIRE scopes, builds, installs, and supports it for your database.