---
title: OrderingOrderProductInput
---

## `sku`

`string` - The SKU of the product to order.

---

## `addonIds`

`string[]` - The IDs of the addons to order with the product.

---

## `quantity`

`number` - The quantity of the product to order.

---

## `unitOfMeasure`

`string | null` - The unit to order the product in, for products that are purchased in units other than their base unit (e.g. flooring priced by the `Sq Ft` but ordered by the `Box`). Pass one of the `unitOfMeasure` values from the product's [`unitsOfMeasure`](/graphql/ordering/list-products#unitsofmeasure). If not provided, it will default to ordering a single instance of the product (1 each, 1 sq ft, etc). Note that this may cause the quantity to be rounded up to the nearest whole multiple of the minimum order quantity.

---

## `options`

`OrderingProductOptionInput[] | null` - Values for the product's selectable options — e.g. the paint color of a PPG tintable paint. Pass one `{ key, value }` pair per option, taken from one of the entries in the product's [`options`](/graphql/ordering/list-products#options). Any option that must be selected for the product needs to be provided — omitting one, or passing a value that isn't a valid value identifier for the product, is rejected with `INVALID_PRODUCT_OPTIONS`. Note that value validity is currently checked against the product's full set of option values rather than scoped to the specific `key` it's paired with.

```graphql
input OrderingProductOptionInput {
  key: String!
  value: String!
}
```

---

## `warrantySku`

`string | null` - Attach a specific extended-warranty product to this line. Must be one of the warranty SKUs in this product's [`availableWarranties`](/graphql/ordering/ordering-order-product#availablewarranties). Omit (or `null`) to skip explicit warranty selection. Rejected with `WARRANTY_SKU_NOT_AVAILABLE_FOR_PRODUCT` if the SKU isn't a valid warranty option for this product, or `CONFLICTING_WARRANTY_INPUT` if `applyWarrantyCoverage` is `false` on this same product line.

---

## `applyWarrantyCoverage`

`boolean | null` - Opt this line into extended-warranty coverage using the default auto-picked warranty for the product. When `true`, the warranty is auto-selected from the product's `availableWarranties`. Rejected with `CONFLICTING_WARRANTY_INPUT` if `warrantySku` is also set on this same line, since those intents contradict each other. Omit (or `null`) to attach no warranty to this line.
