> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arya.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Bill of materials

> Bundle products composed of multiple components with automatic cost calculation.

The **bill of materials** (BOM) lets you define a "parent" item made of multiple "component" items with their quantities. The parent cost is computed automatically as the sum of components.

<Frame>
  <img src="https://mintcdn.com/agevole/cM9eEPJE8FVhTNOb/images/prodotti/en/bom-editor.svg?fit=max&auto=format&n=cM9eEPJE8FVhTNOb&q=85&s=1c89e231b7c71936eb54bc8e30c8f72b" alt="BOM editor with parent item and components" width="1200" height="720" data-path="images/prodotti/en/bom-editor.svg" />
</Frame>

## When to use

* **Commercial bundles**: "Full installation" package = product A + product B + labour hours
* **Standard services**: "Security audit" service = analysis (4h) + report (2h) + presentation (1h)
* **Production kits**: an assembly made of components
* **Subscription upgrades**: base licence + add-on modules

## Create a composite product

<Steps>
  <Step title="Create parent item">
    **Products → + New**. Type: **Bundle**.
  </Step>

  <Step title="Add components">
    From the **Bill of materials** tab, click **+ Component** → search existing item → specify quantity.
  </Step>

  <Step title="See aggregated cost">
    Arya computes:

    ```
    Bundle cost = Σ (component cost × quantity)
    ```

    Result appears in the bundle's `Internal cost` field.
  </Step>

  <Step title="Set sale price">
    Independent of cost — you decide whether to sell at computed margin or add bundle markup.
  </Step>
</Steps>

## Practical example

Bundle "HP Server installation":

| Component            | Qty     | Unit cost | Total cost |
| -------------------- | ------- | --------- | ---------- |
| HP ProLiant Server   | 1       | €1,500    | €1,500     |
| SSD 1TB              | 2       | €120      | €240       |
| On-site installation | 4 hours | €80       | €320       |
| Software setup       | 2 hours | €80       | €160       |
| **Total cost**       |         |           | **€2,220** |

Sell at €2,800 → margin €580 (20.7%).

## BOM variants

For bundles with options:

* **Fixed**: always same components
* **Configurable**: customer picks options in the quote (e.g. "SSD 500GB or 1TB")

## Use in quotes and invoices

When adding a bundle to a quote, you can:

* **Show only the bundle**: aggregated description, total price (customer doesn't see components)
* **Explode components**: detailed list with separate lines
* **Show both**: bundle header + sub-lines for components (maximum transparency)

## Cost propagation

<Warning>
  If you change a component's cost, all bundles containing it update automatically. Arya warns you if this propagation changes the margin of existing bundles.
</Warning>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Can a bundle contain another bundle?">
    Yes, multi-level nesting is supported. Use sparingly to maintain readability.
  </Accordion>

  <Accordion title="Can the bundle price be below the sum of components?">
    Yes — typical for promotional bundles. Arya shows the "discount applied" for information.
  </Accordion>

  <Accordion title="How is warehouse stock handled for bundle components?">
    When you sell a bundle, Arya deducts each component from stock according to BOM quantities.
  </Accordion>
</AccordionGroup>
