Need Raw Material Serial Number Traceability for Finished Goods in ERPNext V15

Hi ERPNext Community,

I am working on a manufacturing flow in ERPNext V15 and need help regarding batch/serial number traceability for finished products and replacement management.

Question 1: Raw Material Serial Tracking Against Finished Goods

My customer manufactures machines and wants full traceability of raw material serial numbers used in each finished machine.

Example:

For 1 Machine:

  • 2 Spindles

  • 1 PCB

For 1 PCB:

  • 2 Sockets

  • 3 Wire Sets

For 5 Machines, total consumption becomes:

  • 10 Spindles

  • 5 PCB

  • 10 Sockets

  • 15 Wire Sets

All these items are serial-numbered items.

Currently in ERPNext, stock quantity and serial numbers are deducted correctly during manufacturing, but we cannot identify:

  • Which raw material serial numbers were consumed in a specific finished machine serial number

  • Which spindle/PCB/socket/wire-set serial belongs to which machine

We want complete backward traceability from Finished Goods Serial Number → Raw Material Serial Numbers.

Is there any standard feature, manufacturing setting, or recommended workflow in ERPNext V15 to achieve this?


Question 2: Serial Number Replacement / Service Traceability

This question is related to the first one.

Suppose a machine is sold to a customer and after some time one raw material item becomes defective.

Example:

  • Machine Serial No: MCH-0001

  • PCB Serial No: PCB-001 becomes defective

  • It is replaced with PCB Serial No: PCB-010

We want to track:

  • Which machine had the defective serial item

  • Which serial item was removed

  • Which new serial item was installed as replacement

  • Complete service/replacement history of the machine

What is the best practice in ERPNext V15 for handling:

  • Serialized spare replacement

  • Service traceability

  • Machine maintenance history

  • Installed serial number tracking

Should this be managed using:

  • Maintenance module?

  • Stock Entry?

  • Serial No document?

  • Asset repair workflow?

  • Customization?

Any guidance, workflow suggestions, or real-world implementation examples would be very helpful.

Thank you!

Will this work for your use case? It’s only on v16 though.

Example:

Currently, I am using ERPNext V15 in my actual project, but I tested this feature in the ERPNext V16 demo:

I tried the manufacturing flow and checked the Serial and Batch Traceability Report, but I am still confused about how raw material serial tracking works for finished goods.

I manufactured 2 machines:

  • MAC-001

  • MAC-002

Raw materials used:

  • 4 Spindles:

    • SPI-001

    • SPI-002

    • SPI-003

    • SPI-004

  • 2 PCBs:

    • PCB-001

    • PCB-002

All items are serialized.

When I check the Serial and Batch Traceability Report, it only shows one machine (for example MAC-001) and then lists all raw material serial numbers below it.
But the report does not clearly show:

  • Which 2 spindle serial numbers were used in MAC-001

  • Which 2 spindle serial numbers were used in MAC-002

  • Which PCB serial number belongs to which machine

So I want to understand the actual workflow in ERPNext v16.

My Questions

  1. During manufacturing, does ERPNext v16 allow us to manually select which raw material serial numbers are consumed for each finished machine serial number?

Example:

  • MAC-001 uses:

    • SPI-001

    • SPI-002

    • PCB-001

  • MAC-002 uses:

    • SPI-003

    • SPI-004

    • PCB-002

  1. Or does ERPNext v16 automatically track this mapping internally?

  2. If ERPNext v16 supports this, then how can we properly view the relationship between:

  • Finished Goods Serial Number

  • Consumed Raw Material Serial Numbers

Because currently the traceability report is not giving a clear machine-wise mapping.

Am I missing some configuration, manufacturing setting, or recommended workflow?

Any guidance or real-world example would be very helpful.

Thank you.

The current work around would be to make separate Stock Entries for each quantity. That should work.

Can you also make a GitHub feature request on the repo for this?

Thank you mihir.