Skip to main content

Types

AddFulfillmentToOrderResult

AddManualPaymentToOrderResult

union AddManualPaymentToOrderResult =

Address

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
}

Adjustment

type Adjustment {
adjustmentSource: String!
description: String!
amount: Money!
data: JSON
}

Administrator

type Administrator {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
firstName: String!
lastName: String!
emailAddress: String!
user: User!
customFields: JSON
}

AdministratorList

type AdministratorList {
items: [Administrator!]!
totalItems: Int!
}

Allocation

type Allocation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
productVariant: ProductVariant!
quantity: Int!
orderLine: OrderLine!
}

AlreadyRefundedError

"""
Returned if an attempting to refund an OrderItem which has already been refunded
"""
type AlreadyRefundedError {
errorCode: ErrorCode!
message: String!
refundId: ID!
}

ApplyCouponCodeResult

Asset

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
}

AssetList

type AssetList {
items: [Asset!]!
totalItems: Int!
}

AuthenticationMethod

type AuthenticationMethod {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
strategy: String!
}

AuthenticationResult

union AuthenticationResult =

Boolean

"""
The Boolean scalar type represents true or false.
"""
scalar Boolean

BooleanCustomFieldConfig

type BooleanCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
ui: JSON
}

CancelActiveOrderError

"""
Returned if an attempting to cancel lines from an Order which is still active
"""
type CancelActiveOrderError {
errorCode: ErrorCode!
message: String!
orderState: String!
}

CancelOrderResult

CancelPaymentError

"""
Returned if the Payment cancellation fails
"""
type CancelPaymentError {
errorCode: ErrorCode!
message: String!
paymentErrorMessage: String!
}

CancelPaymentResult

Cancellation

type Cancellation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
productVariant: ProductVariant!
quantity: Int!
orderLine: OrderLine!
}

Channel

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
}

ChannelDefaultLanguageError

"""
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!
}

ChannelList

type ChannelList {
items: [Channel!]!
totalItems: Int!
}

Collection

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!]
translations: [CollectionTranslation!]!
productVariants(options: ProductVariantListOptions): ProductVariantList!
customFields: JSON
}

CollectionBreadcrumb

type CollectionBreadcrumb {
id: ID!
name: String!
slug: String!
}

CollectionList

type CollectionList {
items: [Collection!]!
totalItems: Int!
}

CollectionResult

"""
Which Collections are present in the products returned
by the search, and in what quantity.
"""
type CollectionResult {
collection: Collection!
count: Int!
}

CollectionTranslation

type CollectionTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
slug: String!
description: String!
}

ConfigArg

type ConfigArg {
name: String!
value: String!
}

ConfigArgDefinition

type ConfigArgDefinition {
name: String!
type: String!
list: Boolean!
required: Boolean!
defaultValue: JSON
label: String
description: String
ui: JSON
}

ConfigurableOperation

type ConfigurableOperation {
code: String!
args: [ConfigArg!]!
}

ConfigurableOperationDefinition

type ConfigurableOperationDefinition {
code: String!
description: String!
}

Coordinate

type Coordinate {
x: Float!
y: Float!
}

Country

"""
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
}

CountryList

type CountryList {
items: [Country!]!
totalItems: Int!
}

CouponCodeExpiredError

"""
Returned if the provided coupon code is invalid
"""
type CouponCodeExpiredError {
errorCode: ErrorCode!
message: String!
couponCode: String!
}

CouponCodeInvalidError

"""
Returned if the provided coupon code is invalid
"""
type CouponCodeInvalidError {
errorCode: ErrorCode!
message: String!
couponCode: String!
}

CouponCodeLimitError

"""
Returned if the provided coupon code is invalid
"""
type CouponCodeLimitError {
errorCode: ErrorCode!
message: String!
couponCode: String!
limit: Int!
}

CreateAssetResult

union CreateAssetResult =

CreateChannelResult

union CreateChannelResult =

CreateCustomerResult

union CreateCustomerResult =

CreateFulfillmentError

"""
Returned if an error is thrown in a FulfillmentHandler's createFulfillment method
"""
type CreateFulfillmentError {
errorCode: ErrorCode!
message: String!
fulfillmentHandlerError: String!
}

CreatePromotionResult

union CreatePromotionResult =

CurrentUser

type CurrentUser {
id: ID!
identifier: String!
channels: [CurrentUserChannel!]!
}

CurrentUserChannel

type CurrentUserChannel {
id: ID!
token: String!
code: String!
permissions: [Permission!]!
}

CustomFieldConfig

CustomFields

"""
This type is deprecated in v2.2 in favor of the EntityCustomFields type,
which allows custom fields to be defined on user-supplies entities.
"""
type CustomFields {
Address: [CustomFieldConfig!]!
Administrator: [CustomFieldConfig!]!
Channel: [CustomFieldConfig!]!
Collection: [CustomFieldConfig!]!
Customer: [CustomFieldConfig!]!
CustomerGroup: [CustomFieldConfig!]!
FacetValue: [CustomFieldConfig!]!
Fulfillment: [CustomFieldConfig!]!
GlobalSettings: [CustomFieldConfig!]!
OrderLine: [CustomFieldConfig!]!
PaymentMethod: [CustomFieldConfig!]!
Product: [CustomFieldConfig!]!
ProductOption: [CustomFieldConfig!]!
ProductOptionGroup: [CustomFieldConfig!]!
ProductVariant: [CustomFieldConfig!]!
ProductVariantPrice: [CustomFieldConfig!]!
Promotion: [CustomFieldConfig!]!
Region: [CustomFieldConfig!]!
Seller: [CustomFieldConfig!]!
ShippingMethod: [CustomFieldConfig!]!
StockLocation: [CustomFieldConfig!]!
TaxCategory: [CustomFieldConfig!]!
TaxRate: [CustomFieldConfig!]!
}

Customer

type Customer {
groups: [CustomerGroup!]!
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
}

CustomerGroup

type CustomerGroup {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
customers(options: CustomerListOptions): CustomerList!
customFields: JSON
}

CustomerGroupList

type CustomerGroupList {
items: [CustomerGroup!]!
totalItems: Int!
}

CustomerList

type CustomerList {
items: [Customer!]!
totalItems: Int!
}

DateTime

"""
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

DateTimeCustomFieldConfig

"""
Expects the same validation formats as the <input type="datetime-local"> HTML element.
"""
type DateTimeCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
min: String
max: String
step: Int
ui: JSON
}

DeletionResponse

type DeletionResponse {
message: String
}

Discount

type Discount {
adjustmentSource: String!
description: String!
amount: Money!
amountWithTax: Money!
}

DuplicateEntityError

type DuplicateEntityError {
errorCode: ErrorCode!
message: String!
duplicationError: String!
}

DuplicateEntityResult

union DuplicateEntityResult =

DuplicateEntitySuccess

type DuplicateEntitySuccess {
newEntityId: ID!
}

EmailAddressConflictError

"""
Returned when attempting to create a Customer with an email address already registered to an existing User.
"""
type EmailAddressConflictError {
errorCode: ErrorCode!
message: String!
}

EmptyOrderLineSelectionError

"""
Returned if no OrderLines have been specified for the operation
"""
type EmptyOrderLineSelectionError {
errorCode: ErrorCode!
message: String!
}

EntityCustomFields

type EntityCustomFields {
entityName: String!
customFields: [CustomFieldConfig!]!
}

EntityDuplicatorDefinition

type EntityDuplicatorDefinition {
code: String!
description: String!
forEntities: [String!]!
requiresPermission: [Permission!]!
}

Facet

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.
"""
translations: [FacetTranslation!]!
customFields: JSON
}

FacetInUseError

type FacetInUseError {
errorCode: ErrorCode!
message: String!
facetCode: String!
productCount: Int!
variantCount: Int!
}

FacetList

type FacetList {
items: [Facet!]!
totalItems: Int!
}

FacetTranslation

type FacetTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
}

FacetValue

type FacetValue {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
facet: Facet!
facetId: ID!
name: String!
code: String!
translations: [FacetValueTranslation!]!
customFields: JSON
}

FacetValueList

type FacetValueList {
items: [FacetValue!]!
totalItems: Int!
}

FacetValueResult

"""
Which FacetValues are present in the products returned
by the search, and in what quantity.
"""
type FacetValueResult {
facetValue: FacetValue!
count: Int!
}

FacetValueTranslation

type FacetValueTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
}

Float

"""
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
"""
scalar Float

FloatCustomFieldConfig

type FloatCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
min: Float
max: Float
step: Float
ui: JSON
}

Fulfillment

type Fulfillment {
nextStates: [String!]!
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
lines: [FulfillmentLine!]!
summary: [FulfillmentLine!]!
state: String!
method: String!
trackingCode: String
customFields: JSON
}

FulfillmentLine

type FulfillmentLine {
orderLine: OrderLine!
orderLineId: ID!
quantity: Int!
fulfillment: Fulfillment!
fulfillmentId: ID!
}

FulfillmentStateTransitionError

"""
Returned when there is an error in transitioning the Fulfillment state
"""
type FulfillmentStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}

GlobalSettings

type GlobalSettings {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
availableLanguages: [LanguageCode!]!
trackInventory: Boolean!
outOfStockThreshold: Int!
serverConfig: ServerConfig!
customFields: JSON
}

GuestCheckoutError

"""
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!
}

HistoryEntry

type HistoryEntry {
isPublic: Boolean!
administrator: Administrator
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
data: JSON!
}

HistoryEntryList

type HistoryEntryList {
items: [HistoryEntry!]!
totalItems: Int!
}

ID

"""
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

ImportInfo

type ImportInfo {
errors: [String!]
processed: Int!
imported: Int!
}

IneligibleShippingMethodError

"""
Returned when attempting to set a ShippingMethod for which the Order is not eligible
"""
type IneligibleShippingMethodError {
errorCode: ErrorCode!
message: String!
}

InsufficientStockError

"""
Returned when attempting to add more items to the Order than are available
"""
type InsufficientStockError {
errorCode: ErrorCode!
message: String!
quantityAvailable: Int!
order: Order!
}

InsufficientStockOnHandError

"""
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!
}

Int

"""
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
"""
scalar Int

IntCustomFieldConfig

type IntCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
min: Int
max: Int
step: Int
ui: JSON
}

InvalidCredentialsError

"""
Returned if the user authentication credentials are not valid
"""
type InvalidCredentialsError {
errorCode: ErrorCode!
message: String!
authenticationError: String!
}

InvalidFulfillmentHandlerError

"""
Returned if the specified FulfillmentHandler code is not valid
"""
type InvalidFulfillmentHandlerError {
errorCode: ErrorCode!
message: String!
}

ItemsAlreadyFulfilledError

"""
Returned if the specified items are already part of a Fulfillment
"""
type ItemsAlreadyFulfilledError {
errorCode: ErrorCode!
message: String!
}

JSON

"""
The JSON scalar type represents JSON values as specified by ECMA-404.
"""
scalar JSON

Job

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!
}

JobBufferSize

type JobBufferSize {
bufferId: String!
size: Int!
}

JobList

type JobList {
items: [Job!]!
totalItems: Int!
}

JobQueue

type JobQueue {
name: String!
running: Boolean!
}

LanguageNotAvailableError

"""
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!
}

LocaleStringCustomFieldConfig

type LocaleStringCustomFieldConfig {
name: String!
type: String!
list: Boolean!
length: Int
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
pattern: String
ui: JSON
}

LocaleTextCustomFieldConfig

type LocaleTextCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
ui: JSON
}

LocalizedString

type LocalizedString {
languageCode: LanguageCode!
value: String!
}

ManualPaymentStateError

"""
Returned when a call to addManualPaymentToOrder is made but the Order
is not in the required state.
"""
type ManualPaymentStateError {
errorCode: ErrorCode!
message: String!
}

MetricSummary

type MetricSummary {
interval: MetricInterval!
type: MetricType!
title: String!
entries: [MetricSummaryEntry!]!
}

MetricSummaryEntry

type MetricSummaryEntry {
label: String!
value: Float!
}

MimeTypeError

type MimeTypeError {
errorCode: ErrorCode!
message: String!
fileName: String!
mimeType: String!
}

MissingConditionsError

"""
Returned if a PromotionCondition has neither a couponCode nor any conditions set
"""
type MissingConditionsError {
errorCode: ErrorCode!
message: String!
}

ModifyOrderResult

Money

"""
The Money scalar type represents monetary values and supports signed double-precision fractional values as specified by IEEE 754.
"""
scalar Money

MultipleOrderError

"""
Returned if an operation has specified OrderLines from multiple Orders
"""
type MultipleOrderError {
errorCode: ErrorCode!
message: String!
}

NativeAuthStrategyError

"""
Returned when attempting an operation that relies on the NativeAuthStrategy, if that strategy is not configured.
"""
type NativeAuthStrategyError {
errorCode: ErrorCode!
message: String!
}

NativeAuthenticationResult

union NativeAuthenticationResult =

NegativeQuantityError

"""
Returned when attempting to set a negative OrderLine quantity.
"""
type NegativeQuantityError {
errorCode: ErrorCode!
message: String!
}

NoActiveOrderError

"""
Returned when invoking a mutation which depends on there being an active Order on the
current session.
"""
type NoActiveOrderError {
errorCode: ErrorCode!
message: String!
}

NoChangesSpecifiedError

"""
Returned when a call to modifyOrder fails to specify any changes
"""
type NoChangesSpecifiedError {
errorCode: ErrorCode!
message: String!
}

NothingToRefundError

"""
Returned if an attempting to refund an Order but neither items nor shipping refund was specified
"""
type NothingToRefundError {
errorCode: ErrorCode!
message: String!
}

Order

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!]!
customFields: JSON
}

OrderAddress

type OrderAddress {
fullName: String
company: String
streetLine1: String
streetLine2: String
city: String
province: String
postalCode: String
country: String
countryCode: String
phoneNumber: String
customFields: JSON
}

OrderLimitError

"""
Returned when the maximum order size limit has been reached.
"""
type OrderLimitError {
errorCode: ErrorCode!
message: String!
maxItems: Int!
}

OrderLine

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
}

OrderList

type OrderList {
items: [Order!]!
totalItems: Int!
}

OrderModification

type OrderModification {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
priceChange: Money!
note: String!
surcharges: [Surcharge!]
payment: Payment
refund: Refund
isSettled: Boolean!
}

OrderModificationError

"""
Returned when attempting to modify the contents of an Order that is not in the AddingItems state.
"""
type OrderModificationError {
errorCode: ErrorCode!
message: String!
}

OrderModificationLine

type OrderModificationLine {
orderLine: OrderLine!
orderLineId: ID!
quantity: Int!
modification: OrderModification!
modificationId: ID!
}

OrderModificationStateError

"""
Returned when attempting to modify the contents of an Order that is not in the Modifying state.
"""
type OrderModificationStateError {
errorCode: ErrorCode!
message: String!
}

OrderProcessState

type OrderProcessState {
name: String!
to: [String!]!
}

OrderStateTransitionError

"""
Returned if there is an error in transitioning the Order state
"""
type OrderStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}

OrderTaxSummary

"""
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!
}

Payment

type Payment {
nextStates: [String!]!
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
method: String!
amount: Money!
state: String!
transactionId: String
errorMessage: String
refunds: [Refund!]!
metadata: JSON
}

PaymentMethod

type PaymentMethod {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
code: String!
description: String!
enabled: Boolean!
translations: [PaymentMethodTranslation!]!
customFields: JSON
}

PaymentMethodList

type PaymentMethodList {
items: [PaymentMethod!]!
totalItems: Int!
}

PaymentMethodMissingError

"""
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!
}

PaymentMethodQuote

type PaymentMethodQuote {
id: ID!
code: String!
name: String!
description: String!
isEligible: Boolean!
eligibilityMessage: String
customFields: JSON
}

PaymentMethodTranslation

type PaymentMethodTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
description: String!
}

PaymentOrderMismatchError

"""
Returned if an attempting to refund a Payment against OrderLines from a different Order
"""
type PaymentOrderMismatchError {
errorCode: ErrorCode!
message: String!
}

PaymentStateTransitionError

"""
Returned when there is an error in transitioning the Payment state
"""
type PaymentStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}

PermissionDefinition

type PermissionDefinition {
name: String!
description: String!
assignable: Boolean!
}

PriceRange

"""
The price range where the result has more than one price
"""
type PriceRange {
min: Money!
max: Money!
}

Product

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
"""
optionGroups: [ProductOptionGroup!]!
facetValues: [FacetValue!]!
translations: [ProductTranslation!]!
collections: [Collection!]!
customFields: JSON
}

ProductList

type ProductList {
items: [Product!]!
totalItems: Int!
}

ProductOption

type ProductOption {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
code: String!
name: String!
groupId: ID!
translations: [ProductOptionTranslation!]!
customFields: JSON
}

ProductOptionGroup

type ProductOptionGroup {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
code: String!
name: String!
options: [ProductOption!]!
customFields: JSON
}

ProductOptionGroupTranslation

type ProductOptionGroupTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
}

ProductOptionInUseError

type ProductOptionInUseError {
errorCode: ErrorCode!
message: String!
optionGroupCode: String!
productVariantCount: Int!
}

ProductOptionTranslation

type ProductOptionTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
}

ProductTranslation

type ProductTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
slug: String!
description: String!
}

ProductVariant

type ProductVariant {
enabled: Boolean!
trackInventory: GlobalFlag!
stockOnHand: Int!
stockAllocated: Int!
outOfStockThreshold: Int!
useGlobalOutOfStockThreshold: Boolean!
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
}

ProductVariantList

type ProductVariantList {
items: [ProductVariant!]!
totalItems: Int!
}

ProductVariantPrice

type ProductVariantPrice {
currencyCode: CurrencyCode!
price: Money!
customFields: JSON
}

ProductVariantTranslation

type ProductVariantTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
}

Promotion

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!]!
translations: [PromotionTranslation!]!
customFields: JSON
}

PromotionList

type PromotionList {
items: [Promotion!]!
totalItems: Int!
}

PromotionTranslation

type PromotionTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
description: String!
}

Province

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
}

ProvinceList

type ProvinceList {
items: [Province!]!
totalItems: Int!
}

QuantityTooGreatError

"""
Returned if the specified quantity of an OrderLine is greater than the number of items in that line
"""
type QuantityTooGreatError {
errorCode: ErrorCode!
message: String!
}

Refund

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
}

RefundAmountError

"""
Returned if amount is greater than the maximum un-refunded amount of the Payment
"""
type RefundAmountError {
errorCode: ErrorCode!
message: String!
maximumRefundable: Int!
}

RefundLine

type RefundLine {
orderLine: OrderLine!
orderLineId: ID!
quantity: Int!
refund: Refund!
refundId: ID!
}

RefundOrderResult

RefundOrderStateError

"""
Returned if an attempting to refund an Order which is not in the expected state
"""
type RefundOrderStateError {
errorCode: ErrorCode!
message: String!
orderState: String!
}

RefundPaymentIdMissingError

"""
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!
}

RefundStateTransitionError

"""
Returned when there is an error in transitioning the Refund state
"""
type RefundStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}

RegionTranslation

type RegionTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
}

RelationCustomFieldConfig

type RelationCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
entity: String!
scalarFields: [String!]!
ui: JSON
}

Release

type Release {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
productVariant: ProductVariant!
quantity: Int!
}

RemoveFacetFromChannelResult

union RemoveFacetFromChannelResult =

RemoveOptionGroupFromProductResult

union RemoveOptionGroupFromProductResult =

RemoveOrderItemsResult

union RemoveOrderItemsResult =

Return

type Return {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
productVariant: ProductVariant!
quantity: Int!
}

Role

type Role {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
code: String!
description: String!
permissions: [Permission!]!
channels: [Channel!]!
}

RoleList

type RoleList {
items: [Role!]!
totalItems: Int!
}

Sale

type Sale {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
productVariant: ProductVariant!
quantity: Int!
}

SearchReindexResponse

type SearchReindexResponse {
success: Boolean!
}

SearchResponse

type SearchResponse {
items: [SearchResult!]!
totalItems: Int!
facetValues: [FacetValueResult!]!
collections: [CollectionResult!]!
}

SearchResult

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
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!
}

SearchResultAsset

type SearchResultAsset {
id: ID!
preview: String!
focalPoint: Coordinate
}

SearchResultPrice

"""
The price of a search result product, either as a range or as a single price
"""
union SearchResultPrice =

Seller

type Seller {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
customFields: JSON
}

SellerList

type SellerList {
items: [Seller!]!
totalItems: Int!
}

ServerConfig

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!]!
}

SetCustomerForDraftOrderResult

union SetCustomerForDraftOrderResult =

SetOrderShippingMethodResult

SettlePaymentError

"""
Returned if the Payment settlement fails
"""
type SettlePaymentError {
errorCode: ErrorCode!
message: String!
paymentErrorMessage: String!
}

SettlePaymentResult

SettleRefundResult

union SettleRefundResult =

ShippingLine

type ShippingLine {
id: ID!
shippingMethod: ShippingMethod!
price: Money!
priceWithTax: Money!
discountedPrice: Money!
discountedPriceWithTax: Money!
discounts: [Discount!]!
}

ShippingMethod

type ShippingMethod {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
code: String!
name: String!
description: String!
fulfillmentHandlerCode: String!
translations: [ShippingMethodTranslation!]!
customFields: JSON
}

ShippingMethodList

type ShippingMethodList {
items: [ShippingMethod!]!
totalItems: Int!
}

ShippingMethodQuote

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
}

ShippingMethodTranslation

type ShippingMethodTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
name: String!
description: String!
}

SinglePrice

"""
The price value where the result has a single price
"""
type SinglePrice {
value: Money!
}

StockAdjustment

type StockAdjustment {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
productVariant: ProductVariant!
quantity: Int!
}

StockLevel

type StockLevel {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
stockLocationId: ID!
stockOnHand: Int!
stockAllocated: Int!
stockLocation: StockLocation!
}

StockLocation

type StockLocation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
description: String!
customFields: JSON
}

StockLocationList

type StockLocationList {
items: [StockLocation!]!
totalItems: Int!
}

StockMovementItem

union StockMovementItem =

StockMovementList

type StockMovementList {
totalItems: Int!
}

String

"""
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

StringCustomFieldConfig

type StringCustomFieldConfig {
name: String!
type: String!
list: Boolean!
length: Int
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
pattern: String
options: [StringFieldOption!]
ui: JSON
}

StringFieldOption

type StringFieldOption {
value: String!
label: [LocalizedString!]
}

Success

"""
Indicates that an operation succeeded, where we do not want to return any more specific information.
"""
type Success {
success: Boolean!
}

Surcharge

type Surcharge {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
description: String!
sku: String
taxLines: [TaxLine!]!
price: Money!
priceWithTax: Money!
taxRate: Float!
}

Tag

type Tag {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
value: String!
}

TagList

type TagList {
items: [Tag!]!
totalItems: Int!
}

TaxCategory

type TaxCategory {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
isDefault: Boolean!
customFields: JSON
}

TaxCategoryList

type TaxCategoryList {
items: [TaxCategory!]!
totalItems: Int!
}

TaxLine

type TaxLine {
description: String!
taxRate: Float!
}

TaxRate

type TaxRate {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
enabled: Boolean!
value: Float!
category: TaxCategory!
zone: Zone!
customerGroup: CustomerGroup
customFields: JSON
}

TaxRateList

type TaxRateList {
items: [TaxRate!]!
totalItems: Int!
}

TestShippingMethodQuote

type TestShippingMethodQuote {
price: Money!
priceWithTax: Money!
metadata: JSON
}

TestShippingMethodResult

type TestShippingMethodResult {
eligible: Boolean!
}

TextCustomFieldConfig

type TextCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
ui: JSON
}

TransitionFulfillmentToStateResult

union TransitionFulfillmentToStateResult =

TransitionOrderToStateResult

union TransitionOrderToStateResult =

TransitionPaymentToStateResult

union TransitionPaymentToStateResult =

UpdateChannelResult

union UpdateChannelResult =

UpdateCustomerResult

union UpdateCustomerResult =

UpdateGlobalSettingsResult

union UpdateGlobalSettingsResult =

UpdateOrderItemsResult

UpdatePromotionResult

union UpdatePromotionResult =

Upload

"""
The Upload scalar type represents a file upload.
"""
scalar Upload

User

type User {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
identifier: String!
verified: Boolean!
roles: [Role!]!
lastLogin: DateTime
authenticationMethods: [AuthenticationMethod!]!
customFields: JSON
}

Zone

type Zone {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
members: [Region!]!
customFields: JSON
}

ZoneList

type ZoneList {
items: [Zone!]!
totalItems: Int!
}