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

# OrderLine Object

Represents order line of particular order.

```graphql
type OrderLine 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
  productName: String!
  variantName: String!
  productSku: String
  productVariantId: String
  isShippingRequired: Boolean!
  quantity: Int!
  quantityFulfilled: Int!
  taxRate: Float!
  thumbnail(
    size: Int
    format: ThumbnailFormatEnum = ORIGINAL
  ): Image
  unitPrice: TaxedMoney!
  undiscountedUnitPrice: TaxedMoney!
  unitDiscount: Money!
  unitDiscountReason: String
  unitDiscountValue: PositiveDecimal!
  unitDiscountType: DiscountValueTypeEnum
  totalPrice: TaxedMoney!
  undiscountedTotalPrice: TaxedMoney!
  isPriceOverridden: Boolean
  priceOverrideReason: String
  variant: ProductVariant
  translatedProductName: String!
  translatedVariantName: String!
  allocations: [Allocation!]
  saleId: ID
  quantityToFulfill: Int!
  taxClass: TaxClass
  taxClassName: String
  taxClassMetadata: [MetadataItem!]!
  taxClassPrivateMetadata: [MetadataItem!]!
  voucherCode: String
  isGift: Boolean
  discounts: [OrderLineDiscount!]
}
```

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

### Fields

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

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

ID of the order 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="order-line-private-metafield-key"></a>

##### [`key`](#order-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="order-line-private-metafields-keys"></a>

##### [`keys`](#order-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="order-line-metafield-key"></a>

##### [`key`](#order-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="order-line-metafields-keys"></a>

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

<a id="product-name"></a>

#### [`productName`](#product-name) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

Name of the product in order line.

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

#### [`variantName`](#variant-name) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

Name of the variant of product in order line.

<a id="product-sku"></a>

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

SKU of the product variant.

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

#### [`productVariantId`](#product-variant-id) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

The ID of the product variant.

<a id="is-shipping-required"></a>

#### [`isShippingRequired`](#is-shipping-required) ● [`Boolean!`](/api-reference/miscellaneous/scalars/boolean.md)

Whether the product variant requires shipping.

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

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

Number of variant items ordered.

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

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

Number of variant items fulfilled.

<a id="tax-rate"></a>

#### [`taxRate`](#tax-rate) ● [`Float!`](/api-reference/miscellaneous/scalars/float.md)

Rate of tax applied on product variant.

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

#### [`thumbnail`](#thumbnail) ● [`Image`](/api-reference/miscellaneous/objects/image.md)

<a id="order-line-thumbnail-size"></a>

##### [`size`](#order-line-thumbnail-size) ● [`Int`](/api-reference/miscellaneous/scalars/int.md)

Desired longest side the image in pixels. Defaults to 4096. Images are never cropped. Pass 0 to retrieve the original size (not recommended).

<a id="order-line-thumbnail-format"></a>

##### [`format`](#order-line-thumbnail-format) ● [`ThumbnailFormatEnum`](/api-reference/miscellaneous/enums/thumbnail-format-enum.md)

The format of the image. When not provided, format of the original image will be used.

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

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

Price of the single item in the order line with all the line-level discounts and order-level discount portions applied.

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

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

Price of the single item in the order line without any discount applied.

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

#### [`unitDiscount`](#unit-discount) ● [`Money!`](/api-reference/miscellaneous/objects/money.md)

Sum of the line-level discounts applied to the order line. Order-level discounts which affect the line are not visible in this field. For order-level discount portion (if any), please query `order.discounts` field.

<a id="unit-discount-reason"></a>

#### [`unitDiscountReason`](#unit-discount-reason) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

Reason for line-level discounts applied on the order line. Order-level discounts which affect the line are not visible in this field. For order-level discount reason (if any), please query `order.discounts` field.

<a id="unit-discount-value"></a>

#### [`unitDiscountValue`](#unit-discount-value) ● [`PositiveDecimal!`](/api-reference/miscellaneous/scalars/positive-decimal.md)

Value of the discount. Can store fixed value or percent value. This field shouldn't be used when multiple discounts affect the line. There is a limitation, that after running `checkoutComplete` mutation the field always stores fixed value.

<a id="unit-discount-type"></a>

#### [`unitDiscountType`](#unit-discount-type) ● [`DiscountValueTypeEnum`](/api-reference/discounts/enums/discount-value-type-enum.md)

Type of the discount: `fixed` or `percent`. This field shouldn't be used when multiple discounts affect the line. There is a limitation, that after running `checkoutComplete` mutation the field is always set to `fixed`.

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

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

Price of the order line.

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

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

Price of the order line without discounts.

<a id="is-price-overridden"></a>

#### [`isPriceOverridden`](#is-price-overridden) ● [`Boolean`](/api-reference/miscellaneous/scalars/boolean.md)

Returns True, if the line unit price was overridden.

<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, copied from the checkout line when the order was created from a checkout.

Added in Saleor 3.23

Requires the MANAGE\_ORDERS permission.

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

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

A purchased product variant. Note: this field may be null if the variant has been removed from stock at all.

Requires one of the following permissions to include the unpublished items: MANAGE\_ORDERS MANAGE\_DISCOUNTS MANAGE\_PRODUCTS

<a id="translated-product-name"></a>

#### [`translatedProductName`](#translated-product-name) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

Product name in the customer's language

<a id="translated-variant-name"></a>

#### [`translatedVariantName`](#translated-variant-name) ● [`String!`](/api-reference/miscellaneous/scalars/string.md)

Variant name in the customer's language

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

#### [`allocations`](#allocations) ● [`[Allocation!]`](/api-reference/products/objects/allocation.md)

List of allocations across warehouses.

Requires one of the following permissions: MANAGE\_PRODUCTS MANAGE\_ORDERS

<a id="sale-id"></a>

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

Denormalized sale ID, set when order line is created for a product variant that is on sale.

<a id="quantity-to-fulfill"></a>

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

A quantity of items remaining to be fulfilled.

<a id="tax-class"></a>

#### [`taxClass`](#tax-class) ● [`TaxClass`](/api-reference/taxes/objects/tax-class.md)

Denormalized tax class of the product in this order line.

Requires one of the following permissions: AUTHENTICATED\_STAFF\_USER AUTHENTICATED\_APP

<a id="tax-class-name"></a>

#### [`taxClassName`](#tax-class-name) ● [`String`](/api-reference/miscellaneous/scalars/string.md)

Denormalized name of the tax class.

<a id="tax-class-metadata"></a>

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

Denormalized public metadata of the tax class.

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

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

Denormalized private metadata of the tax class. Requires staff permissions to access.

<a id="voucher-code"></a>

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

Voucher code that was used for this order 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="discounts"></a>

#### [`discounts`](#discounts) ● [`[OrderLineDiscount!]`](/api-reference/orders/objects/order-line-discount.md)

List of applied discounts

Added in Saleor 3.21

<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

[`FulfillmentLine`](/api-reference/orders/objects/fulfillment-line.md) object  ● [`Order`](/api-reference/orders/objects/order.md) object  ● [`OrderEventOrderLineObject`](/api-reference/orders/objects/order-event-order-line-object.md) object  ● [`OrderGrantedRefundLine`](/api-reference/miscellaneous/objects/order-granted-refund-line.md) object  ● [`OrderLineDelete`](/api-reference/orders/objects/order-line-delete.md) object  ● [`OrderLineDiscountRemove`](/api-reference/orders/objects/order-line-discount-remove.md) object  ● [`OrderLineDiscountUpdate`](/api-reference/orders/objects/order-line-discount-update.md) object  ● [`OrderLinesCreate`](/api-reference/orders/objects/order-lines-create.md) object  ● [`OrderLineUpdate`](/api-reference/orders/objects/order-line-update.md) object

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

### Implemented By

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