- ホーム
- Apps
- Specialized Solutions
- Unbuild, Disassembly & Salvage Orders
イメージプレビューA build-to-order Odoo module that turns rejects, returns, and rework into structured unbuild/disassembly orders
— recovering components back to stock with defined salvage yields, preserved lot/serial traceability, and correct recovered-component valuation.
ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19.
Unbuild, Disassembly & Salvage Ordersとは?
A build-to-order Odoo module that turns rejects, returns, and rework into structured unbuild/disassembly orders — recovering components back to stock with defined salvage yields, preserved lot/serial traceability, and correct recovered-component valuation. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19. 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
本番稼働 + サポート
約1週間(営業日ベース)で稼働し、本番稼働後2週間のサポートが付きます。納品したコードの不具合は無償で修正します。
技術仕様
- Odoo互換性
- Odoo 17, Odoo 18, Odoo 19
- エディション
- Enterprise&Community
- ライセンス
- ライセンスの確認が必要です
- Python要件
- Python 3.10+
- データベース
- PostgreSQL 12+
この製品について
Every plant accumulates value it can't sell: quality-failed finished goods, customer returns, superseded assemblies, and rework candidates sitting in a quarantine bin. Odoo's native mrp.unbuild order does exist, but it is deliberately simple — it consumes one finished product and returns the exact BOM component quantities to stock, with no concept of partial recovery, scrap-versus-salvage split, per-component yield, condition grading, or the fact that a disassembled unit rarely gives back 100% of its bill of materials. Teams end up doing the recovery math in spreadsheets, manually creating inventory adjustments, and losing the lot/serial thread between the parent unit and the parts pulled out of it. That breaks traceability and quietly distorts inventory valuation.
ECOSIRE builds a dedicated Unbuild, Disassembly & Salvage layer on top of Odoo's manufacturing core. We extend mrp.unbuild (or introduce a governed ecosire.salvage.order model where a cleaner separation is warranted) with per-BOM-line salvage definitions: for each component you declare an expected recovery yield, a condition/disposition (reuse, rework, scrap, warranty-return), and a destination location. A compute/@api.depends layer derives recoverable quantities and recovered value from the parent unit's inventory cost and your yield rules, so the stock moves that get generated reflect what actually came off the line — not an idealized BOM explosion. Lot and serial numbers are preserved on disassembly: the module writes stock-move lines that link each recovered component's lot/serial back to the parent's serial, so stock.lot traceability (upstream and downstream) stays intact and auditable. When a unit fails quality, the order can spawn a rework loop that feeds the salvaged components straight into a new manufacturing or repair order rather than back to raw stock.
Technically, the module ships as a proper Odoo addon: a versioned __manifest__.py declaring dependencies on mrp, stock, and quality (Enterprise) or a Community-safe fallback; new models.Model classes with fields, compute methods, and constraints; access control via ir.model.access.csv plus record rules for multi-company and warehouse-level isolation; backend list/form/kanban views in XML with OWL components for the salvage-yield editor; a QWeb "Disassembly & Recovery" report showing recovered components, condition, and revalued cost; and optional automated actions (e.g., auto-create a salvage order when a quality.check fails). Everything is reachable over the standard XML-RPC / JSON-RPC API, so WMS, PLM, or reverse-logistics systems can create and read salvage orders programmatically. Recovered-component valuation posts correctly through Odoo's inventory valuation (standard or AVCO), so your stock and COGS reflect reclaimed value.
Because this is build-to-order, nothing is a shrink-wrapped download. We start with a short scoping call, confirm your BOM structure, valuation method (Community vs Enterprise differences matter here), quality workflow, and Odoo version (17.0, 18.0, or 19.0), then write a fixed-scope specification. We build against a copy of your configuration, run UAT on a staging database, and hand over installable source, documentation, and a git repository. Typical delivery is one working week from confirmed scope, followed by a post-go-live support window. You own the code.
得られるもの
- Installable module source code built for your exact Odoo version (17.0, 18.0, or 19.0), Community or Enterprise
- On-site or remote installation and configuration against your production Odoo, including BOM/valuation/quality wiring
- Technical documentation: data model, `compute` logic, security rules, automated actions, and API endpoints
- End-user guide plus a live training session for production, quality, and inventory teams
- UAT on a staging database with a documented rollback plan before any production change
- Post-go-live support window for defect fixes and configuration questions
- Git repository handover with full commit history and branch/tag for your version
- Signed-off fixed-scope specification and acceptance checklist
これは誰のためのものですか
Manufacturing Operations Manager
Runs the reject/rework floor and needs failed and returned units turned into structured disassembly orders so recovered components flow back to stock predictably instead of via spreadsheets and manual inventory adjustments.
Quality Manager
Wants a quality failure to automatically trigger a salvage/disassembly decision, with each recovered component graded for reuse, rework, or scrap, and full lot/serial traceability preserved for audits and warranty claims.
Inventory & Costing Controller
Needs recovered components to post at correct value through Odoo's inventory valuation so reclaimed stock and COGS are accurate, and needs the disassembly report to reconcile what was consumed against what was recovered.
Reverse-Logistics / Returns Lead
Handles customer returns and superseded assemblies and needs to create and query salvage orders over the XML-RPC/JSON-RPC API from the returns or WMS system, routing parts to reuse, rework, or warranty-return locations.
Unbuild, Disassembly & Salvage Orders の比較方法
| 基準 | エコシエール | カスタムビルド | 競合他社 | Odoo 標準機能 |
|---|---|---|---|---|
| Partial / graded recovery | Per-BOM-line yield %, condition and disposition per component | Whatever you spec and can build in-house | Rarely — most stop at fixed BOM return | None — returns full BOM quantities only |
| Lot/serial preservation on disassembly | Recovered parts linked back to parent serial, traceability intact | Possible but easy to get wrong without deep MRP knowledge | Inconsistent; often breaks the parent link | Basic; no salvage-aware linkage |
| Recovered-component valuation | Revalued via `compute` through standard/AVCO, posts to COGS/stock | Depends on your accounting expertise | Usually returns at BOM cost, not recovered value | Returns at component cost, no recovery logic |
| Rework-loop / quality integration | Auto-trigger from failed `quality.check`, spawn rework/repair order | Buildable but significant effort | Seldom integrated with Quality | Manual and disconnected |
| Fit to your BOMs & process | Scoped to your BOM structure, valuation and workflow | Fully tailored — you own the effort | Generic; you adapt to its assumptions | Generic core behavior |
| Delivery model | Build-to-order, one working week, UAT on staging + rollback | Your timeline and internal capacity | Instant install, then you fill the gaps | Already present, limited |
| Source & ownership | Full source + git repo handover, you own it | You own it | Vendor-locked, encrypted or licensed | Odoo core, not customizable without dev |
| Support & upgrades | Post-go-live window + optional version-upgrade retainer | Your team maintains it | Vendor SLA varies; upgrades often paid | Covered by your Odoo maintenance only |
Unbuild, Disassembly & Salvage Orders に関するよくある質問
How is this different from Odoo's built-in Unbuild order?
Native `mrp.unbuild` returns the exact BOM component quantities to stock and nothing more — no partial recovery, no per-component yield, no condition grading, no scrap-vs-salvage split, and no linkage from a quality failure. We add all of that: declared recovery yields per BOM line, disposition routing, preserved lot/serial linkage to the parent unit, recovered-component revaluation, and rework-loop integration.
What is the delivery lead time?
This is a build-to-order module, not an instant download. Typical delivery is one working week from confirmed scope. After a short scoping call we write a fixed-scope specification; once you sign off, we build against a copy of your configuration, run UAT on staging, and hand over the installable source and git repository.
How are updates and support handled after go-live?
Every engagement includes a post-go-live support window for defect fixes and configuration questions. Because you receive the full source and git repository, you own the code outright. We offer version-upgrade work (e.g., 18.0 to 19.0) and ongoing support as a separate, optional retainer.
Does it work on Odoo Community or only Enterprise?
Both. The core unbuild/salvage/valuation logic runs on Community. Some features — notably auto-creating a salvage order from a failed `quality.check` — depend on the Enterprise Quality app, so we confirm your edition during scoping and provide a Community-safe fallback (e.g., manual or server-action trigger) where a feature relies on Enterprise-only modules.
Is lot and serial traceability preserved when a unit is disassembled?
Yes. The disassembly stock moves write `stock.move.line` records that link each recovered component's lot/serial back to the parent unit's serial, so Odoo's upstream/downstream traceability on `stock.lot` remains intact and auditable for warranty and compliance.
Can our other systems create salvage orders automatically?
Yes. The models are exposed over the standard XML-RPC and JSON-RPC API, so your WMS, returns portal, or PLM can create, read, and update salvage/disassembly orders programmatically — for example creating a salvage order the moment a return is booked.
Which Odoo versions are supported?
We build and test against Odoo 17.0, 18.0, and 19.0, respecting each release's `mrp` and `stock` API differences. You tell us your target version during scoping and we deliver a version-matched build.
関連モジュール

Warehouse Management System (WMS) Pro for Odoo
A barcode-driven warehouse management layer for Odoo that adds zone/bin locations, putaway strategies, wave/batch/cluster picking and mobile operations on top of core Inventory. ECOSIRE builds it to your fulfillment workflow, then installs and supports it.
Unbuild, Disassembly & Salvage Orders
A build-to-order Odoo module that turns rejects, returns, and rework into structured unbuild/disassembly orders — recovering components back to stock with defined salvage yields, preserved lot/serial traceability, and correct recovered-component valuation. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19.
- Extends Odoo's native `mrp.unbuild` (or a governed `ecosire.salvage.order` model) to support partial and graded recovery instead of a fixed BOM explosion
- Per-BOM-line salvage yield definition — declare expected recovery percentage and quantity for each component of the parent unit
- Condition/disposition routing per component: reuse-to-stock, send-to-rework, scrap, or warranty-return, each with its own destination `stock.location`
- Recovered-component valuation via `compute`/`@api.depends` from the parent's inventory cost, posting through standard or AVCO valuation so stock and COGS stay accurate


