# BOM operations

This section describes the available actions users can perform to manage and maintain the Bill of Materials (**BOM**). These operations allow users to update product structure, adjust data, and reuse BOM configurations efficiently.

## Actions with BOM table

### Add item

Use **Add item** to include new materials or components in the BOM.

* Allows selecting an existing material or component
* Adds the item as a new row in the BOM table
* Newly added items can be further edited (e.g., quantity, tags)

<figure><img src="/files/7BpMPrmklfRRTq1IVNXp" alt=""><figcaption></figcaption></figure>

#### **Add Material**

When adding a material:

1. Click **Add item**.
2. Select **Material** in the **Type** column.
3. Choose a material from the list in the **Name** column.
   1. Use search to find materials quicker.
4. The default **Quantity** is set to 1 UOM.
5. The material is added as a single row in the BOM table.

{% @arcade/embed flowId="8qJee8JEaqoFNeug1NIR" url="<https://app.arcade.software/share/8qJee8JEaqoFNeug1NIR>" %}

#### **Add Component**

When adding a component:

1. Click **Add item**.
2. Select **Component** in the **Type** column.
3. The system opens a modal "**Add component**".
4. Choose a **Product** from the list and other attributes.
   1. Select a **Product version**, **Configuration**, **Workflow** and **Variant**.
5. Click **Add** button to save the component to BOM.
6. The component is added as a grouped item, which includes nested materials.

{% @arcade/embed flowId="9NzIg5zlUAFv1FIMKsLT" url="<https://app.arcade.software/share/9NzIg5zlUAFv1FIMKsLT>" %}

### Edit Quantity and Tags

Users can update item details directly in the table:

* **Quantity** - define how much of the item is required
* **Tags** - assign or modify labels for classification and filtering

{% hint style="warning" %}
You **CANNOT** edit the **Quantity** or **Tags** of nested items within an added component directly in this table, but only in the product where the **BOM** was created.
{% endhint %}

#### Edit Quantity

1. Click on the **Quantity** cell.
2. Enter the new value.
3. Press **Enter** or click outside the cell to apply changes.
4. The updated quantity is saved immediately.
5. **Published cost** and **Current cost** values are recalculated automatically based on the new quantity
6. **Total material costs** at the top of the BOM variant is updated accordingly

{% @arcade/embed flowId="OWO6EsucOhG9Br97mmxz" url="<https://app.arcade.software/share/OWO6EsucOhG9Br97mmxz>" %}

#### Add or Edit Tags

1. Click on the **Tag** cell.
2. The system opens a modal "**Manage tags**".
3. In the modal:
   * Use the **search field** to find existing tags
   * Select one or multiple tags using checkboxes
   * Or click **+ Add tag** to create a new tag
4. Close the modal to apply changes.
5. Selected tags are displayed in the **Tag** column for the item

{% @arcade/embed flowId="Mjwvw521ZEm7V5FEYWHz" url="<https://app.arcade.software/share/Mjwvw521ZEm7V5FEYWHz>" %}

### Open component preview

1. Click on the <i class="fa-eye">:eye:</i> button near the selected component name.
2. The system will open a **Product** preview in the new window.

{% @arcade/embed flowId="YYLgBCmuEdOCfBoNEIgb" url="<https://app.arcade.software/share/YYLgBCmuEdOCfBoNEIgb>" %}

### Duplicate item

Use the **Duplicate** action in the "**More actions**" menu (⋯) for the row to quickly copy an existing material or component.

#### Duplicate a material

1. Click on the <i class="fa-ellipsis-vertical">:ellipsis-vertical:</i> button for the selected material row to open "**More actions**" menu.
2. Click on the **Duplicate** button.
3. The system duplicates a new row with copied measurements, quantities, prices, and tags.
   1. The **Total published/current prices** are updated automatically.

{% @arcade/embed flowId="ei6jfqAWjABytKv72cKT" url="<https://app.arcade.software/share/ei6jfqAWjABytKv72cKT>" %}

#### Duplicating a component

1. Click on the <i class="fa-ellipsis-vertical">:ellipsis-vertical:</i> button for the selected component row to open "**More actions**" menu.
2. Click on the **Duplicate** button.
3. The system increases the Quantity field of the existing component by +1.
   1. The **prices** are updated automatically.

{% @arcade/embed flowId="MWXB597jc9h0JCkuyIc8" url="<https://app.arcade.software/share/MWXB597jc9h0JCkuyIc8>" %}

### Delete item

1. Click on the <i class="fa-ellipsis-vertical">:ellipsis-vertical:</i> button for the selected row to open "**More actions**" menu.
2. Click on the **Delete** button.
3. The system removes the selected row with the nested items <mark style="color:$info;">(if component)</mark>.
   1. The **prices** are updated automatically.

{% @arcade/embed flowId="IKmMi8v3e8UiBTvDzE1V" url="<https://app.arcade.software/share/IKmMi8v3e8UiBTvDzE1V>" %}

## "More actions" with BOM table

### Apply to

Use **Apply to** action in the "**More actions**" menu (⋯) to copy the current BOM variant to other variants or workflows.

1. Click on the <i class="fa-ellipsis-vertical">:ellipsis-vertical:</i> button in the BOM table header to open "**More actions**" menu.
2. Click "**Apply to**" button.
3. The system opens a "**Apply to**" modal window.
4. Select **workflows** and **variants** from the drop-down.
5. Click **Apply** button.
6. The system applies BOM to all selected variant BOMs across all selected workflows.

{% @arcade/embed flowId="TXMaSLI8nbjWSUjQlfvS" url="<https://app.arcade.software/share/TXMaSLI8nbjWSUjQlfvS>" %}

### Clear BOM

Use **Remove all items** action in the "**More actions**" menu (⋯) to completely clear the BOM table.

1. Click on the <i class="fa-ellipsis-vertical">:ellipsis-vertical:</i> button in the BOM table header to open "**More actions**" menu.
2. Click "**Remove all items**" button.
3. Confirm action by pressing "**Delete**" in "**Remove all items?**" modal.

{% @arcade/embed flowId="D2dNwRv0DIV056gOuEHK" url="<https://app.arcade.software/share/D2dNwRv0DIV056gOuEHK>" %}

### Filtering

#### Filter by Name or Tag

There are 2 available filtering options in the BOM table:

* **Material name** - filter items by material name
* **Tag** - filter items by assigned labels (tags)

1. Click on the filter to start.
2. Use **Search** field to quickly find the needed item.
3. Click on the needed options in the drop-down to apply them for filtering.

{% @arcade/embed flowId="73GUzA8wMQWrJx6UghUf" url="<https://app.arcade.software/share/73GUzA8wMQWrJx6UghUf>" %}

#### Clear filters

Use **Clear all** to reset all applied filters and return to the full BOM view.

{% @arcade/embed flowId="aAkRw3owcKcQBtFoTPZL" url="<https://app.arcade.software/share/aAkRw3owcKcQBtFoTPZL>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hesh.app/manuals/product-management/product-configuration/bill-of-materials/bom-operations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
