[New Feature] Config to order: ERPNext version of SAP's variant configuration -- APP published, testing needed

@lalena one simple way is treat these items as consumable’s

So, in that case, while creating the Variant componets, you should associate one Item, to be deducted on the stock, and how many units you need of that item

Product XXXX
- Serial No AAAAA
- 3 Red Knob
- 4 White Knob

On the end of the Work Order, ERPNext will need to generate one consumption for the 3 Red Knob + the 4 White Knob, associated with the Work Order.

This is also supported by ERPNext, but we dont have the direct relation, and automation to handle that.

1 Like

@max_morais_dmm thats clever

Two thoughs:

  1. Isnt that a little “hacky”? I mean, the consumables are not conceptually there for that purpose. A future ERPNext update can hit us in the back with something that makes sense with consumables but no on our usage.

  2. To get a more automatic, safe and robust workflow we would need to automate and link that, and that level of coding I think is more intrusive that the one I described earlier (a separete module that generates custom BOMs (or ProductBundles)).

PD: is that a big of a problem to have one BOM for each sale? I mean, we have more quotations, SerialNos and other DocTypes in large quantities in the system. Which part of having a lot of BOMs was a nightmare?

Thank you for your insights! It helps a lot man :wink:

1 - @lalena, sorry I think the word “consumable” is incorrect in used in my previous answer, I was going to say “raw materials”

2 - Custom apps, will be break on every new release, I knew it very well, and poor design in custom apps, can made you stuck in a specific ERPNext version, if you dont have constant support, to keep the app upgraded following the changes in ERPNext.

PD: Ok what happens if you want to combine 3, 4, 10 diferent selled products in a single sale?
You will be restricting your users, to 1 Sales order per Sale at time, and really it’s not good, at list to me, I’m attaching one simple Sales Order I do have in my system

Each line represents one product, and as you can see in the description, I’m describing each product that is under-composed, in my BOM

The following text “Cozinhas Estruturas: MDP\ Branco”, describe

- Component Used: Cozinhas Estruturas (Structural Cabinets for Kitchens, [Also is an BOM])
- Color for painting the Component: Branco (White) [Ensure that the BOM Picked have Paiting in the Routing]
- Type of Material for the Cabinet Structure: MDP 

The GUID is the Serial No I do use to track the items in my system.
I’m not using the work order for manufacturing, because, my manufacturing process is outsourced

But that GUID, is the Ship tracking number also I use for track that product in the system of my supplier.

But here is the point, with the behavior I described, you are able to achieve and extract from ERPNext much more, than what do you give.

Also, the sales process is simplified a lot, since your users only need to find one specific product configuration to get the Serial Number, and in my case, I do produce an excel catalog, that help the sellers in few clicks, find the best option, in the configuration system.

Also, my case is even special, because I’m able to extract and build my configuration system entirelly from AutoCad.

But in the end, if my manufacturing was not outsourced, Im 100% percent sure I was using ERPNext to handle that scenario, about Configuration to Order, with minimal effort.

2 Likes

not yet, but planned to invite my current client to try it.

I think it is a good idea, I am thinking the following questions,

  1. how to handle the sales price calculation?
  2. how to link the configuration to the sales order?
  3. Newly created item is an item variant with attribute value copied from configuration details?
1 Like

@szufisher about the price configuration, I think formulas, are the unique way to go

@max_morais_dmm I think I see some issues in your approach (tell me if Im wrong)

So you, instead of having a lot of dynamically created BOMs and Items or Variants, you store the custom information on the product SerialNos and the stock used in each product is managed in the WorkOrder by MaterialTransfers. Am I right? Or are you reusing SerialNos?:thinking: The Excel with the predefined SerialNos confuse me.

The issues I think I see:

  1. If you have to previously define all the SerialNos to predict the exact combinations. And you have to provide an Excel to Navigate and found the right one. With Highly customized items like an object with 7 parts to colorize and 10 colors to choose in each part, the permutations are huge. If thats not the case and the user needs to create a new combination (SerialNo) on the fly, has to manually put the data, prone to error. There is not “Help” from the system to assist on the options.

  2. If you tomorrow stop using the color Red and now you have Scarlet and Salmon, you need to update all the SerialNos that you could reuse, because this approach isnt really a dynamic “Config to Order”, is a “Choose-Preconfigured-Option to Order”

  3. Similar to the previous one, if today there is no stock of a certain color, you have to add some logic to the process to detect that and dont offer to the customer.

I think that what you save on BOMs you add on SerialNos. Can you describe the problem of having Items and BOMs dynamically generated? It seems the natural way to me to handle this scenario. And one Sale order can have multiple CustomI dynamically generated Items. Once you have the Item and its BOM generated, the rest of ERPNext is the standard and intended flow

Maybe Im not getting exactly what you mean!

@szufisher

  1. Once you have a new Item and its BOM dynamically generated, is the same as creating a new Item and BOM by hand in the standard way. I feel Im missing something here about your concern.

  2. The custom App creates a new normal Item, and populate its BOM with the material needed. It can also select that Item in the Sale Order automatically, or the user can select it. The rest of ERPNext would have no Idea that the Custom Item was generated by the other App (unless we want, but I dont see why)

  3. Newly created Item is a regular Item with its custom components in its BOM (or Product Bundle, if you want to being able to update it)

  4. If you need some information that is not “which materials do this item need” you can view that on the Custom App.

Another way Im thinking about:
The BOM can have a checkbox “hasVariants”, and if you check it, it transforms itself in a “BOM Template” (like the actual functionality in Items).

A Bom Template is a regular BOM with its usual ItemList, plus an ItemTemplateList, where you can add ItemTemplates.

So, maybe you have a CustomizeblePC where the user can select only the keyboard, mouse and headphones (each one in 10 colors, so normal Variations became a problem).

The BOM Template has the ItemList with:

  • The Monitor
  • Case, CPU
  • All the standard components for that item.

The Bom Template has the ItemTemplateList with:

  • KeyboardTemplate
  • MouseTemplate
  • HeadphoneTemplate

Instead of generating predefined variations of that BOM (it would be the same as having ItemVariants), you can create new BOMs on demand, and when you create it, the system ask you to fill which Keyboard, Mouse and Headphones you want. Each ItemTemplate in the list can be mandatory or not, so maybe one user leave out the Headphones. Maybe the user can modify the quantity of each one, if the BOM Template allows that.

A big plus: BOMs are multilevel, so the “CPU” could be another template, and you could customize it too (hard-drive, processor, memory, etc). Maybe an exploded ItemTemplateList on the BOM Template could do the trick.

Maybe its not the final design, but I think its pretty lean, generic and doesnt require much change, for adding to the core, now that @rohit_w is asking feedback on [Proposal] Manufacturing Roadmap Apr - Jun 2020

Or instead of BOM Template we make ProductBundle Template, or have another DocType (like when the ProductBundle was added)

No, I’m not reusing Serial No’s, because for I do reuse Serial No’s I need to resell the same product combination twice, and since the product very in millimeters, the chance to it happens is 1 in 1Billion, but the same approach can be moved to Batch No’s, that can be reused.

Same point about 1, if you generate on the fly these configurations, Batch No are the choice instead of Serial No, for my case, Serial No is perfect, because to me is virtually impossible repeat an sell.

That’s why what’s configurable need to be managed as one component (Variant Product)., but the combination, dont need to generate a new product.

To My Case, the problem to have Items and BOM’s generated per sales, that yearly we will introduce in average 100K new Items and BOM’s in the database, and ERPNext really dont support well databases that grow exponencially. Things become slower after 3-4 months of usage

1 Like

If you are developer or have developer resource, maybe you can base on my existing APP to develop the non-intrusive solution, of course if you would like to share / publish the repository, I can contribute as needed.

I really like this feature even though there is no real customer yet.

1 Like

The best solution will more likely be the one with “minimum” customization. Or at least beginning with “minimum” customization.

We tried to develop a customized solution for close to a year, the effort failed. We went back to Vanila version, since then we have caused some changes with Frappe Tech, but they have been added to the core.

I will recommend that you employ Frappe Tech in some form, it really helps to have them by your side.

In case your are interested, here is my story :https://www.youtube.com/watch?v=GAwGG7bZ2Hc&t=122s

2 Likes

Just watched the video, I am interested how you used the python script to create item and BOM? is it possible to share the solution details or even the code?

many thanks.

1 Like

The entire process is done offline:
Creating Item Codes:

  • Create all possible item codes(all permutations, brute force)
  • Validate each item code based on constraints specified in CSV file

Creating BOMs:

  • Take item codes, and BOM constraints as Input
  • Based on Item Code abbreviations, select BOM rows
  • Report conflicts and resolve them using BOM constraints

Not sure if the tool will be useful as it, but the concept none the less can be used, here is link to the code https://github.com/djpalshikar/bom_creation_tool

1 Like

So, based on what I read here and in various threads, ERPNext customization is NOT a good idea, upgrades tend to break what you did. Unless you dont want to be able to upgrade in next versions, isnt recomendable (I read it many times on the forum).

So, to lay out clearly the options:

  1. One can use the Purest standard ERPNext version, and apply completely separate software to generate/inject the custom data needed (like @dhananjay does).

  2. One can make another separately App, even in another language, outside Frappe, and interact with ERPNext with the REST API and make automations that way. (Pro: you are protected even from Frappe upgrades, unless the API changes, but this architecture has a clear interface to update if needed)

  3. One can Write another Custom App inside Frappe, being careful to make it the less intrusive posible. (Pros: same platform. Cons: Frappe upgrade sensitive and ERPNext upgrade sensitive, but less than the full ERPNext customization alternative)

I will meditate on all of this and make some draft designs for my needs. Then Im going to share it here and see what could be a generic and applicable approach. I want to be fast since the [Proposal] Manufacturing Roadmap Apr - Jun 2020 is open for suggestions.

Thanks!

1 Like

Sir,

I am implementing ERPNext at a company which makes aluminum ductwork accessories and has very similar issues to yours, is it against protocol to engage someone for potential consulting in this forum?

Thank you,

Karl Tatgenhorst

Hi Karl,

Welcome to ERPNext. Hope you have a great experience with ERPNext and here on the community.

No, it’s not against the norms to solicit people to help you or your clients on consulting assignments. However we try to be subtle about offering consulting services. :slight_smile:

Thanks

Jay

1 Like

Jay,

Thank you, just to be clear I am looking for help not offering services. I’m not sure if my initial post was clear. As I am going through similar issues to the commenter that I responded to, I am looking to solicit help.

Also, so far my experience has been amazing. ERPNext is a very well built system and just the Youtube videos alone were very helpful but I am betting my progress will accelerate having logged into this forum. Thanks for your reply.

Karl

Yep. That was absolutely clear. I was just saying that to others that might read that.

Thanks

Jay

Dear @szufisher. I’m extremely new to ERPNext and still understanding the concepts involved. I’m having trouble following the instructions in the post and the github readme. It’s not your instructions, it’s certainly my understanding.

I got though the BENCH commands and it seems to be installed. What I’m having trouble with is the DocType and BOM setup. Would you mind producing a short video just illustrating the steps; so that I can “look over your shoulder” ?

I’m sorry to ask you to do more work after doing all the heavy lifting, but I appreciate any help you’d be willing to give.
Thanks

1 Like

Is there any development on this ?

sorry this was an unfinished project long long time ago,no real customer.

1 Like