type OrderLine implements Node, ObjectWithMetadata {
id: ID!
productName: String!
variantName: String!
productSku: String
productVariantId: String
isShippingRequired: Boolean!
quantity: Int!
quantityFulfilled: Int!
taxRate: Float!
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!]
# Metadata fields
metadata: [MetadataItem!]!
metafield(key: String!): String
metafields(keys: [String!]): Metadata
privateMetadata: [MetadataItem!]!
privateMetafield(key: String!): String
privateMetafields(keys: [String!]): Metadata
}