# Suitable model to configure production for company that sells products with the same BOM in different packages

**URL:** <https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905>\
**Category:** User\
**Tags:** production\
**Created:** [January 11, 2022, 8:07am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905 "2022-01-11T08:07:53Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![vincent](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/vincent/32/29_2.png) [@vincent](https://discuss.tryton.org/u/vincent)\
**Post date:** [January 11, 2022, 8:07am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/1 "2022-01-11T08:07:53Z")

</div>

**Background:**  
The scenario is a company that sells produces products on demand sold in different sized packages.

The current setup is that there is a “base” product associated with a BOM that includes all the ingredients and steps required except for the packaging and one product record for each packaging size with a related BOM with the inputs being the “base” product and the packaging.

**Problem:**  
This means that there are 2 Production requests created when a packaged product is sold, but this is very confusing for the users.

---

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [January 12, 2022, 7:45am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/2 "2022-01-12T07:45:10Z")

</div>

For me it should be solved by implementing the “phantom BOM” feature which has been discussed on [Supply on sale with production request - #8 by ced](https://discuss.tryton.org/t/supply-on-sale-with-production-request/2167/8)

---

<div class="post-metadata">

**Author:** ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)\
**Post date:** [January 12, 2022, 1:31pm UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/3 "2022-01-12T13:31:19Z")

</div>

> [@ced](#):
>
> “phantom BOM”

Jus to clarify: Phantom BOM is just calling the explode\_bom of each input product if it is also producible. Isn’t it?

Maybe we can can just have a checkbox on the BOM input to indicate that that product is a Phantom BOM.

---

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [January 12, 2022, 2:11pm UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/4 "2022-01-12T14:11:03Z")

</div>

> [@pokoli](#):
>
> Phantom BOM is just calling the explode\_bom of each input product if it is also producible. Isn’t it?

Yes but only for some of them.

> [@pokoli](#):
>
> Maybe we can can just have a checkbox on the BOM input to indicate that that product is a Phantom BOM.

Probably.  
But there is also the case which need to have a solution. Sometimes you will use phantom BOM but for products that do not really exist so it will be good to be able to avoid the creation of such fake product.

---

<div class="post-metadata">

**Author:** ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)\
**Post date:** [January 21, 2022, 8:40am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/5 "2022-01-21T08:40:47Z")

</div>

I’m wondering if it won’t be better to just add a BOM field on the input.

As we support to have diferent BOMs on a single product it will allow to know which bom should be used for exploding the product.

Also this will allow to use an BOM without any product, and thus supporting the case of the FAKE product.

---

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [January 21, 2022, 9:41am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/6 "2022-01-21T09:41:42Z")

</div>

> [@pokoli](#):
>
> As we support to have diferent BOMs on a single product it will allow to know which bom should be used for exploding the product.

We already have this choice when creating request production. For now we choose the first BoM (but this can be/should be customizable).

> [@pokoli](#):
>
> Also this will allow to use an BOM without any product, and thus supporting the case of the FAKE product.

It could be an option but I think we also need the option that let the system choose the best BOM for phantom BOM.

---

<div class="post-metadata">

**Author:** ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)\
**Post date:** [January 21, 2022, 9:55am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/7 "2022-01-21T09:55:54Z")

</div>

> [@ced](#):
>
> For now we choose the first BoM (but this can be/should be customizable).

So you propose that this should be a combination of the checkbox and the bom field?  
I image we should only explode the bom when the checkbox is set and hide the bom field when not set. In case the user picks a bom this bom should be used otherwise we use the first Bom (but allowing customization).

Does it sound like a good solution?

---

<div class="post-metadata">

**Author:** ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)\
**Post date:** [January 21, 2022, 11:12am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/8 "2022-01-21T11:12:56Z")

</div>

> [@pokoli](#):
>
> I’m wondering if it won’t be better to just add a BOM field on the input.

I submited [Manage phanton BOMs on production (#11160) · Issues · Tryton / Tryton · GitLab](https://bugs.tryton.org/issue11160) with an early implemantion using the BOM field on the input. I will update it once we decided how to enable the phantom bom feature.

---

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [January 21, 2022, 11:38am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/9 "2022-01-21T11:38:56Z")

</div>

> [@pokoli](#):
>
> Does it sound like a good solution?

I do not think that having a single BoM field as input is a good design because it will rely on a non-explicit unit of measure. So for me we must always have a product (even if it is only used as partial parts) to ensure a base conversion for the measures.  
And as product will be always required, I will prefer to let the system choose the BoM like it does in other cases. The only addition feature that will be a nice to have is to be able to specify on the production order all the BoM to use.

---

<div class="post-metadata">

**Author:** ![pokoli](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/pokoli/32/22_2.png) [@pokoli](https://discuss.tryton.org/u/pokoli)\
**Post date:** [January 26, 2022, 8:54am UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/10 "2022-01-26T08:54:04Z")

</div>

I updated the review fixing your remarks.

> [@ced](#):
>
> The only addition feature that will be a nice to have is to be able to specify on the production order all the BoM to use.

I leave this point as a future implementation as its a nice to have.

---

<div class="post-metadata">

**Author:** ![maxx](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/maxx/32/2320_2.png) [@maxx](https://discuss.tryton.org/u/maxx)\
**Post date:** [May 28, 2025, 1:59pm UTC](https://discuss.tryton.org/t/suitable-model-to-configure-production-for-company-that-sells-products-with-the-same-bom-in-different-packages/4905/11 "2025-05-28T13:59:47Z")

</div>

> [@ced](#):
>
> I do not think that having a single BoM field as input is a good design because it will rely on a non-explicit unit of measure. So for me we must always have a product (even if it is only used as partial parts) to ensure a base conversion for the measures.  
> And as product will be always required, I will prefer to let the system choose the BoM like it does in other cases.

Following a recent chat with Cedric, I made a new proposal to allow to add a phantom BoM as input/output in a BoM.  
So a BoM could be defined as phantom (checkbox) and in this case we must define a quantity and a unit. Don’t think output product is needed, as a phantom BoM is used to replace a product that don’t need production and that should not be in stock. In our case, phantom BoM is used for a specific “mixture” we use each time we produce a billiard ball. This “mixture” has no production and could not be in stock but it is used in many BoMs. So we just need to replace phantom BoM in the inputs of a BoM by the inputs of the phantom BoM (taking care of quantity and unit defined on the phantom BoM) when doing an “explode\_BoM”…

> **[Support Phantom BoM (!2429) · Merge requests · Tryton / Tryton · GitLab](https://foss.heptapod.net/tryton/tryton/-/merge_requests/2429)**
>
> Closes #11160 After discussion with Cedric,...
