Adapting ERPNext to Metal Manufacturing (PPGI, Slitting, Roll Forming)

X

Hello Frappe Community,

I’m seeking guidance on how best to structure ERPNext to handle our specialized metal manufacturing operation. Our challenge lies in complex, multi-stage production flows and precise traceability requirements for coiled materials.

1. Our Business Model: Multi-Stage Manufacturing

We produce several lines of products from coiled raw materials:

Production Stage Input Materials Output / Process Final Products
Stage 1: PPGI Painting GI Coil + Powder Coating/Paint Coating and Curing Pre-Painted Galvanized Iron (PPGI) Coils (Intermediate Good)
Stage 2: Slitting HRC/CRC/GI Coils Coil is slit into multiple narrow strips. (Primary material transformation) Steel Strips / Sheets (Intermediate Good)
Stage 3: Forming PPGI Coils / Steel Strips Roll Forming, Bending Corrugated Sheets, Angle, Rail, Studs, Wall Lining Channel (Finished Goods)

2. Our Critical Traceability & Consumption Challenges

Our most important need is to enforce material specifications that vary per unit of stock, which conflicts with standard fixed-BOM logic:

Challenge Area Our Requirement ERPNext Adaptation Question
Coil Traceability Every Raw Coil (GI, CRC, HRC) must be uniquely tracked by Coil ID, Thickness, Width, and Weight upon receipt. Should we use Serialized Inventory or Batched Inventory? How can we create custom fields to capture Thickness and Width directly on the Serial/Batch master for each coil?
Paint Traceability Powder Coating consumption is highly variable and depends on the specific RAL Color and the Coil Thickness. How should we model RAL Color? Should it be a Batch Attribute tied to the Lot, or must we create a separate Item Code for every color?
Variable Consumption The BOM quantity for paint is not static; it is consumed based on the area or weight of the specific coil being painted. How can we configure the Bill of Materials (BOM) or the Stock Entry to allow operators to enter the actual paint consumed during the Work Order completion (Backflush method), rather than using a fixed BOM quantity?
Slitting Yield The process converts 1 input Coil (by weight/length) into multiple output Strips (varying lengths/widths), generating scrap. What is the best way to model the Slitting Work Order? Should we use Production Planning to create multiple Strips from one coil, tracking the yield/scrap quantity?

3. Proposed Adaptation Strategy

My initial thought is that we must rely heavily on Batch and Serial Number features, utilizing custom fields tied to the item master for traceability.

  • Item Master: Define generic items (e.g., GI-COIL-BASE, PAINT-POWDER-BASE).

  • Custom Fields: Add fields like Coil Thickness, Coil Width, and RAL Color to the Batch master template.

  • BOMs: Create multi-level BOMs to link the processes (e.g., a “Forming BOM” consuming PPGI Coils, and a “PPGI Painting BOM” consuming GI Coils).

Any guidance, especially from those who have implemented ERPNext for slitting or coil processing within the manufacturing module, would be greatly appreciated!

Thank you!

Regarding coil thickness: is this something that you are tracking because the original manufacturer send a coil that’s out of spec (you order 1000 meter coil x 3000mm wide x 2mm thick but it arrives at 1.89mm thick)?

Or you simply need to manage variants of coils by thickness, width, and length?

yes i need to manage coils by thickness and width and weight

We faced a similar case for one of our clients, and handling it entirely through the standard BOM and Work Order was quite complex.

What we did was:

  • Added custom fields in the Item Doctype to differentiate between Mother Coil and Baby Coil, and enabled Batch Tracking for coil items.

  • During Purchase Receipt, we use the Coil Number as the Batch ID, which gives complete traceability for each coil.

  • For slitting, we created a custom Doctype called Slitting Order. On submission, it automatically creates a Stock Entry with one input (Mother Coil) and multiple outputs (Baby Coils) with different widths.

  • ERPNext doesn’t allow the same batch number for multiple items, so we customized it to add a prefix to the Baby Coil batch number while keeping a link to the original Mother Coil number.

  • We also added Width as an Inventory Dimension for better reporting and tracking.

This approach worked well for that project. Since it was developed as part of a client-specific customization app, we can’t share the exact code, but the screenshots should help you get a clear idea to start from.

4 Likes

smart and practical. thanks for sharing.

thank you for sharing