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

# FulfillmentOrderLineItemBillOfMaterials

> How a line item is built from components.

**builtByWorkOrder** `Boolean!` *required*

Whether a work order builds the finished product, so the finished product is picked instead of its components.

**components** `[\[FulfillmentOrderLineItemComponent!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item-component)` *required*

The components the line item is built from.

**fields**

**billOfMaterials** `[\[FulfillmentOrderLineItemComponentBillOfMaterials!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item-component-bill-of-materials)` *required*

What this component is built from, when it is itself built from components.

**fields**

**builtByWorkOrder** `Boolean!` *required*

Whether a work order builds the component, so it is picked instead of its own components.

**components** `[\[FulfillmentOrderLineItemSubcomponent!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item-subcomponent)` *required*

The components the component is built from.

**expandedQuantity** `Int!` *required*

Units of the component built from its own components. The rest ship as the finished component.

**leftovers** `[\[FulfillmentOrderLineItemLeftover!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item-leftover)` *required*

Remainder pieces the build credits back to stock. Empty unless the build cuts to size.

**imageUrl** `String`

A URL to the component's image.

**inventoryProduct** `[InventoryProduct](/docs/api-reference/v3/reference/inventory/inventory-product)`

What a fulfillment partner needs to identify and ship this component: identity only, no pricing. Readable by the store and the 3PL that ships the group. Null when it never matched a catalog product.

**fields**

**barcodes** `[String!]!` *required*

Barcodes associated with this product, for scanning.

**dimensions** `[Dimensions](/docs/api-reference/v3/reference/catalog/dimensions)`

The product's length, width, and height in a single shared unit, for box sizing.

**hsCode** `String`

The Harmonized System code used for customs.

**id** `ID!` *required*

The id of this product.

**image** `[ProductImage](/docs/api-reference/v3/reference/catalog/product-image)`

The first (default) image for this product, if any.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**originCountry** `String`

The country of origin, as a country code, for customs.

**sku** `String`

The stock keeping unit identifying this product.

**title** `String!` *required*

The product's title.

**upc** `String`

The Universal Product Code for this product.

**weight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The product's weight, for shipping.

**product** `[Product](/docs/api-reference/v3/reference/catalog/product)`

The store's catalog product for this component, when it matched one. Null when it never matched, the product was deleted, or the caller can't read the store's products (e.g. a 3PL). Requires `products_read`.

**fields**

**attribute** `[Attribute](/docs/api-reference/v3/reference/catalog/attribute)`

Look up a single attribute on this product by its name, if set.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**fields**

**Arguments**

**name** `String!` *required*

The machine name of the attribute to look up.

**attributes** `[\[Attribute!\]!](/docs/api-reference/v3/reference/catalog/attribute)` *required*

The merchant-defined attributes set on this product.

**barcodes** `[String!]!` *required*

Barcodes associated with this product.

**cost** `[Money](/docs/api-reference/v3/reference/common/money)`

The merchant's unit cost for the product.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the record was created.

**description** `String!` *required*

The product's long-form description.

**dimensions** `[Dimensions](/docs/api-reference/v3/reference/catalog/dimensions)`

The product's length, width, and height, expressed in a single shared unit.

**hsCode** `String`

The Harmonized System code used for customs.

**id** `ID!` *required*

The id of this product.

**image** `[ProductImage](/docs/api-reference/v3/reference/catalog/product-image)`

The first (default) image for this product, if any.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**images** `[ProductImageConnection!](/docs/api-reference/v3/pagination)` *required*

A paginated list of the product's images.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.

**before** `String`

Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.

**first** `Int`

Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**importRestrictions** `[ProductImportRestrictionConnection!](/docs/api-reference/v3/pagination)` *required*

The import restrictions the product trips, one per destination country and rule. Only countries of enabled markets with restriction screening on are screened, and a restriction drops off 21 days after screening last found it.

**Requires:** [`markets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-markets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns import restrictions after it.

**before** `String`

Backward pagination cursor — returns import restrictions before it.

**first** `Int`

Forward pagination: returns the first N import restrictions (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N import restrictions (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**inventoryItems** `[InventoryItemConnection!](/docs/api-reference/v3/pagination)` *required*

Traceable inventory units for this product.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**fields**

**Arguments**

**after** `String`

**before** `String`

**first** `Int`

**last** `Int`

**inventoryLevel** `[LocationInventoryLevel](/docs/api-reference/v3/reference/inventory/location-inventory-level)`

This product's inventory level at a single location, if any.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**fields**

**Arguments**

**locationId** `ID!` *required*

The id of the location to fetch the level at.

**inventoryLevels** `[LocationInventoryLevelConnection!](/docs/api-reference/v3/pagination)` *required*

Per-location inventory levels for this product.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.

**before** `String`

Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.

**first** `Int`

Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**marketPublishing** `[\[ProductMarketPublishing!\]](/docs/api-reference/v3/reference/markets/product-market-publishing)`

Publishing per destination country where the product trips an import restriction, or has a publish override. Only countries of enabled markets with restriction screening on are screened. Null when publishing can't be read.

**Requires:** [`markets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-markets_read)

**options** `[\[ProductOptionValue!\]!](/docs/api-reference/v3/reference/catalog/product-option-value)` *required*

The variant's selected option values (e.g. Size: M, Color: Red), ordered by the family's option positions.

**originCountry** `String`

The country of origin, as a country code.

**physicalItem** `Boolean!` *required*

Whether the product is a physical, shippable item.

**price** `[Money](/docs/api-reference/v3/reference/common/money)`

The product's selling price.

**productFamily** `[ProductFamily](/docs/api-reference/v3/reference/catalog/product-family)`

The product family this product belongs to, if any.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**sku** `String`

The stock keeping unit identifying this product.

**tags** `[String!]!` *required*

Free-form tags applied to the product.

**taxCode** `String`

The tax code used to classify the product for taxation.

**taxable** `Boolean!` *required*

Whether the product is subject to tax.

**title** `String!` *required*

The product's title.

**upc** `String`

The Universal Product Code for this product.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the record was last updated.

**vendor** `String`

The vendor or manufacturer of the product.

**weight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The product's weight.

**quantity** `Int!` *required*

Units of this component across the expanded units.

**sku** `String`

The component's SKU.

**title** `String!` *required*

The component's product title.

**variantTitle** `String`

The component's variant title.

**expandedQuantity** `Int!` *required*

Units built from components. The rest of the line ship as the finished product.

**leftovers** `[\[FulfillmentOrderLineItemLeftover!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-order-line-item-leftover)` *required*

Remainder pieces the build credits back to stock. Empty unless the build cuts to size.

**fields**

**inventoryProduct** `[InventoryProduct](/docs/api-reference/v3/reference/inventory/inventory-product)`

What a fulfillment partner needs to identify and ship this leftover: identity only, no pricing. Readable by the store and the 3PL that ships the group. Null when it never matched a catalog product.

**fields**

**barcodes** `[String!]!` *required*

Barcodes associated with this product, for scanning.

**dimensions** `[Dimensions](/docs/api-reference/v3/reference/catalog/dimensions)`

The product's length, width, and height in a single shared unit, for box sizing.

**hsCode** `String`

The Harmonized System code used for customs.

**id** `ID!` *required*

The id of this product.

**image** `[ProductImage](/docs/api-reference/v3/reference/catalog/product-image)`

The first (default) image for this product, if any.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**originCountry** `String`

The country of origin, as a country code, for customs.

**sku** `String`

The stock keeping unit identifying this product.

**title** `String!` *required*

The product's title.

**upc** `String`

The Universal Product Code for this product.

**weight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The product's weight, for shipping.

**product** `[Product](/docs/api-reference/v3/reference/catalog/product)`

The store's catalog product for this leftover, when it matched one. Null when it never matched, the product was deleted, or the caller can't read the store's products (e.g. a 3PL). Requires `products_read`.

**fields**

**attribute** `[Attribute](/docs/api-reference/v3/reference/catalog/attribute)`

Look up a single attribute on this product by its name, if set.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**fields**

**Arguments**

**name** `String!` *required*

The machine name of the attribute to look up.

**attributes** `[\[Attribute!\]!](/docs/api-reference/v3/reference/catalog/attribute)` *required*

The merchant-defined attributes set on this product.

**barcodes** `[String!]!` *required*

Barcodes associated with this product.

**cost** `[Money](/docs/api-reference/v3/reference/common/money)`

The merchant's unit cost for the product.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the record was created.

**description** `String!` *required*

The product's long-form description.

**dimensions** `[Dimensions](/docs/api-reference/v3/reference/catalog/dimensions)`

The product's length, width, and height, expressed in a single shared unit.

**hsCode** `String`

The Harmonized System code used for customs.

**id** `ID!` *required*

The id of this product.

**image** `[ProductImage](/docs/api-reference/v3/reference/catalog/product-image)`

The first (default) image for this product, if any.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**images** `[ProductImageConnection!](/docs/api-reference/v3/pagination)` *required*

A paginated list of the product's images.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.

**before** `String`

Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.

**first** `Int`

Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**importRestrictions** `[ProductImportRestrictionConnection!](/docs/api-reference/v3/pagination)` *required*

The import restrictions the product trips, one per destination country and rule. Only countries of enabled markets with restriction screening on are screened, and a restriction drops off 21 days after screening last found it.

**Requires:** [`markets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-markets_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns import restrictions after it.

**before** `String`

Backward pagination cursor — returns import restrictions before it.

**first** `Int`

Forward pagination: returns the first N import restrictions (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N import restrictions (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**inventoryItems** `[InventoryItemConnection!](/docs/api-reference/v3/pagination)` *required*

Traceable inventory units for this product.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**fields**

**Arguments**

**after** `String`

**before** `String`

**first** `Int`

**last** `Int`

**inventoryLevel** `[LocationInventoryLevel](/docs/api-reference/v3/reference/inventory/location-inventory-level)`

This product's inventory level at a single location, if any.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**fields**

**Arguments**

**locationId** `ID!` *required*

The id of the location to fetch the level at.

**inventoryLevels** `[LocationInventoryLevelConnection!](/docs/api-reference/v3/pagination)` *required*

Per-location inventory levels for this product.

**Requires:** [`inventory_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-inventory_read)

**fields**

**Arguments**

**after** `String`

Forward pagination cursor — returns items after it. Pass an `edges[].cursor` or `pageInfo.endCursor` from a previous page.

**before** `String`

Backward pagination cursor — returns items before it. Pass an `edges[].cursor` or `pageInfo.startCursor` from a previous page.

**first** `Int`

Forward pagination: returns the first N items (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N items (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**marketPublishing** `[\[ProductMarketPublishing!\]](/docs/api-reference/v3/reference/markets/product-market-publishing)`

Publishing per destination country where the product trips an import restriction, or has a publish override. Only countries of enabled markets with restriction screening on are screened. Null when publishing can't be read.

**Requires:** [`markets_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-markets_read)

**options** `[\[ProductOptionValue!\]!](/docs/api-reference/v3/reference/catalog/product-option-value)` *required*

The variant's selected option values (e.g. Size: M, Color: Red), ordered by the family's option positions.

**originCountry** `String`

The country of origin, as a country code.

**physicalItem** `Boolean!` *required*

Whether the product is a physical, shippable item.

**price** `[Money](/docs/api-reference/v3/reference/common/money)`

The product's selling price.

**productFamily** `[ProductFamily](/docs/api-reference/v3/reference/catalog/product-family)`

The product family this product belongs to, if any.

**Requires:** [`products_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-products_read)

**sku** `String`

The stock keeping unit identifying this product.

**tags** `[String!]!` *required*

Free-form tags applied to the product.

**taxCode** `String`

The tax code used to classify the product for taxation.

**taxable** `Boolean!` *required*

Whether the product is subject to tax.

**title** `String!` *required*

The product's title.

**upc** `String`

The Universal Product Code for this product.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When the record was last updated.

**vendor** `String`

The vendor or manufacturer of the product.

**weight** `[Weight](/docs/api-reference/v3/reference/catalog/weight)`

The product's weight.

**quantity** `Int!` *required*

Units of the leftover the build produces.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.