- होम
- Apps
- SaaS Tools
- Cancel Landed Cost for Odoo
उदाहरणात्मक पूर्वावलोकनA build-to-order Odoo module that lets you cancel, reset to draft,
and delete posted landed cost records while cleanly reversing the stock valuation and accounting entries they created.
ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment.
Cancel Landed Cost for Odoo क्या है?
A build-to-order Odoo module that lets you cancel, reset to draft, and delete posted landed cost records while cleanly reversing the stock valuation and accounting entries they created. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
प्रमुख सुविधाएँ
ऑर्डर पर निर्मित, पूरी तरह आपके लिए तैयार
स्वयं सेटअप की ज़रूरत नहीं — ECOSIRE द्वारा निर्मित, इंस्टॉल और समर्थित एक कार्यशील ऐप।
- 1
आप ऑर्डर करते हैं
एक बार के निर्माण मूल्य से शुरू करें। किकऑफ़ पर हम आपके साथ मिलकर दायरा तय करते हैं।
- 2
हम बनाते और इंस्टॉल करते हैं
ECOSIRE इसे आपके Odoo पर बनाता, कॉन्फ़िगर और इंस्टॉल करता है।
- 3
लाइव + समर्थन
आप लगभग एक कार्य सप्ताह में लाइव हो जाते हैं, गो-लाइव के बाद दो सप्ताह के समर्थन के साथ। हमारे द्वारा दिए गए कोड की खामियाँ निःशुल्क ठीक की जाती हैं।
तकनीकी विनिर्देश
- Odoo संगतता
- Odoo 17, Odoo 18, Odoo 19
- संस्करण
- Enterprise और Community
- लाइसेंस
- लाइसेंस की पुष्टि आवश्यक है
- Python आवश्यकता
- Python 3.10+
- डेटाबेस
- PostgreSQL 12+
इस उत्पाद के बारे में
In standard Odoo, a landed cost (stock.landed.cost) is intentionally hard to undo once validated. The moment you post it, Odoo allocates the freight, duty, insurance, and handling amounts across the target stock moves, writes the adjustment onto the stock.valuation.layer records, and — for real-time (perpetual) valuation categories — posts a journal entry that debits inventory and credits the landed-cost expense/clearing account. There is no native "cancel" button and no supported reset-to-draft path. When a warehouse or finance user picks the wrong receipt, keys a duty amount off by a decimal, applies a cost to the wrong product category, or simply validates a duplicate, the only sanctioned fix Odoo offers is to book a second, opposite landed cost to net it out. That leaves a permanent trail of offsetting records, inflated valuation layers, and reconciliation noise that auditors and month-end close teams have to explain every period.
This is where a typical off-the-shelf apps.odoo.com module and Odoo core both run out of road: core gives you no cancel action at all, and generic marketplace add-ons frequently just flip a state flag without truly reversing the downstream valuation layers and journal items, which silently corrupts your inventory valuation. ECOSIRE builds a made-to-order module that adds a first-class, auditable cancellation lifecycle to stock.landed.cost. We introduce a controlled cancel state and a guarded reset-to-draft path on the model, and — critically — we generate proper accounting reversals rather than deletions: the module creates a reversing account.move (using Odoo's native reversal mechanics) so the general ledger stays balanced and traceable, unwinds or neutralizes the stock.valuation.layer rows the cost created, and restores the affected stock moves' additional landed-cost amounts to their pre-application values. Deletion of a landed cost is permitted only from a safe state and only when no irreversible downstream dependency exists.
Technically, the work centers on subclassing stock.landed.cost (and its stock.valuation.adjustment.lines) with new state transitions guarded by @api.depends/@api.constrains logic, a set of button-triggered methods (action_cancel, action_reset_to_draft, action_unlink_guard) wired into inheriting XML/OWL form views, and reversal routines that call into account.move._reverse_moves() and the valuation-layer APIs so we never bypass Odoo's own accounting engine. Access is locked down through ir.model.access.csv plus record rules and a dedicated security group, so only authorized inventory/finance roles can cancel a posted cost — with an optional approval step via an automated action or activity. Every cancellation is logged to the chatter and (optionally) a mail.activity, giving you a complete audit trail. We respect Community vs Enterprise differences (Anglo-Saxon vs Continental accounting, real-time vs manual/periodic valuation, and multi-currency landed costs) and expose the cancel/reset actions over the XML-RPC/JSON-RPC API so your integrations and automated flows can call them programmatically. The module ships tagged for Odoo 17.0, 18.0, and 19.0 with the appropriate __manifest__.py version and dependency pins for the version you run.
Because this is build-to-order, nothing is sold as an instant download. After a short scoping call we confirm your exact requirements — Odoo version, edition, valuation method, approval workflow, and any localization or multi-company nuances — then build, test on a staging copy of your database, and deploy behind a UAT sign-off with a rollback plan. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company deployments, additional approval/automation logic, deep localization requirements, or reconciliation of large volumes of historical landed-cost data increase the quoted scope. You receive a fixed quote after the scoping call — never a surprise on the invoice.
What you get
- Installable, commented source code for the module version built to your Odoo release (17.0/18.0/19.0)
- Installation and configuration on your environment, including security group and access-rule setup
- Technical documentation: model changes, state machine, reversal logic, and security design
- End-user guide plus a live training session for your inventory and finance teams
- UAT on a staging copy of your database with a documented rollback plan
- Post-go-live support window for defect fixes and questions
- Git repository handover with full commit history and tagged release
- Configuration notes covering valuation method, approval workflow, and multi-company behavior
Who this is for
Inventory / Warehouse Manager
Runs goods receipts and applies freight and duty as landed costs daily. Needs a safe, reversible way to undo a mistakenly validated cost without booking confusing offsetting entries that clutter the receipt history.
Finance Controller / Accountant
Owns month-end close and inventory valuation accuracy. Wants cancellations that create clean, traceable reversing journal entries and restore valuation layers, so the GL and stock valuation always reconcile.
Odoo Administrator / ERP Lead
Maintains the Odoo deployment and its integrations. Needs the cancel/reset capability exposed over the API, locked to the right security group, and delivered as clean, version-pinned code they can maintain.
External Auditor / Compliance Reviewer
Reviews inventory and cost adjustments. Requires a complete audit trail showing who cancelled what, when, and the exact reversing entries — not silent state flips or deleted records.
How Cancel Landed Cost for Odoo Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo नेटिव |
|---|---|---|---|---|
| Cancel a posted landed cost | First-class cancel state with true reversal | Possible but you design and test it yourself | Often a state flag only, no real reversal | No cancel action exists at all |
| Accounting reversal | Balanced reversing move via native `_reverse_moves()` | Depends on your team's accounting rigor | Frequently deletes or skips journal items | Only by booking an offsetting landed cost |
| Valuation layer integrity | Unwinds `stock.valuation.layer` cleanly | Easy to miss, risking corrupted valuation | Inconsistent; may leave stale layers | Layers remain; nets out via second cost |
| Security & approval | Dedicated group, record rules, optional approval | Whatever you build in | Usually minimal access control | No cancellation to control |
| Audit trail | Full chatter log of who, when, why | Only if you implement it | Often absent or partial | Offsetting records only, no context |
| Odoo version fit | Built and tested for your 17/18/19 release | Your responsibility to maintain | May lag or not match your version | N/A |
| Delivery & risk | Staging UAT + rollback plan + support window | Full project risk on your team | Install-and-hope, no tailoring | No change, but no capability |
| Total cost of ownership | Fixed quote, maintained by us | High build + ongoing maintenance cost | Low upfront, hidden reconciliation cost | Free, but recurring manual cleanup |
Frequently Asked Questions about Cancel Landed Cost
How long does delivery take?
This is a build-to-order module, not an instant download. Typical delivery is one working week from confirmed scope, depending on your Odoo version, valuation method, and any approval or multi-company requirements. We agree the timeline with you in writing after the scoping call.
Does cancelling actually reverse the accounting, or just change a status?
It genuinely reverses it. The module uses Odoo's native `account.move` reversal mechanics to post a balanced reversing journal entry, unwinds the `stock.valuation.layer` rows the cost created, and restores the affected stock moves. We never just flip a state flag and leave your valuation corrupted.
Which Odoo versions and editions are supported?
We build for Odoo 17.0, 18.0, or 19.0, Community or Enterprise. We handle edition-specific differences such as Anglo-Saxon vs Continental accounting and real-time vs manual/periodic valuation, and pin the `__manifest__.py` to your exact release.
How does pricing and scoping work?
Pricing starts from $999 (indicative, single-company base scope). Drivers such as multi-company, custom approval workflows, deep localization, or migrating large volumes of historical landed-cost data increase the quoted scope. After a short scoping call you receive a fixed quote — no surprises on the invoice.
What about support and future Odoo updates?
Every build includes a post-go-live support window for defect fixes and questions. When you upgrade to a newer Odoo version, we can re-target and re-test the module against that release as a separate scoped engagement.
Will it corrupt my existing inventory valuation?
No. Cancellation is guarded by constraints that block the action when an irreversible downstream dependency exists, and we test every scenario on a staging copy of your database under UAT before touching production, with a rollback plan in place.
Can the cancel action be triggered from our integrations?
Yes. The cancel and reset-to-draft actions are exposed over Odoo's XML-RPC/JSON-RPC API, so your external systems and automated flows can call them programmatically, subject to the same security group and record-rule permissions.
Related Modules

Budget Management with Cost Centers
Plan, control and track budgets across analytic accounts and cost centers with live spend-vs-plan variance in Odoo 17/18/19.

CalDAV Connector
A build-to-order Odoo module that keeps your Odoo calendar in genuine two-way sync with external CalDAV services. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17/18/19 environment.

Canned Replies & Snippet Library
A shared, searchable library of reusable canned responses and macros that plug into Discuss, the mail compose wizard, the unified inbox and helpdesk. Built to order, installed and supported by ECOSIRE.

Cash Book, Day Book & Bank Book Financial Reports
A build-to-order Odoo module that adds true cash book, day book, and bank book statements on top of your live accounting data — filtered, drill-down, and export-ready. ECOSIRE scopes, builds, installs, and supports it for Odoo 17/18/19.
Cancel Landed Cost
A build-to-order Odoo module that lets you cancel, reset to draft, and delete posted landed cost records while cleanly reversing the stock valuation and accounting entries they created. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19 environment.
- Adds a first-class `cancel` state and guarded reset-to-draft transition to `stock.landed.cost` via model inheritance
- Generates proper accounting reversals through Odoo's native `account.move._reverse_moves()` rather than deleting journal items, keeping the GL balanced and auditable
- Unwinds or neutralizes the `stock.valuation.layer` rows the landed cost created, so inventory valuation returns to its true pre-application state
- Restores each affected stock move's additional landed-cost amount to its original value on cancel