> Documentation index: [Saleor](/llms.txt) · [This section](/api-reference/checkout/llms.txt)
> Source: https://docs.saleor.io/api-reference/checkout/objects/checkout-line

# CheckoutLine Object

Represents an item in the checkout.

```graphql
type CheckoutLine implements Node, ObjectWithMetadata {
  id: ID!
  privateMetadata: [MetadataItem!]!
  privateMetafield(
    key: String!
  ): String
  privateMetafields(
    keys: [String!]
  ): Metadata
  metadata: [MetadataItem!]!
  metafield(
    key: String!
  ): String
  metafields(
    keys: [String!]
  ): Metadata
  variant: ProductVariant!
  quantity: Int!
  unitPrice: TaxedMoney!
  undiscountedUnitPrice: Money!
  priorUnitPrice: Money
  totalPrice: TaxedMoney!
  undiscountedTotalPrice: Money!
  priorTotalPrice: Money
  requiresShipping: Boolean!
  problems: [CheckoutLineProblem!]
  isGift: Boolean
  priceOverrideReason: String
}
```

<a id="fields"></a>

### Fields

<a id="id"></a>

#### [`id`](#id) ● [`ID!`](/api-reference/miscellaneous/scalars/id.md)

The ID of the checkout line.

<a id="private-metadata"></a>

#### [`privateMetadata`](#private-metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of private metadata items. Requires staff permissions to access.

<a id="private-metafield"></a>

#### [`privateMetafield`](#private-metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from private metadata. Requires staff permissions to access.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="checkout-line-private-metafield-key"></a>

##### [`key`](#checkout-line-private-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="private-metafields"></a>

#### [`privateMetafields`](#private-metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Private metadata. Requires staff permissions to access. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="checkout-line-private-metafields-keys"></a>

##### [`keys`](#checkout-line-private-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="metadata"></a>

#### [`metadata`](#metadata) ● [`[MetadataItem!]!`](/api-reference/miscellaneous/objects/metadata-item.md)

List of public metadata items. Can be accessed without permissions.

<a id="metafield"></a>

#### [`metafield`](#metafield) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

A single key from public metadata.

Tip: Use GraphQL aliases to fetch multiple keys.

<a id="checkout-line-metafield-key"></a>

##### [`key`](#checkout-line-metafield-key) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

<a id="metafields"></a>

#### [`metafields`](#metafields) ● [`Metadata`](/api-reference/miscellaneous/scalars/metadata.md)

Public metadata. Use `keys` to control which fields you want to include. The default is to include everything.

<a id="checkout-line-metafields-keys"></a>

##### [`keys`](#checkout-line-metafields-keys) ● [`[String!]`](/api-reference/miscellaneous/scalars/string.md)

<a id="variant"></a>

#### [`variant`](#variant) ● [`ProductVariant!`](/api-reference/products/objects/product-variant.md)

The product variant from which the checkout line was created.

<a id="quantity"></a>

#### [`quantity`](#quantity) ● [`Int!`](/api-reference/miscellaneous/scalars/int.md)

The quantity of product variant assigned to the checkout line.

<a id="unit-price"></a>

#### [`unitPrice`](#unit-price) ● [`TaxedMoney!`](/api-reference/miscellaneous/objects/taxed-money.md)

The unit price of the checkout line, with taxes and discounts.

Triggers the following webhook events:

-   CHECKOUT\_CALCULATE\_TAXES (sync): Optionally triggered when checkout prices are expired.

<a id="undiscounted-unit-price"></a>

#### [`undiscountedUnitPrice`](#undiscounted-unit-price) ● [`Money!`](/api-reference/miscellaneous/objects/money.md)

The unit price of the checkout line, without discounts.

<a id="prior-unit-price"></a>

#### [`priorUnitPrice`](#prior-unit-price) ● [`Money`](/api-reference/miscellaneous/objects/money.md)

The unit price of the checkout line prior to promotion.

Added in Saleor 3.21

<a id="total-price"></a>

#### [`totalPrice`](#total-price) ● [`TaxedMoney!`](/api-reference/miscellaneous/objects/taxed-money.md)

The sum of the checkout line price, taxes and discounts.

Triggers the following webhook events:

-   CHECKOUT\_CALCULATE\_TAXES (sync): Optionally triggered when checkout prices are expired.

<a id="undiscounted-total-price"></a>

#### [`undiscountedTotalPrice`](#undiscounted-total-price) ● [`Money!`](/api-reference/miscellaneous/objects/money.md)

The sum of the checkout line price, without discounts.

<a id="prior-total-price"></a>

#### [`priorTotalPrice`](#prior-total-price) ● [`Money`](/api-reference/miscellaneous/objects/money.md)

The sum of the checkout line price prior to promotion.

Added in Saleor 3.21

<a id="requires-shipping"></a>

#### [`requiresShipping`](#requires-shipping) ● [`Boolean!`](/api-reference/miscellaneous/scalars/boolean.md)

Indicates whether the item need to be delivered.

<a id="problems"></a>

#### [`problems`](#problems) ● [`[CheckoutLineProblem!]`](/api-reference/miscellaneous/unions/checkout-line-problem.md)

List of problems with the checkout line.

<a id="is-gift"></a>

#### [`isGift`](#is-gift) ● [`Boolean`](/api-reference/miscellaneous/scalars/boolean.md)

Determine if the line is a gift.

Added in Saleor 3.19

This API is currently in **Feature Preview** and can be subject to changes at later point.

<a id="price-override-reason"></a>

#### [`priceOverrideReason`](#price-override-reason) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

Reason explaining why a custom price was set on the line, provided by the app that set the price override.

Added in Saleor 3.23

Requires one of the following permissions: MANAGE\_CHECKOUTS HANDLE\_CHECKOUTS

<a id="interfaces"></a>

### Interfaces

<a id="node"></a>

#### [`Node`](/api-reference/miscellaneous/interfaces/node.md)

An object with an ID

<a id="objectwithmetadata"></a>

#### [`ObjectWithMetadata`](/api-reference/miscellaneous/interfaces/object-with-metadata.md)

<a id="member-of"></a>

### Member Of

[`Checkout`](/api-reference/checkout/objects/checkout.md) object  ● [`CheckoutLineCountableEdge`](/api-reference/checkout/objects/checkout-line-countable-edge.md) object  ● [`CheckoutLineProblemInsufficientStock`](/api-reference/checkout/objects/checkout-line-problem-insufficient-stock.md) object  ● [`CheckoutLineProblemVariantNotAvailable`](/api-reference/checkout/objects/checkout-line-problem-variant-not-available.md) object

<a id="implemented-by"></a>

### Implemented By

[`TaxSourceLine`](/api-reference/miscellaneous/unions/tax-source-line.md) union
