[IMP] mrp: overhaul bom basics 17.0

closes odoo/documentation#9406

X-original-commit: 4d211ed914
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
This commit is contained in:
Felicious 2024-05-06 19:38:59 -07:00
parent 431f88f955
commit c7f385fee3
20 changed files with 232 additions and 73 deletions

View File

@ -30,7 +30,7 @@ new one by clicking :guilabel:`New`.
.. admonition:: Learn more
For a complete guide on how to properly configure a new |BOM|, see the documentation on
:ref:`creating a bill of materials <manufacturing/management/bill-configuration>`.
:doc:`creating a bill of materials <../basic_setup/bill_configuration>`.
On the |BOM|, click on the :guilabel:`Miscellaneous` tab, then enable the :guilabel:`Operation
Dependencies` checkbox. This makes a new :guilabel:`Blocked By` option available in the settings of

View File

@ -2,98 +2,258 @@
Bill of materials
=================
.. _manufacturing/management/bill-configuration:
.. |BOM| replace:: :abbr:`BoM (Bill of Materials)`
.. |BOMs| replace:: :abbr:`BoMs (Bills of Materials)`
.. |MO| replace:: :abbr:`MO (Manufacturing Order)`
A *bill of materials* (or *BoM* for short) is a document that defines the quantity of each component
required to make or deliver a finished product. It can also include various operations and the
individual step guidelines needed to complete a production process.
A *bill of materials* (or *BoM* for short) documents specific components, along with their
respective quantities, that are needed to produce or repair a product. In Odoo, |BoMs| as blueprints
for manufactured goods and kits, and often include production operations and step-by-step
guidelines, as well.
In Odoo Manufacturing, multiple :abbr:`BoMs (Bills of Materials)` can be linked to each product, so
even product variants can have their own tailored :abbr:`BoMs (Bills of Materials)`.
BoM setup
=========
Correctly setting up a :abbr:`BoM (Bill of Materials)` helps optimize the manufacturing process and
save time.
To create a |BOM|, go to :menuselection:`Manufacturing app --> Products --> Bills of Materials` and
click :guilabel:`New`.
Set up a bill of materials (BoM)
================================
Next, set the :guilabel:`BoM Type` to :guilabel:`Manufacture this Product`.
The simplest :abbr:`BoM (Bill of Materials)` setup is one without operations or instructions, only
components. In this case, the production is solely managed using *Manufacturing Orders*.
Then, specify :ref:`required components <manufacturing/basic_setup/setup-components>` and, if
necessary, define any :ref:`manufacturing operations <manufacturing/basic_setup/setup-operations>`.
To create a :abbr:`BoM (Bill of Materials)` from the :guilabel:`Manufacturing` module, go to
:menuselection:`Products --> Bills of Materials`. Then, click :guilabel:`Create`. Next, specify the
:guilabel:`Product`.
.. tip::
Individual |BOMs| can also be quickly accessed or created by clicking the :guilabel:`Bill of
Materials` smart button on any product form, as accessible through the *Sales*, *Inventory*, and
*Manufacturing* apps, as well as through any internal links where a product is referenced (such
as in a field or a line item).
.. figure:: bill_configuration/bom-example.png
:align: center
:alt: Show BoM for a product, with components listed.
BoM for `Drawer`, displaying the **Components** tab.
.. seealso::
- :doc:`../advanced_configuration/kit_shipping`
- :doc:`../subcontracting/subcontracting_basic`
.. _manufacturing/basic_setup/setup-components:
Components
----------
In the :guilabel:`Components` tab of a |BOM|, specify components used to manufacture the product by
clicking :guilabel:`Add a line`. From the :guilabel:`Components` drop-down menu, select from
existing products or create a new product by typing the name and selecting either the
:guilabel:`Create " "` option to quickly add the line item, or the :guilabel:`Create and edit...`
option to add the component and continue to its configuration form.
.. image:: bill_configuration/component.png
:align: center
:alt: Add a component by selecting it from the drop-down menu.
Optionally, access additional fields by clicking the :icon:`oi-settings-adjust` :guilabel:`(settings
adjust)` icon to the far-right of the :guilabel:`Components` tab. Tick the checkboxes for the
following features to enable these columns:
- :guilabel:`Apply on Variants`: specify which :doc:`product variant
<../advanced_configuration/product_variants>` each component is used in. When the field is left
blank, the component is used in all product variants.
.. _manufacturing/basic_setup/consumed-in-operation:
- :guilabel:`Consumed in Operation`: specify the operation using the component. Useful for
determining :ref:`manufacturing readiness <manufacturing/basic_setup/manufacturing-readiness>`.
- :guilabel:`Manual Consumption`: tick the checkbox to force operators to check the
:guilabel:`Consumed` checkbox on a manufacturing order (MO).
.. image:: bill_configuration/consumed-field.png
:align: center
:alt: Show a manufacturing order, highlighting the *Consumed* field.
Not doing so triggers the :guilabel:`Consumption Warning` error message, where the consumed
component quantity must be manually inputted. Otherwise, the operation cannot be completed.
.. image:: bill_configuration/consumption-warning.png
:align: center
:alt: Show the consumption warning error message.
.. _manufacturing/basic_setup/setup-operations:
Operations
----------
Add an *operation* to a |BOM| to specify instructions for production and register time spent on an
operation. To use this feature, first enable the *Work Orders* feature by going to
:menuselection:`Manufacturing app --> Configuration --> Settings`. In the :guilabel:`Operations`
section, tick the :guilabel:`Work Orders` checkbox to enable the feature.
.. seealso::
:doc:`../advanced_configuration/work_order_dependencies`
.. image:: bill_configuration/enable-work-orders.png
:align: center
:alt: "Work Orders" feature in the Settings page.
Next, navigate to the |BOM| by going to :menuselection:`Manufacturing app --> Products --> Bill of
Materials` and selecting the desired |BOM|. To add a new operation, go to the :guilabel:`Operations`
tab, and click :guilabel:`Add a line`.
Doing so opens the :guilabel:`Create Operations` pop-up window, where the various fields of the
operation are configured:
- :guilabel:`Operation`: name of the operation.
- :guilabel:`Work Center`: select existing locations to perform the operation, or create a new work
center by typing the name and selecting the :guilabel:`Create " "` option.
- :guilabel:`Apply on Variants`: specify if this operation is only available for certain product
variants. If the operation applies to all product variants, leave this field blank.
.. seealso::
:doc:`Configuring BoMs for product variants <../advanced_configuration/product_variants>`
- :guilabel:`Duration Computation`: choose how time spent on the operation is tracked. Opt for
:guilabel:`Compute based on tracked time` to use the operation's time tracker or :guilabel:`Set
duration manually` if operators can record and modify time themselves.
Choosing the :guilabel:`Compute based on tracked time` option enables the :guilabel:`Based on last
__ work orders` option, which automatically estimates the time to complete this operation based on
the last few operations. Choosing :guilabel:`Set duration manually` enables the :guilabel:`Default
Duration` field instead.
- :guilabel:`Default Duration`: estimated amount of time to complete the operation; used for
`planning manufacturing orders <https://www.youtube.com/watch?v=TK55jIq00pc>`_ and determining
`work center availability <https://www.youtube.com/watch?v=3YwFlD97Bio>`_.
- :guilabel:`Company`: specify the company the |BOM| is available in.
Include operation details in the :guilabel:`Work Sheet` tab. Choose :guilabel:`PDF` to attach a file
or :guilabel:`Google Slide` with *public* access to share a link. Select :guilabel:`Text` to type
instructions in the :guilabel:`Description` text field.
.. tip::
Type `/` for a list of formatting options and features, including ChatGPT.
.. image:: bill_configuration/description.png
:align: center
:alt: Show ChatGPT feature to generate instructions for a work order.
.. image:: bill_configuration/create-operations.png
:align: center
:alt: Fill out the Create Operations pop-up window.
Finally, click :guilabel:`Save \& Close` to close the pop-up window. To add more operations, click
:guilabel:`Save & New` and repeat the same steps above to configure another operation.
.. note::
A :abbr:`BoM (Bill of Materials)` can also be created directly from the product form, in which
case the :guilabel:`Product` field is pre-filled.
Each operation is unique, as it is always exclusively linked to one |BOM|.
For a standard :abbr:`BoM (Bill of Materials)`, set the :guilabel:`BoM Type` to
:guilabel:`Manufacture this Product`. Then, click :guilabel:`Add a Line` to specify the various
components that make up the production of the final product and their respective quantities. New
components can be created quickly through the :abbr:`BoM (Bill of Materials)`, or can be created
beforehand in :menuselection:`Manufacturing --> Products --> Products --> Create`. Finally, click
:guilabel:`Save` to finish creating the :abbr:`BoM (Bill of Materials)`.
.. tip::
After creating an operation, click the :guilabel:`Copy Existing Operations` button to choose an
operation to duplicate.
.. image:: bill_configuration/bom-form.png
.. image:: bill_configuration/copy-existing-operations.png
:align: center
:alt: Show Operation tab, highlighting the "Copy Existing Operations" field.
Instructions
~~~~~~~~~~~~
.. important::
To add detailed instructions to operations, the *Quality* app must be installed.
Add specific instructions to an existing operation by clicking the operation's :icon:`fa-list-ul`
:guilabel:`(list)` icon in the :guilabel:`Instructions` column. The number in the
:guilabel:`Instructions` column shows the number of existing detailed instructions there are for the
operation.
.. image:: bill_configuration/add-instructions.png
:align: center
:alt: Set up a Bill of Materials.
:alt: Show the Instructions column, and list icon.
Specify a bill of materials (BoM) for a product variant
-------------------------------------------------------
:abbr:`BoMs (Bills of Materials)` can also be assigned to specific *Product Variants*, with two
setup options available to choose from.
On the :guilabel:`Steps` dashboard, click :guilabel:`New` to open a blank quality control point form
where the new manufacturing step can be created. Here, give the specific instruction a
:guilabel:`Title` and set the :guilabel:`Type` to :guilabel:`Instructions`. In the
:guilabel:`Instructions` tab of the form, write out the directions for the step in the operation.
.. note::
In order to assign :abbr:`BoMs (Bills of Materials)` to product variants, the product's variant
attributes must already be configured on the product form.
Further customizations can be made here on this form, beyond ordinary instructions, to also
include specific types of quality control points that carry specific (or complex) conditions. For
more details about quality control points refer the :doc:`Instruction check
<../../quality/quality_check_types/instructions_check>` documentation.
The first method is to create one :abbr:`BoM (Bill of Materials)` per variant by creating a new
:abbr:`BoM (Bill of Materials)` and specifying the :guilabel:`Product Variant`. The second method
is to create one master :abbr:`BoM (Bill of Materials)` that contains all of the components, and
specify which variant each component applies to using the :guilabel:`Apply on Variants` column.
.. image:: bill_configuration/bom-variants.png
.. image:: bill_configuration/steps.png
:align: center
:alt: Product Variants in the Bill of Materials.
:alt: Show the page to add a quality check.
Set up operations
=================
Miscellaneous
-------------
Add an :guilabel:`Operation` to a :abbr:`BoM (Bill of Materials)` to specify instructions for
production and register time spent on an operation. To use this feature, first enable the
:guilabel:`Work Orders` feature in :menuselection:`Manufacturing --> Configuration --> Settings -->
Operations`.
The :guilabel:`Miscellaneous` tab contains more |BoM| configurations to customize procurement,
calculate costs, and define how components are consumed.
Then, when creating a new :abbr:`BoM (Bill of Materials)`, click on the :guilabel:`Operations` tab
and click :guilabel:`Add a line` to add a new operation. In the :guilabel:`Create Operations` box,
give the operation a name, specify the :guilabel:`Work Center` and duration settings. Like
components, Odoo gives the option to specify a product variant in the :guilabel:`Apply on Variants`
field so the operation only applies to that variant. Finally, click :guilabel:`Save & Close`.
.. _manufacturing/basic_setup/manufacturing-readiness:
.. note::
Each operation is unique, as it is always exclusively linked to one :abbr:`BoM (Bill of
Materials)`. Operations can be reused when configuring a new :abbr:`BoM (Bill of Materials)`,
with the :guilabel:`Copy Existing Operations` feature.
- :guilabel:`Manufacturing Readiness`: choosing :guilabel:`When components for the 1st operation are
available` shows the :guilabel:`Component Status` as a **green** :guilabel:`Not Available`, when
only the components that are consumed in the first operation are in stock. This indicates that
although not all components are available, operators can at least begin with the first operation.
Choosing :guilabel:`When all components are available` displays a **red** :guilabel:`Not
Available` component status unless all components are in available.
.. image:: bill_configuration/copy-existing-operations.png
.. tip::
Specify which operation consumes each component on the |BoM| in the :ref:`Manual Consumption
field <manufacturing/basic_setup/consumed-in-operation>`.
.. image:: bill_configuration/component-status.png
:align: center
:alt: Show the *Component Status* field on the manufacturing order dashboard.
- :guilabel:`Version`: displays the current |BoM| version, visible with the Odoo *PLM* app installed
for managing |BoM| changes.
- :guilabel:`Flexible Consumption`: specifies if components used can deviate from the quantity
defined on the |BoM|. Choose :guilabel:`Blocked` if operators **must** adhere strictly to the
|BoM| quantity. Otherwise, choose :guilabel:`Allowed` or :guilabel:`Allowed with Warning`.
- :guilabel:`Routing`: select the preferred warehouse's manufacturing operation type for products
produced in multiple warehouses. If left blank, this warehouse's `Manufacturing` operation type is
used by default.
- :guilabel:`Analytic Distribution`: select pre-created :doc:`analytic distribution models
<../../../finance/accounting/reporting/analytic_accounting>` from the list to automatically record
the cost of manufacturing products in the chosen journal.
- :guilabel:`Manuf Lead Time`: define the number of days needed to complete a |MO| from the date of
confirmation.
- :guilabel:`Days to prepare Manufacturing Order`: number of days needed to replenish components, or
manufacture sub-assemblies of the product.
.. seealso::
- :doc:`Analytic distribution <../../../finance/accounting/reporting/analytic_accounting>`
- :doc:`Lead times
<../../inventory/shipping_receiving/advanced_operations_shipping/scheduled_dates>`
.. image:: bill_configuration/misc-tab.png
:align: center
:alt: Copy Existing Operations feature.
:alt: Show the *Miscellaneous* tab of the BoM.
Add by-products to a bill of materials (BoM)
============================================
Add by-products to BoMs
=======================
A *By-Product* is a residual product that is created during production in addition to the main
product of a :abbr:`BoM (Bill of Materials)`. Unlike the primary product, there can be more than
one by-product on a :abbr:`BoM (Bill of Materials)`.
A *by-product* is a residual product that is created during production in addition to the main
product of a |BOM|. Unlike the primary product, there can be more than one by-product on a |BOM|.
To add by-products to a :abbr:`BoM (Bill of Materials)`, first enable the :guilabel:`By-Products`
feature in :menuselection:`Manufacturing --> Configuration --> Settings --> Operations`.
To add by-products to a |BOM|, first enable the *By-Products* feature in
:menuselection:`Manufacturing app --> Configuration --> Settings`. In the :guilabel:`Operations`
section, tick the checkbox for :guilabel:`By-Products` to enable the feature.
Once the feature is enabled, you can add by-products to a :abbr:`BoM (Bill of Materials)` by
clicking on the :guilabel:`Operations` tab and clicking :guilabel:`Add a line`. Then, name the
by-product and indicate the :guilabel:`Quantity` and the :guilabel:`Unit of Measure`. If the
:abbr:`BoM (Bill of Materials)` has configured operations, specify exactly which operation the
by-product is produced from in the :guilabel:`Produced in Operation` field. Finally, click
:guilabel:`Save`.
.. image:: bill_configuration/by-products.png
:align: center
:alt: "By Products" feature in the settings page.
Once the feature is enabled, add by-products to a |BOM| by clicking the :guilabel:`By-products` tab.
Click :guilabel:`Add a line`, and fill in the :guilabel:`By-product`, :guilabel:`Quantity`, and
:guilabel:`Unit of Measure`. Optionally, specify a :guilabel:`Produced in Operation` for the
by-product.
.. example::
The by-product, `Mush`, is created in the `Grind grapes` operation when producing `Red Wine`.
.. image:: bill_configuration/add-by-product.png
:align: center
:alt: Show sample by-product in the BoM.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -70,5 +70,4 @@ to finish adding operations, or :guilabel:`Save & New` to add more.
The section above provides instructions for creating a basic |BOM| that allows a product to be
manufactured in Odoo. However, it is by no means an exhaustive summary of all the options
available when configuring a |BOM|. For more information about bills of materials, see the
documentation on how to :ref:`create a bill of materials
<manufacturing/management/bill-configuration>`.
documentation on how to :doc:`create a bill of materials <bill_configuration>`.

View File

@ -10,7 +10,7 @@ Engineering change orders
.. _plm/eco:
Utilize *engineering change orders* (*ECOs*) to track, implement, and revert change versions made to
products, and :ref:`bills of materials <manufacturing/management/bill-configuration>`.
products, and :doc:`bills of materials <../../manufacturing/basic_setup/bill_configuration>`.
Engineering change orders can be created: