Explode BOMs of sale line

I’ve seen numerous times now that production customers ask for different uses to explode a BOM of a sale.

  • Some customers to be able to set some data in the machinery
  • Some customers to improve the purchase flow
  • Some to compute a cost estimation of a sale

All of them require the product and the final quantity needed.

(Hungry) Example
BOM: PIZZA MARGARITA
INPUT: DOUGH (250GR)
INPUT: TOMATO (100GR)
INPUT: MOZZARELLA (90G)
OUTPUT: MARGARITA (1U)
BOM: DOUGH
INPUT: YEAST (10GR)
INPUT: WATER (1000GR)
INPUT: FLOUR (990G)
OUTPUT: DOUGH (2000GR)
SALE LINE -> 4u MARGARITA
RESULT:
- MARGARITA 4u
- DOUGH 1000GR
- TOMATO 400GR
- MOZZARELLA 360GR
- YEAST 5GR
- WATER 500GR
- FLOUR 495GR

I already have the function done, so no problem in contributing that. I leave you here the idea. For now, I don’t see a generic use case to integrate into core. But who knows, maybe some of you know!

In your example, you get an idea of the quantities. I guess you can improve with the routes and the cost center.
Can you tell us why the basic production modules don’t do the trick ?
Thank you.

It works. But production works for production.

I talk about knowing what you will purchase and produce in advance to generate a quotation when sale is in draft.

Your pizza example is not a sale package: you cannot separate components. So it is a real production BOM, and obviously, not a production order at the quote step.

Don’t look at the product names. It’s a wrong-picked example, sorry.
What I’m talking is a next step of Phantom BoM.

Sorry for the noise, and let’s wait to see where & how Phantom BoM lands.

I think what you are requesting is similar to what is discussed in the following topic: On demand production

AFAIU what you request is to define on quotation line the boms and routings that will be used for the production when the order is confirmed.

Yeah, I’ve found several times the need of this explode bom for different use case like the phantom bom or the on demand.
So I raise here the isolated idea of this feature to discover more use cases.

And why don’t you consider routings too ?

In my use cases, routing is not needed, but I’m not against.