# Part Object

## Overview

The Part object can represent many different types of items, such as items purchased individually, in a box, as a stock length, area, or volume. But no matter how the part is purchased, it has the same JSON object structure.

## Terminology

Some definitions before we get started:

* **Package** is the thing that is being purchased.
* A package can contain a **single item** or a **group of items**.

## **Attributes**

| Field Name                  | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| --------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`                        | string | The unique identifier for the part.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `name`                      | string | The name of the part.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `part_number`               | string | The supplier's part number.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `finish_type`               | string | The metal finish for the part, or null if not applicable. See [Finish Types](/supplier-api/api-reference/api-types/finish-types.md)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `finish_color`              | string | The finish color for the part, or null if not applicable. See [Finish Colors](/supplier-api/api-reference/api-types/finish-color-types.md)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `finish_multiplier`         | number | A value to multiply against the configured finish price to calculate the cost for the part. This defaults to 1.0 but can be changed by users when creating the proposal.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `total_cost`                | number | The total cost for the part, including all quantities of the part being ordered.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `package_unit_cost`         | number | The cost for a single quantity of the part. The unit cost multiplied by the package quantity to order will equal the total cost for the part.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `package_quantity_to_order` | number | The quantity of the package being ordered.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `item_measurement_type`     | string | <p>Describes what is being ordered. Possible values: </p><p><code>each</code>, <code>box</code>, <code>stock\_length</code>, <code>block\_area</code>, <code>container</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `items_per_package`         | number | <p>The number of items contained in each package. This will be 1 for items purchased individually. </p><p>Examples:</p><ul><li>If purchasing a single door handle then the value is 1.</li><li>If purchasing a box of 4 stock lengths then the value is 4. </li><li>If purchasing a box of 200 screws then the value is 200.</li></ul>                                                                                                                                                                                                                                                                                                                                                           |
| `item_stock_size`           | number | <p>The stock size for the item. The units of measure depend on the measurement type:</p><ul><li>For <code>each</code> this will be 1.</li><li>For <code>box</code> this will be equal to <code>items\_per\_package</code>.</li><li>For <code>stock\_length</code> this may be 288 inches. </li><li>For <code>block\_area</code> this will be 1 square foot.</li><li>For <code>container</code> this may be 500 milliliters.</li></ul>                                                                                                                                                                                                                                                            |
| `item_size_unit_of_measure` | string | The units of measure for the item\_stock\_size. Possible values: `item`, `in` (inches), `sqft` (square feet), `ml` (milliliters)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `sizes`                     | array  | <p>The array of part sizes needed. This will vary based on the unit of measure. </p><ul><li>For <code>item</code>, the sizes array will be <code>null</code>. </li><li>For <code>stock\_length</code>, each size will contain a <code>length</code> field with the number of inches for that piece.</li><li><p>For <code>block\_area</code>, each size will have fields: </p><ul><li><code>width</code> the actual glass width needed in inches</li><li><code>height</code> the actual glass height needed in inches</li><li><code>quantity</code> the number of pieces of glass needed at this size</li></ul></li><li>For <code>ml</code>, the sizes array will be <code>null</code>.</li></ul> |

## Examples

### Example #1: Per each (i.e. door closer)

Purchasing 5 door closers, purchased individually.

```yaml
{
    id: “407f191e810c19729de860ea”,
    name: “Example Door Closer Part Name”,
    part_number: “CLO482”,
    finish_type: “Class 1 Anodized”,
    finish_color: “Dark Bronze”,
    finish_multiplier: 1.0,
    total_cost: 250.00,
    package_unit_cost: 50.00,
    package_quantity_to_order: 5,
    item_measurement_type: “each”,
    items_per_package: 1,  # Sold individually
    item_stock_size: 1,
    item_size_unit_of_measure: “item”,
    sizes: null  # Items without a length do not have a size array
}
```

### Example #2: Box of screws

Purchasing 5 boxes of screws, with each box containing 200 screws.

```yaml
{
    id: “407f191e810c19729de860eb”,
    name: “Fastener: Tapcon 1/4" Diameter, Hex Washer Head”,
    part_number: “ELE435-100”,
    finish_type: null,
    finish_color: null,
    finish_multiplier: 1.0,
    total_cost: 100.00,
    package_unit_cost: 20.00,
    package_quantity_to_order: 5,
    item_measurement_type: “box”,
    items_per_package: 200,  # Each box contains 200 screws
    item_stock_size: 200,
    item_size_unit_of_measure: “item”,
    sizes: null  # Items without a length do not have a size array
}
```

### Example #3A: Stock lengths sold individually

Purchasing 2 stock lengths of framing at 288” per stock length.

```yaml
{
    id: “407f191e810c19729de860ec”,
    name: “Trulite 3101 Head/Sill/Jamb”,
    part_number: “3101”,
    finish_type: “Class 1 Anodized”,
    finish_color: “Dark Bronze”,
    finish_multiplier: 1.0,
    total_cost: 100.00,
    package_unit_cost: 20.00,
    package_quantity_to_order: 5,
    item_measurement_type: “stock_length”,
    items_per_package: 1,   # Lengths sold individually
    item_stock_size: 288,   # 288” stock lengths
    item_size_unit_of_measure: “in”,   # Inches
    sizes: [{  # Array of sizes needed
        length: 62,  # inches
        quantity: 5
    },{
        length: 29.125,  # inches
        quantity: 3
    }]
}
```

### Example #3B: Stock lengths sold as a group

Purchasing 2 boxes of stock lengths, with each box containing 4 lengths at 288” for a total of 8 stock lengths.

```yaml
{
    id: “407f191e810c19729de860ec”,
    name: “Trulite 3101 Head/Sill/Jamb”,
    part_number: “3101”,
    finish_type: “Class 1 Anodized”,
    finish_color: “Dark Bronze”,
    finish_multiplier: 1.0,
    total_cost: 400.00,
    package_unit_cost: 200.00,
    package_quantity_to_order: 2,
    item_measurement_type: “stock_length”
    items_per_package: 4   # 4 stock lengths per box
    item_stock_size: 288   # 288” stock lengths
    item_size_unit_of_measure: “in”
    sizes: [{
        length: 91,  # inches
        quantity: 12
    },{
        length: 29.125,  # inches
        quantity: 4
    }]
}
```

### Example #4: Glass

Purchasing 1,260 block area square feet of glass.

```yaml
{
    id: “407f191e810c19729de860ed”,
    name: “Glass 1-5/16" Overall: 1/4" Temp X 1/2" Air Space X 1/4" HS X 0.090 PVB X 1/4" HS”,
    part_number: “1/4" Clear Temp X 1/2" Air Space X 1/4" Clear HS X 0.090 PVB X 1/4" Clear HS”,
    finish_type: null,
    finish_color: null,
    finish_multiplier: 1.0,
    total_cost: 12600.00,
    package_unit_cost: 10.51,
    package_quantity_to_order: 1260
    item_measurement_type: “block_area”
    items_per_package: 1
    item_stock_size: 1
    item_size_unit_of_measure: “sqft”
    sizes: [{   # Array of the actual glass sizes needed (not block sizes)
        width: 28.63,    # inches, actual glass width
        height: 12.63,   # inches, actual glass height
        quantity: 3      # 3 pieces of glass at this size
    }]
}
```

### Example #5: Caulking

Purchasing 2 boxes of caulking, with each box containing 16 sausages at 500 ml per sausage, for a total of 32 sausages.

```yaml
{
    id: “407f191e810c19729de860ee”,
    name: “Caulking Perimeter Sealant, Sausages (By Volume)”,
    part_number: “Contractors Weather Seal”,
    finish_type: null,
    finish_color: null,
    finish_multiplier: 1.0,
    total_cost: 100.00,
    package_unit_cost: 50.00,
    package_quantity_to_order: 2,
    item_measurement_type: “container”,
    items_per_package: 16,
    item_stock_size: 500,
    item_size_unit_of_measure: “ml”,
    sizes: null
}

```


---

# 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.bidunity.com/supplier-api/api-reference/api-objects/part-object.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.
