> For the complete documentation index, see [llms.txt](https://docs.bidunity.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bidunity.com/supplier-api/api-reference/api-objects/part-object.md).

# 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
}

```
