"""Returned if an attempting to refund an OrderItem which has already been refunded"""
type AlreadyRefundedError {
errorCode: ErrorCode!
message: String!
refundId: ID!
}
ApiKey
typeApiKey
type ApiKey {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
"""
ID by which we can look up the API-Key.
Also helps you identify keys without leaking the underlying secret API-Key.
"""
lookupId: String!
"""Helps you identify unused keys"""
lastUsedAt: DateTime
"""
Usually the user who created the ApiKey but could also be used as the basis for
restricting resolvers to `Permission.Owner` queries for customers for example.
"""
owner: User!
"""This is the underlying User which determines the kind of permissions for this API-Key."""
user: User!
"""A descriptive name so you can remind yourself where the API-Key gets used"""
name: String!
translations: [ApiKeyTranslation!]!
customFields: JSON
}
ApiKeyList
typeApiKeyList
type ApiKeyList {
items: [ApiKey!]!
totalItems: Int!
}
ApiKeyTranslation
typeApiKeyTranslation
type ApiKeyTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
"""A descriptive name so you can remind yourself where the API-Key gets used"""
name: String!
}
"""Returned if an attempting to cancel lines from an Order which is still active"""
type CancelActiveOrderError {
errorCode: ErrorCode!
message: String!
orderState: String!
}
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
typeChannelDefaultLanguageError
"""
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
typeChannelList
type ChannelList {
items: [Channel!]!
totalItems: Int!
}
type CollectionBreadcrumb {
id: ID!
name: String!
slug: String!
}
CollectionList
typeCollectionList
type CollectionList {
items: [Collection!]!
totalItems: Int!
}
CollectionResult
typeCollectionResult
"""
Which Collections are present in the products returned
by the search, and in what quantity.
"""
type CollectionResult {
collection: Collection!
count: Int!
}
"""
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
typeCountryList
type CountryList {
items: [Country!]!
totalItems: Int!
}
CouponCodeExpiredError
typeCouponCodeExpiredError
"""Returned if the provided coupon code is invalid"""
type CouponCodeExpiredError {
errorCode: ErrorCode!
message: String!
couponCode: String!
}
CouponCodeInvalidError
typeCouponCodeInvalidError
"""Returned if the provided coupon code is invalid"""
type CouponCodeInvalidError {
errorCode: ErrorCode!
message: String!
couponCode: String!
}
CouponCodeLimitError
typeCouponCodeLimitError
"""Returned if the provided coupon code is invalid"""
type CouponCodeLimitError {
errorCode: ErrorCode!
message: String!
couponCode: String!
limit: Int!
}
CreateApiKeyResult
typeCreateApiKeyResult
type CreateApiKeyResult {
"""The generated API-Key. API-Keys cannot be viewed again after creation!"""
apiKey: String!
"""ID of the created ApiKey-Entity"""
entityId: ID!
}
"""Returned if an error is thrown in a FulfillmentHandler's createFulfillment method"""
type CreateFulfillmentError {
errorCode: ErrorCode!
message: String!
fulfillmentHandlerError: String!
}
type CustomerGroupList {
items: [CustomerGroup!]!
totalItems: Int!
}
CustomerList
typeCustomerList
type CustomerList {
items: [Customer!]!
totalItems: Int!
}
DateTime
scalarDateTime
scalar DateTime
DateTimeCustomFieldConfig
typeDateTimeCustomFieldConfig
"""
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!]
secret: Boolean
deprecated: Boolean
deprecationReason: String
min: String
max: String
step: Int
ui: JSON
}
DateTimeStructFieldConfig
typeDateTimeStructFieldConfig
"""
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
}
"""Returned when attempting to create a Customer with an email address already registered to an existing User."""
type EmailAddressConflictError {
errorCode: ErrorCode!
message: String!
}
EmptyOrderLineSelectionError
typeEmptyOrderLineSelectionError
"""Returned if no OrderLines have been specified for the operation"""
type EmptyOrderLineSelectionError {
errorCode: ErrorCode!
message: String!
}
type FacetValueList {
items: [FacetValue!]!
totalItems: Int!
}
FacetValueResult
typeFacetValueResult
"""
Which FacetValues are present in the products returned
by the search, and in what quantity.
"""
type FacetValueResult {
facetValue: FacetValue!
count: Int!
}
"""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
"""Returned when there is an error in transitioning the Fulfillment state"""
type FulfillmentStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: 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!
}
type HistoryEntryList {
items: [HistoryEntry!]!
totalItems: Int!
}
ID
scalarID
"""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
typeImportInfo
type ImportInfo {
errors: [String!]
processed: Int!
imported: Int!
}
IneligibleShippingMethodError
typeIneligibleShippingMethodError
"""Returned when attempting to set a ShippingMethod for which the Order is not eligible"""
type IneligibleShippingMethodError {
errorCode: ErrorCode!
message: String!
}
InsufficientStockError
typeInsufficientStockError
"""Returned when attempting to add more items to the Order than are available"""
type InsufficientStockError {
errorCode: ErrorCode!
message: String!
quantityAvailable: Int!
order: Order!
}
InsufficientStockOnHandError
typeInsufficientStockOnHandError
"""
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
scalarInt
"""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
typeIntCustomFieldConfig
type IntCustomFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
readonly: Boolean
internal: Boolean
nullable: Boolean
requiresPermission: [Permission!]
secret: Boolean
deprecated: Boolean
deprecationReason: String
min: Int
max: Int
step: Int
ui: JSON
}
IntStructFieldConfig
typeIntStructFieldConfig
type IntStructFieldConfig {
name: String!
type: String!
list: Boolean!
label: [LocalizedString!]
description: [LocalizedString!]
min: Int
max: Int
step: Int
ui: JSON
}
InvalidCredentialsError
typeInvalidCredentialsError
"""Returned if the user authentication credentials are not valid"""
type InvalidCredentialsError {
errorCode: ErrorCode!
message: String!
authenticationError: String!
}
InvalidFulfillmentHandlerError
typeInvalidFulfillmentHandlerError
"""Returned if the specified FulfillmentHandler code is not valid"""
type InvalidFulfillmentHandlerError {
errorCode: ErrorCode!
message: String!
}
ItemsAlreadyFulfilledError
typeItemsAlreadyFulfilledError
"""Returned if the specified items are already part of a Fulfillment"""
type ItemsAlreadyFulfilledError {
errorCode: ErrorCode!
message: 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!
}
"""
Returned when a call to addManualPaymentToOrder is made but the Order
is not in the required state.
"""
type ManualPaymentStateError {
errorCode: ErrorCode!
message: String!
}
"""Returned if a PromotionCondition has neither a couponCode nor any conditions set"""
type MissingConditionsError {
errorCode: ErrorCode!
message: String!
}
MissingPasswordError
typeMissingPasswordError
"""Returned when attempting to register or verify a customer account without a password, when one is required."""
type MissingPasswordError {
errorCode: ErrorCode!
message: String!
}
"""Returned if an operation has specified OrderLines from multiple Orders"""
type MultipleOrderError {
errorCode: ErrorCode!
message: String!
}
NativeAuthStrategyError
typeNativeAuthStrategyError
"""Returned when attempting an operation that relies on the NativeAuthStrategy, if that strategy is not configured."""
type NativeAuthStrategyError {
errorCode: ErrorCode!
message: String!
}
"""Returned when attempting to set a negative OrderLine quantity."""
type NegativeQuantityError {
errorCode: ErrorCode!
message: String!
}
NoActiveOrderError
typeNoActiveOrderError
"""
Returned when invoking a mutation which depends on there being an active Order on the
current session.
"""
type NoActiveOrderError {
errorCode: ErrorCode!
message: String!
}
NoChangesSpecifiedError
typeNoChangesSpecifiedError
"""Returned when a call to modifyOrder fails to specify any changes"""
type NoChangesSpecifiedError {
errorCode: ErrorCode!
message: String!
}
NothingToRefundError
typeNothingToRefundError
"""Returned if an attempting to refund an Order but neither items nor shipping refund was specified"""
type NothingToRefundError {
errorCode: ErrorCode!
message: String!
}
Order
typeOrder
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
}
"""Returned when an order operation is rejected by an OrderInterceptor method."""
type OrderInterceptorError {
errorCode: ErrorCode!
message: String!
interceptorError: String!
}
OrderLimitError
typeOrderLimitError
"""Returned when the maximum order size limit has been reached."""
type OrderLimitError {
errorCode: ErrorCode!
message: String!
maxItems: Int!
}
OrderLine
typeOrderLine
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
typeOrderList
type OrderList {
items: [Order!]!
totalItems: Int!
}
"""Returned when attempting to modify the contents of an Order that is not in the `AddingItems` state."""
type OrderModificationError {
errorCode: ErrorCode!
message: String!
}
"""Returned when attempting to modify the contents of an Order that is not in the `Modifying` state."""
type OrderModificationStateError {
errorCode: ErrorCode!
message: String!
}
OrderProcessState
typeOrderProcessState
type OrderProcessState {
name: String!
to: [String!]!
}
OrderStateTransitionError
typeOrderStateTransitionError
"""Returned if there is an error in transitioning the Order state"""
type OrderStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}
OrderTaxSummary
typeOrderTaxSummary
"""
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!
}
PasswordAlreadySetError
typePasswordAlreadySetError
"""Returned when attempting to verify a customer account with a password, when a password has already been set."""
type PasswordAlreadySetError {
errorCode: ErrorCode!
message: String!
}
PasswordResetTokenExpiredError
typePasswordResetTokenExpiredError
"""
Returned if the token used to reset an Administrator's password is valid, but has
expired according to the `verificationTokenDuration` setting in the AuthOptions.
"""
type PasswordResetTokenExpiredError {
errorCode: ErrorCode!
message: String!
}
PasswordResetTokenInvalidError
typePasswordResetTokenInvalidError
"""
Returned if the token used to reset an Administrator's password is either
invalid or does not match any expected tokens.
"""
type PasswordResetTokenInvalidError {
errorCode: ErrorCode!
message: String!
}
PasswordValidationError
typePasswordValidationError
"""Returned when attempting to register or verify a customer account where the given password fails password validation."""
type PasswordValidationError {
errorCode: ErrorCode!
message: String!
validationErrorMessage: String!
}
type PaymentMethodList {
items: [PaymentMethod!]!
totalItems: Int!
}
PaymentMethodMissingError
typePaymentMethodMissingError
"""
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!
}
"""Returned if an attempting to refund a Payment against OrderLines from a different Order"""
type PaymentOrderMismatchError {
errorCode: ErrorCode!
message: String!
}
PaymentStateTransitionError
typePaymentStateTransitionError
"""Returned when there is an error in transitioning the Payment state"""
type PaymentStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}
PermissionDefinition
typePermissionDefinition
type PermissionDefinition {
name: String!
description: String!
assignable: Boolean!
}
PriceRange
typePriceRange
"""The price range where the result has more than one price"""
type PriceRange {
min: Money!
max: Money!
}
type ProvinceList {
items: [Province!]!
totalItems: Int!
}
QuantityTooGreatError
typeQuantityTooGreatError
"""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
typeRefund
type Refund {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
items: Money!
shipping: Money!
adjustment: Money!
total: Money!
method: String
"""
The refund destination code, if a non-default destination was used.
When null, the refund was directed to the original payment method.
"""
destination: String
state: String!
transactionId: String
reason: String
lines: [RefundLine!]!
paymentId: ID!
metadata: JSON
customFields: JSON
}
RefundAmountError
typeRefundAmountError
"""Returned if `amount` is greater than the maximum un-refunded amount of the Payment"""
type RefundAmountError {
errorCode: ErrorCode!
message: String!
maximumRefundable: Int!
}
RefundDestination
typeRefundDestination
"""Represents an available refund destination for an order."""
type RefundDestination {
code: String!
description: String!
"""
The IDs of the Payments on this Order for which this destination is available, as
determined by the strategy's `isAvailable()` method. A refund to this destination must
draw its balance from one of these Payments.
"""
availableForPaymentIds: [ID!]!
}
RefundDestinationError
typeRefundDestinationError
"""Returned if the specified refund destination does not exist, or is not available for the specified Payment"""
type RefundDestinationError {
errorCode: ErrorCode!
message: String!
destinationCode: String!
}
RefundIncompleteError
typeRefundIncompleteError
"""
Returned when a refund split over several `targets` fails after one or more of the earlier
targets have already been refunded. The Refunds created before the failure are kept, since their
funds may already have been moved, and are listed in `refunds`.
"""
type RefundIncompleteError {
errorCode: ErrorCode!
message: String!
"""The Refunds created by this operation, including one whose state transition failed."""
refunds: [Refund!]!
"""The zero-based index of the target in `RefundOrderInput.targets` which failed."""
failedTargetIndex: Int!
failureReason: String!
}
"""Returned if an attempting to refund an Order which is not in the expected state"""
type RefundOrderStateError {
errorCode: ErrorCode!
message: String!
orderState: String!
}
RefundPaymentIdMissingError
typeRefundPaymentIdMissingError
"""
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
typeRefundStateTransitionError
"""Returned when there is an error in transitioning the Refund state"""
type RefundStateTransitionError {
errorCode: ErrorCode!
message: String!
transitionError: String!
fromState: String!
toState: String!
}
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!
}
SearchResultAsset
typeSearchResultAsset
type SearchResultAsset {
id: ID!
preview: String!
focalPoint: Coordinate
}
SearchResultPrice
unionSearchResultPrice
"""The price of a search result product, either as a range or as a single price"""
union SearchResultPrice = PriceRange | SinglePrice
type SellerList {
items: [Seller!]!
totalItems: Int!
}
SellerTranslation
typeSellerTranslation
"""
Holds a Seller's localized custom field values for one language.
The Seller's own fields, such as `name`, are not translated.
"""
type SellerTranslation {
id: ID!
createdAt: DateTime!
updatedAt: DateTime!
languageCode: LanguageCode!
}
ServerConfig
typeServerConfig
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!]!
}
type ShippingMethodList {
items: [ShippingMethod!]!
totalItems: Int!
}
ShippingMethodQuote
typeShippingMethodQuote
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
}
"""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