---
title: "Types"
generated: true
---



## AddFulfillmentToOrderResult {#addfulfillmenttoorderresult}

<GraphQLDoc
  type="union"
  typeName="AddFulfillmentToOrderResult"
  typeLinks={{
    Fulfillment: '/reference/graphql-api/admin/object-types#fulfillment',
    EmptyOrderLineSelectionError: '/reference/graphql-api/admin/object-types#emptyorderlineselectionerror',
    ItemsAlreadyFulfilledError: '/reference/graphql-api/admin/object-types#itemsalreadyfulfillederror',
    InsufficientStockOnHandError: '/reference/graphql-api/admin/object-types#insufficientstockonhanderror',
    InvalidFulfillmentHandlerError: '/reference/graphql-api/admin/object-types#invalidfulfillmenthandlererror',
    FulfillmentStateTransitionError: '/reference/graphql-api/admin/object-types#fulfillmentstatetransitionerror',
    CreateFulfillmentError: '/reference/graphql-api/admin/object-types#createfulfillmenterror',
  }}
>
{`union AddFulfillmentToOrderResult = Fulfillment | EmptyOrderLineSelectionError | ItemsAlreadyFulfilledError | InsufficientStockOnHandError | InvalidFulfillmentHandlerError | FulfillmentStateTransitionError | CreateFulfillmentError`}
</GraphQLDoc>

## AddManualPaymentToOrderResult {#addmanualpaymenttoorderresult}

<GraphQLDoc
  type="union"
  typeName="AddManualPaymentToOrderResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    ManualPaymentStateError: '/reference/graphql-api/admin/object-types#manualpaymentstateerror',
  }}
>
{`union AddManualPaymentToOrderResult = Order | ManualPaymentStateError`}
</GraphQLDoc>

## Address {#address}

<GraphQLDoc
  type="type"
  typeName="Address"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Country: '/reference/graphql-api/admin/object-types#country',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Address {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  fullName: String
  company: String
  streetLine1: String!
  streetLine2: String
  city: String
  province: String
  postalCode: String
  country: Country!
  phoneNumber: String
  defaultShippingAddress: Boolean
  defaultBillingAddress: Boolean
  customFields: JSON
}`}
</GraphQLDoc>

## Adjustment {#adjustment}

<GraphQLDoc
  type="type"
  typeName="Adjustment"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    AdjustmentType: '/reference/graphql-api/admin/enums#adjustmenttype',
    Money: '/reference/graphql-api/admin/object-types#money',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Adjustment {
  adjustmentSource: String!
  type: AdjustmentType!
  description: String!
  amount: Money!
  data: JSON
}`}
</GraphQLDoc>

## Administrator {#administrator}

<GraphQLDoc
  type="type"
  typeName="Administrator"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    User: '/reference/graphql-api/admin/object-types#user',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Administrator {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  firstName: String!
  lastName: String!
  emailAddress: String!
  user: User!
  customFields: JSON
}`}
</GraphQLDoc>

## AdministratorList {#administratorlist}

<GraphQLDoc
  type="type"
  typeName="AdministratorList"
  typeLinks={{
    Administrator: '/reference/graphql-api/admin/object-types#administrator',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type AdministratorList {
  items: [Administrator!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## Allocation {#allocation}

<GraphQLDoc
  type="type"
  typeName="Allocation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    StockMovementType: '/reference/graphql-api/admin/enums#stockmovementtype',
    Int: '/reference/graphql-api/admin/object-types#int',
    OrderLine: '/reference/graphql-api/admin/object-types#orderline',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Allocation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  type: StockMovementType!
  quantity: Int!
  orderLine: OrderLine!
  customFields: JSON
}`}
</GraphQLDoc>

## AlreadyRefundedError {#alreadyrefundederror}

<GraphQLDoc
  type="type"
  typeName="AlreadyRefundedError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    ID: '/reference/graphql-api/admin/object-types#id',
  }}
>
{`"""Returned if an attempting to refund an OrderItem which has already been refunded"""
type AlreadyRefundedError {
  errorCode: ErrorCode!
  message: String!
  refundId: ID!
}`}
</GraphQLDoc>

## ApplyCouponCodeResult {#applycouponcoderesult}

<GraphQLDoc
  type="union"
  typeName="ApplyCouponCodeResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    CouponCodeExpiredError: '/reference/graphql-api/admin/object-types#couponcodeexpirederror',
    CouponCodeInvalidError: '/reference/graphql-api/admin/object-types#couponcodeinvaliderror',
    CouponCodeLimitError: '/reference/graphql-api/admin/object-types#couponcodelimiterror',
  }}
>
{`union ApplyCouponCodeResult = Order | CouponCodeExpiredError | CouponCodeInvalidError | CouponCodeLimitError`}
</GraphQLDoc>

## Asset {#asset}

<GraphQLDoc
  type="type"
  typeName="Asset"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    AssetType: '/reference/graphql-api/admin/enums#assettype',
    Int: '/reference/graphql-api/admin/object-types#int',
    Coordinate: '/reference/graphql-api/admin/object-types#coordinate',
    Tag: '/reference/graphql-api/admin/object-types#tag',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Asset {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  type: AssetType!
  fileSize: Int!
  mimeType: String!
  width: Int!
  height: Int!
  source: String!
  preview: String!
  focalPoint: Coordinate
  tags: [Tag!]!
  customFields: JSON
}`}
</GraphQLDoc>

## AssetList {#assetlist}

<GraphQLDoc
  type="type"
  typeName="AssetList"
  typeLinks={{
    Asset: '/reference/graphql-api/admin/object-types#asset',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type AssetList {
  items: [Asset!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## AuthenticationMethod {#authenticationmethod}

<GraphQLDoc
  type="type"
  typeName="AuthenticationMethod"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type AuthenticationMethod {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  strategy: String!
}`}
</GraphQLDoc>

## AuthenticationResult {#authenticationresult}

<GraphQLDoc
  type="union"
  typeName="AuthenticationResult"
  typeLinks={{
    CurrentUser: '/reference/graphql-api/admin/object-types#currentuser',
    InvalidCredentialsError: '/reference/graphql-api/admin/object-types#invalidcredentialserror',
  }}
>
{`union AuthenticationResult = CurrentUser | InvalidCredentialsError`}
</GraphQLDoc>

## Boolean {#boolean}

<GraphQLDoc
  type="scalar"
  typeName="Boolean"
  typeLinks={{}}
>
{`"""The \`Boolean\` scalar type represents \`true\` or \`false\`."""
scalar Boolean`}
</GraphQLDoc>

## BooleanCustomFieldConfig {#booleancustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="BooleanCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type BooleanCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  ui: JSON
}`}
</GraphQLDoc>

## BooleanStructFieldConfig {#booleanstructfieldconfig}

<GraphQLDoc
  type="type"
  typeName="BooleanStructFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type BooleanStructFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  ui: JSON
}`}
</GraphQLDoc>

## CancelActiveOrderError {#cancelactiveordererror}

<GraphQLDoc
  type="type"
  typeName="CancelActiveOrderError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if an attempting to cancel lines from an Order which is still active"""
type CancelActiveOrderError {
  errorCode: ErrorCode!
  message: String!
  orderState: String!
}`}
</GraphQLDoc>

## CancelOrderResult {#cancelorderresult}

<GraphQLDoc
  type="union"
  typeName="CancelOrderResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    EmptyOrderLineSelectionError: '/reference/graphql-api/admin/object-types#emptyorderlineselectionerror',
    QuantityTooGreatError: '/reference/graphql-api/admin/object-types#quantitytoogreaterror',
    MultipleOrderError: '/reference/graphql-api/admin/object-types#multipleordererror',
    CancelActiveOrderError: '/reference/graphql-api/admin/object-types#cancelactiveordererror',
    OrderStateTransitionError: '/reference/graphql-api/admin/object-types#orderstatetransitionerror',
  }}
>
{`union CancelOrderResult = Order | EmptyOrderLineSelectionError | QuantityTooGreatError | MultipleOrderError | CancelActiveOrderError | OrderStateTransitionError`}
</GraphQLDoc>

## CancelPaymentError {#cancelpaymenterror}

<GraphQLDoc
  type="type"
  typeName="CancelPaymentError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the Payment cancellation fails"""
type CancelPaymentError {
  errorCode: ErrorCode!
  message: String!
  paymentErrorMessage: String!
}`}
</GraphQLDoc>

## CancelPaymentResult {#cancelpaymentresult}

<GraphQLDoc
  type="union"
  typeName="CancelPaymentResult"
  typeLinks={{
    Payment: '/reference/graphql-api/admin/object-types#payment',
    CancelPaymentError: '/reference/graphql-api/admin/object-types#cancelpaymenterror',
    PaymentStateTransitionError: '/reference/graphql-api/admin/object-types#paymentstatetransitionerror',
  }}
>
{`union CancelPaymentResult = Payment | CancelPaymentError | PaymentStateTransitionError`}
</GraphQLDoc>

## Cancellation {#cancellation}

<GraphQLDoc
  type="type"
  typeName="Cancellation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    StockMovementType: '/reference/graphql-api/admin/enums#stockmovementtype',
    Int: '/reference/graphql-api/admin/object-types#int',
    OrderLine: '/reference/graphql-api/admin/object-types#orderline',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Cancellation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  type: StockMovementType!
  quantity: Int!
  orderLine: OrderLine!
  customFields: JSON
}`}
</GraphQLDoc>

## Channel {#channel}

<GraphQLDoc
  type="type"
  typeName="Channel"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Zone: '/reference/graphql-api/admin/object-types#zone',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    CurrencyCode: '/reference/graphql-api/admin/enums#currencycode',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Int: '/reference/graphql-api/admin/object-types#int',
    Seller: '/reference/graphql-api/admin/object-types#seller',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Channel {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  code: String!
  token: String!
  defaultTaxZone: Zone
  defaultShippingZone: Zone
  defaultLanguageCode: LanguageCode!
  availableLanguageCodes: [LanguageCode!]
  currencyCode: CurrencyCode!
  defaultCurrencyCode: CurrencyCode!
  availableCurrencyCodes: [CurrencyCode!]!
  """Not yet used - will be implemented in a future release."""
  trackInventory: Boolean
  """Not yet used - will be implemented in a future release."""
  outOfStockThreshold: Int
  pricesIncludeTax: Boolean!
  seller: Seller
  customFields: JSON
}`}
</GraphQLDoc>

## ChannelDefaultLanguageError {#channeldefaultlanguageerror}

<GraphQLDoc
  type="type"
  typeName="ChannelDefaultLanguageError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""
Returned when the default LanguageCode of a Channel is no longer found in the \`availableLanguages\`
of the GlobalSettings
"""
type ChannelDefaultLanguageError {
  errorCode: ErrorCode!
  message: String!
  language: String!
  channelCode: String!
}`}
</GraphQLDoc>

## ChannelList {#channellist}

<GraphQLDoc
  type="type"
  typeName="ChannelList"
  typeLinks={{
    Channel: '/reference/graphql-api/admin/object-types#channel',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ChannelList {
  items: [Channel!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## Collection {#collection}

<GraphQLDoc
  type="type"
  typeName="Collection"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    CollectionBreadcrumb: '/reference/graphql-api/admin/object-types#collectionbreadcrumb',
    Int: '/reference/graphql-api/admin/object-types#int',
    Asset: '/reference/graphql-api/admin/object-types#asset',
    Collection: '/reference/graphql-api/admin/object-types#collection',
    ConfigurableOperation: '/reference/graphql-api/admin/object-types#configurableoperation',
    CollectionTranslation: '/reference/graphql-api/admin/object-types#collectiontranslation',
    ProductVariantList: '/reference/graphql-api/admin/object-types#productvariantlist',
    ProductVariantListOptions: '/reference/graphql-api/admin/input-types#productvariantlistoptions',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Collection {
  isPrivate: Boolean!
  inheritFilters: Boolean!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode
  name: String!
  slug: String!
  breadcrumbs: [CollectionBreadcrumb!]!
  position: Int!
  description: String!
  featuredAsset: Asset
  assets: [Asset!]!
  parent: Collection
  parentId: ID!
  children: [Collection!]
  filters: [ConfigurableOperation!]!
  translations: [CollectionTranslation!]!
  productVariants(options: ProductVariantListOptions): ProductVariantList!
  customFields: JSON
}`}
</GraphQLDoc>

## CollectionBreadcrumb {#collectionbreadcrumb}

<GraphQLDoc
  type="type"
  typeName="CollectionBreadcrumb"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type CollectionBreadcrumb {
  id: ID!
  name: String!
  slug: String!
}`}
</GraphQLDoc>

## CollectionList {#collectionlist}

<GraphQLDoc
  type="type"
  typeName="CollectionList"
  typeLinks={{
    Collection: '/reference/graphql-api/admin/object-types#collection',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type CollectionList {
  items: [Collection!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## CollectionResult {#collectionresult}

<GraphQLDoc
  type="type"
  typeName="CollectionResult"
  typeLinks={{
    Collection: '/reference/graphql-api/admin/object-types#collection',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`"""
Which Collections are present in the products returned
by the search, and in what quantity.
"""
type CollectionResult {
  collection: Collection!
  count: Int!
}`}
</GraphQLDoc>

## CollectionTranslation {#collectiontranslation}

<GraphQLDoc
  type="type"
  typeName="CollectionTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type CollectionTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  slug: String!
  description: String!
}`}
</GraphQLDoc>

## ConfigArg {#configarg}

<GraphQLDoc
  type="type"
  typeName="ConfigArg"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type ConfigArg {
  name: String!
  value: String!
}`}
</GraphQLDoc>

## ConfigArgDefinition {#configargdefinition}

<GraphQLDoc
  type="type"
  typeName="ConfigArgDefinition"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ConfigArgDefinition {
  name: String!
  type: String!
  list: Boolean!
  required: Boolean!
  defaultValue: JSON
  label: String
  description: String
  ui: JSON
}`}
</GraphQLDoc>

## ConfigurableOperation {#configurableoperation}

<GraphQLDoc
  type="type"
  typeName="ConfigurableOperation"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    ConfigArg: '/reference/graphql-api/admin/object-types#configarg',
  }}
>
{`type ConfigurableOperation {
  code: String!
  args: [ConfigArg!]!
}`}
</GraphQLDoc>

## ConfigurableOperationDefinition {#configurableoperationdefinition}

<GraphQLDoc
  type="type"
  typeName="ConfigurableOperationDefinition"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    ConfigArgDefinition: '/reference/graphql-api/admin/object-types#configargdefinition',
  }}
>
{`type ConfigurableOperationDefinition {
  code: String!
  args: [ConfigArgDefinition!]!
  description: String!
}`}
</GraphQLDoc>

## Coordinate {#coordinate}

<GraphQLDoc
  type="type"
  typeName="Coordinate"
  typeLinks={{
    Float: '/reference/graphql-api/admin/object-types#float',
  }}
>
{`type Coordinate {
  x: Float!
  y: Float!
}`}
</GraphQLDoc>

## Country {#country}

<GraphQLDoc
  type="type"
  typeName="Country"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Region: '/reference/graphql-api/admin/object-types#region',
    RegionTranslation: '/reference/graphql-api/admin/object-types#regiontranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`"""
A Country of the world which your shop operates in.

The \`code\` field is typically a 2-character ISO code such as "GB", "US", "DE" etc. This code is used in certain inputs such as
\`UpdateAddressInput\` and \`CreateAddressInput\` to specify the country.
"""
type Country {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  code: String!
  type: String!
  name: String!
  enabled: Boolean!
  parent: Region
  parentId: ID
  translations: [RegionTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## CountryList {#countrylist}

<GraphQLDoc
  type="type"
  typeName="CountryList"
  typeLinks={{
    Country: '/reference/graphql-api/admin/object-types#country',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type CountryList {
  items: [Country!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## CouponCodeExpiredError {#couponcodeexpirederror}

<GraphQLDoc
  type="type"
  typeName="CouponCodeExpiredError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the provided coupon code is invalid"""
type CouponCodeExpiredError {
  errorCode: ErrorCode!
  message: String!
  couponCode: String!
}`}
</GraphQLDoc>

## CouponCodeInvalidError {#couponcodeinvaliderror}

<GraphQLDoc
  type="type"
  typeName="CouponCodeInvalidError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the provided coupon code is invalid"""
type CouponCodeInvalidError {
  errorCode: ErrorCode!
  message: String!
  couponCode: String!
}`}
</GraphQLDoc>

## CouponCodeLimitError {#couponcodelimiterror}

<GraphQLDoc
  type="type"
  typeName="CouponCodeLimitError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`"""Returned if the provided coupon code is invalid"""
type CouponCodeLimitError {
  errorCode: ErrorCode!
  message: String!
  couponCode: String!
  limit: Int!
}`}
</GraphQLDoc>

## CreateAssetResult {#createassetresult}

<GraphQLDoc
  type="union"
  typeName="CreateAssetResult"
  typeLinks={{
    Asset: '/reference/graphql-api/admin/object-types#asset',
    MimeTypeError: '/reference/graphql-api/admin/object-types#mimetypeerror',
  }}
>
{`union CreateAssetResult = Asset | MimeTypeError`}
</GraphQLDoc>

## CreateChannelResult {#createchannelresult}

<GraphQLDoc
  type="union"
  typeName="CreateChannelResult"
  typeLinks={{
    Channel: '/reference/graphql-api/admin/object-types#channel',
    LanguageNotAvailableError: '/reference/graphql-api/admin/object-types#languagenotavailableerror',
  }}
>
{`union CreateChannelResult = Channel | LanguageNotAvailableError`}
</GraphQLDoc>

## CreateCustomerResult {#createcustomerresult}

<GraphQLDoc
  type="union"
  typeName="CreateCustomerResult"
  typeLinks={{
    Customer: '/reference/graphql-api/admin/object-types#customer',
    EmailAddressConflictError: '/reference/graphql-api/admin/object-types#emailaddressconflicterror',
  }}
>
{`union CreateCustomerResult = Customer | EmailAddressConflictError`}
</GraphQLDoc>

## CreateFulfillmentError {#createfulfillmenterror}

<GraphQLDoc
  type="type"
  typeName="CreateFulfillmentError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if an error is thrown in a FulfillmentHandler's createFulfillment method"""
type CreateFulfillmentError {
  errorCode: ErrorCode!
  message: String!
  fulfillmentHandlerError: String!
}`}
</GraphQLDoc>

## CreatePromotionResult {#createpromotionresult}

<GraphQLDoc
  type="union"
  typeName="CreatePromotionResult"
  typeLinks={{
    Promotion: '/reference/graphql-api/admin/object-types#promotion',
    MissingConditionsError: '/reference/graphql-api/admin/object-types#missingconditionserror',
  }}
>
{`union CreatePromotionResult = Promotion | MissingConditionsError`}
</GraphQLDoc>

## CurrentUser {#currentuser}

<GraphQLDoc
  type="type"
  typeName="CurrentUser"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    String: '/reference/graphql-api/admin/object-types#string',
    CurrentUserChannel: '/reference/graphql-api/admin/object-types#currentuserchannel',
  }}
>
{`type CurrentUser {
  id: ID!
  identifier: String!
  channels: [CurrentUserChannel!]!
}`}
</GraphQLDoc>

## CurrentUserChannel {#currentuserchannel}

<GraphQLDoc
  type="type"
  typeName="CurrentUserChannel"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    String: '/reference/graphql-api/admin/object-types#string',
    Permission: '/reference/graphql-api/admin/enums#permission',
  }}
>
{`type CurrentUserChannel {
  id: ID!
  token: String!
  code: String!
  permissions: [Permission!]!
}`}
</GraphQLDoc>

## CustomFieldConfig {#customfieldconfig}

<GraphQLDoc
  type="union"
  typeName="CustomFieldConfig"
  typeLinks={{
    StringCustomFieldConfig: '/reference/graphql-api/admin/object-types#stringcustomfieldconfig',
    LocaleStringCustomFieldConfig: '/reference/graphql-api/admin/object-types#localestringcustomfieldconfig',
    IntCustomFieldConfig: '/reference/graphql-api/admin/object-types#intcustomfieldconfig',
    FloatCustomFieldConfig: '/reference/graphql-api/admin/object-types#floatcustomfieldconfig',
    BooleanCustomFieldConfig: '/reference/graphql-api/admin/object-types#booleancustomfieldconfig',
    DateTimeCustomFieldConfig: '/reference/graphql-api/admin/object-types#datetimecustomfieldconfig',
    RelationCustomFieldConfig: '/reference/graphql-api/admin/object-types#relationcustomfieldconfig',
    TextCustomFieldConfig: '/reference/graphql-api/admin/object-types#textcustomfieldconfig',
    LocaleTextCustomFieldConfig: '/reference/graphql-api/admin/object-types#localetextcustomfieldconfig',
    StructCustomFieldConfig: '/reference/graphql-api/admin/object-types#structcustomfieldconfig',
  }}
>
{`union CustomFieldConfig = StringCustomFieldConfig | LocaleStringCustomFieldConfig | IntCustomFieldConfig | FloatCustomFieldConfig | BooleanCustomFieldConfig | DateTimeCustomFieldConfig | RelationCustomFieldConfig | TextCustomFieldConfig | LocaleTextCustomFieldConfig | StructCustomFieldConfig`}
</GraphQLDoc>

## CustomFields {#customfields}

<GraphQLDoc
  type="type"
  typeName="CustomFields"
  typeLinks={{
    CustomFieldConfig: '/reference/graphql-api/admin/object-types#customfieldconfig',
  }}
>
{`"""
This type is deprecated in v2.2 in favor of the EntityCustomFields type,
which allows custom fields to be defined on user-supplied entities.
"""
type CustomFields {
  Address: [CustomFieldConfig!]!
  Administrator: [CustomFieldConfig!]!
  Asset: [CustomFieldConfig!]!
  Channel: [CustomFieldConfig!]!
  Collection: [CustomFieldConfig!]!
  Customer: [CustomFieldConfig!]!
  CustomerGroup: [CustomFieldConfig!]!
  Facet: [CustomFieldConfig!]!
  FacetValue: [CustomFieldConfig!]!
  Fulfillment: [CustomFieldConfig!]!
  GlobalSettings: [CustomFieldConfig!]!
  HistoryEntry: [CustomFieldConfig!]!
  Order: [CustomFieldConfig!]!
  OrderLine: [CustomFieldConfig!]!
  Payment: [CustomFieldConfig!]!
  PaymentMethod: [CustomFieldConfig!]!
  Product: [CustomFieldConfig!]!
  ProductOption: [CustomFieldConfig!]!
  ProductOptionGroup: [CustomFieldConfig!]!
  ProductVariant: [CustomFieldConfig!]!
  ProductVariantPrice: [CustomFieldConfig!]!
  Promotion: [CustomFieldConfig!]!
  Refund: [CustomFieldConfig!]!
  Region: [CustomFieldConfig!]!
  Seller: [CustomFieldConfig!]!
  Session: [CustomFieldConfig!]!
  ShippingLine: [CustomFieldConfig!]!
  ShippingMethod: [CustomFieldConfig!]!
  StockLevel: [CustomFieldConfig!]!
  StockLocation: [CustomFieldConfig!]!
  StockMovement: [CustomFieldConfig!]!
  TaxCategory: [CustomFieldConfig!]!
  TaxRate: [CustomFieldConfig!]!
  User: [CustomFieldConfig!]!
  Zone: [CustomFieldConfig!]!
}`}
</GraphQLDoc>

## Customer {#customer}

<GraphQLDoc
  type="type"
  typeName="Customer"
  typeLinks={{
    CustomerGroup: '/reference/graphql-api/admin/object-types#customergroup',
    HistoryEntryList: '/reference/graphql-api/admin/object-types#historyentrylist',
    HistoryEntryListOptions: '/reference/graphql-api/admin/input-types#historyentrylistoptions',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Address: '/reference/graphql-api/admin/object-types#address',
    OrderList: '/reference/graphql-api/admin/object-types#orderlist',
    OrderListOptions: '/reference/graphql-api/admin/input-types#orderlistoptions',
    User: '/reference/graphql-api/admin/object-types#user',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Customer {
  groups: [CustomerGroup!]!
  history(options: HistoryEntryListOptions): HistoryEntryList!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  title: String
  firstName: String!
  lastName: String!
  phoneNumber: String
  emailAddress: String!
  addresses: [Address!]
  orders(options: OrderListOptions): OrderList!
  user: User
  customFields: JSON
}`}
</GraphQLDoc>

## CustomerGroup {#customergroup}

<GraphQLDoc
  type="type"
  typeName="CustomerGroup"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    CustomerList: '/reference/graphql-api/admin/object-types#customerlist',
    CustomerListOptions: '/reference/graphql-api/admin/input-types#customerlistoptions',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type CustomerGroup {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  customers(options: CustomerListOptions): CustomerList!
  customFields: JSON
}`}
</GraphQLDoc>

## CustomerGroupList {#customergrouplist}

<GraphQLDoc
  type="type"
  typeName="CustomerGroupList"
  typeLinks={{
    CustomerGroup: '/reference/graphql-api/admin/object-types#customergroup',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type CustomerGroupList {
  items: [CustomerGroup!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## CustomerList {#customerlist}

<GraphQLDoc
  type="type"
  typeName="CustomerList"
  typeLinks={{
    Customer: '/reference/graphql-api/admin/object-types#customer',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type CustomerList {
  items: [Customer!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## DateTime {#datetime}

<GraphQLDoc
  type="scalar"
  typeName="DateTime"
  typeLinks={{}}
>
{`"""A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the \`date-time\` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar."""
scalar DateTime`}
</GraphQLDoc>

## DateTimeCustomFieldConfig {#datetimecustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="DateTimeCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`"""
Expects the same validation formats as the \`<input type="datetime-local">\` HTML element.
See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#Additional_attributes
"""
type DateTimeCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  min: String
  max: String
  step: Int
  ui: JSON
}`}
</GraphQLDoc>

## DateTimeStructFieldConfig {#datetimestructfieldconfig}

<GraphQLDoc
  type="type"
  typeName="DateTimeStructFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`"""
Expects the same validation formats as the \`<input type="datetime-local">\` HTML element.
See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local#Additional_attributes
"""
type DateTimeStructFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  min: String
  max: String
  step: Int
  ui: JSON
}`}
</GraphQLDoc>

## DeletionResponse {#deletionresponse}

<GraphQLDoc
  type="type"
  typeName="DeletionResponse"
  typeLinks={{
    DeletionResult: '/reference/graphql-api/admin/enums#deletionresult',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type DeletionResponse {
  result: DeletionResult!
  message: String
}`}
</GraphQLDoc>

## Discount {#discount}

<GraphQLDoc
  type="type"
  typeName="Discount"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    AdjustmentType: '/reference/graphql-api/admin/enums#adjustmenttype',
    Money: '/reference/graphql-api/admin/object-types#money',
  }}
>
{`type Discount {
  adjustmentSource: String!
  type: AdjustmentType!
  description: String!
  amount: Money!
  amountWithTax: Money!
}`}
</GraphQLDoc>

## DuplicateEntityError {#duplicateentityerror}

<GraphQLDoc
  type="type"
  typeName="DuplicateEntityError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type DuplicateEntityError {
  errorCode: ErrorCode!
  message: String!
  duplicationError: String!
}`}
</GraphQLDoc>

## DuplicateEntityResult {#duplicateentityresult}

<GraphQLDoc
  type="union"
  typeName="DuplicateEntityResult"
  typeLinks={{
    DuplicateEntitySuccess: '/reference/graphql-api/admin/object-types#duplicateentitysuccess',
    DuplicateEntityError: '/reference/graphql-api/admin/object-types#duplicateentityerror',
  }}
>
{`union DuplicateEntityResult = DuplicateEntitySuccess | DuplicateEntityError`}
</GraphQLDoc>

## DuplicateEntitySuccess {#duplicateentitysuccess}

<GraphQLDoc
  type="type"
  typeName="DuplicateEntitySuccess"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
  }}
>
{`type DuplicateEntitySuccess {
  newEntityId: ID!
}`}
</GraphQLDoc>

## EmailAddressConflictError {#emailaddressconflicterror}

<GraphQLDoc
  type="type"
  typeName="EmailAddressConflictError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting to create a Customer with an email address already registered to an existing User."""
type EmailAddressConflictError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## EmptyOrderLineSelectionError {#emptyorderlineselectionerror}

<GraphQLDoc
  type="type"
  typeName="EmptyOrderLineSelectionError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if no OrderLines have been specified for the operation"""
type EmptyOrderLineSelectionError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## EntityCustomFields {#entitycustomfields}

<GraphQLDoc
  type="type"
  typeName="EntityCustomFields"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    CustomFieldConfig: '/reference/graphql-api/admin/object-types#customfieldconfig',
  }}
>
{`type EntityCustomFields {
  entityName: String!
  customFields: [CustomFieldConfig!]!
}`}
</GraphQLDoc>

## EntityDuplicatorDefinition {#entityduplicatordefinition}

<GraphQLDoc
  type="type"
  typeName="EntityDuplicatorDefinition"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    ConfigArgDefinition: '/reference/graphql-api/admin/object-types#configargdefinition',
    Permission: '/reference/graphql-api/admin/enums#permission',
  }}
>
{`type EntityDuplicatorDefinition {
  code: String!
  args: [ConfigArgDefinition!]!
  description: String!
  forEntities: [String!]!
  requiresPermission: [Permission!]!
}`}
</GraphQLDoc>

## Facet {#facet}

<GraphQLDoc
  type="type"
  typeName="Facet"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    FacetValue: '/reference/graphql-api/admin/object-types#facetvalue',
    FacetValueList: '/reference/graphql-api/admin/object-types#facetvaluelist',
    FacetValueListOptions: '/reference/graphql-api/admin/input-types#facetvaluelistoptions',
    FacetTranslation: '/reference/graphql-api/admin/object-types#facettranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Facet {
  isPrivate: Boolean!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  code: String!
  values: [FacetValue!]!
  """Returns a paginated, sortable, filterable list of the Facet's values. Added in v2.1.0."""
  valueList(options: FacetValueListOptions): FacetValueList!
  translations: [FacetTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## FacetInUseError {#facetinuseerror}

<GraphQLDoc
  type="type"
  typeName="FacetInUseError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type FacetInUseError {
  errorCode: ErrorCode!
  message: String!
  facetCode: String!
  productCount: Int!
  variantCount: Int!
}`}
</GraphQLDoc>

## FacetList {#facetlist}

<GraphQLDoc
  type="type"
  typeName="FacetList"
  typeLinks={{
    Facet: '/reference/graphql-api/admin/object-types#facet',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type FacetList {
  items: [Facet!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## FacetTranslation {#facettranslation}

<GraphQLDoc
  type="type"
  typeName="FacetTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type FacetTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
}`}
</GraphQLDoc>

## FacetValue {#facetvalue}

<GraphQLDoc
  type="type"
  typeName="FacetValue"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    Facet: '/reference/graphql-api/admin/object-types#facet',
    String: '/reference/graphql-api/admin/object-types#string',
    FacetValueTranslation: '/reference/graphql-api/admin/object-types#facetvaluetranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type FacetValue {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  facet: Facet!
  facetId: ID!
  name: String!
  code: String!
  translations: [FacetValueTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## FacetValueList {#facetvaluelist}

<GraphQLDoc
  type="type"
  typeName="FacetValueList"
  typeLinks={{
    FacetValue: '/reference/graphql-api/admin/object-types#facetvalue',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type FacetValueList {
  items: [FacetValue!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## FacetValueResult {#facetvalueresult}

<GraphQLDoc
  type="type"
  typeName="FacetValueResult"
  typeLinks={{
    FacetValue: '/reference/graphql-api/admin/object-types#facetvalue',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`"""
Which FacetValues are present in the products returned
by the search, and in what quantity.
"""
type FacetValueResult {
  facetValue: FacetValue!
  count: Int!
}`}
</GraphQLDoc>

## FacetValueTranslation {#facetvaluetranslation}

<GraphQLDoc
  type="type"
  typeName="FacetValueTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type FacetValueTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
}`}
</GraphQLDoc>

## Float {#float}

<GraphQLDoc
  type="scalar"
  typeName="Float"
  typeLinks={{}}
>
{`"""The \`Float\` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point)."""
scalar Float`}
</GraphQLDoc>

## FloatCustomFieldConfig {#floatcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="FloatCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    Float: '/reference/graphql-api/admin/object-types#float',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type FloatCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  min: Float
  max: Float
  step: Float
  ui: JSON
}`}
</GraphQLDoc>

## FloatStructFieldConfig {#floatstructfieldconfig}

<GraphQLDoc
  type="type"
  typeName="FloatStructFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Float: '/reference/graphql-api/admin/object-types#float',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type FloatStructFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  min: Float
  max: Float
  step: Float
  ui: JSON
}`}
</GraphQLDoc>

## Fulfillment {#fulfillment}

<GraphQLDoc
  type="type"
  typeName="Fulfillment"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    FulfillmentLine: '/reference/graphql-api/admin/object-types#fulfillmentline',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Fulfillment {
  nextStates: [String!]!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  lines: [FulfillmentLine!]!
  summary: [FulfillmentLine!]!
  state: String!
  method: String!
  trackingCode: String
  customFields: JSON
}`}
</GraphQLDoc>

## FulfillmentLine {#fulfillmentline}

<GraphQLDoc
  type="type"
  typeName="FulfillmentLine"
  typeLinks={{
    OrderLine: '/reference/graphql-api/admin/object-types#orderline',
    ID: '/reference/graphql-api/admin/object-types#id',
    Int: '/reference/graphql-api/admin/object-types#int',
    Fulfillment: '/reference/graphql-api/admin/object-types#fulfillment',
  }}
>
{`type FulfillmentLine {
  orderLine: OrderLine!
  orderLineId: ID!
  quantity: Int!
  fulfillment: Fulfillment!
  fulfillmentId: ID!
}`}
</GraphQLDoc>

## FulfillmentStateTransitionError {#fulfillmentstatetransitionerror}

<GraphQLDoc
  type="type"
  typeName="FulfillmentStateTransitionError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when there is an error in transitioning the Fulfillment state"""
type FulfillmentStateTransitionError {
  errorCode: ErrorCode!
  message: String!
  transitionError: String!
  fromState: String!
  toState: String!
}`}
</GraphQLDoc>

## GlobalSettings {#globalsettings}

<GraphQLDoc
  type="type"
  typeName="GlobalSettings"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Int: '/reference/graphql-api/admin/object-types#int',
    ServerConfig: '/reference/graphql-api/admin/object-types#serverconfig',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type GlobalSettings {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  availableLanguages: [LanguageCode!]!
  trackInventory: Boolean!
  outOfStockThreshold: Int!
  serverConfig: ServerConfig!
  customFields: JSON
}`}
</GraphQLDoc>

## GuestCheckoutError {#guestcheckouterror}

<GraphQLDoc
  type="type"
  typeName="GuestCheckoutError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting to set the Customer on a guest checkout when the configured GuestCheckoutStrategy does not allow it."""
type GuestCheckoutError {
  errorCode: ErrorCode!
  message: String!
  errorDetail: String!
}`}
</GraphQLDoc>

## HistoryEntry {#historyentry}

<GraphQLDoc
  type="type"
  typeName="HistoryEntry"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Administrator: '/reference/graphql-api/admin/object-types#administrator',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    HistoryEntryType: '/reference/graphql-api/admin/enums#historyentrytype',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type HistoryEntry {
  isPublic: Boolean!
  administrator: Administrator
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  type: HistoryEntryType!
  data: JSON!
  customFields: JSON
}`}
</GraphQLDoc>

## HistoryEntryList {#historyentrylist}

<GraphQLDoc
  type="type"
  typeName="HistoryEntryList"
  typeLinks={{
    HistoryEntry: '/reference/graphql-api/admin/object-types#historyentry',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type HistoryEntryList {
  items: [HistoryEntry!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## ID {#id}

<GraphQLDoc
  type="scalar"
  typeName="ID"
  typeLinks={{}}
>
{`"""The \`ID\` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as \`"4"\`) or integer (such as \`4\`) input value will be accepted as an ID."""
scalar ID`}
</GraphQLDoc>

## ImportInfo {#importinfo}

<GraphQLDoc
  type="type"
  typeName="ImportInfo"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ImportInfo {
  errors: [String!]
  processed: Int!
  imported: Int!
}`}
</GraphQLDoc>

## IneligibleShippingMethodError {#ineligibleshippingmethoderror}

<GraphQLDoc
  type="type"
  typeName="IneligibleShippingMethodError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting to set a ShippingMethod for which the Order is not eligible"""
type IneligibleShippingMethodError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## InsufficientStockError {#insufficientstockerror}

<GraphQLDoc
  type="type"
  typeName="InsufficientStockError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
    Order: '/reference/graphql-api/admin/object-types#order',
  }}
>
{`"""Returned when attempting to add more items to the Order than are available"""
type InsufficientStockError {
  errorCode: ErrorCode!
  message: String!
  quantityAvailable: Int!
  order: Order!
}`}
</GraphQLDoc>

## InsufficientStockOnHandError {#insufficientstockonhanderror}

<GraphQLDoc
  type="type"
  typeName="InsufficientStockOnHandError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    ID: '/reference/graphql-api/admin/object-types#id',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`"""
Returned if attempting to create a Fulfillment when there is insufficient
stockOnHand of a ProductVariant to satisfy the requested quantity.
"""
type InsufficientStockOnHandError {
  errorCode: ErrorCode!
  message: String!
  productVariantId: ID!
  productVariantName: String!
  stockOnHand: Int!
}`}
</GraphQLDoc>

## Int {#int}

<GraphQLDoc
  type="scalar"
  typeName="Int"
  typeLinks={{}}
>
{`"""The \`Int\` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1."""
scalar Int`}
</GraphQLDoc>

## IntCustomFieldConfig {#intcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="IntCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type IntCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  min: Int
  max: Int
  step: Int
  ui: JSON
}`}
</GraphQLDoc>

## IntStructFieldConfig {#intstructfieldconfig}

<GraphQLDoc
  type="type"
  typeName="IntStructFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type IntStructFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  min: Int
  max: Int
  step: Int
  ui: JSON
}`}
</GraphQLDoc>

## InvalidCredentialsError {#invalidcredentialserror}

<GraphQLDoc
  type="type"
  typeName="InvalidCredentialsError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the user authentication credentials are not valid"""
type InvalidCredentialsError {
  errorCode: ErrorCode!
  message: String!
  authenticationError: String!
}`}
</GraphQLDoc>

## InvalidFulfillmentHandlerError {#invalidfulfillmenthandlererror}

<GraphQLDoc
  type="type"
  typeName="InvalidFulfillmentHandlerError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the specified FulfillmentHandler code is not valid"""
type InvalidFulfillmentHandlerError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## ItemsAlreadyFulfilledError {#itemsalreadyfulfillederror}

<GraphQLDoc
  type="type"
  typeName="ItemsAlreadyFulfilledError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the specified items are already part of a Fulfillment"""
type ItemsAlreadyFulfilledError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## JSON {#json}

<GraphQLDoc
  type="scalar"
  typeName="JSON"
  typeLinks={{}}
>
{`"""The \`JSON\` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf)."""
scalar JSON`}
</GraphQLDoc>

## Job {#job}

<GraphQLDoc
  type="type"
  typeName="Job"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    JobState: '/reference/graphql-api/admin/enums#jobstate',
    Float: '/reference/graphql-api/admin/object-types#float',
    JSON: '/reference/graphql-api/admin/object-types#json',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type Job {
  id: ID!
  createdAt: DateTime!
  startedAt: DateTime
  settledAt: DateTime
  queueName: String!
  state: JobState!
  progress: Float!
  data: JSON
  result: JSON
  error: JSON
  isSettled: Boolean!
  duration: Int!
  retries: Int!
  attempts: Int!
}`}
</GraphQLDoc>

## JobBufferSize {#jobbuffersize}

<GraphQLDoc
  type="type"
  typeName="JobBufferSize"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type JobBufferSize {
  bufferId: String!
  size: Int!
}`}
</GraphQLDoc>

## JobList {#joblist}

<GraphQLDoc
  type="type"
  typeName="JobList"
  typeLinks={{
    Job: '/reference/graphql-api/admin/object-types#job',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type JobList {
  items: [Job!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## JobQueue {#jobqueue}

<GraphQLDoc
  type="type"
  typeName="JobQueue"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
  }}
>
{`type JobQueue {
  name: String!
  running: Boolean!
}`}
</GraphQLDoc>

## LanguageNotAvailableError {#languagenotavailableerror}

<GraphQLDoc
  type="type"
  typeName="LanguageNotAvailableError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if attempting to set a Channel's defaultLanguageCode to a language which is not enabled in GlobalSettings"""
type LanguageNotAvailableError {
  errorCode: ErrorCode!
  message: String!
  languageCode: String!
}`}
</GraphQLDoc>

## LocaleStringCustomFieldConfig {#localestringcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="LocaleStringCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Int: '/reference/graphql-api/admin/object-types#int',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type LocaleStringCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  length: Int
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  pattern: String
  ui: JSON
}`}
</GraphQLDoc>

## LocaleTextCustomFieldConfig {#localetextcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="LocaleTextCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type LocaleTextCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  ui: JSON
}`}
</GraphQLDoc>

## LocalizedString {#localizedstring}

<GraphQLDoc
  type="type"
  typeName="LocalizedString"
  typeLinks={{
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type LocalizedString {
  languageCode: LanguageCode!
  value: String!
}`}
</GraphQLDoc>

## ManualPaymentStateError {#manualpaymentstateerror}

<GraphQLDoc
  type="type"
  typeName="ManualPaymentStateError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""
Returned when a call to addManualPaymentToOrder is made but the Order
is not in the required state.
"""
type ManualPaymentStateError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## MetricSummary {#metricsummary}

<GraphQLDoc
  type="type"
  typeName="MetricSummary"
  typeLinks={{
    MetricInterval: '/reference/graphql-api/admin/enums#metricinterval',
    MetricType: '/reference/graphql-api/admin/enums#metrictype',
    String: '/reference/graphql-api/admin/object-types#string',
    MetricSummaryEntry: '/reference/graphql-api/admin/object-types#metricsummaryentry',
  }}
>
{`type MetricSummary {
  interval: MetricInterval!
  type: MetricType!
  title: String!
  entries: [MetricSummaryEntry!]!
}`}
</GraphQLDoc>

## MetricSummaryEntry {#metricsummaryentry}

<GraphQLDoc
  type="type"
  typeName="MetricSummaryEntry"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Float: '/reference/graphql-api/admin/object-types#float',
  }}
>
{`type MetricSummaryEntry {
  label: String!
  value: Float!
}`}
</GraphQLDoc>

## MimeTypeError {#mimetypeerror}

<GraphQLDoc
  type="type"
  typeName="MimeTypeError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type MimeTypeError {
  errorCode: ErrorCode!
  message: String!
  fileName: String!
  mimeType: String!
}`}
</GraphQLDoc>

## MissingConditionsError {#missingconditionserror}

<GraphQLDoc
  type="type"
  typeName="MissingConditionsError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if a PromotionCondition has neither a couponCode nor any conditions set"""
type MissingConditionsError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## ModifyOrderResult {#modifyorderresult}

<GraphQLDoc
  type="union"
  typeName="ModifyOrderResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    NoChangesSpecifiedError: '/reference/graphql-api/admin/object-types#nochangesspecifiederror',
    OrderModificationStateError: '/reference/graphql-api/admin/object-types#ordermodificationstateerror',
    PaymentMethodMissingError: '/reference/graphql-api/admin/object-types#paymentmethodmissingerror',
    RefundPaymentIdMissingError: '/reference/graphql-api/admin/object-types#refundpaymentidmissingerror',
    OrderLimitError: '/reference/graphql-api/admin/object-types#orderlimiterror',
    NegativeQuantityError: '/reference/graphql-api/admin/object-types#negativequantityerror',
    InsufficientStockError: '/reference/graphql-api/admin/object-types#insufficientstockerror',
    CouponCodeExpiredError: '/reference/graphql-api/admin/object-types#couponcodeexpirederror',
    CouponCodeInvalidError: '/reference/graphql-api/admin/object-types#couponcodeinvaliderror',
    CouponCodeLimitError: '/reference/graphql-api/admin/object-types#couponcodelimiterror',
    IneligibleShippingMethodError: '/reference/graphql-api/admin/object-types#ineligibleshippingmethoderror',
  }}
>
{`union ModifyOrderResult = Order | NoChangesSpecifiedError | OrderModificationStateError | PaymentMethodMissingError | RefundPaymentIdMissingError | OrderLimitError | NegativeQuantityError | InsufficientStockError | CouponCodeExpiredError | CouponCodeInvalidError | CouponCodeLimitError | IneligibleShippingMethodError`}
</GraphQLDoc>

## Money {#money}

<GraphQLDoc
  type="scalar"
  typeName="Money"
  typeLinks={{}}
>
{`"""The \`Money\` scalar type represents monetary values and supports signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point)."""
scalar Money`}
</GraphQLDoc>

## MultipleOrderError {#multipleordererror}

<GraphQLDoc
  type="type"
  typeName="MultipleOrderError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if an operation has specified OrderLines from multiple Orders"""
type MultipleOrderError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## NativeAuthStrategyError {#nativeauthstrategyerror}

<GraphQLDoc
  type="type"
  typeName="NativeAuthStrategyError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting an operation that relies on the NativeAuthStrategy, if that strategy is not configured."""
type NativeAuthStrategyError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## NativeAuthenticationResult {#nativeauthenticationresult}

<GraphQLDoc
  type="union"
  typeName="NativeAuthenticationResult"
  typeLinks={{
    CurrentUser: '/reference/graphql-api/admin/object-types#currentuser',
    InvalidCredentialsError: '/reference/graphql-api/admin/object-types#invalidcredentialserror',
    NativeAuthStrategyError: '/reference/graphql-api/admin/object-types#nativeauthstrategyerror',
  }}
>
{`union NativeAuthenticationResult = CurrentUser | InvalidCredentialsError | NativeAuthStrategyError`}
</GraphQLDoc>

## NegativeQuantityError {#negativequantityerror}

<GraphQLDoc
  type="type"
  typeName="NegativeQuantityError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting to set a negative OrderLine quantity."""
type NegativeQuantityError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## NoActiveOrderError {#noactiveordererror}

<GraphQLDoc
  type="type"
  typeName="NoActiveOrderError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""
Returned when invoking a mutation which depends on there being an active Order on the
current session.
"""
type NoActiveOrderError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## NoChangesSpecifiedError {#nochangesspecifiederror}

<GraphQLDoc
  type="type"
  typeName="NoChangesSpecifiedError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when a call to modifyOrder fails to specify any changes"""
type NoChangesSpecifiedError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## NothingToRefundError {#nothingtorefunderror}

<GraphQLDoc
  type="type"
  typeName="NothingToRefundError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if an attempting to refund an Order but neither items nor shipping refund was specified"""
type NothingToRefundError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## Order {#order}

<GraphQLDoc
  type="type"
  typeName="Order"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    OrderModification: '/reference/graphql-api/admin/object-types#ordermodification',
    Order: '/reference/graphql-api/admin/object-types#order',
    ID: '/reference/graphql-api/admin/object-types#id',
    Channel: '/reference/graphql-api/admin/object-types#channel',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    OrderType: '/reference/graphql-api/admin/enums#ordertype',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Customer: '/reference/graphql-api/admin/object-types#customer',
    OrderAddress: '/reference/graphql-api/admin/object-types#orderaddress',
    OrderLine: '/reference/graphql-api/admin/object-types#orderline',
    Surcharge: '/reference/graphql-api/admin/object-types#surcharge',
    Discount: '/reference/graphql-api/admin/object-types#discount',
    Promotion: '/reference/graphql-api/admin/object-types#promotion',
    Payment: '/reference/graphql-api/admin/object-types#payment',
    Fulfillment: '/reference/graphql-api/admin/object-types#fulfillment',
    Int: '/reference/graphql-api/admin/object-types#int',
    Money: '/reference/graphql-api/admin/object-types#money',
    CurrencyCode: '/reference/graphql-api/admin/enums#currencycode',
    ShippingLine: '/reference/graphql-api/admin/object-types#shippingline',
    OrderTaxSummary: '/reference/graphql-api/admin/object-types#ordertaxsummary',
    HistoryEntryList: '/reference/graphql-api/admin/object-types#historyentrylist',
    HistoryEntryListOptions: '/reference/graphql-api/admin/input-types#historyentrylistoptions',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Order {
  nextStates: [String!]!
  modifications: [OrderModification!]!
  sellerOrders: [Order!]
  aggregateOrder: Order
  aggregateOrderId: ID
  channels: [Channel!]!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  type: OrderType!
  """
  The date & time that the Order was placed, i.e. the Customer
  completed the checkout and the Order is no longer "active"
  """
  orderPlacedAt: DateTime
  """A unique code for the Order"""
  code: String!
  state: String!
  """An order is active as long as the payment process has not been completed"""
  active: Boolean!
  customer: Customer
  shippingAddress: OrderAddress
  billingAddress: OrderAddress
  lines: [OrderLine!]!
  """
  Surcharges are arbitrary modifications to the Order total which are neither
  ProductVariants nor discounts resulting from applied Promotions. For example,
  one-off discounts based on customer interaction, or surcharges based on payment
  methods.
  """
  surcharges: [Surcharge!]!
  discounts: [Discount!]!
  """An array of all coupon codes applied to the Order"""
  couponCodes: [String!]!
  """Promotions applied to the order. Only gets populated after the payment process has completed."""
  promotions: [Promotion!]!
  payments: [Payment!]
  fulfillments: [Fulfillment!]
  totalQuantity: Int!
  """
  The subTotal is the total of all OrderLines in the Order. This figure also includes any Order-level
  discounts which have been prorated (proportionally distributed) amongst the items of each OrderLine.
  To get a total of all OrderLines which does not account for prorated discounts, use the
  sum of \`OrderLine.discountedLinePrice\` values.
  """
  subTotal: Money!
  """Same as subTotal, but inclusive of tax"""
  subTotalWithTax: Money!
  currencyCode: CurrencyCode!
  shippingLines: [ShippingLine!]!
  shipping: Money!
  shippingWithTax: Money!
  """Equal to subTotal plus shipping"""
  total: Money!
  """The final payable amount. Equal to subTotalWithTax plus shippingWithTax"""
  totalWithTax: Money!
  """A summary of the taxes being applied to this Order"""
  taxSummary: [OrderTaxSummary!]!
  history(options: HistoryEntryListOptions): HistoryEntryList!
  customFields: JSON
}`}
</GraphQLDoc>

## OrderAddress {#orderaddress}

<GraphQLDoc
  type="type"
  typeName="OrderAddress"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type OrderAddress {
  fullName: String
  company: String
  streetLine1: String
  streetLine2: String
  city: String
  province: String
  postalCode: String
  country: String
  countryCode: String
  phoneNumber: String
  customFields: JSON
}`}
</GraphQLDoc>

## OrderInterceptorError {#orderinterceptorerror}

<GraphQLDoc
  type="type"
  typeName="OrderInterceptorError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when an order operation is rejected by an OrderInterceptor method."""
type OrderInterceptorError {
  errorCode: ErrorCode!
  message: String!
  interceptorError: String!
}`}
</GraphQLDoc>

## OrderLimitError {#orderlimiterror}

<GraphQLDoc
  type="type"
  typeName="OrderLimitError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`"""Returned when the maximum order size limit has been reached."""
type OrderLimitError {
  errorCode: ErrorCode!
  message: String!
  maxItems: Int!
}`}
</GraphQLDoc>

## OrderLine {#orderline}

<GraphQLDoc
  type="type"
  typeName="OrderLine"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    Asset: '/reference/graphql-api/admin/object-types#asset',
    Money: '/reference/graphql-api/admin/object-types#money',
    Int: '/reference/graphql-api/admin/object-types#int',
    Float: '/reference/graphql-api/admin/object-types#float',
    Discount: '/reference/graphql-api/admin/object-types#discount',
    TaxLine: '/reference/graphql-api/admin/object-types#taxline',
    Order: '/reference/graphql-api/admin/object-types#order',
    FulfillmentLine: '/reference/graphql-api/admin/object-types#fulfillmentline',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type OrderLine {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  featuredAsset: Asset
  """The price of a single unit, excluding tax and discounts"""
  unitPrice: Money!
  """The price of a single unit, including tax but excluding discounts"""
  unitPriceWithTax: Money!
  """Non-zero if the unitPrice has changed since it was initially added to Order"""
  unitPriceChangeSinceAdded: Money!
  """Non-zero if the unitPriceWithTax has changed since it was initially added to Order"""
  unitPriceWithTaxChangeSinceAdded: Money!
  """
  The price of a single unit including discounts, excluding tax.
  
  If Order-level discounts have been applied, this will not be the
  actual taxable unit price (see \`proratedUnitPrice\`), but is generally the
  correct price to display to customers to avoid confusion
  about the internal handling of distributed Order-level discounts.
  """
  discountedUnitPrice: Money!
  """The price of a single unit including discounts and tax"""
  discountedUnitPriceWithTax: Money!
  """
  The actual unit price, taking into account both item discounts _and_ prorated (proportionally-distributed)
  Order-level discounts. This value is the true economic value of the OrderItem, and is used in tax
  and refund calculations.
  """
  proratedUnitPrice: Money!
  """The proratedUnitPrice including tax"""
  proratedUnitPriceWithTax: Money!
  """The quantity of items purchased"""
  quantity: Int!
  """The quantity at the time the Order was placed"""
  orderPlacedQuantity: Int!
  taxRate: Float!
  """The total price of the line excluding tax and discounts."""
  linePrice: Money!
  """The total price of the line including tax but excluding discounts."""
  linePriceWithTax: Money!
  """The price of the line including discounts, excluding tax"""
  discountedLinePrice: Money!
  """The price of the line including discounts and tax"""
  discountedLinePriceWithTax: Money!
  """
  The actual line price, taking into account both item discounts _and_ prorated (proportionally-distributed)
  Order-level discounts. This value is the true economic value of the OrderLine, and is used in tax
  and refund calculations.
  """
  proratedLinePrice: Money!
  """The proratedLinePrice including tax"""
  proratedLinePriceWithTax: Money!
  """The total tax on this line"""
  lineTax: Money!
  discounts: [Discount!]!
  taxLines: [TaxLine!]!
  order: Order!
  fulfillmentLines: [FulfillmentLine!]
  customFields: JSON
}`}
</GraphQLDoc>

## OrderList {#orderlist}

<GraphQLDoc
  type="type"
  typeName="OrderList"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type OrderList {
  items: [Order!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## OrderModification {#ordermodification}

<GraphQLDoc
  type="type"
  typeName="OrderModification"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    Money: '/reference/graphql-api/admin/object-types#money',
    String: '/reference/graphql-api/admin/object-types#string',
    OrderModificationLine: '/reference/graphql-api/admin/object-types#ordermodificationline',
    Surcharge: '/reference/graphql-api/admin/object-types#surcharge',
    Payment: '/reference/graphql-api/admin/object-types#payment',
    Refund: '/reference/graphql-api/admin/object-types#refund',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
  }}
>
{`type OrderModification {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  priceChange: Money!
  note: String!
  lines: [OrderModificationLine!]!
  surcharges: [Surcharge!]
  payment: Payment
  refund: Refund
  isSettled: Boolean!
}`}
</GraphQLDoc>

## OrderModificationError {#ordermodificationerror}

<GraphQLDoc
  type="type"
  typeName="OrderModificationError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting to modify the contents of an Order that is not in the \`AddingItems\` state."""
type OrderModificationError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## OrderModificationLine {#ordermodificationline}

<GraphQLDoc
  type="type"
  typeName="OrderModificationLine"
  typeLinks={{
    OrderLine: '/reference/graphql-api/admin/object-types#orderline',
    ID: '/reference/graphql-api/admin/object-types#id',
    Int: '/reference/graphql-api/admin/object-types#int',
    OrderModification: '/reference/graphql-api/admin/object-types#ordermodification',
  }}
>
{`type OrderModificationLine {
  orderLine: OrderLine!
  orderLineId: ID!
  quantity: Int!
  modification: OrderModification!
  modificationId: ID!
}`}
</GraphQLDoc>

## OrderModificationStateError {#ordermodificationstateerror}

<GraphQLDoc
  type="type"
  typeName="OrderModificationStateError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when attempting to modify the contents of an Order that is not in the \`Modifying\` state."""
type OrderModificationStateError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## OrderProcessState {#orderprocessstate}

<GraphQLDoc
  type="type"
  typeName="OrderProcessState"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type OrderProcessState {
  name: String!
  to: [String!]!
}`}
</GraphQLDoc>

## OrderStateTransitionError {#orderstatetransitionerror}

<GraphQLDoc
  type="type"
  typeName="OrderStateTransitionError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if there is an error in transitioning the Order state"""
type OrderStateTransitionError {
  errorCode: ErrorCode!
  message: String!
  transitionError: String!
  fromState: String!
  toState: String!
}`}
</GraphQLDoc>

## OrderTaxSummary {#ordertaxsummary}

<GraphQLDoc
  type="type"
  typeName="OrderTaxSummary"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Float: '/reference/graphql-api/admin/object-types#float',
    Money: '/reference/graphql-api/admin/object-types#money',
  }}
>
{`"""
A summary of the taxes being applied to this order, grouped
by taxRate.
"""
type OrderTaxSummary {
  """A description of this tax"""
  description: String!
  """The taxRate as a percentage"""
  taxRate: Float!
  """The total net price of OrderLines to which this taxRate applies"""
  taxBase: Money!
  """The total tax being applied to the Order at this taxRate"""
  taxTotal: Money!
}`}
</GraphQLDoc>

## Payment {#payment}

<GraphQLDoc
  type="type"
  typeName="Payment"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    Money: '/reference/graphql-api/admin/object-types#money',
    Refund: '/reference/graphql-api/admin/object-types#refund',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Payment {
  nextStates: [String!]!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  method: String!
  amount: Money!
  state: String!
  transactionId: String
  errorMessage: String
  refunds: [Refund!]!
  metadata: JSON
  customFields: JSON
}`}
</GraphQLDoc>

## PaymentMethod {#paymentmethod}

<GraphQLDoc
  type="type"
  typeName="PaymentMethod"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    ConfigurableOperation: '/reference/graphql-api/admin/object-types#configurableoperation',
    PaymentMethodTranslation: '/reference/graphql-api/admin/object-types#paymentmethodtranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type PaymentMethod {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  code: String!
  description: String!
  enabled: Boolean!
  checker: ConfigurableOperation
  handler: ConfigurableOperation!
  translations: [PaymentMethodTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## PaymentMethodList {#paymentmethodlist}

<GraphQLDoc
  type="type"
  typeName="PaymentMethodList"
  typeLinks={{
    PaymentMethod: '/reference/graphql-api/admin/object-types#paymentmethod',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type PaymentMethodList {
  items: [PaymentMethod!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## PaymentMethodMissingError {#paymentmethodmissingerror}

<GraphQLDoc
  type="type"
  typeName="PaymentMethodMissingError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""
Returned when a call to modifyOrder fails to include a paymentMethod even
though the price has increased as a result of the changes.
"""
type PaymentMethodMissingError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## PaymentMethodQuote {#paymentmethodquote}

<GraphQLDoc
  type="type"
  typeName="PaymentMethodQuote"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type PaymentMethodQuote {
  id: ID!
  code: String!
  name: String!
  description: String!
  isEligible: Boolean!
  eligibilityMessage: String
  customFields: JSON
}`}
</GraphQLDoc>

## PaymentMethodTranslation {#paymentmethodtranslation}

<GraphQLDoc
  type="type"
  typeName="PaymentMethodTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type PaymentMethodTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  description: String!
}`}
</GraphQLDoc>

## PaymentOrderMismatchError {#paymentordermismatcherror}

<GraphQLDoc
  type="type"
  typeName="PaymentOrderMismatchError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if an attempting to refund a Payment against OrderLines from a different Order"""
type PaymentOrderMismatchError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## PaymentStateTransitionError {#paymentstatetransitionerror}

<GraphQLDoc
  type="type"
  typeName="PaymentStateTransitionError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when there is an error in transitioning the Payment state"""
type PaymentStateTransitionError {
  errorCode: ErrorCode!
  message: String!
  transitionError: String!
  fromState: String!
  toState: String!
}`}
</GraphQLDoc>

## PermissionDefinition {#permissiondefinition}

<GraphQLDoc
  type="type"
  typeName="PermissionDefinition"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
  }}
>
{`type PermissionDefinition {
  name: String!
  description: String!
  assignable: Boolean!
}`}
</GraphQLDoc>

## PriceRange {#pricerange}

<GraphQLDoc
  type="type"
  typeName="PriceRange"
  typeLinks={{
    Money: '/reference/graphql-api/admin/object-types#money',
  }}
>
{`"""The price range where the result has more than one price"""
type PriceRange {
  min: Money!
  max: Money!
}`}
</GraphQLDoc>

## Product {#product}

<GraphQLDoc
  type="type"
  typeName="Product"
  typeLinks={{
    Channel: '/reference/graphql-api/admin/object-types#channel',
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Asset: '/reference/graphql-api/admin/object-types#asset',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    ProductVariantList: '/reference/graphql-api/admin/object-types#productvariantlist',
    ProductVariantListOptions: '/reference/graphql-api/admin/input-types#productvariantlistoptions',
    ProductOptionGroup: '/reference/graphql-api/admin/object-types#productoptiongroup',
    FacetValue: '/reference/graphql-api/admin/object-types#facetvalue',
    ProductTranslation: '/reference/graphql-api/admin/object-types#producttranslation',
    Collection: '/reference/graphql-api/admin/object-types#collection',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Product {
  channels: [Channel!]!
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  slug: String!
  description: String!
  enabled: Boolean!
  featuredAsset: Asset
  assets: [Asset!]!
  """Returns all ProductVariants"""
  variants: [ProductVariant!]!
  """Returns a paginated, sortable, filterable list of ProductVariants"""
  variantList(options: ProductVariantListOptions): ProductVariantList!
  optionGroups: [ProductOptionGroup!]!
  facetValues: [FacetValue!]!
  translations: [ProductTranslation!]!
  collections: [Collection!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ProductList {#productlist}

<GraphQLDoc
  type="type"
  typeName="ProductList"
  typeLinks={{
    Product: '/reference/graphql-api/admin/object-types#product',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ProductList {
  items: [Product!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## ProductOption {#productoption}

<GraphQLDoc
  type="type"
  typeName="ProductOption"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    ProductOptionGroup: '/reference/graphql-api/admin/object-types#productoptiongroup',
    ProductOptionTranslation: '/reference/graphql-api/admin/object-types#productoptiontranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ProductOption {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  code: String!
  name: String!
  groupId: ID!
  group: ProductOptionGroup!
  translations: [ProductOptionTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ProductOptionGroup {#productoptiongroup}

<GraphQLDoc
  type="type"
  typeName="ProductOptionGroup"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    ProductOption: '/reference/graphql-api/admin/object-types#productoption',
    ProductOptionGroupTranslation: '/reference/graphql-api/admin/object-types#productoptiongrouptranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ProductOptionGroup {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  code: String!
  name: String!
  options: [ProductOption!]!
  translations: [ProductOptionGroupTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ProductOptionGroupTranslation {#productoptiongrouptranslation}

<GraphQLDoc
  type="type"
  typeName="ProductOptionGroupTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type ProductOptionGroupTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
}`}
</GraphQLDoc>

## ProductOptionInUseError {#productoptioninuseerror}

<GraphQLDoc
  type="type"
  typeName="ProductOptionInUseError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ProductOptionInUseError {
  errorCode: ErrorCode!
  message: String!
  optionGroupCode: String!
  productVariantCount: Int!
}`}
</GraphQLDoc>

## ProductOptionList {#productoptionlist}

<GraphQLDoc
  type="type"
  typeName="ProductOptionList"
  typeLinks={{
    Int: '/reference/graphql-api/admin/object-types#int',
    ProductOption: '/reference/graphql-api/admin/object-types#productoption',
  }}
>
{`type ProductOptionList {
  totalItems: Int!
  items: [ProductOption!]!
}`}
</GraphQLDoc>

## ProductOptionTranslation {#productoptiontranslation}

<GraphQLDoc
  type="type"
  typeName="ProductOptionTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type ProductOptionTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
}`}
</GraphQLDoc>

## ProductTranslation {#producttranslation}

<GraphQLDoc
  type="type"
  typeName="ProductTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type ProductTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  slug: String!
  description: String!
}`}
</GraphQLDoc>

## ProductVariant {#productvariant}

<GraphQLDoc
  type="type"
  typeName="ProductVariant"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    GlobalFlag: '/reference/graphql-api/admin/enums#globalflag',
    Int: '/reference/graphql-api/admin/object-types#int',
    ProductVariantPrice: '/reference/graphql-api/admin/object-types#productvariantprice',
    StockLevel: '/reference/graphql-api/admin/object-types#stocklevel',
    StockMovementList: '/reference/graphql-api/admin/object-types#stockmovementlist',
    StockMovementListOptions: '/reference/graphql-api/admin/input-types#stockmovementlistoptions',
    Channel: '/reference/graphql-api/admin/object-types#channel',
    ID: '/reference/graphql-api/admin/object-types#id',
    Product: '/reference/graphql-api/admin/object-types#product',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    Asset: '/reference/graphql-api/admin/object-types#asset',
    Money: '/reference/graphql-api/admin/object-types#money',
    CurrencyCode: '/reference/graphql-api/admin/enums#currencycode',
    TaxRate: '/reference/graphql-api/admin/object-types#taxrate',
    TaxCategory: '/reference/graphql-api/admin/object-types#taxcategory',
    ProductOption: '/reference/graphql-api/admin/object-types#productoption',
    FacetValue: '/reference/graphql-api/admin/object-types#facetvalue',
    ProductVariantTranslation: '/reference/graphql-api/admin/object-types#productvarianttranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ProductVariant {
  enabled: Boolean!
  trackInventory: GlobalFlag!
  stockOnHand: Int!
  stockAllocated: Int!
  outOfStockThreshold: Int!
  useGlobalOutOfStockThreshold: Boolean!
  prices: [ProductVariantPrice!]!
  stockLevels: [StockLevel!]!
  stockMovements(options: StockMovementListOptions): StockMovementList!
  channels: [Channel!]!
  id: ID!
  product: Product!
  productId: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  sku: String!
  name: String!
  featuredAsset: Asset
  assets: [Asset!]!
  price: Money!
  currencyCode: CurrencyCode!
  priceWithTax: Money!
  stockLevel: String!
  taxRateApplied: TaxRate!
  taxCategory: TaxCategory!
  options: [ProductOption!]!
  facetValues: [FacetValue!]!
  translations: [ProductVariantTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ProductVariantList {#productvariantlist}

<GraphQLDoc
  type="type"
  typeName="ProductVariantList"
  typeLinks={{
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ProductVariantList {
  items: [ProductVariant!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## ProductVariantPrice {#productvariantprice}

<GraphQLDoc
  type="type"
  typeName="ProductVariantPrice"
  typeLinks={{
    CurrencyCode: '/reference/graphql-api/admin/enums#currencycode',
    Money: '/reference/graphql-api/admin/object-types#money',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ProductVariantPrice {
  currencyCode: CurrencyCode!
  price: Money!
  customFields: JSON
}`}
</GraphQLDoc>

## ProductVariantTranslation {#productvarianttranslation}

<GraphQLDoc
  type="type"
  typeName="ProductVariantTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type ProductVariantTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
}`}
</GraphQLDoc>

## Promotion {#promotion}

<GraphQLDoc
  type="type"
  typeName="Promotion"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    ConfigurableOperation: '/reference/graphql-api/admin/object-types#configurableoperation',
    PromotionTranslation: '/reference/graphql-api/admin/object-types#promotiontranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Promotion {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  startsAt: DateTime
  endsAt: DateTime
  couponCode: String
  perCustomerUsageLimit: Int
  usageLimit: Int
  name: String!
  description: String!
  enabled: Boolean!
  conditions: [ConfigurableOperation!]!
  actions: [ConfigurableOperation!]!
  translations: [PromotionTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## PromotionList {#promotionlist}

<GraphQLDoc
  type="type"
  typeName="PromotionList"
  typeLinks={{
    Promotion: '/reference/graphql-api/admin/object-types#promotion',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type PromotionList {
  items: [Promotion!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## PromotionTranslation {#promotiontranslation}

<GraphQLDoc
  type="type"
  typeName="PromotionTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type PromotionTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  description: String!
}`}
</GraphQLDoc>

## Province {#province}

<GraphQLDoc
  type="type"
  typeName="Province"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Region: '/reference/graphql-api/admin/object-types#region',
    RegionTranslation: '/reference/graphql-api/admin/object-types#regiontranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Province {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  code: String!
  type: String!
  name: String!
  enabled: Boolean!
  parent: Region
  parentId: ID
  translations: [RegionTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ProvinceList {#provincelist}

<GraphQLDoc
  type="type"
  typeName="ProvinceList"
  typeLinks={{
    Province: '/reference/graphql-api/admin/object-types#province',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ProvinceList {
  items: [Province!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## QuantityTooGreatError {#quantitytoogreaterror}

<GraphQLDoc
  type="type"
  typeName="QuantityTooGreatError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the specified quantity of an OrderLine is greater than the number of items in that line"""
type QuantityTooGreatError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## Refund {#refund}

<GraphQLDoc
  type="type"
  typeName="Refund"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    Money: '/reference/graphql-api/admin/object-types#money',
    String: '/reference/graphql-api/admin/object-types#string',
    RefundLine: '/reference/graphql-api/admin/object-types#refundline',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Refund {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  items: Money!
  shipping: Money!
  adjustment: Money!
  total: Money!
  method: String
  state: String!
  transactionId: String
  reason: String
  lines: [RefundLine!]!
  paymentId: ID!
  metadata: JSON
  customFields: JSON
}`}
</GraphQLDoc>

## RefundAmountError {#refundamounterror}

<GraphQLDoc
  type="type"
  typeName="RefundAmountError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`"""Returned if \`amount\` is greater than the maximum un-refunded amount of the Payment"""
type RefundAmountError {
  errorCode: ErrorCode!
  message: String!
  maximumRefundable: Int!
}`}
</GraphQLDoc>

## RefundLine {#refundline}

<GraphQLDoc
  type="type"
  typeName="RefundLine"
  typeLinks={{
    OrderLine: '/reference/graphql-api/admin/object-types#orderline',
    ID: '/reference/graphql-api/admin/object-types#id',
    Int: '/reference/graphql-api/admin/object-types#int',
    Refund: '/reference/graphql-api/admin/object-types#refund',
  }}
>
{`type RefundLine {
  orderLine: OrderLine!
  orderLineId: ID!
  quantity: Int!
  refund: Refund!
  refundId: ID!
}`}
</GraphQLDoc>

## RefundOrderResult {#refundorderresult}

<GraphQLDoc
  type="union"
  typeName="RefundOrderResult"
  typeLinks={{
    Refund: '/reference/graphql-api/admin/object-types#refund',
    QuantityTooGreatError: '/reference/graphql-api/admin/object-types#quantitytoogreaterror',
    NothingToRefundError: '/reference/graphql-api/admin/object-types#nothingtorefunderror',
    OrderStateTransitionError: '/reference/graphql-api/admin/object-types#orderstatetransitionerror',
    MultipleOrderError: '/reference/graphql-api/admin/object-types#multipleordererror',
    PaymentOrderMismatchError: '/reference/graphql-api/admin/object-types#paymentordermismatcherror',
    RefundOrderStateError: '/reference/graphql-api/admin/object-types#refundorderstateerror',
    AlreadyRefundedError: '/reference/graphql-api/admin/object-types#alreadyrefundederror',
    RefundStateTransitionError: '/reference/graphql-api/admin/object-types#refundstatetransitionerror',
    RefundAmountError: '/reference/graphql-api/admin/object-types#refundamounterror',
  }}
>
{`union RefundOrderResult = Refund | QuantityTooGreatError | NothingToRefundError | OrderStateTransitionError | MultipleOrderError | PaymentOrderMismatchError | RefundOrderStateError | AlreadyRefundedError | RefundStateTransitionError | RefundAmountError`}
</GraphQLDoc>

## RefundOrderStateError {#refundorderstateerror}

<GraphQLDoc
  type="type"
  typeName="RefundOrderStateError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if an attempting to refund an Order which is not in the expected state"""
type RefundOrderStateError {
  errorCode: ErrorCode!
  message: String!
  orderState: String!
}`}
</GraphQLDoc>

## RefundPaymentIdMissingError {#refundpaymentidmissingerror}

<GraphQLDoc
  type="type"
  typeName="RefundPaymentIdMissingError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""
Returned when a call to modifyOrder fails to include a refundPaymentId even
though the price has decreased as a result of the changes.
"""
type RefundPaymentIdMissingError {
  errorCode: ErrorCode!
  message: String!
}`}
</GraphQLDoc>

## RefundStateTransitionError {#refundstatetransitionerror}

<GraphQLDoc
  type="type"
  typeName="RefundStateTransitionError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned when there is an error in transitioning the Refund state"""
type RefundStateTransitionError {
  errorCode: ErrorCode!
  message: String!
  transitionError: String!
  fromState: String!
  toState: String!
}`}
</GraphQLDoc>

## RegionTranslation {#regiontranslation}

<GraphQLDoc
  type="type"
  typeName="RegionTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type RegionTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
}`}
</GraphQLDoc>

## RelationCustomFieldConfig {#relationcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="RelationCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type RelationCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  entity: String!
  scalarFields: [String!]!
  ui: JSON
}`}
</GraphQLDoc>

## Release {#release}

<GraphQLDoc
  type="type"
  typeName="Release"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    StockMovementType: '/reference/graphql-api/admin/enums#stockmovementtype',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Release {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  type: StockMovementType!
  quantity: Int!
  customFields: JSON
}`}
</GraphQLDoc>

## RemoveFacetFromChannelResult {#removefacetfromchannelresult}

<GraphQLDoc
  type="union"
  typeName="RemoveFacetFromChannelResult"
  typeLinks={{
    Facet: '/reference/graphql-api/admin/object-types#facet',
    FacetInUseError: '/reference/graphql-api/admin/object-types#facetinuseerror',
  }}
>
{`union RemoveFacetFromChannelResult = Facet | FacetInUseError`}
</GraphQLDoc>

## RemoveOptionGroupFromProductResult {#removeoptiongroupfromproductresult}

<GraphQLDoc
  type="union"
  typeName="RemoveOptionGroupFromProductResult"
  typeLinks={{
    Product: '/reference/graphql-api/admin/object-types#product',
    ProductOptionInUseError: '/reference/graphql-api/admin/object-types#productoptioninuseerror',
  }}
>
{`union RemoveOptionGroupFromProductResult = Product | ProductOptionInUseError`}
</GraphQLDoc>

## RemoveOrderItemsResult {#removeorderitemsresult}

<GraphQLDoc
  type="union"
  typeName="RemoveOrderItemsResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    OrderModificationError: '/reference/graphql-api/admin/object-types#ordermodificationerror',
    OrderInterceptorError: '/reference/graphql-api/admin/object-types#orderinterceptorerror',
  }}
>
{`union RemoveOrderItemsResult = Order | OrderModificationError | OrderInterceptorError`}
</GraphQLDoc>

## Return {#return}

<GraphQLDoc
  type="type"
  typeName="Return"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    StockMovementType: '/reference/graphql-api/admin/enums#stockmovementtype',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Return {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  type: StockMovementType!
  quantity: Int!
  customFields: JSON
}`}
</GraphQLDoc>

## Role {#role}

<GraphQLDoc
  type="type"
  typeName="Role"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Permission: '/reference/graphql-api/admin/enums#permission',
    Channel: '/reference/graphql-api/admin/object-types#channel',
  }}
>
{`type Role {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  code: String!
  description: String!
  permissions: [Permission!]!
  channels: [Channel!]!
}`}
</GraphQLDoc>

## RoleList {#rolelist}

<GraphQLDoc
  type="type"
  typeName="RoleList"
  typeLinks={{
    Role: '/reference/graphql-api/admin/object-types#role',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type RoleList {
  items: [Role!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## Sale {#sale}

<GraphQLDoc
  type="type"
  typeName="Sale"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    StockMovementType: '/reference/graphql-api/admin/enums#stockmovementtype',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Sale {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  type: StockMovementType!
  quantity: Int!
  customFields: JSON
}`}
</GraphQLDoc>

## ScheduledTask {#scheduledtask}

<GraphQLDoc
  type="type"
  typeName="ScheduledTask"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ScheduledTask {
  id: String!
  description: String!
  schedule: String!
  scheduleDescription: String!
  lastExecutedAt: DateTime
  nextExecutionAt: DateTime
  isRunning: Boolean!
  lastResult: JSON
  enabled: Boolean!
}`}
</GraphQLDoc>

## SearchReindexResponse {#searchreindexresponse}

<GraphQLDoc
  type="type"
  typeName="SearchReindexResponse"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
  }}
>
{`type SearchReindexResponse {
  success: Boolean!
}`}
</GraphQLDoc>

## SearchResponse {#searchresponse}

<GraphQLDoc
  type="type"
  typeName="SearchResponse"
  typeLinks={{
    SearchResult: '/reference/graphql-api/admin/object-types#searchresult',
    Int: '/reference/graphql-api/admin/object-types#int',
    FacetValueResult: '/reference/graphql-api/admin/object-types#facetvalueresult',
    CollectionResult: '/reference/graphql-api/admin/object-types#collectionresult',
  }}
>
{`type SearchResponse {
  items: [SearchResult!]!
  totalItems: Int!
  facetValues: [FacetValueResult!]!
  collections: [CollectionResult!]!
}`}
</GraphQLDoc>

## SearchResult {#searchresult}

<GraphQLDoc
  type="type"
  typeName="SearchResult"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    ID: '/reference/graphql-api/admin/object-types#id',
    String: '/reference/graphql-api/admin/object-types#string',
    SearchResultAsset: '/reference/graphql-api/admin/object-types#searchresultasset',
    SearchResultPrice: '/reference/graphql-api/admin/object-types#searchresultprice',
    CurrencyCode: '/reference/graphql-api/admin/enums#currencycode',
    Float: '/reference/graphql-api/admin/object-types#float',
  }}
>
{`type SearchResult {
  enabled: Boolean!
  """An array of ids of the Channels in which this result appears"""
  channelIds: [ID!]!
  sku: String!
  slug: String!
  productId: ID!
  productName: String!
  productAsset: SearchResultAsset
  productVariantId: ID!
  productVariantName: String!
  productVariantAsset: SearchResultAsset
  price: SearchResultPrice!
  priceWithTax: SearchResultPrice!
  currencyCode: CurrencyCode!
  description: String!
  facetIds: [ID!]!
  facetValueIds: [ID!]!
  """An array of ids of the Collections in which this result appears"""
  collectionIds: [ID!]!
  """A relevance score for the result. Differs between database implementations"""
  score: Float!
}`}
</GraphQLDoc>

## SearchResultAsset {#searchresultasset}

<GraphQLDoc
  type="type"
  typeName="SearchResultAsset"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    String: '/reference/graphql-api/admin/object-types#string',
    Coordinate: '/reference/graphql-api/admin/object-types#coordinate',
  }}
>
{`type SearchResultAsset {
  id: ID!
  preview: String!
  focalPoint: Coordinate
}`}
</GraphQLDoc>

## SearchResultPrice {#searchresultprice}

<GraphQLDoc
  type="union"
  typeName="SearchResultPrice"
  typeLinks={{
    PriceRange: '/reference/graphql-api/admin/object-types#pricerange',
    SinglePrice: '/reference/graphql-api/admin/object-types#singleprice',
  }}
>
{`"""The price of a search result product, either as a range or as a single price"""
union SearchResultPrice = PriceRange | SinglePrice`}
</GraphQLDoc>

## Seller {#seller}

<GraphQLDoc
  type="type"
  typeName="Seller"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Seller {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  customFields: JSON
}`}
</GraphQLDoc>

## SellerList {#sellerlist}

<GraphQLDoc
  type="type"
  typeName="SellerList"
  typeLinks={{
    Seller: '/reference/graphql-api/admin/object-types#seller',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type SellerList {
  items: [Seller!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## ServerConfig {#serverconfig}

<GraphQLDoc
  type="type"
  typeName="ServerConfig"
  typeLinks={{
    OrderProcessState: '/reference/graphql-api/admin/object-types#orderprocessstate',
    String: '/reference/graphql-api/admin/object-types#string',
    PermissionDefinition: '/reference/graphql-api/admin/object-types#permissiondefinition',
    Int: '/reference/graphql-api/admin/object-types#int',
    CustomFields: '/reference/graphql-api/admin/object-types#customfields',
    EntityCustomFields: '/reference/graphql-api/admin/object-types#entitycustomfields',
  }}
>
{`type ServerConfig {
  orderProcess: [OrderProcessState!]!
  permittedAssetTypes: [String!]!
  permissions: [PermissionDefinition!]!
  moneyStrategyPrecision: Int!
  """
  This field is deprecated in v2.2 in favor of the entityCustomFields field,
  which allows custom fields to be defined on user-supplies entities.
  """
  customFieldConfig: CustomFields!
  entityCustomFields: [EntityCustomFields!]!
}`}
</GraphQLDoc>

## SetCustomerForDraftOrderResult {#setcustomerfordraftorderresult}

<GraphQLDoc
  type="union"
  typeName="SetCustomerForDraftOrderResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    EmailAddressConflictError: '/reference/graphql-api/admin/object-types#emailaddressconflicterror',
  }}
>
{`union SetCustomerForDraftOrderResult = Order | EmailAddressConflictError`}
</GraphQLDoc>

## SetOrderShippingMethodResult {#setordershippingmethodresult}

<GraphQLDoc
  type="union"
  typeName="SetOrderShippingMethodResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    OrderModificationError: '/reference/graphql-api/admin/object-types#ordermodificationerror',
    IneligibleShippingMethodError: '/reference/graphql-api/admin/object-types#ineligibleshippingmethoderror',
    NoActiveOrderError: '/reference/graphql-api/admin/object-types#noactiveordererror',
  }}
>
{`union SetOrderShippingMethodResult = Order | OrderModificationError | IneligibleShippingMethodError | NoActiveOrderError`}
</GraphQLDoc>

## SetSettingsStoreValueResult {#setsettingsstorevalueresult}

<GraphQLDoc
  type="type"
  typeName="SetSettingsStoreValueResult"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
  }}
>
{`type SetSettingsStoreValueResult {
  key: String!
  result: Boolean!
  error: String
}`}
</GraphQLDoc>

## SettlePaymentError {#settlepaymenterror}

<GraphQLDoc
  type="type"
  typeName="SettlePaymentError"
  typeLinks={{
    ErrorCode: '/reference/graphql-api/admin/enums#errorcode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`"""Returned if the Payment settlement fails"""
type SettlePaymentError {
  errorCode: ErrorCode!
  message: String!
  paymentErrorMessage: String!
}`}
</GraphQLDoc>

## SettlePaymentResult {#settlepaymentresult}

<GraphQLDoc
  type="union"
  typeName="SettlePaymentResult"
  typeLinks={{
    Payment: '/reference/graphql-api/admin/object-types#payment',
    SettlePaymentError: '/reference/graphql-api/admin/object-types#settlepaymenterror',
    PaymentStateTransitionError: '/reference/graphql-api/admin/object-types#paymentstatetransitionerror',
    OrderStateTransitionError: '/reference/graphql-api/admin/object-types#orderstatetransitionerror',
  }}
>
{`union SettlePaymentResult = Payment | SettlePaymentError | PaymentStateTransitionError | OrderStateTransitionError`}
</GraphQLDoc>

## SettleRefundResult {#settlerefundresult}

<GraphQLDoc
  type="union"
  typeName="SettleRefundResult"
  typeLinks={{
    Refund: '/reference/graphql-api/admin/object-types#refund',
    RefundStateTransitionError: '/reference/graphql-api/admin/object-types#refundstatetransitionerror',
  }}
>
{`union SettleRefundResult = Refund | RefundStateTransitionError`}
</GraphQLDoc>

## ShippingLine {#shippingline}

<GraphQLDoc
  type="type"
  typeName="ShippingLine"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    ShippingMethod: '/reference/graphql-api/admin/object-types#shippingmethod',
    Money: '/reference/graphql-api/admin/object-types#money',
    Discount: '/reference/graphql-api/admin/object-types#discount',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ShippingLine {
  id: ID!
  shippingMethod: ShippingMethod!
  price: Money!
  priceWithTax: Money!
  discountedPrice: Money!
  discountedPriceWithTax: Money!
  discounts: [Discount!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ShippingMethod {#shippingmethod}

<GraphQLDoc
  type="type"
  typeName="ShippingMethod"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
    ConfigurableOperation: '/reference/graphql-api/admin/object-types#configurableoperation',
    ShippingMethodTranslation: '/reference/graphql-api/admin/object-types#shippingmethodtranslation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ShippingMethod {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  code: String!
  name: String!
  description: String!
  fulfillmentHandlerCode: String!
  checker: ConfigurableOperation!
  calculator: ConfigurableOperation!
  translations: [ShippingMethodTranslation!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ShippingMethodList {#shippingmethodlist}

<GraphQLDoc
  type="type"
  typeName="ShippingMethodList"
  typeLinks={{
    ShippingMethod: '/reference/graphql-api/admin/object-types#shippingmethod',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ShippingMethodList {
  items: [ShippingMethod!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## ShippingMethodQuote {#shippingmethodquote}

<GraphQLDoc
  type="type"
  typeName="ShippingMethodQuote"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    Money: '/reference/graphql-api/admin/object-types#money',
    String: '/reference/graphql-api/admin/object-types#string',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type ShippingMethodQuote {
  id: ID!
  price: Money!
  priceWithTax: Money!
  code: String!
  name: String!
  description: String!
  """Any optional metadata returned by the ShippingCalculator in the ShippingCalculationResult"""
  metadata: JSON
  customFields: JSON
}`}
</GraphQLDoc>

## ShippingMethodTranslation {#shippingmethodtranslation}

<GraphQLDoc
  type="type"
  typeName="ShippingMethodTranslation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    LanguageCode: '/reference/graphql-api/admin/enums#languagecode',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type ShippingMethodTranslation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  languageCode: LanguageCode!
  name: String!
  description: String!
}`}
</GraphQLDoc>

## SinglePrice {#singleprice}

<GraphQLDoc
  type="type"
  typeName="SinglePrice"
  typeLinks={{
    Money: '/reference/graphql-api/admin/object-types#money',
  }}
>
{`"""The price value where the result has a single price"""
type SinglePrice {
  value: Money!
}`}
</GraphQLDoc>

## StockAdjustment {#stockadjustment}

<GraphQLDoc
  type="type"
  typeName="StockAdjustment"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    ProductVariant: '/reference/graphql-api/admin/object-types#productvariant',
    StockMovementType: '/reference/graphql-api/admin/enums#stockmovementtype',
    Int: '/reference/graphql-api/admin/object-types#int',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type StockAdjustment {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  productVariant: ProductVariant!
  type: StockMovementType!
  quantity: Int!
  customFields: JSON
}`}
</GraphQLDoc>

## StockLevel {#stocklevel}

<GraphQLDoc
  type="type"
  typeName="StockLevel"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    Int: '/reference/graphql-api/admin/object-types#int',
    StockLocation: '/reference/graphql-api/admin/object-types#stocklocation',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type StockLevel {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  stockLocationId: ID!
  stockOnHand: Int!
  stockAllocated: Int!
  stockLocation: StockLocation!
  customFields: JSON
}`}
</GraphQLDoc>

## StockLocation {#stocklocation}

<GraphQLDoc
  type="type"
  typeName="StockLocation"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type StockLocation {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  description: String!
  customFields: JSON
}`}
</GraphQLDoc>

## StockLocationList {#stocklocationlist}

<GraphQLDoc
  type="type"
  typeName="StockLocationList"
  typeLinks={{
    StockLocation: '/reference/graphql-api/admin/object-types#stocklocation',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type StockLocationList {
  items: [StockLocation!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## StockMovementItem {#stockmovementitem}

<GraphQLDoc
  type="union"
  typeName="StockMovementItem"
  typeLinks={{
    StockAdjustment: '/reference/graphql-api/admin/object-types#stockadjustment',
    Allocation: '/reference/graphql-api/admin/object-types#allocation',
    Sale: '/reference/graphql-api/admin/object-types#sale',
    Cancellation: '/reference/graphql-api/admin/object-types#cancellation',
    Return: '/reference/graphql-api/admin/object-types#return',
    Release: '/reference/graphql-api/admin/object-types#release',
  }}
>
{`union StockMovementItem = StockAdjustment | Allocation | Sale | Cancellation | Return | Release`}
</GraphQLDoc>

## StockMovementList {#stockmovementlist}

<GraphQLDoc
  type="type"
  typeName="StockMovementList"
  typeLinks={{
    StockMovementItem: '/reference/graphql-api/admin/object-types#stockmovementitem',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type StockMovementList {
  items: [StockMovementItem!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## String {#string}

<GraphQLDoc
  type="scalar"
  typeName="String"
  typeLinks={{}}
>
{`"""The \`String\` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text."""
scalar String`}
</GraphQLDoc>

## StringCustomFieldConfig {#stringcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="StringCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Int: '/reference/graphql-api/admin/object-types#int',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    StringFieldOption: '/reference/graphql-api/admin/object-types#stringfieldoption',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type StringCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  length: Int
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  pattern: String
  options: [StringFieldOption!]
  ui: JSON
}`}
</GraphQLDoc>

## StringFieldOption {#stringfieldoption}

<GraphQLDoc
  type="type"
  typeName="StringFieldOption"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
  }}
>
{`type StringFieldOption {
  value: String!
  label: [LocalizedString!]
}`}
</GraphQLDoc>

## StringStructFieldConfig {#stringstructfieldconfig}

<GraphQLDoc
  type="type"
  typeName="StringStructFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Int: '/reference/graphql-api/admin/object-types#int',
    StringFieldOption: '/reference/graphql-api/admin/object-types#stringfieldoption',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type StringStructFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  length: Int
  pattern: String
  options: [StringFieldOption!]
  ui: JSON
}`}
</GraphQLDoc>

## StructCustomFieldConfig {#structcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="StructCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    StructFieldConfig: '/reference/graphql-api/admin/object-types#structfieldconfig',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type StructCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  fields: [StructFieldConfig!]!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  ui: JSON
}`}
</GraphQLDoc>

## StructFieldConfig {#structfieldconfig}

<GraphQLDoc
  type="union"
  typeName="StructFieldConfig"
  typeLinks={{
    StringStructFieldConfig: '/reference/graphql-api/admin/object-types#stringstructfieldconfig',
    IntStructFieldConfig: '/reference/graphql-api/admin/object-types#intstructfieldconfig',
    FloatStructFieldConfig: '/reference/graphql-api/admin/object-types#floatstructfieldconfig',
    BooleanStructFieldConfig: '/reference/graphql-api/admin/object-types#booleanstructfieldconfig',
    DateTimeStructFieldConfig: '/reference/graphql-api/admin/object-types#datetimestructfieldconfig',
    TextStructFieldConfig: '/reference/graphql-api/admin/object-types#textstructfieldconfig',
  }}
>
{`union StructFieldConfig = StringStructFieldConfig | IntStructFieldConfig | FloatStructFieldConfig | BooleanStructFieldConfig | DateTimeStructFieldConfig | TextStructFieldConfig`}
</GraphQLDoc>

## Success {#success}

<GraphQLDoc
  type="type"
  typeName="Success"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
  }}
>
{`"""Indicates that an operation succeeded, where we do not want to return any more specific information."""
type Success {
  success: Boolean!
}`}
</GraphQLDoc>

## Surcharge {#surcharge}

<GraphQLDoc
  type="type"
  typeName="Surcharge"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    TaxLine: '/reference/graphql-api/admin/object-types#taxline',
    Money: '/reference/graphql-api/admin/object-types#money',
    Float: '/reference/graphql-api/admin/object-types#float',
  }}
>
{`type Surcharge {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  description: String!
  sku: String
  taxLines: [TaxLine!]!
  price: Money!
  priceWithTax: Money!
  taxRate: Float!
}`}
</GraphQLDoc>

## Tag {#tag}

<GraphQLDoc
  type="type"
  typeName="Tag"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
  }}
>
{`type Tag {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  value: String!
}`}
</GraphQLDoc>

## TagList {#taglist}

<GraphQLDoc
  type="type"
  typeName="TagList"
  typeLinks={{
    Tag: '/reference/graphql-api/admin/object-types#tag',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type TagList {
  items: [Tag!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## TaxCategory {#taxcategory}

<GraphQLDoc
  type="type"
  typeName="TaxCategory"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type TaxCategory {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  isDefault: Boolean!
  customFields: JSON
}`}
</GraphQLDoc>

## TaxCategoryList {#taxcategorylist}

<GraphQLDoc
  type="type"
  typeName="TaxCategoryList"
  typeLinks={{
    TaxCategory: '/reference/graphql-api/admin/object-types#taxcategory',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type TaxCategoryList {
  items: [TaxCategory!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## TaxLine {#taxline}

<GraphQLDoc
  type="type"
  typeName="TaxLine"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Float: '/reference/graphql-api/admin/object-types#float',
  }}
>
{`type TaxLine {
  description: String!
  taxRate: Float!
}`}
</GraphQLDoc>

## TaxRate {#taxrate}

<GraphQLDoc
  type="type"
  typeName="TaxRate"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Float: '/reference/graphql-api/admin/object-types#float',
    TaxCategory: '/reference/graphql-api/admin/object-types#taxcategory',
    Zone: '/reference/graphql-api/admin/object-types#zone',
    CustomerGroup: '/reference/graphql-api/admin/object-types#customergroup',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type TaxRate {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  enabled: Boolean!
  value: Float!
  category: TaxCategory!
  zone: Zone!
  customerGroup: CustomerGroup
  customFields: JSON
}`}
</GraphQLDoc>

## TaxRateList {#taxratelist}

<GraphQLDoc
  type="type"
  typeName="TaxRateList"
  typeLinks={{
    TaxRate: '/reference/graphql-api/admin/object-types#taxrate',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type TaxRateList {
  items: [TaxRate!]!
  totalItems: Int!
}`}
</GraphQLDoc>

## TestShippingMethodQuote {#testshippingmethodquote}

<GraphQLDoc
  type="type"
  typeName="TestShippingMethodQuote"
  typeLinks={{
    Money: '/reference/graphql-api/admin/object-types#money',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type TestShippingMethodQuote {
  price: Money!
  priceWithTax: Money!
  metadata: JSON
}`}
</GraphQLDoc>

## TestShippingMethodResult {#testshippingmethodresult}

<GraphQLDoc
  type="type"
  typeName="TestShippingMethodResult"
  typeLinks={{
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    TestShippingMethodQuote: '/reference/graphql-api/admin/object-types#testshippingmethodquote',
  }}
>
{`type TestShippingMethodResult {
  eligible: Boolean!
  quote: TestShippingMethodQuote
}`}
</GraphQLDoc>

## TextCustomFieldConfig {#textcustomfieldconfig}

<GraphQLDoc
  type="type"
  typeName="TextCustomFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    Permission: '/reference/graphql-api/admin/enums#permission',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type TextCustomFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  readonly: Boolean
  internal: Boolean
  nullable: Boolean
  requiresPermission: [Permission!]
  deprecated: Boolean
  deprecationReason: String
  ui: JSON
}`}
</GraphQLDoc>

## TextStructFieldConfig {#textstructfieldconfig}

<GraphQLDoc
  type="type"
  typeName="TextStructFieldConfig"
  typeLinks={{
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    LocalizedString: '/reference/graphql-api/admin/object-types#localizedstring',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type TextStructFieldConfig {
  name: String!
  type: String!
  list: Boolean!
  label: [LocalizedString!]
  description: [LocalizedString!]
  ui: JSON
}`}
</GraphQLDoc>

## TransitionFulfillmentToStateResult {#transitionfulfillmenttostateresult}

<GraphQLDoc
  type="union"
  typeName="TransitionFulfillmentToStateResult"
  typeLinks={{
    Fulfillment: '/reference/graphql-api/admin/object-types#fulfillment',
    FulfillmentStateTransitionError: '/reference/graphql-api/admin/object-types#fulfillmentstatetransitionerror',
  }}
>
{`union TransitionFulfillmentToStateResult = Fulfillment | FulfillmentStateTransitionError`}
</GraphQLDoc>

## TransitionOrderToStateResult {#transitionordertostateresult}

<GraphQLDoc
  type="union"
  typeName="TransitionOrderToStateResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    OrderStateTransitionError: '/reference/graphql-api/admin/object-types#orderstatetransitionerror',
  }}
>
{`union TransitionOrderToStateResult = Order | OrderStateTransitionError`}
</GraphQLDoc>

## TransitionPaymentToStateResult {#transitionpaymenttostateresult}

<GraphQLDoc
  type="union"
  typeName="TransitionPaymentToStateResult"
  typeLinks={{
    Payment: '/reference/graphql-api/admin/object-types#payment',
    PaymentStateTransitionError: '/reference/graphql-api/admin/object-types#paymentstatetransitionerror',
  }}
>
{`union TransitionPaymentToStateResult = Payment | PaymentStateTransitionError`}
</GraphQLDoc>

## UpdateChannelResult {#updatechannelresult}

<GraphQLDoc
  type="union"
  typeName="UpdateChannelResult"
  typeLinks={{
    Channel: '/reference/graphql-api/admin/object-types#channel',
    LanguageNotAvailableError: '/reference/graphql-api/admin/object-types#languagenotavailableerror',
  }}
>
{`union UpdateChannelResult = Channel | LanguageNotAvailableError`}
</GraphQLDoc>

## UpdateCustomerResult {#updatecustomerresult}

<GraphQLDoc
  type="union"
  typeName="UpdateCustomerResult"
  typeLinks={{
    Customer: '/reference/graphql-api/admin/object-types#customer',
    EmailAddressConflictError: '/reference/graphql-api/admin/object-types#emailaddressconflicterror',
  }}
>
{`union UpdateCustomerResult = Customer | EmailAddressConflictError`}
</GraphQLDoc>

## UpdateGlobalSettingsResult {#updateglobalsettingsresult}

<GraphQLDoc
  type="union"
  typeName="UpdateGlobalSettingsResult"
  typeLinks={{
    GlobalSettings: '/reference/graphql-api/admin/object-types#globalsettings',
    ChannelDefaultLanguageError: '/reference/graphql-api/admin/object-types#channeldefaultlanguageerror',
  }}
>
{`union UpdateGlobalSettingsResult = GlobalSettings | ChannelDefaultLanguageError`}
</GraphQLDoc>

## UpdateOrderItemErrorResult {#updateorderitemerrorresult}

<GraphQLDoc
  type="union"
  typeName="UpdateOrderItemErrorResult"
  typeLinks={{
    OrderModificationError: '/reference/graphql-api/admin/object-types#ordermodificationerror',
    OrderLimitError: '/reference/graphql-api/admin/object-types#orderlimiterror',
    NegativeQuantityError: '/reference/graphql-api/admin/object-types#negativequantityerror',
    InsufficientStockError: '/reference/graphql-api/admin/object-types#insufficientstockerror',
    OrderInterceptorError: '/reference/graphql-api/admin/object-types#orderinterceptorerror',
  }}
>
{`"""Union type of all possible errors that can occur when adding or removing items from an Order."""
union UpdateOrderItemErrorResult = OrderModificationError | OrderLimitError | NegativeQuantityError | InsufficientStockError | OrderInterceptorError`}
</GraphQLDoc>

## UpdateOrderItemsResult {#updateorderitemsresult}

<GraphQLDoc
  type="union"
  typeName="UpdateOrderItemsResult"
  typeLinks={{
    Order: '/reference/graphql-api/admin/object-types#order',
    OrderModificationError: '/reference/graphql-api/admin/object-types#ordermodificationerror',
    OrderLimitError: '/reference/graphql-api/admin/object-types#orderlimiterror',
    NegativeQuantityError: '/reference/graphql-api/admin/object-types#negativequantityerror',
    InsufficientStockError: '/reference/graphql-api/admin/object-types#insufficientstockerror',
    OrderInterceptorError: '/reference/graphql-api/admin/object-types#orderinterceptorerror',
  }}
>
{`union UpdateOrderItemsResult = Order | OrderModificationError | OrderLimitError | NegativeQuantityError | InsufficientStockError | OrderInterceptorError`}
</GraphQLDoc>

## UpdatePromotionResult {#updatepromotionresult}

<GraphQLDoc
  type="union"
  typeName="UpdatePromotionResult"
  typeLinks={{
    Promotion: '/reference/graphql-api/admin/object-types#promotion',
    MissingConditionsError: '/reference/graphql-api/admin/object-types#missingconditionserror',
  }}
>
{`union UpdatePromotionResult = Promotion | MissingConditionsError`}
</GraphQLDoc>

## Upload {#upload}

<GraphQLDoc
  type="scalar"
  typeName="Upload"
  typeLinks={{}}
>
{`"""The \`Upload\` scalar type represents a file upload."""
scalar Upload`}
</GraphQLDoc>

## User {#user}

<GraphQLDoc
  type="type"
  typeName="User"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Boolean: '/reference/graphql-api/admin/object-types#boolean',
    Role: '/reference/graphql-api/admin/object-types#role',
    AuthenticationMethod: '/reference/graphql-api/admin/object-types#authenticationmethod',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type User {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  identifier: String!
  verified: Boolean!
  roles: [Role!]!
  lastLogin: DateTime
  authenticationMethods: [AuthenticationMethod!]!
  customFields: JSON
}`}
</GraphQLDoc>

## Zone {#zone}

<GraphQLDoc
  type="type"
  typeName="Zone"
  typeLinks={{
    ID: '/reference/graphql-api/admin/object-types#id',
    DateTime: '/reference/graphql-api/admin/object-types#datetime',
    String: '/reference/graphql-api/admin/object-types#string',
    Region: '/reference/graphql-api/admin/object-types#region',
    JSON: '/reference/graphql-api/admin/object-types#json',
  }}
>
{`type Zone {
  id: ID!
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  members: [Region!]!
  customFields: JSON
}`}
</GraphQLDoc>

## ZoneList {#zonelist}

<GraphQLDoc
  type="type"
  typeName="ZoneList"
  typeLinks={{
    Zone: '/reference/graphql-api/admin/object-types#zone',
    Int: '/reference/graphql-api/admin/object-types#int',
  }}
>
{`type ZoneList {
  items: [Zone!]!
  totalItems: Int!
}`}
</GraphQLDoc>
