I am evaluating ERPNext for a new ERP implementation in a lumber drying business. Note that, though I am a very experienced developer/architect, I have no ERPNext experience and limited experience in web-based development. If this is the right approach, I am likely to hire some assistance.
Without going into too much detail, lumber is purchased in stacked “bundles” from saw mills. We de-stack the lumber (grading it in the process) and perhaps some sorting, then place the boards into new stacks. These new stacks go into the large drying kilns for days, then are sold to various clients.
While a given bundle (whether as it comes in, or as it goes out) has only lumber that share the same species, thickness and approximate length, the “grade” of each board varies. And, of course, the value (incoming cost or outgoing price) of any bundle varies with the grade mixture of the bundle.
Therefore, we might have 40 “products” that represent the combinations of species, thickness and approximate length, but each specific instance (ie, actual bundle) varies in price based on the grades assigned to the lumber. This presents some unique conditions:
→ 01. When bundles are purchased, a price is set based on the expected grade of the delivered bundles. When we de-stack and grade it ourselves, we may need to adjust the payment price (up or down) if it differs from the original purchase order estimate.
→ 02. When new bundles are sold, the same issue can occur if the customer re-grades and disagrees with our grading (some negotiation and reconciliation will occur to agree on any adjustment)
→ 03. The individual boards on an incoming bundle will end up in different outgoing bundles, so we don’t have a one-to-one correlation of bundle-in to bundle-out. Eventually, we might implement tracking at the board level, but not currently. So, assigning cost to the outgoing bundle is a bit tricky and will be done via weighted/shared averages.
→ 04. How do we represent each bundle (of one of the 40 products), but each having its own price and/or detailed description (based on the actual surface area at each grade level)?
I was thinking that ERPNext’s “serialized inventory” might fit, establishing the 40 products, but creating a new serial# as each bundle comes in (or is created when re-stacking). Separate custom code could keep the details for each serial# that track the grades and surface areas. The actual price and description text could be derived in this code based on that information. As each bundle, even of the same product number, is a different price, all forms (PO, Invoice, Inventory, etc) would have a separate entry for each serial# in the order (ie, there is never a count/quantity other than “1”, even if the same product appears on many lines).
Is this a feasible approach, or is there a better model to follow? I’m sure I will have additional questions, but I’ll wait to see what the feedback is thus far.
Many thanks! … Craig