When ERPNext disassembly orders dismantle finished goods
A disassembly order in ERPNext takes a finished item that has already been produced and breaks it back into its component items, returning those components to stock so they can be reused, repaired or scrapped. Teams need this when a finished unit comes back from the field, through a customer return or from a quality hold and cannot be sold as it is. Without a controlled breakdown, the parts that could still be recovered sit in an informal state, their cost stays attached to a finished item that no longer exists in that form, and the stock and valuation records drift away from what is physically on the shelf.
A disassembly order is not the same as a manual stock entry adjustment. An adjustment can change quantities, but it does not carry the link to the original work order or the bill of materials that defined the finished item, so the reader loses the trail that explains which components should come back and in what quantities. The order is the record of the breakdown itself, so reporting, traceability and the valuation of the recovered parts can be followed from the source. Confirm in your ERPNext version exactly which fields the order pulls from the source record and which it leaves for manual entry.
Before anyone creates the order, decide four things. First, which completed work order and bill of materials the returned unit traces to, since a unit built under an older BOM may not return the components you expect. Second, which components are reusable, which need inspection and which go to a scrap or quarantine warehouse. Third, how the recovered parts will be valued, and who approves that value. Fourth, whether serial or batch numbers must follow the parts after they return to stock. Check the release you run against the Frappe supported versions page before you finalize the process, because support windows affect when the workflow is worth standardizing.
Which disassembly approach fits your situation
This table compares four ways to return parts to stock after a finished good is taken apart, and what each one changes in stock quantities and valuation. Read each row against the condition of the parts and how much traceability your auditors or costing team need. Confirm in your ERPNext version how each option posts entries and values components before you standardize on one.
| Approach | When it fits | What it changes in stock and valuation |
|---|---|---|
| Full disassembly of a completed work order | Finished good is dismantled entirely and most components are reusable and traceable to the original work order | Finished good leaves stock, components return to their warehouses, and value is assigned to the recovered parts (confirm the valuation method in your version) |
| Partial recovery of selected components | Only some parts are worth keeping, and the rest are damaged or unusable | Selected components return to stock with their own valuation, while the unrecovered portion stays as a loss or moves to scrap |
| Write off damaged parts to a scrap warehouse | Parts are damaged beyond reuse but still need to be tracked for disposal or scrap sale | Damaged items move to a scrap warehouse at scrap value, so the difference is visible in stock and cost reporting |
| Plain stock reconciliation | A one-off correction where no disassembly record exists and the physical count differs from the system | Quantities and valuation are set directly, with no link to a work order or BOM, so traceability is weaker |
| Disassembly without a current BOM | The finished good has no BOM or the BOM no longer matches the product as built | Recovered components cannot be derived from the BOM, so quantities and values must be entered manually and checked against the physical result |
How to set up disassembly orders in ERPNext
This sequence prepares ERPNext so that a disassembly order can return components from a finished good to stock with correct quantities and valuation. Each step ends with a check that confirms the setup before the next one begins.
Confirm the BOM and its components
Start by reviewing the BOM for the finished good you plan to dismantle. Confirm that every component listed is the item you expect to recover, that quantities per unit match the physical product, and that any sub-assemblies are modelled the way your production team builds them. Ask the production lead to sign off on the BOM, since a disassembly order can only recover what the BOM describes. Done when a test work order against that BOM produces the component quantities your shop floor actually consumes.
Design the warehouses and scrap warehouse
Decide where recovered components should land and where damaged parts should go. Create or confirm a target warehouse for good recovered stock, a quarantine or inspection warehouse for parts that need review, and a scrap warehouse for parts that cannot be reused. Document who owns each warehouse and which stock movements are allowed into it. Done when the warehouse tree in ERPNext shows these locations with the correct company and parent, and a sample stock entry to each one posts without error.
Set up user roles and document permissions
Identify who creates, submits and cancels disassembly orders, and who only views the resulting stock. Assign roles with the minimum rights each person needs, and review the permission rules for Stock Entry and the Work Order so that users cannot edit submitted records. Keep the number of users who can cancel documents small and record the approver for each disassembly. Done when a test user with the warehouse role can create a draft, a second user can submit it, and a user without rights is blocked from editing or cancelling it.
Prepare a non-production test site
Build a separate ERPNext site that mirrors your company, items, BOMs, warehouses and valuation method, using a copy of master data rather than live transactions. Do not enable custom server scripts on a shared hosted environment without confirming the platform allows them, since server scripts are disabled by default from version 15. Keep this site available for the full test cycle so that changes can be reproduced. Done when the test site holds the same master data as production and the team can reset it to a known state.
Run a disassembly test on the test site
Complete a finished good in a test work order, then create a disassembly order from that completed work order. Record one intact component, one damaged component routed to quarantine and one part routed to scrap. Submit the document and confirm each line posts to the warehouse you designed. Done when the test order is submitted, the quantities match the recorded outcome, and the team has written down any mismatch between the BOM and the physical recovery.
Verify stock quantities after each movement
After each submitted entry, check the stock ledger and the stock balance report for every affected item and warehouse. Confirm that the finished good decreases, the recovered components increase in the target warehouse, and damaged parts appear in quarantine or scrap with the expected quantity. Compare the totals against the physical count for the test batch. Done when stock balances reconcile to the expected quantities for every item, with no unexplained difference.
Check component valuation and accounting entries
Review the valuation of each recovered component and the value moved out of the finished good. Confirm which valuation method the items use, check the general ledger entries created by the submitted document, and confirm that scrap is valued the way your finance team expects. Involve the finance owner in this check, because valuation drives cost of goods and inventory reporting. Done when the stock value report and general ledger reconcile for the test document and the finance owner approves the treatment in writing.
Record the approved procedure and repeat the check
Write a short operating procedure that states the steps, roles, warehouses and checks used in testing, then repeat one test cycle with a different finished good or batch to confirm the result holds. Store the signed-off test evidence with the procedure so that auditors and reviewers can trace the setup. Confirm with your own compliance team which records they must retain. Done when a second test produces the same reconciled results and the procedure is approved for use on the production site.
How component valuation is set on returned parts
Component valuation on a disassembly order decides whether the recovered parts carry their original raw material cost back into stock or are written down, and that choice flows straight into the finished goods value. In ERPNext, the recovered components are received into stock on the disassembly order, so the finance team needs to confirm how the valuation rate for each returned item is derived before the first order is submitted. Ask your implementation lead to walk through one disassembly with a known finished goods cost and trace the rate on every stock ledger and general ledger line it produces. Valuation behavior depends on your accounting setup, your stock settings and the ERPNext version you run, so confirm it in your own environment rather than assuming the result from a demo site.
Damaged parts need their own decision. A component that cannot be reused should not be returned at full raw material value, because the finished goods cost being reversed would then be overstated relative to what the business actually recovers. Decide in advance whether damaged parts go to a scrap or quarantine warehouse, whether they are valued at zero, at salvage value or at a percentage of cost, and who approves that figure. The accounting entries created by the disassembly, including the stock movements and the offsetting entries to the work in progress or finished goods accounts, should be reviewed against that policy, not only against the quantities on the order.
Before closing the period, the finance team should review every disassembly order in the period for matching quantities, the valuation rates applied, any scrap or damaged stock still sitting in quarantine, and whether the stock ledger and general ledger balances agree for the affected warehouses. Check that reversals and corrections are approved by someone outside the shop floor, and keep the approval trail with the order. Ask your auditors and your accounting team to confirm how the recovered value should be classified, since the treatment of recovered components can differ by framework and by company policy. DeployOpen can prepare the configuration and the review checklist, but the accounting treatment itself is set by your finance function and its advisers.
Access control and audit trail for disassembly entries
A disassembly order moves stock back into component warehouses, so it needs the same access discipline as any stock entry. The cards below cover who should create and submit these entries, how roles and approvals limit reversals, what the audit trail records, and where unauthorized movements tend to start.
Who may create and submit
Decide which roles can create a disassembly order and which can submit it, since submission is what posts stock and valuation. In most plants, the shop floor supervisor drafts the entry and a separate stock controller submits it. Confirm in your own ERPNext instance which roles hold create, read, write and submit rights on Stock Entry and the related work order documents, and remove submit rights from roles that only need to record activity.
Role permissions as the first limit
Role permissions in ERPNext apply per DocType and can be narrowed with user permissions, for example by warehouse or company. Use these to stop a user who can see every warehouse from returning components to stock somewhere they do not manage. Test the restriction with a non-administrator account, because administrator accounts bypass most of these checks.
Approval steps before stock posts
ERPNext can route documents through Workflow rules so a draft disassembly entry waits for a named approver before it can be submitted. Map the workflow states to the physical steps: damage assessed, parts removed, quantities counted, then approved. Confirm that the workflow conditions cannot be edited by the same roles that submit the entry.
Cancellation and reversal rights
A submitted disassembly entry is reversed by cancelling it, which is a separate permission from submitting. Restrict cancel rights to a small group, and require a reason in your own process notes. Check how cancelled entries affect the work order and the valuation of the recovered components before you grant this right widely.
Audit trail of document changes
ERPNext keeps a version history of changed documents and a timeline of comments and status changes. Use this to show who created, edited, submitted and cancelled each disassembly entry, and when. Confirm the retention period of version records in your deployment and export them if your auditors need a longer period.
Unauthorized stock movement risks
The main risks are a user recovering components from a damaged finished good without a matching work order, or entries posted to a warehouse that does not reflect the physical location. Review stock ledger entries and the stock balance report on a schedule, and compare recovered quantities against the scrap and damage records raised on the shop floor.
Questions teams ask before dismantling finished goods in ERPNext
What drives the cost of setting up disassembly orders in ERPNext?
The cost is driven mainly by how many product families need disassembly, how complex their BOMs are, and how much valuation and stock logic must be settled before go-live. Self-hosting ERPNext is free under its GPL-3.0 license, so the spend is labor: internal staff time or a partner's fixed-scope fee, plus any hosting you buy. Ask a partner to price each product family separately, to state which items are one-time (configuration, testing, training) and which recur (support, upgrades, new product families), and to list what the quote assumes about your existing BOMs and warehouses.
How long does it take to configure disassembly orders in ERPNext?
Duration depends on the number of product families, how clean your existing work orders and BOMs already are, and how many warehouses and approval steps the process needs. Configuration on a single product family with a clear BOM is usually much shorter than a multi-site rollout with serialized stock. No duration figure has been established here, so ask for a timeline tied to a written scope, with separate phases for design, a test site, data checks and user training.
What does my team need to provide before a partner starts?
A partner needs accurate BOMs for the finished goods, a list of the component items and their warehouses, your valuation method, and a decision on who approves disassembly and write-offs of damaged parts. You also need a sample of recent completed work orders so the team can test how components return to stock. Name one business owner from finance or operations who can sign off on valuation rules, because those decisions change the accounting entries and are hard to reverse later.
Can our in-house team set up disassembly orders without a partner?
Yes, if your team already runs ERPNext manufacturing and understands BOMs, work orders and stock entries. The configuration itself is standard ERPNext functionality, so the main risks are wrong valuation rules and untested edge cases, such as partial disassembly or damaged parts recorded to the wrong warehouse. Build a test site from a copy of your data, run a set of representative scenarios, and have finance review the resulting journal entries before the process goes live.
How do we handle serialized or batched items when dismantling finished goods?
Serialized and batched items need the disassembly to reference the specific serial numbers or batch IDs being broken down, so that stock records stay traceable. Decide in advance whether a serial number is retired when its product is dismantled, or whether components inherit a new traceability record. For batch-tracked components, confirm how partial returns are recorded and whether quality inspection is required before returned parts re-enter saleable stock. Test these cases on a sample of serialized and batched items before you rely on them.
What does a partner scope before quoting disassembly orders?
A partner typically scopes the product families in use, the BOM structure and any multi-level sub-assemblies, the warehouses and scrap locations, the valuation and costing rules, the approval steps for damaged parts, and the reports finance needs. The scope should also cover testing with your data, user training, and handover documentation. Ask for these items to be listed in the written scope with deliverables and acceptance criteria, and ask what is excluded, such as custom reports or integrations with other systems.
Which parts of this work carry compliance risk?
The main risk is that valuation and write-off entries are wrong, which affects financial records. If your products fall under regulated quality or traceability rules, the records of disassembly, component recovery and damaged-part disposal may also become evidence in an assessment. DeployOpen prepares systems, controls and evidence for compliance assessments but does not issue audit reports or certifications, so confirm with your auditor which records they will expect and how long they must be kept.
Checks that keep stock and valuation reconciled
A disassembly order moves value in two directions at once: finished goods leave stock and components come back at a valuation you set. The checks below run after every order so that the stock ledger, warehouse balances and valuation reports tell the same story before the accounting owner signs off.
Review the stock ledger entries
Open Stock Ledger Report filtered to the finished item and the component items for the disassembly date and voucher. Confirm one outgoing entry for the finished good and one incoming entry per recovered component, each pointing to the same Stock Entry. Check that quantities match what the work order produced and that no component entry is missing or duplicated. Any mismatch here usually traces back to a partial recovery that was entered as a full one.
Confirm warehouse balances by location
Run Stock Balance for the source warehouse, the component warehouse and any scrap or quarantine warehouse. Compare the closing quantities with a physical count or with the expected figure from the disassembly plan. Damaged parts routed to a scrap warehouse should appear there and not in saleable stock. Ask the warehouse lead to confirm the bins physically before the period closes, because a balance can look correct while the parts sit in the wrong location.
Check the valuation of recovered components
Compare the valuation rate on each incoming component line with the rate you agreed for the disassembly. Look at the Stock Value Difference on the Stock Entry and at the Stock Ledger valuation columns to see whether the recovered parts entered at cost, at a fixed rate or at zero. Record the basis for the rate in the entry remarks so an auditor can trace it. Unexplained zero-value components are the most common reason valuation reports drift from the general ledger.
Reconcile valuation to the general ledger
Run Stock Ledger and Stock and Account Value Comparison to confirm that stock value per warehouse agrees with the stock-in-hand balances in the chart of accounts. Differences created by a disassembly should match the value movement on that Stock Entry. Investigate any gap before the next period close rather than posting a manual journal to clear it, since a plug entry hides the cause.
Record the accounting owner's sign-off
Keep a written sign-off by the accounting owner for each batch of disassembly orders in the period. The record should list the Stock Entry names, the valuation basis used, the reconciliation report outputs and any exceptions with their resolution. Agree in advance who may approve valuation rates and who may post adjustments. Confirm with your auditors what form of evidence they accept, since the sign-off template is your organization's control, not a product feature.
How DeployOpen scopes and delivers ERPNext disassembly configuration
DeployOpen plans, configures and documents ERPNext disassembly orders as part of a self-hosted ERPNext implementation in infrastructure you control. We start from how your finished goods are actually broken down, agree the scope in writing, and hand over configuration your team can run and change.
How we scope
- Map which finished goods are dismantled, which components are recovered, and which parts are scrapped instead.
- Agree in writing which work orders can be the source of a disassembly order and who may create one.
- Confirm the warehouses, scrap handling and valuation method your accounting team expects before any build starts.
- Name the roles and permissions needed to create, submit and cancel disassembly entries.
How we build
- Configure disassembly order settings, item defaults and warehouse mapping in a non-production ERPNext site first.
- Add custom fields or server scripts only where the agreed process needs them, and check that Server Scripts are permitted on your hosting.
- Test partial dismantling, damaged component removal and valuation outcomes against sample data your accountants approve.
- Keep customizations in an exported, version-controlled app so changes can move between environments.
How we hand over
- Deliver a written configuration record covering item setup, warehouses, valuation rules and approval steps.
- Provide step-by-step procedures for shop floor and stores staff, with examples labeled as illustrative.
- Run a walkthrough with finance, stores and production supervisors before go-live, and record the decisions made.
- Document the upgrade and regression checks to repeat after each ERPNext minor or major release.
How we support
- Engagements are fixed-scope, so changes to the disassembly process are quoted from a revised written scope.
- Ongoing support, upgrades and testing are available as a retainer if your team wants continued help.
- Ask any partner to confirm which disassembly features your ERPNext version supports before you commit to a design.
- Agree who owns configuration changes after handover so accounting and production rules stay consistent.

