saleor-dashboard/schema.graphql
mmarkusik 2cd4ea9529
Saleor 1856/implement discount modal 2 (#978)
* Add currency to orderline unitprice and update hella lots of types

* wip

* Add diiscount modal component

* Refactor action dialog - move buttons to separate component so they can be reused

* Add discount provider to keep logic of discounts separated and wrap proper components

* Add discount ccalculator util class, and make draft details summary use it, along with discounts data, modal etc

* UUpdate lots of types, fragments, schema etc

* Update quries and mutations

* ARename OrderLineDiscountModal -> OrderDiscountCommonModal, add types etc

* Add order line discount provider + consumer, same for order discount

* Fix ts wip

* Update schema and types

* Update order discount provider

* Add nnetto price to order details fragment and update lots of types

* Adjust fixtures to order details containing net total

* Move both order and order line provider to same dir to make types and utils more accessible

* Update schema to match master

* Update schema and types

* Update order history, add some related components, add events etc.

* Fix types

* Fix schema to match master

* Update messages

* Update changelog

* Retrigger build

* Add stories and update common modal to display floats properly

* Add and update stories and tests

* Add optional displaying of reason in case it's empty

* Make user name label for history events return email if last name and first name are absent

* Update schema, types, and mutations to properly refresh

* Remove unnecessary imports

* Add discounts decorator to draft details page storybook

* Fixs after review

* Update messages

* Small fixes to timeline events

* Update types for order shipping price to use net as well, fix labels in draft summary and add colors to theme palette

* Updaste tests, messages

* Fixs after review

* Add theme highlighted active and inactive color text, add valuue conversion to discount modal when changing calculation mode

* Add change to changelog

* Add extra options to select employee display name for order event when some data is missing. Also add filtering null elements in event header when data missing alltogether and element is null

* Refactor selecting employee name in utils

* Add conditional to extended timeline event when orderline is null
2021-03-05 15:52:02 +01:00

7419 lines
153 KiB
GraphQL

schema {
query: Query
mutation: Mutation
}
type AccountAddressCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
address: Address
}
type AccountAddressDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
address: Address
}
type AccountAddressUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
address: Address
}
type AccountDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
user: User
}
type AccountError {
field: String
message: String
code: AccountErrorCode!
}
enum AccountErrorCode {
ACTIVATE_OWN_ACCOUNT
ACTIVATE_SUPERUSER_ACCOUNT
DUPLICATED_INPUT_ITEM
DEACTIVATE_OWN_ACCOUNT
DEACTIVATE_SUPERUSER_ACCOUNT
DELETE_NON_STAFF_USER
DELETE_OWN_ACCOUNT
DELETE_STAFF_ACCOUNT
DELETE_SUPERUSER_ACCOUNT
GRAPHQL_ERROR
INACTIVE
INVALID
INVALID_PASSWORD
LEFT_NOT_MANAGEABLE_PERMISSION
INVALID_CREDENTIALS
NOT_FOUND
OUT_OF_SCOPE_USER
OUT_OF_SCOPE_GROUP
OUT_OF_SCOPE_PERMISSION
PASSWORD_ENTIRELY_NUMERIC
PASSWORD_TOO_COMMON
PASSWORD_TOO_SHORT
PASSWORD_TOO_SIMILAR
REQUIRED
UNIQUE
JWT_SIGNATURE_EXPIRED
JWT_INVALID_TOKEN
JWT_DECODE_ERROR
JWT_MISSING_TOKEN
JWT_INVALID_CSRF_TOKEN
}
input AccountInput {
firstName: String
lastName: String
defaultBillingAddress: AddressInput
defaultShippingAddress: AddressInput
}
type AccountRegister {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
requiresConfirmation: Boolean
accountErrors: [AccountError!]!
user: User
}
input AccountRegisterInput {
email: String!
password: String!
redirectUrl: String
}
type AccountRequestDeletion {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
}
type AccountSetDefaultAddress {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
type AccountUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
user: User
}
type Address implements Node {
id: ID!
firstName: String!
lastName: String!
companyName: String!
streetAddress1: String!
streetAddress2: String!
city: String!
cityArea: String!
postalCode: String!
country: CountryDisplay!
countryArea: String!
phone: String
isDefaultShippingAddress: Boolean
isDefaultBillingAddress: Boolean
}
type AddressCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
address: Address
}
type AddressDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
address: Address
}
input AddressInput {
firstName: String
lastName: String
companyName: String
streetAddress1: String
streetAddress2: String
city: String
cityArea: String
postalCode: String
country: CountryCode
countryArea: String
phone: String
}
type AddressSetDefault {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
enum AddressTypeEnum {
BILLING
SHIPPING
}
type AddressUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
address: Address
}
type AddressValidationData {
countryCode: String
countryName: String
addressFormat: String
addressLatinFormat: String
allowedFields: [String]
requiredFields: [String]
upperFields: [String]
countryAreaType: String
countryAreaChoices: [ChoiceValue]
cityType: String
cityChoices: [ChoiceValue]
cityAreaType: String
cityAreaChoices: [ChoiceValue]
postalCodeType: String
postalCodeMatchers: [String]
postalCodeExamples: [String]
postalCodePrefix: String
}
type Allocation implements Node {
id: ID!
quantity: Int!
warehouse: Warehouse!
}
type App implements Node & ObjectWithMetadata {
id: ID!
name: String
created: DateTime
isActive: Boolean
permissions: [Permission]
tokens: [AppToken]
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
type: AppTypeEnum
webhooks: [Webhook]
aboutApp: String
dataPrivacy: String
dataPrivacyUrl: String
homepageUrl: String
supportUrl: String
configurationUrl: String
appUrl: String
version: String
accessToken: String
}
type AppActivate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
app: App
}
type AppCountableConnection {
pageInfo: PageInfo!
edges: [AppCountableEdge!]!
totalCount: Int
}
type AppCountableEdge {
node: App!
cursor: String!
}
type AppCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
authToken: String
appErrors: [AppError!]!
app: App
}
type AppDeactivate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
app: App
}
type AppDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
app: App
}
type AppDeleteFailedInstallation {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
appInstallation: AppInstallation
}
type AppError {
field: String
message: String
code: AppErrorCode!
permissions: [PermissionEnum!]
}
enum AppErrorCode {
FORBIDDEN
GRAPHQL_ERROR
INVALID
INVALID_STATUS
INVALID_PERMISSION
INVALID_URL_FORMAT
INVALID_MANIFEST_FORMAT
MANIFEST_URL_CANT_CONNECT
NOT_FOUND
REQUIRED
UNIQUE
OUT_OF_SCOPE_APP
OUT_OF_SCOPE_PERMISSION
}
type AppFetchManifest {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
manifest: Manifest
appErrors: [AppError!]!
}
input AppFilterInput {
search: String
isActive: Boolean
type: AppTypeEnum
}
input AppInput {
name: String
isActive: Boolean
permissions: [PermissionEnum]
}
type AppInstall {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
appInstallation: AppInstallation
}
input AppInstallInput {
appName: String
manifestUrl: String
activateAfterInstallation: Boolean = true
permissions: [PermissionEnum]
}
type AppInstallation implements Node & Job {
appName: String!
manifestUrl: String!
id: ID!
status: JobStatusEnum!
createdAt: DateTime!
updatedAt: DateTime!
message: String
}
type AppRetryInstall {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
appInstallation: AppInstallation
}
enum AppSortField {
NAME
CREATION_DATE
}
input AppSortingInput {
direction: OrderDirection!
field: AppSortField!
}
type AppToken implements Node {
name: String
authToken: String
id: ID!
}
type AppTokenCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
authToken: String
appErrors: [AppError!]!
appToken: AppToken
}
type AppTokenDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
appToken: AppToken
}
input AppTokenInput {
name: String
app: ID!
}
type AppTokenVerify {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
valid: Boolean!
appErrors: [AppError!]!
}
enum AppTypeEnum {
LOCAL
THIRDPARTY
}
type AppUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
appErrors: [AppError!]!
app: App
}
type AssignNavigation {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menu: Menu
menuErrors: [MenuError!]!
}
type Attribute implements Node & ObjectWithMetadata {
id: ID!
productTypes(
before: String
after: String
first: Int
last: Int
): ProductTypeCountableConnection!
productVariantTypes(
before: String
after: String
first: Int
last: Int
): ProductTypeCountableConnection!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
inputType: AttributeInputTypeEnum
entityType: AttributeEntityTypeEnum
name: String
slug: String
type: AttributeTypeEnum
values: [AttributeValue]
valueRequired: Boolean!
visibleInStorefront: Boolean!
filterableInStorefront: Boolean!
filterableInDashboard: Boolean!
availableInGrid: Boolean!
translation(languageCode: LanguageCodeEnum!): AttributeTranslation
storefrontSearchPosition: Int!
}
type AttributeBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
attributeErrors: [AttributeError!]!
}
type AttributeCountableConnection {
pageInfo: PageInfo!
edges: [AttributeCountableEdge!]!
totalCount: Int
}
type AttributeCountableEdge {
node: Attribute!
cursor: String!
}
type AttributeCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attribute: Attribute
attributeErrors: [AttributeError!]!
}
input AttributeCreateInput {
inputType: AttributeInputTypeEnum
entityType: AttributeEntityTypeEnum
name: String!
slug: String
type: AttributeTypeEnum!
values: [AttributeValueCreateInput]
valueRequired: Boolean
isVariantOnly: Boolean
visibleInStorefront: Boolean
filterableInStorefront: Boolean
filterableInDashboard: Boolean
storefrontSearchPosition: Int
availableInGrid: Boolean
}
type AttributeDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attributeErrors: [AttributeError!]!
attribute: Attribute
}
enum AttributeEntityTypeEnum {
PAGE
PRODUCT
}
type AttributeError {
field: String
message: String
code: AttributeErrorCode!
}
enum AttributeErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
input AttributeFilterInput {
valueRequired: Boolean
isVariantOnly: Boolean
visibleInStorefront: Boolean
filterableInStorefront: Boolean
filterableInDashboard: Boolean
availableInGrid: Boolean
search: String
ids: [ID]
type: AttributeTypeEnum
inCollection: ID
inCategory: ID
channel: String
}
input AttributeInput {
slug: String!
value: String
values: [String]
}
enum AttributeInputTypeEnum {
DROPDOWN
MULTISELECT
FILE
REFERENCE
}
type AttributeReorderValues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attribute: Attribute
attributeErrors: [AttributeError!]!
}
enum AttributeSortField {
NAME
SLUG
VALUE_REQUIRED
IS_VARIANT_ONLY
VISIBLE_IN_STOREFRONT
FILTERABLE_IN_STOREFRONT
FILTERABLE_IN_DASHBOARD
STOREFRONT_SEARCH_POSITION
AVAILABLE_IN_GRID
}
input AttributeSortingInput {
direction: OrderDirection!
field: AttributeSortField!
}
type AttributeTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): AttributeTranslation
attribute: Attribute
}
type AttributeTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
attribute: Attribute
}
type AttributeTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
enum AttributeTypeEnum {
PRODUCT_TYPE
PAGE_TYPE
}
type AttributeUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attribute: Attribute
attributeErrors: [AttributeError!]!
}
input AttributeUpdateInput {
name: String
slug: String
removeValues: [ID]
addValues: [AttributeValueCreateInput]
valueRequired: Boolean
isVariantOnly: Boolean
visibleInStorefront: Boolean
filterableInStorefront: Boolean
filterableInDashboard: Boolean
storefrontSearchPosition: Int
availableInGrid: Boolean
}
type AttributeValue implements Node {
id: ID!
name: String
slug: String
translation(languageCode: LanguageCodeEnum!): AttributeValueTranslation
inputType: AttributeInputTypeEnum
reference: ID
file: File
}
type AttributeValueBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
attributeErrors: [AttributeError!]!
}
type AttributeValueCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attribute: Attribute
attributeErrors: [AttributeError!]!
attributeValue: AttributeValue
}
input AttributeValueCreateInput {
name: String!
}
type AttributeValueDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attribute: Attribute
attributeErrors: [AttributeError!]!
attributeValue: AttributeValue
}
input AttributeValueInput {
id: ID
values: [String]
file: String
contentType: String
references: [ID!]
}
type AttributeValueTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): AttributeValueTranslation
attributeValue: AttributeValue
}
type AttributeValueTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
attributeValue: AttributeValue
}
type AttributeValueTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
type AttributeValueUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
attribute: Attribute
attributeErrors: [AttributeError!]!
attributeValue: AttributeValue
}
input BulkAttributeValueInput {
id: ID
values: [String]!
}
type BulkProductError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
index: Int
warehouses: [ID!]
channels: [ID!]
}
type BulkStockError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
index: Int
}
input CatalogueInput {
products: [ID]
categories: [ID]
collections: [ID]
}
type Category implements Node & ObjectWithMetadata {
seoTitle: String
seoDescription: String
id: ID!
name: String!
description: JSONString
slug: String!
parent: Category
level: Int!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
ancestors(
before: String
after: String
first: Int
last: Int
): CategoryCountableConnection
products(
channel: String
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
url: String
@deprecated(reason: "This field will be removed after 2020-07-31.")
children(
before: String
after: String
first: Int
last: Int
): CategoryCountableConnection
backgroundImage(size: Int): Image
translation(languageCode: LanguageCodeEnum!): CategoryTranslation
}
type CategoryBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productErrors: [ProductError!]!
}
type CategoryCountableConnection {
pageInfo: PageInfo!
edges: [CategoryCountableEdge!]!
totalCount: Int
}
type CategoryCountableEdge {
node: Category!
cursor: String!
}
type CategoryCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
category: Category
}
type CategoryDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
category: Category
}
input CategoryFilterInput {
search: String
ids: [ID]
}
input CategoryInput {
description: JSONString
name: String
slug: String
seo: SeoInput
backgroundImage: Upload
backgroundImageAlt: String
}
enum CategorySortField {
NAME
PRODUCT_COUNT
SUBCATEGORY_COUNT
}
input CategorySortingInput {
direction: OrderDirection!
channel: String
field: CategorySortField!
}
type CategoryTranslatableContent implements Node {
seoTitle: String
seoDescription: String
id: ID!
name: String!
description: JSONString
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
translation(languageCode: LanguageCodeEnum!): CategoryTranslation
category: Category
}
type CategoryTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
category: Category
}
type CategoryTranslation implements Node {
seoTitle: String
seoDescription: String
id: ID!
name: String!
description: JSONString
language: LanguageDisplay!
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
}
type CategoryUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
category: Category
}
type Channel implements Node {
id: ID!
name: String!
isActive: Boolean!
slug: String!
currencyCode: String!
hasOrders: Boolean!
}
type ChannelActivate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
channel: Channel
channelErrors: [ChannelError!]!
}
type ChannelCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
channelErrors: [ChannelError!]!
channel: Channel
}
input ChannelCreateInput {
isActive: Boolean
name: String!
slug: String!
currencyCode: String!
}
type ChannelDeactivate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
channel: Channel
channelErrors: [ChannelError!]!
}
type ChannelDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
channelErrors: [ChannelError!]!
channel: Channel
}
input ChannelDeleteInput {
targetChannel: ID!
}
type ChannelError {
field: String
message: String
code: ChannelErrorCode!
}
enum ChannelErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
CHANNEL_TARGET_ID_MUST_BE_DIFFERENT
CHANNELS_CURRENCY_MUST_BE_THE_SAME
CHANNEL_WITH_ORDERS
}
type ChannelUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
channelErrors: [ChannelError!]!
channel: Channel
}
input ChannelUpdateInput {
isActive: Boolean
name: String
slug: String
}
type Checkout implements Node & ObjectWithMetadata {
created: DateTime!
lastChange: DateTime!
user: User
quantity: Int!
channel: Channel!
billingAddress: Address
shippingAddress: Address
note: String!
discount: Money
discountName: String
translatedDiscountName: String
voucherCode: String
giftCards: [GiftCard]
id: ID!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
availableShippingMethods: [ShippingMethod]!
availablePaymentGateways: [PaymentGateway!]!
email: String!
isShippingRequired: Boolean!
lines: [CheckoutLine]
shippingPrice: TaxedMoney
shippingMethod: ShippingMethod
subtotalPrice: TaxedMoney
token: UUID!
totalPrice: TaxedMoney
}
type CheckoutAddPromoCode {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutBillingAddressUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutComplete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
confirmationNeeded: Boolean!
confirmationData: JSONString
checkoutErrors: [CheckoutError!]!
}
type CheckoutCountableConnection {
pageInfo: PageInfo!
edges: [CheckoutCountableEdge!]!
totalCount: Int
}
type CheckoutCountableEdge {
node: Checkout!
cursor: String!
}
type CheckoutCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
created: Boolean
checkoutErrors: [CheckoutError!]!
checkout: Checkout
}
input CheckoutCreateInput {
channel: String
lines: [CheckoutLineInput]!
email: String
shippingAddress: AddressInput
billingAddress: AddressInput
}
type CheckoutCustomerAttach {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutCustomerDetach {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutEmailUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutError {
field: String
message: String
code: CheckoutErrorCode!
variants: [ID!]
}
enum CheckoutErrorCode {
BILLING_ADDRESS_NOT_SET
CHECKOUT_NOT_FULLY_PAID
GRAPHQL_ERROR
PRODUCT_NOT_PUBLISHED
PRODUCT_UNAVAILABLE_FOR_PURCHASE
INSUFFICIENT_STOCK
INVALID
INVALID_SHIPPING_METHOD
NOT_FOUND
PAYMENT_ERROR
QUANTITY_GREATER_THAN_LIMIT
REQUIRED
SHIPPING_ADDRESS_NOT_SET
SHIPPING_METHOD_NOT_APPLICABLE
SHIPPING_METHOD_NOT_SET
SHIPPING_NOT_REQUIRED
TAX_ERROR
UNIQUE
VOUCHER_NOT_APPLICABLE
ZERO_QUANTITY
MISSING_CHANNEL_SLUG
CHANNEL_INACTIVE
}
type CheckoutLine implements Node {
id: ID!
variant: ProductVariant!
quantity: Int!
totalPrice: TaxedMoney
requiresShipping: Boolean
}
type CheckoutLineCountableConnection {
pageInfo: PageInfo!
edges: [CheckoutLineCountableEdge!]!
totalCount: Int
}
type CheckoutLineCountableEdge {
node: CheckoutLine!
cursor: String!
}
type CheckoutLineDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
input CheckoutLineInput {
quantity: Int!
variantId: ID!
}
type CheckoutLinesAdd {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutLinesUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutPaymentCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
payment: Payment
paymentErrors: [PaymentError!]!
}
type CheckoutRemovePromoCode {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutShippingAddressUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type CheckoutShippingMethodUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
checkout: Checkout
checkoutErrors: [CheckoutError!]!
}
type ChoiceValue {
raw: String
verbose: String
}
type Collection implements Node & ObjectWithMetadata {
seoTitle: String
seoDescription: String
id: ID!
name: String!
description: JSONString
slug: String!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
products(
filter: ProductFilterInput
sortBy: ProductOrder
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
backgroundImage(size: Int): Image
translation(languageCode: LanguageCodeEnum!): CollectionTranslation
channelListings: [CollectionChannelListing!]
}
type CollectionAddProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collection: Collection
collectionErrors: [CollectionError!]!
}
type CollectionBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productErrors: [ProductError!]!
}
type CollectionChannelListing implements Node {
publicationDate: Date
isPublished: Boolean!
id: ID!
channel: Channel!
}
type CollectionChannelListingError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
channels: [ID!]
}
type CollectionChannelListingUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collection: Collection
collectionChannelListingErrors: [CollectionChannelListingError!]!
}
input CollectionChannelListingUpdateInput {
addChannels: [PublishableChannelListingInput!]
removeChannels: [ID!]
}
type CollectionCountableConnection {
pageInfo: PageInfo!
edges: [CollectionCountableEdge!]!
totalCount: Int
}
type CollectionCountableEdge {
node: Collection!
cursor: String!
}
type CollectionCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collectionErrors: [CollectionError!]!
collection: Collection
}
input CollectionCreateInput {
isPublished: Boolean
name: String
slug: String
description: JSONString
backgroundImage: Upload
backgroundImageAlt: String
seo: SeoInput
publicationDate: Date
products: [ID]
}
type CollectionDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collectionErrors: [CollectionError!]!
collection: Collection
}
type CollectionError {
field: String
message: String
products: [ID!]
code: CollectionErrorCode!
}
enum CollectionErrorCode {
DUPLICATED_INPUT_ITEM
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT
}
input CollectionFilterInput {
published: CollectionPublished
search: String
ids: [ID]
channel: String
}
input CollectionInput {
isPublished: Boolean
name: String
slug: String
description: JSONString
backgroundImage: Upload
backgroundImageAlt: String
seo: SeoInput
publicationDate: Date
}
enum CollectionPublished {
PUBLISHED
HIDDEN
}
type CollectionRemoveProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collection: Collection
collectionErrors: [CollectionError!]!
}
type CollectionReorderProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collection: Collection
collectionErrors: [CollectionError!]!
}
enum CollectionSortField {
NAME
AVAILABILITY
PRODUCT_COUNT
PUBLICATION_DATE
}
input CollectionSortingInput {
direction: OrderDirection!
channel: String
field: CollectionSortField!
}
type CollectionTranslatableContent implements Node {
seoTitle: String
seoDescription: String
id: ID!
name: String!
description: JSONString
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
translation(languageCode: LanguageCodeEnum!): CollectionTranslation
collection: Collection
}
type CollectionTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
collection: Collection
}
type CollectionTranslation implements Node {
seoTitle: String
seoDescription: String
id: ID!
name: String!
description: JSONString
language: LanguageDisplay!
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
}
type CollectionUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
collectionErrors: [CollectionError!]!
collection: Collection
}
type ConfigurationItem {
name: String!
value: String
type: ConfigurationTypeFieldEnum
helpText: String
label: String
}
input ConfigurationItemInput {
name: String!
value: String
}
enum ConfigurationTypeFieldEnum {
STRING
BOOLEAN
SECRET
PASSWORD
SECRETMULTILINE
}
type ConfirmAccount {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
type ConfirmEmailChange {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
enum CountryCode {
AF
AX
AL
DZ
AS
AD
AO
AI
AQ
AG
AR
AM
AW
AU
AT
AZ
BS
BH
BD
BB
BY
BE
BZ
BJ
BM
BT
BO
BQ
BA
BW
BV
BR
IO
BN
BG
BF
BI
CV
KH
CM
CA
KY
CF
TD
CL
CN
CX
CC
CO
KM
CG
CD
CK
CR
CI
HR
CU
CW
CY
CZ
DK
DJ
DM
DO
EC
EG
SV
GQ
ER
EE
SZ
ET
EU
FK
FO
FJ
FI
FR
GF
PF
TF
GA
GM
GE
DE
GH
GI
GR
GL
GD
GP
GU
GT
GG
GN
GW
GY
HT
HM
VA
HN
HK
HU
IS
IN
ID
IR
IQ
IE
IM
IL
IT
JM
JP
JE
JO
KZ
KE
KI
KW
KG
LA
LV
LB
LS
LR
LY
LI
LT
LU
MO
MG
MW
MY
MV
ML
MT
MH
MQ
MR
MU
YT
MX
FM
MD
MC
MN
ME
MS
MA
MZ
MM
NA
NR
NP
NL
NC
NZ
NI
NE
NG
NU
NF
KP
MK
MP
NO
OM
PK
PW
PS
PA
PG
PY
PE
PH
PN
PL
PT
PR
QA
RE
RO
RU
RW
BL
SH
KN
LC
MF
PM
VC
WS
SM
ST
SA
SN
RS
SC
SL
SG
SX
SK
SI
SB
SO
ZA
GS
KR
SS
ES
LK
SD
SR
SJ
SE
CH
SY
TW
TJ
TZ
TH
TL
TG
TK
TO
TT
TN
TR
TM
TC
TV
UG
UA
AE
GB
UM
US
UY
UZ
VU
VE
VN
VG
VI
WF
EH
YE
ZM
ZW
}
type CountryDisplay {
code: String!
country: String!
vat: VAT
}
type CreateToken {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]!
}
type CreditCard {
brand: String!
firstDigits: String
lastDigits: String!
expMonth: Int
expYear: Int
}
type CustomerBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
accountErrors: [AccountError!]!
}
type CustomerCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
user: User
}
type CustomerDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
user: User
}
type CustomerEvent implements Node {
id: ID!
date: DateTime
type: CustomerEventsEnum
user: User
message: String
count: Int
order: Order
orderLine: OrderLine
}
enum CustomerEventsEnum {
ACCOUNT_CREATED
PASSWORD_RESET_LINK_SENT
PASSWORD_RESET
EMAIL_CHANGED_REQUEST
PASSWORD_CHANGED
EMAIL_CHANGED
PLACED_ORDER
NOTE_ADDED_TO_ORDER
DIGITAL_LINK_DOWNLOADED
CUSTOMER_DELETED
NAME_ASSIGNED
EMAIL_ASSIGNED
NOTE_ADDED
}
input CustomerFilterInput {
dateJoined: DateRangeInput
numberOfOrders: IntRangeInput
placedOrders: DateRangeInput
search: String
}
input CustomerInput {
defaultBillingAddress: AddressInput
defaultShippingAddress: AddressInput
firstName: String
lastName: String
email: String
isActive: Boolean
note: String
}
type CustomerUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
user: User
}
scalar Date
input DateRangeInput {
gte: Date
lte: Date
}
scalar DateTime
input DateTimeRangeInput {
gte: DateTime
lte: DateTime
}
type DeactivateAllUserTokens {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
}
type DeleteMetadata {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
metadataErrors: [MetadataError!]!
item: ObjectWithMetadata
}
type DeletePrivateMetadata {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
metadataErrors: [MetadataError!]!
item: ObjectWithMetadata
}
type DigitalContent implements Node & ObjectWithMetadata {
useDefaultSettings: Boolean!
automaticFulfillment: Boolean!
productVariant: ProductVariant!
contentFile: String!
maxDownloads: Int
urlValidDays: Int
urls: [DigitalContentUrl]
id: ID!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
}
type DigitalContentCountableConnection {
pageInfo: PageInfo!
edges: [DigitalContentCountableEdge!]!
totalCount: Int
}
type DigitalContentCountableEdge {
node: DigitalContent!
cursor: String!
}
type DigitalContentCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
variant: ProductVariant
content: DigitalContent
productErrors: [ProductError!]!
}
type DigitalContentDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
variant: ProductVariant
productErrors: [ProductError!]!
}
input DigitalContentInput {
useDefaultSettings: Boolean!
maxDownloads: Int
urlValidDays: Int
automaticFulfillment: Boolean
}
type DigitalContentUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
variant: ProductVariant
content: DigitalContent
productErrors: [ProductError!]!
}
input DigitalContentUploadInput {
useDefaultSettings: Boolean!
maxDownloads: Int
urlValidDays: Int
automaticFulfillment: Boolean
contentFile: Upload!
}
type DigitalContentUrl implements Node {
content: DigitalContent!
created: DateTime!
downloadNum: Int!
id: ID!
url: String
token: UUID!
}
type DigitalContentUrlCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
digitalContentUrl: DigitalContentUrl
}
input DigitalContentUrlCreateInput {
content: ID!
}
type DiscountError {
field: String
message: String
products: [ID!]
code: DiscountErrorCode!
channels: [ID!]
}
enum DiscountErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT
DUPLICATED_INPUT_ITEM
}
enum DiscountStatusEnum {
ACTIVE
EXPIRED
SCHEDULED
}
enum DiscountValueTypeEnum {
FIXED
PERCENTAGE
}
type Domain {
host: String!
sslEnabled: Boolean!
url: String!
}
type DraftOrderBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
orderErrors: [OrderError!]!
}
type DraftOrderComplete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
type Geolocalization {
country: CountryDisplay
}
type DraftOrderCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderErrors: [OrderError!]!
order: Order
}
input DraftOrderCreateInput {
billingAddress: AddressInput
user: ID
userEmail: String
discount: PositiveDecimal
shippingAddress: AddressInput
shippingMethod: ID
voucher: ID
customerNote: String
channel: ID
redirectUrl: String
lines: [OrderLineCreateInput]
}
type DraftOrderDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderErrors: [OrderError!]!
order: Order
}
input DraftOrderInput {
billingAddress: AddressInput
user: ID
userEmail: String
discount: PositiveDecimal
shippingAddress: AddressInput
shippingMethod: ID
voucher: ID
customerNote: String
channel: ID
redirectUrl: String
}
type DraftOrderLineDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderLine: OrderLine
orderErrors: [OrderError!]!
}
type DraftOrderLineUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
orderLine: OrderLine
}
type DraftOrderLinesBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
orderErrors: [OrderError!]!
}
type DraftOrderLinesCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderLines: [OrderLine!]
orderErrors: [OrderError!]!
}
type DraftOrderUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderErrors: [OrderError!]!
order: Order
}
type Error {
field: String
message: String
}
type ExportError {
field: String
message: String
code: ExportErrorCode!
}
enum ExportErrorCode {
INVALID
NOT_FOUND
REQUIRED
}
type ExportEvent implements Node {
id: ID!
date: DateTime!
type: ExportEventsEnum!
user: User
app: App
message: String!
}
enum ExportEventsEnum {
EXPORT_PENDING
EXPORT_SUCCESS
EXPORT_FAILED
EXPORT_DELETED
EXPORTED_FILE_SENT
EXPORT_FAILED_INFO_SENT
}
type ExportFile implements Node & Job {
id: ID!
user: User
app: App
status: JobStatusEnum!
createdAt: DateTime!
updatedAt: DateTime!
message: String
url: String
events: [ExportEvent!]
}
type ExportFileCountableConnection {
pageInfo: PageInfo!
edges: [ExportFileCountableEdge!]!
totalCount: Int
}
type ExportFileCountableEdge {
node: ExportFile!
cursor: String!
}
input ExportFileFilterInput {
createdAt: DateTimeRangeInput
updatedAt: DateTimeRangeInput
status: JobStatusEnum
user: String
app: String
}
enum ExportFileSortField {
STATUS
CREATED_AT
UPDATED_AT
}
input ExportFileSortingInput {
direction: OrderDirection!
field: ExportFileSortField!
}
input ExportInfoInput {
attributes: [ID!]
warehouses: [ID!]
channels: [ID!]
fields: [ProductFieldEnum!]
}
type ExportProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
exportFile: ExportFile
exportErrors: [ExportError!]!
}
input ExportProductsInput {
scope: ExportScope!
filter: ProductFilterInput
ids: [ID!]
exportInfo: ExportInfoInput
fileType: FileTypesEnum!
}
enum ExportScope {
ALL
IDS
FILTER
}
type ExternalAuthentication {
id: String!
name: String
}
type ExternalAuthenticationUrl {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
authenticationData: JSONString
accountErrors: [AccountError!]!
}
type ExternalLogout {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
logoutData: JSONString
accountErrors: [AccountError!]!
}
type ExternalObtainAccessTokens {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]!
}
type ExternalRefresh {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]!
}
type ExternalVerify {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
isValid: Boolean!
verifyData: JSONString
accountErrors: [AccountError!]!
}
type File {
url: String!
contentType: String
}
enum FileTypesEnum {
CSV
XLSX
}
type FileUpload {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
uploadedFile: File
uploadErrors: [UploadError!]!
}
type Fulfillment implements Node & ObjectWithMetadata {
id: ID!
fulfillmentOrder: Int!
status: FulfillmentStatus!
trackingNumber: String!
created: DateTime!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
lines: [FulfillmentLine]
statusDisplay: String
warehouse: Warehouse
}
type FulfillmentCancel {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]!
}
input FulfillmentCancelInput {
warehouseId: ID!
}
type FulfillmentLine implements Node {
id: ID!
quantity: Int!
orderLine: OrderLine
}
type FulfillmentRefundProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]!
}
type FulfillmentReturnProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
returnFulfillment: Fulfillment
replaceFulfillment: Fulfillment
order: Order
replaceOrder: Order
orderErrors: [OrderError!]!
}
enum FulfillmentStatus {
FULFILLED
REFUNDED
RETURNED
REPLACED
REFUNDED_AND_RETURNED
CANCELED
}
type FulfillmentUpdateTracking {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]!
}
input FulfillmentUpdateTrackingInput {
trackingNumber: String
notifyCustomer: Boolean = false
}
type GatewayConfigLine {
field: String!
value: String
}
scalar GenericScalar
type GiftCard implements Node {
code: String
user: User
created: DateTime!
startDate: Date!
endDate: Date
lastUsedOn: DateTime
isActive: Boolean!
initialBalance: Money
currentBalance: Money
id: ID!
displayCode: String
}
type GiftCardActivate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
giftCard: GiftCard
giftCardErrors: [GiftCardError!]!
}
type GiftCardCountableConnection {
pageInfo: PageInfo!
edges: [GiftCardCountableEdge!]!
totalCount: Int
}
type GiftCardCountableEdge {
node: GiftCard!
cursor: String!
}
type GiftCardCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
giftCardErrors: [GiftCardError!]!
giftCard: GiftCard
}
input GiftCardCreateInput {
startDate: Date
endDate: Date
balance: PositiveDecimal
userEmail: String
code: String
}
type GiftCardDeactivate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
giftCard: GiftCard
giftCardErrors: [GiftCardError!]!
}
type GiftCardError {
field: String
message: String
code: GiftCardErrorCode!
}
enum GiftCardErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
type GiftCardUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
giftCardErrors: [GiftCardError!]!
giftCard: GiftCard
}
input GiftCardUpdateInput {
startDate: Date
endDate: Date
balance: PositiveDecimal
userEmail: String
}
type Group implements Node {
id: ID!
name: String!
permissions: [Permission]
users: [User]
userCanManage: Boolean!
}
type GroupCountableConnection {
pageInfo: PageInfo!
edges: [GroupCountableEdge!]!
totalCount: Int
}
type GroupCountableEdge {
node: Group!
cursor: String!
}
type Image {
url: String!
alt: String
}
input IntRangeInput {
gte: Int
lte: Int
}
type Invoice implements ObjectWithMetadata & Job & Node {
id: ID!
metadata: [MetadataItem]!
status: JobStatusEnum!
number: String
externalUrl: String
privateMetadata: [MetadataItem]!
createdAt: DateTime!
updatedAt: DateTime!
message: String
url: String
}
type InvoiceCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
invoiceErrors: [InvoiceError!]!
invoice: Invoice
}
input InvoiceCreateInput {
number: String!
url: String!
}
type InvoiceDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
invoiceErrors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceError {
field: String
message: String
code: InvoiceErrorCode!
}
enum InvoiceErrorCode {
REQUIRED
NOT_READY
URL_NOT_SET
EMAIL_NOT_SET
NUMBER_NOT_SET
NOT_FOUND
INVALID_STATUS
}
type InvoiceRequest {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
invoiceErrors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceRequestDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
invoiceErrors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceSendEmail {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
invoiceErrors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
invoiceErrors: [InvoiceError!]!
invoice: Invoice
}
scalar JSONString
interface Job {
status: JobStatusEnum!
createdAt: DateTime!
updatedAt: DateTime!
message: String
}
enum JobStatusEnum {
PENDING
SUCCESS
FAILED
DELETED
}
enum LanguageCodeEnum {
AR
AZ
BG
BN
CA
CS
DA
DE
EL
EN
ES
ES_CO
ET
FA
FI
FR
HI
HU
HY
ID
IS
IT
JA
KA
KM
KO
LT
MN
MY
NB
NL
PL
PT
PT_BR
RO
RU
SK
SL
SQ
SR
SV
SW
TA
TH
TR
UK
VI
ZH_HANS
ZH_HANT
}
type LanguageDisplay {
code: LanguageCodeEnum!
language: String!
}
type Manifest {
identifier: String!
version: String!
name: String!
about: String
permissions: [Permission]
appUrl: String
configurationUrl: String
tokenTargetUrl: String
dataPrivacy: String
dataPrivacyUrl: String
homepageUrl: String
supportUrl: String
}
type Margin {
start: Int
stop: Int
}
type Menu implements Node & ObjectWithMetadata {
id: ID!
name: String!
slug: String!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
items: [MenuItem]
}
type MenuBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
menuErrors: [MenuError!]!
}
type MenuCountableConnection {
pageInfo: PageInfo!
edges: [MenuCountableEdge!]!
totalCount: Int
}
type MenuCountableEdge {
node: Menu!
cursor: String!
}
type MenuCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menuErrors: [MenuError!]!
menu: Menu
}
input MenuCreateInput {
name: String!
slug: String
items: [MenuItemInput]
}
type MenuDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menuErrors: [MenuError!]!
menu: Menu
}
type MenuError {
field: String
message: String
code: MenuErrorCode!
}
enum MenuErrorCode {
CANNOT_ASSIGN_NODE
GRAPHQL_ERROR
INVALID
INVALID_MENU_ITEM
NO_MENU_ITEM_PROVIDED
NOT_FOUND
REQUIRED
TOO_MANY_MENU_ITEMS
UNIQUE
}
input MenuFilterInput {
search: String
slug: [String]
}
input MenuInput {
name: String
slug: String
}
type MenuItem implements Node & ObjectWithMetadata {
id: ID!
name: String!
menu: Menu!
parent: MenuItem
category: Category
collection: Collection
page: Page
level: Int!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
children: [MenuItem]
url: String
translation(languageCode: LanguageCodeEnum!): MenuItemTranslation
}
type MenuItemBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
menuErrors: [MenuError!]!
}
type MenuItemCountableConnection {
pageInfo: PageInfo!
edges: [MenuItemCountableEdge!]!
totalCount: Int
}
type MenuItemCountableEdge {
node: MenuItem!
cursor: String!
}
type MenuItemCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menuErrors: [MenuError!]!
menuItem: MenuItem
}
input MenuItemCreateInput {
name: String!
url: String
category: ID
collection: ID
page: ID
menu: ID!
parent: ID
}
type MenuItemDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menuErrors: [MenuError!]!
menuItem: MenuItem
}
input MenuItemFilterInput {
search: String
}
input MenuItemInput {
name: String
url: String
category: ID
collection: ID
page: ID
}
type MenuItemMove {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menu: Menu
menuErrors: [MenuError!]!
}
input MenuItemMoveInput {
itemId: ID!
parentId: ID
sortOrder: Int
}
input MenuItemSortingInput {
direction: OrderDirection!
field: MenuItemsSortField!
}
type MenuItemTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): MenuItemTranslation
menuItem: MenuItem
}
type MenuItemTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
menuItem: MenuItem
}
type MenuItemTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
type MenuItemUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menuErrors: [MenuError!]!
menuItem: MenuItem
}
enum MenuItemsSortField {
NAME
}
enum MenuSortField {
NAME
ITEMS_COUNT
}
input MenuSortingInput {
direction: OrderDirection!
field: MenuSortField!
}
type MenuUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
menuErrors: [MenuError!]!
menu: Menu
}
type MetadataError {
field: String
message: String
code: MetadataErrorCode!
}
enum MetadataErrorCode {
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
}
input MetadataInput {
key: String!
value: String!
}
type MetadataItem {
key: String!
value: String!
}
type Money {
currency: String!
amount: Float!
localized: String!
@deprecated(
reason: "Price formatting according to the current locale should be handled by the frontend client. This field will be removed after 2020-07-31."
)
}
type MoneyRange {
start: Money
stop: Money
}
input MoveProductInput {
productId: ID!
sortOrder: Int
}
type Mutation {
webhookCreate(input: WebhookCreateInput!): WebhookCreate
webhookDelete(id: ID!): WebhookDelete
webhookUpdate(id: ID!, input: WebhookUpdateInput!): WebhookUpdate
createWarehouse(input: WarehouseCreateInput!): WarehouseCreate
updateWarehouse(id: ID!, input: WarehouseUpdateInput!): WarehouseUpdate
deleteWarehouse(id: ID!): WarehouseDelete
assignWarehouseShippingZone(
id: ID!
shippingZoneIds: [ID!]!
): WarehouseShippingZoneAssign
unassignWarehouseShippingZone(
id: ID!
shippingZoneIds: [ID!]!
): WarehouseShippingZoneUnassign
staffNotificationRecipientCreate(
input: StaffNotificationRecipientInput!
): StaffNotificationRecipientCreate
staffNotificationRecipientUpdate(
id: ID!
input: StaffNotificationRecipientInput!
): StaffNotificationRecipientUpdate
staffNotificationRecipientDelete(id: ID!): StaffNotificationRecipientDelete
shopDomainUpdate(input: SiteDomainInput): ShopDomainUpdate
shopSettingsUpdate(input: ShopSettingsInput!): ShopSettingsUpdate
shopFetchTaxRates: ShopFetchTaxRates
shopSettingsTranslate(
input: ShopSettingsTranslationInput!
languageCode: LanguageCodeEnum!
): ShopSettingsTranslate
shopAddressUpdate(input: AddressInput): ShopAddressUpdate
orderSettingsUpdate(input: OrderSettingsUpdateInput!): OrderSettingsUpdate
shippingMethodChannelListingUpdate(
id: ID!
input: ShippingMethodChannelListingInput!
): ShippingMethodChannelListingUpdate
shippingPriceCreate(input: ShippingPriceInput!): ShippingPriceCreate
shippingPriceDelete(id: ID!): ShippingPriceDelete
shippingPriceBulkDelete(ids: [ID]!): ShippingPriceBulkDelete
shippingPriceUpdate(id: ID!, input: ShippingPriceInput!): ShippingPriceUpdate
shippingPriceTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): ShippingPriceTranslate
shippingPriceExcludeProducts(
id: ID!
input: ShippingPriceExcludeProductsInput!
): ShippingPriceExcludeProducts
shippingPriceRemoveProductFromExclude(
id: ID!
products: [ID]!
): ShippingPriceRemoveProductFromExclude
shippingZoneCreate(input: ShippingZoneCreateInput!): ShippingZoneCreate
shippingZoneDelete(id: ID!): ShippingZoneDelete
shippingZoneBulkDelete(ids: [ID]!): ShippingZoneBulkDelete
shippingZoneUpdate(
id: ID!
input: ShippingZoneUpdateInput!
): ShippingZoneUpdate
productAttributeAssign(
operations: [ProductAttributeAssignInput]!
productTypeId: ID!
): ProductAttributeAssign
productAttributeUnassign(
attributeIds: [ID]!
productTypeId: ID!
): ProductAttributeUnassign
categoryCreate(input: CategoryInput!, parent: ID): CategoryCreate
categoryDelete(id: ID!): CategoryDelete
categoryBulkDelete(ids: [ID]!): CategoryBulkDelete
categoryUpdate(id: ID!, input: CategoryInput!): CategoryUpdate
categoryTranslate(
id: ID!
input: TranslationInput!
languageCode: LanguageCodeEnum!
): CategoryTranslate
collectionAddProducts(
collectionId: ID!
products: [ID]!
): CollectionAddProducts
collectionCreate(input: CollectionCreateInput!): CollectionCreate
collectionDelete(id: ID!): CollectionDelete
collectionReorderProducts(
collectionId: ID!
moves: [MoveProductInput]!
): CollectionReorderProducts
collectionBulkDelete(ids: [ID]!): CollectionBulkDelete
collectionRemoveProducts(
collectionId: ID!
products: [ID]!
): CollectionRemoveProducts
collectionUpdate(id: ID!, input: CollectionInput!): CollectionUpdate
collectionTranslate(
id: ID!
input: TranslationInput!
languageCode: LanguageCodeEnum!
): CollectionTranslate
collectionChannelListingUpdate(
id: ID!
input: CollectionChannelListingUpdateInput!
): CollectionChannelListingUpdate
productCreate(input: ProductCreateInput!): ProductCreate
productDelete(id: ID!): ProductDelete
productBulkDelete(ids: [ID]!): ProductBulkDelete
productUpdate(id: ID!, input: ProductInput!): ProductUpdate
productTranslate(
id: ID!
input: TranslationInput!
languageCode: LanguageCodeEnum!
): ProductTranslate
productChannelListingUpdate(
id: ID!
input: ProductChannelListingUpdateInput!
): ProductChannelListingUpdate
productImageCreate(input: ProductImageCreateInput!): ProductImageCreate
productVariantReorder(
moves: [ReorderInput]!
productId: ID!
): ProductVariantReorder
productImageDelete(id: ID!): ProductImageDelete
productImageBulkDelete(ids: [ID]!): ProductImageBulkDelete
productImageReorder(imagesIds: [ID]!, productId: ID!): ProductImageReorder
productImageUpdate(
id: ID!
input: ProductImageUpdateInput!
): ProductImageUpdate
productTypeCreate(input: ProductTypeInput!): ProductTypeCreate
productTypeDelete(id: ID!): ProductTypeDelete
productTypeBulkDelete(ids: [ID]!): ProductTypeBulkDelete
productTypeUpdate(id: ID!, input: ProductTypeInput!): ProductTypeUpdate
productTypeReorderAttributes(
moves: [ReorderInput]!
productTypeId: ID!
type: ProductAttributeType!
): ProductTypeReorderAttributes
productReorderAttributeValues(
attributeId: ID!
moves: [ReorderInput]!
productId: ID!
): ProductReorderAttributeValues
digitalContentCreate(
input: DigitalContentUploadInput!
variantId: ID!
): DigitalContentCreate
digitalContentDelete(variantId: ID!): DigitalContentDelete
digitalContentUpdate(
input: DigitalContentInput!
variantId: ID!
): DigitalContentUpdate
digitalContentUrlCreate(
input: DigitalContentUrlCreateInput!
): DigitalContentUrlCreate
productVariantCreate(input: ProductVariantCreateInput!): ProductVariantCreate
productVariantDelete(id: ID!): ProductVariantDelete
productVariantBulkCreate(
product: ID!
variants: [ProductVariantBulkCreateInput]!
): ProductVariantBulkCreate
productVariantBulkDelete(ids: [ID]!): ProductVariantBulkDelete
productVariantStocksCreate(
stocks: [StockInput!]!
variantId: ID!
): ProductVariantStocksCreate
productVariantStocksDelete(
variantId: ID!
warehouseIds: [ID!]
): ProductVariantStocksDelete
productVariantStocksUpdate(
stocks: [StockInput!]!
variantId: ID!
): ProductVariantStocksUpdate
productVariantUpdate(
id: ID!
input: ProductVariantInput!
): ProductVariantUpdate
productVariantSetDefault(
productId: ID!
variantId: ID!
): ProductVariantSetDefault
productVariantTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): ProductVariantTranslate
productVariantChannelListingUpdate(
id: ID!
input: [ProductVariantChannelListingAddInput!]!
): ProductVariantChannelListingUpdate
productVariantReorderAttributeValues(
attributeId: ID!
moves: [ReorderInput]!
variantId: ID!
): ProductVariantReorderAttributeValues
variantImageAssign(imageId: ID!, variantId: ID!): VariantImageAssign
variantImageUnassign(imageId: ID!, variantId: ID!): VariantImageUnassign
paymentCapture(amount: PositiveDecimal, paymentId: ID!): PaymentCapture
paymentRefund(amount: PositiveDecimal, paymentId: ID!): PaymentRefund
paymentVoid(paymentId: ID!): PaymentVoid
paymentInitialize(
gateway: String!
paymentData: JSONString
): PaymentInitialize
pageCreate(input: PageCreateInput!): PageCreate
pageDelete(id: ID!): PageDelete
pageBulkDelete(ids: [ID]!): PageBulkDelete
pageBulkPublish(ids: [ID]!, isPublished: Boolean!): PageBulkPublish
pageUpdate(id: ID!, input: PageInput!): PageUpdate
pageTranslate(
id: ID!
input: PageTranslationInput!
languageCode: LanguageCodeEnum!
): PageTranslate
pageTypeCreate(input: PageTypeCreateInput!): PageTypeCreate
pageTypeUpdate(id: ID, input: PageTypeUpdateInput!): PageTypeUpdate
pageTypeDelete(id: ID!): PageTypeDelete
pageTypeBulkDelete(ids: [ID!]!): PageTypeBulkDelete
pageAttributeAssign(
attributeIds: [ID!]!
pageTypeId: ID!
): PageAttributeAssign
pageAttributeUnassign(
attributeIds: [ID!]!
pageTypeId: ID!
): PageAttributeUnassign
pageTypeReorderAttributes(
moves: [ReorderInput!]!
pageTypeId: ID!
): PageTypeReorderAttributes
pageReorderAttributeValues(
attributeId: ID!
moves: [ReorderInput]!
pageId: ID!
): PageReorderAttributeValues
draftOrderComplete(id: ID!): DraftOrderComplete
draftOrderCreate(input: DraftOrderCreateInput!): DraftOrderCreate
draftOrderDelete(id: ID!): DraftOrderDelete
draftOrderBulkDelete(ids: [ID]!): DraftOrderBulkDelete
draftOrderLinesBulkDelete(ids: [ID]!): DraftOrderLinesBulkDelete
draftOrderLinesCreate(
id: ID!
input: [OrderLineCreateInput]!
): DraftOrderLinesCreate
draftOrderLineDelete(id: ID!): DraftOrderLineDelete
draftOrderLineUpdate(id: ID!, input: OrderLineInput!): DraftOrderLineUpdate
draftOrderUpdate(id: ID!, input: DraftOrderInput!): DraftOrderUpdate
orderAddNote(order: ID!, input: OrderAddNoteInput!): OrderAddNote
orderCancel(id: ID!): OrderCancel
orderCapture(amount: PositiveDecimal!, id: ID!): OrderCapture
orderConfirm(id: ID!): OrderConfirm
orderFulfill(input: OrderFulfillInput!, order: ID): OrderFulfill
orderFulfillmentCancel(
id: ID!
input: FulfillmentCancelInput!
): FulfillmentCancel
orderFulfillmentUpdateTracking(
id: ID!
input: FulfillmentUpdateTrackingInput!
): FulfillmentUpdateTracking
orderFulfillmentRefundProducts(
input: OrderRefundProductsInput!
order: ID!
): FulfillmentRefundProducts
orderFulfillmentReturnProducts(
input: OrderReturnProductsInput!
order: ID!
): FulfillmentReturnProducts
orderDiscountAdd(
input: OrderDiscountCommonInput!
orderId: ID!
): OrderDiscountAdd
orderDiscountUpdate(
discountId: ID!
input: OrderDiscountCommonInput!
): OrderDiscountUpdate
orderDiscountDelete(discountId: ID!): OrderDiscountDelete
orderLineDiscountUpdate(
input: OrderDiscountCommonInput!
orderLineId: ID!
): OrderLineDiscountUpdate
orderLineDiscountRemove(orderLineId: ID!): OrderLineDiscountRemove
orderMarkAsPaid(id: ID!, transactionReference: String): OrderMarkAsPaid
orderRefund(amount: PositiveDecimal!, id: ID!): OrderRefund
orderUpdate(id: ID!, input: OrderUpdateInput!): OrderUpdate
orderUpdateShipping(
order: ID!
input: OrderUpdateShippingInput
): OrderUpdateShipping
orderVoid(id: ID!): OrderVoid
orderBulkCancel(ids: [ID]!): OrderBulkCancel
deleteMetadata(id: ID!, keys: [String!]!): DeleteMetadata
deletePrivateMetadata(id: ID!, keys: [String!]!): DeletePrivateMetadata
updateMetadata(id: ID!, input: [MetadataInput!]!): UpdateMetadata
updatePrivateMetadata(
id: ID!
input: [MetadataInput!]!
): UpdatePrivateMetadata
assignNavigation(menu: ID, navigationType: NavigationType!): AssignNavigation
menuCreate(input: MenuCreateInput!): MenuCreate
menuDelete(id: ID!): MenuDelete
menuBulkDelete(ids: [ID]!): MenuBulkDelete
menuUpdate(id: ID!, input: MenuInput!): MenuUpdate
menuItemCreate(input: MenuItemCreateInput!): MenuItemCreate
menuItemDelete(id: ID!): MenuItemDelete
menuItemBulkDelete(ids: [ID]!): MenuItemBulkDelete
menuItemUpdate(id: ID!, input: MenuItemInput!): MenuItemUpdate
menuItemTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): MenuItemTranslate
menuItemMove(menu: ID!, moves: [MenuItemMoveInput]!): MenuItemMove
invoiceRequest(number: String, orderId: ID!): InvoiceRequest
invoiceRequestDelete(id: ID!): InvoiceRequestDelete
invoiceCreate(input: InvoiceCreateInput!, orderId: ID!): InvoiceCreate
invoiceDelete(id: ID!): InvoiceDelete
invoiceUpdate(id: ID!, input: UpdateInvoiceInput!): InvoiceUpdate
invoiceSendEmail(id: ID!): InvoiceSendEmail
giftCardActivate(id: ID!): GiftCardActivate
giftCardCreate(input: GiftCardCreateInput!): GiftCardCreate
giftCardDeactivate(id: ID!): GiftCardDeactivate
giftCardUpdate(id: ID!, input: GiftCardUpdateInput!): GiftCardUpdate
pluginUpdate(id: ID!, input: PluginUpdateInput!): PluginUpdate
saleCreate(input: SaleInput!): SaleCreate
saleDelete(id: ID!): SaleDelete
saleBulkDelete(ids: [ID]!): SaleBulkDelete
saleUpdate(id: ID!, input: SaleInput!): SaleUpdate
saleCataloguesAdd(id: ID!, input: CatalogueInput!): SaleAddCatalogues
saleCataloguesRemove(id: ID!, input: CatalogueInput!): SaleRemoveCatalogues
saleTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): SaleTranslate
saleChannelListingUpdate(
id: ID!
input: SaleChannelListingInput!
): SaleChannelListingUpdate
voucherCreate(input: VoucherInput!): VoucherCreate
voucherDelete(id: ID!): VoucherDelete
voucherBulkDelete(ids: [ID]!): VoucherBulkDelete
voucherUpdate(id: ID!, input: VoucherInput!): VoucherUpdate
voucherCataloguesAdd(id: ID!, input: CatalogueInput!): VoucherAddCatalogues
voucherCataloguesRemove(
id: ID!
input: CatalogueInput!
): VoucherRemoveCatalogues
voucherTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): VoucherTranslate
voucherChannelListingUpdate(
id: ID!
input: VoucherChannelListingInput!
): VoucherChannelListingUpdate
exportProducts(input: ExportProductsInput!): ExportProducts
fileUpload(file: Upload!): FileUpload
checkoutAddPromoCode(
checkoutId: ID!
promoCode: String!
): CheckoutAddPromoCode
checkoutBillingAddressUpdate(
billingAddress: AddressInput!
checkoutId: ID!
): CheckoutBillingAddressUpdate
checkoutComplete(
checkoutId: ID!
paymentData: JSONString
redirectUrl: String
storeSource: Boolean = false
): CheckoutComplete
checkoutCreate(input: CheckoutCreateInput!): CheckoutCreate
checkoutCustomerAttach(
checkoutId: ID!
customerId: ID
): CheckoutCustomerAttach
checkoutCustomerDetach(checkoutId: ID!): CheckoutCustomerDetach
checkoutEmailUpdate(checkoutId: ID, email: String!): CheckoutEmailUpdate
checkoutLineDelete(checkoutId: ID!, lineId: ID): CheckoutLineDelete
checkoutLinesAdd(
checkoutId: ID!
lines: [CheckoutLineInput]!
): CheckoutLinesAdd
checkoutLinesUpdate(
checkoutId: ID!
lines: [CheckoutLineInput]!
): CheckoutLinesUpdate
checkoutRemovePromoCode(
checkoutId: ID!
promoCode: String!
): CheckoutRemovePromoCode
checkoutPaymentCreate(
checkoutId: ID!
input: PaymentInput!
): CheckoutPaymentCreate
checkoutShippingAddressUpdate(
checkoutId: ID!
shippingAddress: AddressInput!
): CheckoutShippingAddressUpdate
checkoutShippingMethodUpdate(
checkoutId: ID
shippingMethodId: ID!
): CheckoutShippingMethodUpdate
channelCreate(input: ChannelCreateInput!): ChannelCreate
channelUpdate(id: ID!, input: ChannelUpdateInput!): ChannelUpdate
channelDelete(id: ID!, input: ChannelDeleteInput): ChannelDelete
channelActivate(id: ID!): ChannelActivate
channelDeactivate(id: ID!): ChannelDeactivate
attributeCreate(input: AttributeCreateInput!): AttributeCreate
attributeDelete(id: ID!): AttributeDelete
attributeUpdate(id: ID!, input: AttributeUpdateInput!): AttributeUpdate
attributeTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): AttributeTranslate
attributeBulkDelete(ids: [ID]!): AttributeBulkDelete
attributeValueBulkDelete(ids: [ID]!): AttributeValueBulkDelete
attributeValueCreate(
attribute: ID!
input: AttributeValueCreateInput!
): AttributeValueCreate
attributeValueDelete(id: ID!): AttributeValueDelete
attributeValueUpdate(
id: ID!
input: AttributeValueCreateInput!
): AttributeValueUpdate
attributeValueTranslate(
id: ID!
input: NameTranslationInput!
languageCode: LanguageCodeEnum!
): AttributeValueTranslate
attributeReorderValues(
attributeId: ID!
moves: [ReorderInput]!
): AttributeReorderValues
appCreate(input: AppInput!): AppCreate
appUpdate(id: ID!, input: AppInput!): AppUpdate
appDelete(id: ID!): AppDelete
appTokenCreate(input: AppTokenInput!): AppTokenCreate
appTokenDelete(id: ID!): AppTokenDelete
appTokenVerify(token: String!): AppTokenVerify
appInstall(input: AppInstallInput!): AppInstall
appRetryInstall(
activateAfterInstallation: Boolean = true
id: ID!
): AppRetryInstall
appDeleteFailedInstallation(id: ID!): AppDeleteFailedInstallation
appFetchManifest(manifestUrl: String!): AppFetchManifest
appActivate(id: ID!): AppActivate
appDeactivate(id: ID!): AppDeactivate
tokenCreate(email: String!, password: String!): CreateToken
tokenRefresh(csrfToken: String, refreshToken: String): RefreshToken
tokenVerify(token: String!): VerifyToken
tokensDeactivateAll: DeactivateAllUserTokens
externalAuthenticationUrl(
input: JSONString!
pluginId: String!
): ExternalAuthenticationUrl
externalObtainAccessTokens(
input: JSONString!
pluginId: String!
): ExternalObtainAccessTokens
externalRefresh(input: JSONString!, pluginId: String!): ExternalRefresh
externalLogout(input: JSONString!, pluginId: String!): ExternalLogout
externalVerify(input: JSONString!, pluginId: String!): ExternalVerify
requestPasswordReset(
email: String!
redirectUrl: String!
): RequestPasswordReset
confirmAccount(email: String!, token: String!): ConfirmAccount
setPassword(email: String!, password: String!, token: String!): SetPassword
passwordChange(newPassword: String!, oldPassword: String!): PasswordChange
requestEmailChange(
newEmail: String!
password: String!
redirectUrl: String!
): RequestEmailChange
confirmEmailChange(token: String!): ConfirmEmailChange
accountAddressCreate(
input: AddressInput!
type: AddressTypeEnum
): AccountAddressCreate
accountAddressUpdate(id: ID!, input: AddressInput!): AccountAddressUpdate
accountAddressDelete(id: ID!): AccountAddressDelete
accountSetDefaultAddress(
id: ID!
type: AddressTypeEnum!
): AccountSetDefaultAddress
accountRegister(input: AccountRegisterInput!): AccountRegister
accountUpdate(input: AccountInput!): AccountUpdate
accountRequestDeletion(redirectUrl: String!): AccountRequestDeletion
accountDelete(token: String!): AccountDelete
addressCreate(input: AddressInput!, userId: ID!): AddressCreate
addressUpdate(id: ID!, input: AddressInput!): AddressUpdate
addressDelete(id: ID!): AddressDelete
addressSetDefault(
addressId: ID!
type: AddressTypeEnum!
userId: ID!
): AddressSetDefault
customerCreate(input: UserCreateInput!): CustomerCreate
customerUpdate(id: ID!, input: CustomerInput!): CustomerUpdate
customerDelete(id: ID!): CustomerDelete
customerBulkDelete(ids: [ID]!): CustomerBulkDelete
staffCreate(input: StaffCreateInput!): StaffCreate
staffUpdate(id: ID!, input: StaffUpdateInput!): StaffUpdate
staffDelete(id: ID!): StaffDelete
staffBulkDelete(ids: [ID]!): StaffBulkDelete
userAvatarUpdate(image: Upload!): UserAvatarUpdate
userAvatarDelete: UserAvatarDelete
userBulkSetActive(ids: [ID]!, isActive: Boolean!): UserBulkSetActive
permissionGroupCreate(
input: PermissionGroupCreateInput!
): PermissionGroupCreate
permissionGroupUpdate(
id: ID!
input: PermissionGroupUpdateInput!
): PermissionGroupUpdate
permissionGroupDelete(id: ID!): PermissionGroupDelete
}
input NameTranslationInput {
name: String
}
type Navigation {
main: Menu
secondary: Menu
}
enum NavigationType {
MAIN
SECONDARY
}
interface Node {
id: ID!
}
interface ObjectWithMetadata {
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
}
type Order implements Node & ObjectWithMetadata {
id: ID!
created: DateTime!
status: OrderStatus!
user: User
languageCode: String!
trackingClientId: String!
billingAddress: Address
shippingAddress: Address
shippingMethod: ShippingMethod
shippingMethodName: String
channel: Channel!
shippingPrice: TaxedMoney!
shippingTaxRate: Float!
token: String!
voucher: Voucher
giftCards: [GiftCard]
displayGrossPrices: Boolean!
customerNote: String!
weight: Weight
redirectUrl: String
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
fulfillments: [Fulfillment]!
lines: [OrderLine]!
actions: [OrderAction]!
availableShippingMethods: [ShippingMethod]
invoices: [Invoice]
number: String
isPaid: Boolean!
paymentStatus: PaymentChargeStatusEnum!
paymentStatusDisplay: String!
payments: [Payment]
total: TaxedMoney!
undiscountedTotal: TaxedMoney!
subtotal: TaxedMoney!
statusDisplay: String
canFinalize: Boolean!
totalAuthorized: Money!
totalCaptured: Money!
events: [OrderEvent]
totalBalance: Money!
userEmail: String
isShippingRequired: Boolean!
discount: Money
@deprecated(
reason: "Use discounts field. This field will be removed after 2021-08-01"
)
discountName: String
@deprecated(
reason: "Use discounts field. This field will be removed after 2021-08-01"
)
translatedDiscountName: String
@deprecated(
reason: "Use discounts field. This field will be removed after 2021-08-01"
)
discounts: [OrderDiscount!]
}
enum OrderAction {
CAPTURE
MARK_AS_PAID
REFUND
VOID
}
type OrderAddNote {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
event: OrderEvent
orderErrors: [OrderError!]!
}
input OrderAddNoteInput {
message: String!
}
type OrderBulkCancel {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
orderErrors: [OrderError!]!
}
type OrderCancel {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
type OrderCapture {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
type OrderConfirm {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
type OrderCountableConnection {
pageInfo: PageInfo!
edges: [OrderCountableEdge!]!
totalCount: Int
}
type OrderCountableEdge {
node: Order!
cursor: String!
}
enum OrderDirection {
ASC
DESC
}
type OrderDiscount implements Node {
id: ID!
type: OrderDiscountType!
valueType: DiscountValueTypeEnum!
value: PositiveDecimal!
name: String
translatedName: String
reason: String
amount: Money!
}
type OrderDiscountAdd {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
input OrderDiscountCommonInput {
valueType: DiscountValueTypeEnum!
value: PositiveDecimal!
reason: String
}
type OrderDiscountDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
enum OrderDiscountType {
VOUCHER
MANUAL
}
type OrderDiscountUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
input OrderDraftFilterInput {
customer: String
created: DateRangeInput
search: String
channels: [ID]
}
type OrderError {
field: String
message: String
code: OrderErrorCode!
warehouse: ID
orderLine: ID
variants: [ID!]
}
enum OrderErrorCode {
BILLING_ADDRESS_NOT_SET
CANNOT_CANCEL_FULFILLMENT
CANNOT_CANCEL_ORDER
CANNOT_DELETE
CANNOT_DISCOUNT
CANNOT_REFUND
CAPTURE_INACTIVE_PAYMENT
NOT_EDITABLE
FULFILL_ORDER_LINE
GRAPHQL_ERROR
INVALID
PRODUCT_NOT_PUBLISHED
PRODUCT_UNAVAILABLE_FOR_PURCHASE
NOT_FOUND
ORDER_NO_SHIPPING_ADDRESS
PAYMENT_ERROR
PAYMENT_MISSING
REQUIRED
SHIPPING_METHOD_NOT_APPLICABLE
SHIPPING_METHOD_REQUIRED
TAX_ERROR
UNIQUE
VOID_INACTIVE_PAYMENT
ZERO_QUANTITY
INVALID_QUANTITY
INSUFFICIENT_STOCK
DUPLICATED_INPUT_ITEM
NOT_AVAILABLE_IN_CHANNEL
CHANNEL_INACTIVE
}
type OrderEvent implements Node {
id: ID!
date: DateTime
type: OrderEventsEnum
user: User
message: String
email: String
emailType: OrderEventsEmailsEnum
amount: Float
paymentId: String
paymentGateway: String
quantity: Int
composedId: String
orderNumber: String
invoiceNumber: String
oversoldItems: [String]
lines: [OrderEventOrderLineObject]
fulfilledItems: [FulfillmentLine]
warehouse: Warehouse
transactionReference: String
shippingCostsIncluded: Boolean
relatedOrder: Order
discount: OrderEventDiscountObject
}
type OrderEventCountableConnection {
pageInfo: PageInfo!
edges: [OrderEventCountableEdge!]!
totalCount: Int
}
type OrderEventCountableEdge {
node: OrderEvent!
cursor: String!
}
type OrderEventDiscountObject {
valueType: DiscountValueTypeEnum!
value: PositiveDecimal!
reason: String
amount: Money
oldValueType: DiscountValueTypeEnum
oldValue: PositiveDecimal
oldAmount: Money
}
type OrderEventOrderLineObject {
quantity: Int
orderLine: OrderLine
itemName: String
discount: OrderEventDiscountObject
}
enum OrderEventsEmailsEnum {
PAYMENT_CONFIRMATION
CONFIRMED
SHIPPING_CONFIRMATION
TRACKING_UPDATED
ORDER_CONFIRMATION
ORDER_CANCEL
ORDER_REFUND
FULFILLMENT_CONFIRMATION
DIGITAL_LINKS
}
enum OrderEventsEnum {
DRAFT_CREATED
DRAFT_CREATED_FROM_REPLACE
DRAFT_ADDED_PRODUCTS
DRAFT_REMOVED_PRODUCTS
PLACED
PLACED_FROM_DRAFT
OVERSOLD_ITEMS
CANCELED
ORDER_MARKED_AS_PAID
ORDER_FULLY_PAID
ORDER_REPLACEMENT_CREATED
ORDER_DISCOUNT_ADDED
ORDER_DISCOUNT_UPDATED
ORDER_DISCOUNT_DELETED
ORDER_DISCOUNT_AUTOMATICALLY_UPDATED
ORDER_LINE_DISCOUNT_UPDATED
ORDER_LINE_DISCOUNT_REMOVED
UPDATED_ADDRESS
EMAIL_SENT
CONFIRMED
PAYMENT_AUTHORIZED
PAYMENT_CAPTURED
EXTERNAL_SERVICE_NOTIFICATION
PAYMENT_REFUNDED
PAYMENT_VOIDED
PAYMENT_FAILED
INVOICE_REQUESTED
INVOICE_GENERATED
INVOICE_UPDATED
INVOICE_SENT
FULFILLMENT_CANCELED
FULFILLMENT_RESTOCKED_ITEMS
FULFILLMENT_FULFILLED_ITEMS
FULFILLMENT_REFUNDED
FULFILLMENT_RETURNED
FULFILLMENT_REPLACED
TRACKING_UPDATED
NOTE_ADDED
OTHER
}
input OrderFilterInput {
paymentStatus: [PaymentChargeStatusEnum]
status: [OrderStatusFilter]
customer: String
created: DateRangeInput
search: String
channels: [ID]
}
type OrderFulfill {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
fulfillments: [Fulfillment]
order: Order
orderErrors: [OrderError!]!
}
input OrderFulfillInput {
lines: [OrderFulfillLineInput!]!
notifyCustomer: Boolean
}
input OrderFulfillLineInput {
orderLineId: ID
stocks: [OrderFulfillStockInput!]!
}
input OrderFulfillStockInput {
quantity: Int!
warehouse: ID!
}
type OrderLine implements Node {
id: ID!
productName: String!
variantName: String!
productSku: String!
isShippingRequired: Boolean!
quantity: Int!
quantityFulfilled: Int!
unitDiscountReason: String
taxRate: Float!
digitalContentUrl: DigitalContentUrl
thumbnail(size: Int): Image
unitPrice: TaxedMoney!
undiscountedUnitPrice: TaxedMoney!
unitDiscount: Money!
unitDiscountValue: PositiveDecimal!
totalPrice: TaxedMoney!
variant: ProductVariant
translatedProductName: String!
translatedVariantName: String!
allocations: [Allocation!]
unitDiscountType: DiscountValueTypeEnum
}
input OrderLineCreateInput {
quantity: Int!
variantId: ID!
}
type OrderLineDiscountRemove {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderLine: OrderLine
order: Order
orderErrors: [OrderError!]!
}
type OrderLineDiscountUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderLine: OrderLine
order: Order
orderErrors: [OrderError!]!
}
input OrderLineInput {
quantity: Int!
}
type OrderMarkAsPaid {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
type OrderRefund {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
input OrderRefundFulfillmentLineInput {
fulfillmentLineId: ID!
quantity: Int!
}
input OrderRefundLineInput {
orderLineId: ID!
quantity: Int!
}
input OrderRefundProductsInput {
orderLines: [OrderRefundLineInput!]
fulfillmentLines: [OrderRefundFulfillmentLineInput!]
amountToRefund: PositiveDecimal
includeShippingCosts: Boolean = false
}
input OrderReturnFulfillmentLineInput {
fulfillmentLineId: ID!
quantity: Int!
replace: Boolean = false
}
input OrderReturnLineInput {
orderLineId: ID!
quantity: Int!
replace: Boolean = false
}
input OrderReturnProductsInput {
orderLines: [OrderReturnLineInput!]
fulfillmentLines: [OrderReturnFulfillmentLineInput!]
amountToRefund: PositiveDecimal
includeShippingCosts: Boolean = false
refund: Boolean = false
}
type OrderSettings {
automaticallyConfirmAllNewOrders: Boolean!
}
type OrderSettingsError {
field: String
message: String
code: OrderSettingsErrorCode!
}
enum OrderSettingsErrorCode {
INVALID
}
type OrderSettingsUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderSettings: OrderSettings
orderSettingsErrors: [OrderSettingsError!]!
}
input OrderSettingsUpdateInput {
automaticallyConfirmAllNewOrders: Boolean!
}
enum OrderSortField {
NUMBER
CREATION_DATE
CUSTOMER
PAYMENT
FULFILLMENT_STATUS
}
input OrderSortingInput {
direction: OrderDirection!
field: OrderSortField!
}
enum OrderStatus {
DRAFT
UNCONFIRMED
UNFULFILLED
PARTIALLY_FULFILLED
PARTIALLY_RETURNED
RETURNED
FULFILLED
CANCELED
}
enum OrderStatusFilter {
READY_TO_FULFILL
READY_TO_CAPTURE
UNFULFILLED
UNCONFIRMED
PARTIALLY_FULFILLED
FULFILLED
CANCELED
}
type OrderUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
orderErrors: [OrderError!]!
order: Order
}
input OrderUpdateInput {
billingAddress: AddressInput
userEmail: String
shippingAddress: AddressInput
}
type OrderUpdateShipping {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
input OrderUpdateShippingInput {
shippingMethod: ID
}
type OrderVoid {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
order: Order
orderErrors: [OrderError!]!
}
type Page implements Node & ObjectWithMetadata {
seoTitle: String
seoDescription: String
id: ID!
title: String!
content: JSONString
publicationDate: Date
isPublished: Boolean!
slug: String!
pageType: PageType!
created: DateTime!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
contentJson: JSONString!
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `content` field instead."
)
translation(languageCode: LanguageCodeEnum!): PageTranslation
attributes: [SelectedAttribute!]!
}
type PageAttributeAssign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageType: PageType
pageErrors: [PageError!]!
}
type PageAttributeUnassign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageType: PageType
pageErrors: [PageError!]!
}
type PageBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
pageErrors: [PageError!]!
}
type PageBulkPublish {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
pageErrors: [PageError!]!
}
type PageCountableConnection {
pageInfo: PageInfo!
edges: [PageCountableEdge!]!
totalCount: Int
}
type PageCountableEdge {
node: Page!
cursor: String!
}
type PageCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageErrors: [PageError!]!
page: Page
}
input PageCreateInput {
slug: String
title: String
content: JSONString
attributes: [AttributeValueInput!]
isPublished: Boolean
publicationDate: String
seo: SeoInput
pageType: ID!
}
type PageDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageErrors: [PageError!]!
page: Page
}
type PageError {
field: String
message: String
code: PageErrorCode!
attributes: [ID!]
values: [ID!]
}
enum PageErrorCode {
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
DUPLICATED_INPUT_ITEM
ATTRIBUTE_ALREADY_ASSIGNED
}
input PageFilterInput {
search: String
}
type PageInfo {
hasNextPage: Boolean!
hasPreviousPage: Boolean!
startCursor: String
endCursor: String
}
input PageInput {
slug: String
title: String
content: JSONString
attributes: [AttributeValueInput!]
isPublished: Boolean
publicationDate: String
seo: SeoInput
}
type PageReorderAttributeValues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
page: Page
pageErrors: [PageError!]!
}
enum PageSortField {
TITLE
SLUG
VISIBILITY
CREATION_DATE
PUBLICATION_DATE
}
input PageSortingInput {
direction: OrderDirection!
field: PageSortField!
}
type PageTranslatableContent implements Node {
seoTitle: String
seoDescription: String
id: ID!
title: String!
content: JSONString
contentJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `content` field instead."
)
translation(languageCode: LanguageCodeEnum!): PageTranslation
page: Page
}
type PageTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
page: PageTranslatableContent
}
type PageTranslation implements Node {
seoTitle: String
seoDescription: String
id: ID!
title: String!
content: JSONString
language: LanguageDisplay!
contentJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `content` field instead."
)
}
input PageTranslationInput {
seoTitle: String
seoDescription: String
title: String
content: JSONString
}
type PageType implements Node & ObjectWithMetadata {
id: ID!
name: String!
slug: String!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
attributes: [Attribute]
availableAttributes(
filter: AttributeFilterInput
before: String
after: String
first: Int
last: Int
): AttributeCountableConnection
hasPages: Boolean
}
type PageTypeBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
pageErrors: [PageError!]!
}
type PageTypeCountableConnection {
pageInfo: PageInfo!
edges: [PageTypeCountableEdge!]!
totalCount: Int
}
type PageTypeCountableEdge {
node: PageType!
cursor: String!
}
type PageTypeCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageErrors: [PageError!]!
pageType: PageType
}
input PageTypeCreateInput {
name: String
slug: String
addAttributes: [ID!]
}
type PageTypeDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageErrors: [PageError!]!
pageType: PageType
}
input PageTypeFilterInput {
search: String
}
type PageTypeReorderAttributes {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageType: PageType
pageErrors: [PageError!]!
}
enum PageTypeSortField {
NAME
SLUG
}
input PageTypeSortingInput {
direction: OrderDirection!
field: PageTypeSortField!
}
type PageTypeUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageErrors: [PageError!]!
pageType: PageType
}
input PageTypeUpdateInput {
name: String
slug: String
addAttributes: [ID!]
removeAttributes: [ID!]
}
type PageUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
pageErrors: [PageError!]!
page: Page
}
type PasswordChange {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
type Payment implements Node {
id: ID!
gateway: String!
isActive: Boolean!
created: DateTime!
modified: DateTime!
token: String!
checkout: Checkout
order: Order
customerIpAddress: String
chargeStatus: PaymentChargeStatusEnum!
actions: [OrderAction]!
total: Money
capturedAmount: Money
transactions: [Transaction]
availableCaptureAmount: Money
availableRefundAmount: Money
creditCard: CreditCard
}
type PaymentCapture {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
payment: Payment
paymentErrors: [PaymentError!]!
}
enum PaymentChargeStatusEnum {
NOT_CHARGED
PENDING
PARTIALLY_CHARGED
FULLY_CHARGED
PARTIALLY_REFUNDED
FULLY_REFUNDED
REFUSED
CANCELLED
}
type PaymentCountableConnection {
pageInfo: PageInfo!
edges: [PaymentCountableEdge!]!
totalCount: Int
}
type PaymentCountableEdge {
node: Payment!
cursor: String!
}
type PaymentError {
field: String
message: String
code: PaymentErrorCode!
}
enum PaymentErrorCode {
BILLING_ADDRESS_NOT_SET
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
PARTIAL_PAYMENT_NOT_ALLOWED
SHIPPING_ADDRESS_NOT_SET
INVALID_SHIPPING_METHOD
SHIPPING_METHOD_NOT_SET
PAYMENT_ERROR
NOT_SUPPORTED_GATEWAY
}
type PaymentGateway {
name: String!
id: ID!
config: [GatewayConfigLine!]!
currencies: [String]!
}
type PaymentInitialize {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
initializedPayment: PaymentInitialized
paymentErrors: [PaymentError!]!
}
type PaymentInitialized {
gateway: String!
name: String!
data: JSONString
}
input PaymentInput {
gateway: String!
token: String
amount: PositiveDecimal
returnUrl: String
}
type PaymentRefund {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
payment: Payment
paymentErrors: [PaymentError!]!
}
type PaymentSource {
gateway: String!
creditCardInfo: CreditCard
}
type PaymentVoid {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
payment: Payment
paymentErrors: [PaymentError!]!
}
type Permission {
code: PermissionEnum!
name: String!
}
enum PermissionEnum {
MANAGE_USERS
MANAGE_STAFF
MANAGE_APPS
MANAGE_CHANNELS
MANAGE_DISCOUNTS
MANAGE_PLUGINS
MANAGE_GIFT_CARD
MANAGE_MENUS
MANAGE_ORDERS
MANAGE_PAGES
MANAGE_PAGE_TYPES_AND_ATTRIBUTES
MANAGE_PRODUCTS
MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES
MANAGE_SHIPPING
MANAGE_SETTINGS
MANAGE_TRANSLATIONS
MANAGE_CHECKOUTS
}
type PermissionGroupCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
permissionGroupErrors: [PermissionGroupError!]!
group: Group
}
input PermissionGroupCreateInput {
addPermissions: [PermissionEnum!]
addUsers: [ID!]
name: String!
}
type PermissionGroupDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
permissionGroupErrors: [PermissionGroupError!]!
group: Group
}
type PermissionGroupError {
field: String
message: String
code: PermissionGroupErrorCode!
permissions: [PermissionEnum!]
users: [ID!]
}
enum PermissionGroupErrorCode {
ASSIGN_NON_STAFF_MEMBER
DUPLICATED_INPUT_ITEM
CANNOT_REMOVE_FROM_LAST_GROUP
LEFT_NOT_MANAGEABLE_PERMISSION
OUT_OF_SCOPE_PERMISSION
OUT_OF_SCOPE_USER
REQUIRED
UNIQUE
}
input PermissionGroupFilterInput {
search: String
}
enum PermissionGroupSortField {
NAME
}
input PermissionGroupSortingInput {
direction: OrderDirection!
field: PermissionGroupSortField!
}
type PermissionGroupUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
permissionGroupErrors: [PermissionGroupError!]!
group: Group
}
input PermissionGroupUpdateInput {
addPermissions: [PermissionEnum!]
addUsers: [ID!]
name: String
removePermissions: [PermissionEnum!]
removeUsers: [ID!]
}
type Plugin implements Node {
id: ID!
name: String!
description: String!
active: Boolean!
configuration: [ConfigurationItem]
}
type PluginCountableConnection {
pageInfo: PageInfo!
edges: [PluginCountableEdge!]!
totalCount: Int
}
type PluginCountableEdge {
node: Plugin!
cursor: String!
}
type PluginError {
field: String
message: String
code: PluginErrorCode!
}
enum PluginErrorCode {
GRAPHQL_ERROR
INVALID
PLUGIN_MISCONFIGURED
NOT_FOUND
REQUIRED
UNIQUE
}
input PluginFilterInput {
active: Boolean
search: String
}
enum PluginSortField {
NAME
IS_ACTIVE
}
input PluginSortingInput {
direction: OrderDirection!
field: PluginSortField!
}
type PluginUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
plugin: Plugin
pluginsErrors: [PluginError!]!
}
input PluginUpdateInput {
active: Boolean
configuration: [ConfigurationItemInput]
}
scalar PositiveDecimal
enum PostalCodeRuleInclusionTypeEnum {
INCLUDE
EXCLUDE
}
input PriceRangeInput {
gte: Float
lte: Float
}
type Product implements Node & ObjectWithMetadata {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
productType: ProductType!
slug: String!
category: Category
updatedAt: DateTime
chargeTaxes: Boolean!
weight: Weight
defaultVariant: ProductVariant
rating: Float
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
url: String!
@deprecated(reason: "This field will be removed after 2020-07-31.")
thumbnail(size: Int): Image
pricing(address: AddressInput): ProductPricingInfo
isAvailable(address: AddressInput): Boolean
taxType: TaxType
attributes: [SelectedAttribute!]!
channelListings: [ProductChannelListing!]
imageById(id: ID): ProductImage
variants: [ProductVariant]
images: [ProductImage]
collections: [Collection]
translation(languageCode: LanguageCodeEnum!): ProductTranslation
availableForPurchase: Date
isAvailableForPurchase: Boolean
}
type ProductAttributeAssign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productType: ProductType
productErrors: [ProductError!]!
}
input ProductAttributeAssignInput {
id: ID!
type: ProductAttributeType!
}
enum ProductAttributeType {
PRODUCT
VARIANT
}
type ProductAttributeUnassign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productType: ProductType
productErrors: [ProductError!]!
}
type ProductBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productErrors: [ProductError!]!
}
type ProductChannelListing implements Node {
id: ID!
publicationDate: Date
isPublished: Boolean!
channel: Channel!
visibleInListings: Boolean!
availableForPurchase: Date
discountedPrice: Money
purchaseCost: MoneyRange
margin: Margin
isAvailableForPurchase: Boolean
pricing(address: AddressInput): ProductPricingInfo
}
input ProductChannelListingAddInput {
channelId: ID!
isPublished: Boolean
publicationDate: Date
visibleInListings: Boolean
isAvailableForPurchase: Boolean
availableForPurchaseDate: Date
}
type ProductChannelListingError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
channels: [ID!]
}
type ProductChannelListingUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
productChannelListingErrors: [ProductChannelListingError!]!
}
input ProductChannelListingUpdateInput {
addChannels: [ProductChannelListingAddInput!]
removeChannels: [ID!]
}
type ProductCountableConnection {
pageInfo: PageInfo!
edges: [ProductCountableEdge!]!
totalCount: Int
}
type ProductCountableEdge {
node: Product!
cursor: String!
}
type ProductCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
product: Product
}
input ProductCreateInput {
attributes: [AttributeValueInput]
category: ID
chargeTaxes: Boolean
collections: [ID]
description: JSONString
name: String
slug: String
taxCode: String
seo: SeoInput
weight: WeightScalar
rating: Float
productType: ID!
}
type ProductDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
product: Product
}
type ProductError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
}
enum ProductErrorCode {
ALREADY_EXISTS
ATTRIBUTE_ALREADY_ASSIGNED
ATTRIBUTE_CANNOT_BE_ASSIGNED
ATTRIBUTE_VARIANTS_DISABLED
DUPLICATED_INPUT_ITEM
GRAPHQL_ERROR
INVALID
PRODUCT_WITHOUT_CATEGORY
NOT_PRODUCTS_IMAGE
NOT_PRODUCTS_VARIANT
NOT_FOUND
REQUIRED
UNIQUE
VARIANT_NO_DIGITAL_CONTENT
CANNOT_MANAGE_PRODUCT_WITHOUT_VARIANT
PRODUCT_NOT_ASSIGNED_TO_CHANNEL
}
enum ProductFieldEnum {
NAME
DESCRIPTION
PRODUCT_TYPE
CATEGORY
VISIBLE
PRODUCT_WEIGHT
COLLECTIONS
CHARGE_TAXES
PRODUCT_IMAGES
VARIANT_SKU
VARIANT_WEIGHT
VARIANT_IMAGES
}
input ProductFilterInput {
isPublished: Boolean
collections: [ID]
categories: [ID]
hasCategory: Boolean
attributes: [AttributeInput]
stockAvailability: StockAvailability
productType: ID
stocks: ProductStockFilterInput
search: String
price: PriceRangeInput
minimalPrice: PriceRangeInput
productTypes: [ID]
ids: [ID]
channel: String
}
type ProductImage implements Node {
id: ID!
sortOrder: Int
alt: String!
url(size: Int): String!
}
type ProductImageBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productErrors: [ProductError!]!
}
type ProductImageCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
image: ProductImage
productErrors: [ProductError!]!
}
input ProductImageCreateInput {
alt: String
image: Upload!
product: ID!
}
type ProductImageDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
image: ProductImage
productErrors: [ProductError!]!
}
type ProductImageReorder {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
images: [ProductImage]
productErrors: [ProductError!]!
}
type ProductImageUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
image: ProductImage
productErrors: [ProductError!]!
}
input ProductImageUpdateInput {
alt: String
}
input ProductInput {
attributes: [AttributeValueInput]
category: ID
chargeTaxes: Boolean
collections: [ID]
description: JSONString
name: String
slug: String
taxCode: String
seo: SeoInput
weight: WeightScalar
rating: Float
}
input ProductOrder {
direction: OrderDirection!
channel: String
attributeId: ID
field: ProductOrderField
}
enum ProductOrderField {
NAME
RANK
PRICE
MINIMAL_PRICE
DATE
TYPE
PUBLISHED
PUBLICATION_DATE
COLLECTION
RATING
}
type ProductPricingInfo {
onSale: Boolean
discount: TaxedMoney
discountLocalCurrency: TaxedMoney
priceRange: TaxedMoneyRange
priceRangeUndiscounted: TaxedMoneyRange
priceRangeLocalCurrency: TaxedMoneyRange
}
type ProductReorderAttributeValues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
productErrors: [ProductError!]!
}
input ProductStockFilterInput {
warehouseIds: [ID!]
quantity: IntRangeInput
}
type ProductTranslatableContent implements Node {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
translation(languageCode: LanguageCodeEnum!): ProductTranslation
product: Product
}
type ProductTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
product: Product
}
type ProductTranslation implements Node {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
language: LanguageDisplay!
descriptionJson: JSONString
@deprecated(
reason: "Will be removed in Saleor 4.0. Use the `description` field instead."
)
}
type ProductType implements Node & ObjectWithMetadata {
id: ID!
name: String!
slug: String!
hasVariants: Boolean!
isShippingRequired: Boolean!
isDigital: Boolean!
weight: Weight
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
products(
channel: String
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
@deprecated(
reason: "Use the top-level `products` query with the `productTypes` filter."
)
taxType: TaxType
variantAttributes(variantSelection: VariantAttributeScope): [Attribute]
productAttributes: [Attribute]
availableAttributes(
filter: AttributeFilterInput
before: String
after: String
first: Int
last: Int
): AttributeCountableConnection
}
type ProductTypeBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productErrors: [ProductError!]!
}
enum ProductTypeConfigurable {
CONFIGURABLE
SIMPLE
}
type ProductTypeCountableConnection {
pageInfo: PageInfo!
edges: [ProductTypeCountableEdge!]!
totalCount: Int
}
type ProductTypeCountableEdge {
node: ProductType!
cursor: String!
}
type ProductTypeCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
productType: ProductType
}
type ProductTypeDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
productType: ProductType
}
enum ProductTypeEnum {
DIGITAL
SHIPPABLE
}
input ProductTypeFilterInput {
search: String
configurable: ProductTypeConfigurable
productType: ProductTypeEnum
ids: [ID]
}
input ProductTypeInput {
name: String
slug: String
hasVariants: Boolean
productAttributes: [ID]
variantAttributes: [ID]
isShippingRequired: Boolean
isDigital: Boolean
weight: WeightScalar
taxCode: String
}
type ProductTypeReorderAttributes {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productType: ProductType
productErrors: [ProductError!]!
}
enum ProductTypeSortField {
NAME
DIGITAL
SHIPPING_REQUIRED
}
input ProductTypeSortingInput {
direction: OrderDirection!
field: ProductTypeSortField!
}
type ProductTypeUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
productType: ProductType
}
type ProductUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
product: Product
}
type ProductVariant implements Node & ObjectWithMetadata {
id: ID!
name: String!
sku: String!
product: Product!
trackInventory: Boolean!
weight: Weight
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
channelListings: [ProductVariantChannelListing!]
pricing(address: AddressInput): VariantPricingInfo
attributes(variantSelection: VariantAttributeScope): [SelectedAttribute!]!
costPrice: Money
margin: Int
quantityOrdered: Int
revenue(period: ReportingPeriod): TaxedMoney
images: [ProductImage]
translation(languageCode: LanguageCodeEnum!): ProductVariantTranslation
digitalContent: DigitalContent
stocks(address: AddressInput, countryCode: CountryCode): [Stock]
quantityAvailable(address: AddressInput, countryCode: CountryCode): Int!
}
type ProductVariantBulkCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productVariants: [ProductVariant!]!
bulkProductErrors: [BulkProductError!]!
}
input ProductVariantBulkCreateInput {
attributes: [BulkAttributeValueInput]!
sku: String!
trackInventory: Boolean
weight: WeightScalar
stocks: [StockInput!]
channelListings: [ProductVariantChannelListingAddInput!]
}
type ProductVariantBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
productErrors: [ProductError!]!
}
type ProductVariantChannelListing implements Node {
id: ID!
channel: Channel!
price: Money
costPrice: Money
margin: Int
}
input ProductVariantChannelListingAddInput {
channelId: ID!
price: PositiveDecimal!
costPrice: PositiveDecimal
}
type ProductVariantChannelListingUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
variant: ProductVariant
productChannelListingErrors: [ProductChannelListingError!]!
}
type ProductVariantCountableConnection {
pageInfo: PageInfo!
edges: [ProductVariantCountableEdge!]!
totalCount: Int
}
type ProductVariantCountableEdge {
node: ProductVariant!
cursor: String!
}
type ProductVariantCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
productVariant: ProductVariant
}
input ProductVariantCreateInput {
attributes: [AttributeValueInput]!
sku: String
trackInventory: Boolean
weight: WeightScalar
product: ID!
stocks: [StockInput!]
}
type ProductVariantDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
productVariant: ProductVariant
}
input ProductVariantFilterInput {
search: String
sku: [String]
}
input ProductVariantInput {
attributes: [AttributeValueInput]
sku: String
trackInventory: Boolean
weight: WeightScalar
}
type ProductVariantReorder {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
productErrors: [ProductError!]!
}
type ProductVariantReorderAttributeValues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productVariant: ProductVariant
productErrors: [ProductError!]!
}
type ProductVariantSetDefault {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
product: Product
productErrors: [ProductError!]!
}
type ProductVariantStocksCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productVariant: ProductVariant
bulkStockErrors: [BulkStockError!]!
}
type ProductVariantStocksDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productVariant: ProductVariant
stockErrors: [StockError!]!
}
type ProductVariantStocksUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productVariant: ProductVariant
bulkStockErrors: [BulkStockError!]!
}
type ProductVariantTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): ProductVariantTranslation
productVariant: ProductVariant
}
type ProductVariantTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
productVariant: ProductVariant
}
type ProductVariantTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
type ProductVariantUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productErrors: [ProductError!]!
productVariant: ProductVariant
}
input PublishableChannelListingInput {
channelId: ID!
isPublished: Boolean
publicationDate: Date
}
type Query {
webhook(id: ID!): Webhook
webhookEvents: [WebhookEvent]
webhookSamplePayload(eventType: WebhookSampleEventTypeEnum!): JSONString
warehouse(id: ID!): Warehouse
warehouses(
filter: WarehouseFilterInput
sortBy: WarehouseSortingInput
before: String
after: String
first: Int
last: Int
): WarehouseCountableConnection
translations(
kind: TranslatableKinds!
before: String
after: String
first: Int
last: Int
): TranslatableItemConnection
translation(id: ID!, kind: TranslatableKinds!): TranslatableItem
stock(id: ID!): Stock
stocks(
filter: StockFilterInput
before: String
after: String
first: Int
last: Int
): StockCountableConnection
shop: Shop!
orderSettings: OrderSettings
shippingZone(id: ID!, channel: String): ShippingZone
shippingZones(
channel: String
before: String
after: String
first: Int
last: Int
): ShippingZoneCountableConnection
digitalContent(id: ID!): DigitalContent
digitalContents(
before: String
after: String
first: Int
last: Int
): DigitalContentCountableConnection
categories(
filter: CategoryFilterInput
sortBy: CategorySortingInput
level: Int
before: String
after: String
first: Int
last: Int
): CategoryCountableConnection
category(id: ID, slug: String): Category
collection(id: ID, slug: String, channel: String): Collection
collections(
filter: CollectionFilterInput
sortBy: CollectionSortingInput
channel: String
before: String
after: String
first: Int
last: Int
): CollectionCountableConnection
product(id: ID, slug: String, channel: String): Product
products(
filter: ProductFilterInput
sortBy: ProductOrder
stockAvailability: StockAvailability
channel: String
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
productType(id: ID!): ProductType
productTypes(
filter: ProductTypeFilterInput
sortBy: ProductTypeSortingInput
before: String
after: String
first: Int
last: Int
): ProductTypeCountableConnection
productVariant(id: ID, sku: String, channel: String): ProductVariant
productVariants(
ids: [ID]
channel: String
filter: ProductVariantFilterInput
before: String
after: String
first: Int
last: Int
): ProductVariantCountableConnection
reportProductSales(
period: ReportingPeriod!
channel: String!
before: String
after: String
first: Int
last: Int
): ProductVariantCountableConnection
payment(id: ID!): Payment
payments(
before: String
after: String
first: Int
last: Int
): PaymentCountableConnection
page(id: ID, slug: String): Page
pages(
sortBy: PageSortingInput
filter: PageFilterInput
before: String
after: String
first: Int
last: Int
): PageCountableConnection
pageType(id: ID!): PageType
pageTypes(
sortBy: PageTypeSortingInput
filter: PageTypeFilterInput
before: String
after: String
first: Int
last: Int
): PageTypeCountableConnection
homepageEvents(
before: String
after: String
first: Int
last: Int
): OrderEventCountableConnection
order(id: ID!): Order
orders(
sortBy: OrderSortingInput
filter: OrderFilterInput
created: ReportingPeriod
status: OrderStatusFilter
channel: String
before: String
after: String
first: Int
last: Int
): OrderCountableConnection
draftOrders(
sortBy: OrderSortingInput
filter: OrderDraftFilterInput
created: ReportingPeriod
before: String
after: String
first: Int
last: Int
): OrderCountableConnection
ordersTotal(period: ReportingPeriod, channel: String): TaxedMoney
orderByToken(token: UUID!): Order
menu(channel: String, id: ID, name: String, slug: String): Menu
menus(
channel: String
sortBy: MenuSortingInput
filter: MenuFilterInput
before: String
after: String
first: Int
last: Int
): MenuCountableConnection
menuItem(id: ID!, channel: String): MenuItem
menuItems(
channel: String
sortBy: MenuItemSortingInput
filter: MenuItemFilterInput
before: String
after: String
first: Int
last: Int
): MenuItemCountableConnection
giftCard(id: ID!): GiftCard
giftCards(
before: String
after: String
first: Int
last: Int
): GiftCardCountableConnection
plugin(id: ID!): Plugin
plugins(
filter: PluginFilterInput
sortBy: PluginSortingInput
before: String
after: String
first: Int
last: Int
): PluginCountableConnection
sale(id: ID!, channel: String): Sale
sales(
filter: SaleFilterInput
sortBy: SaleSortingInput
query: String
channel: String
before: String
after: String
first: Int
last: Int
): SaleCountableConnection
voucher(id: ID!, channel: String): Voucher
vouchers(
filter: VoucherFilterInput
sortBy: VoucherSortingInput
query: String
channel: String
before: String
after: String
first: Int
last: Int
): VoucherCountableConnection
exportFile(id: ID!): ExportFile
exportFiles(
filter: ExportFileFilterInput
sortBy: ExportFileSortingInput
before: String
after: String
first: Int
last: Int
): ExportFileCountableConnection
taxTypes: [TaxType]
checkout(token: UUID): Checkout
checkouts(
channel: String
before: String
after: String
first: Int
last: Int
): CheckoutCountableConnection
checkoutLine(id: ID): CheckoutLine
checkoutLines(
before: String
after: String
first: Int
last: Int
): CheckoutLineCountableConnection
channel(id: ID): Channel
channels: [Channel!]
attributes(
filter: AttributeFilterInput
sortBy: AttributeSortingInput
before: String
after: String
first: Int
last: Int
): AttributeCountableConnection
attribute(id: ID, slug: String): Attribute
appsInstallations: [AppInstallation!]!
apps(
filter: AppFilterInput
sortBy: AppSortingInput
before: String
after: String
first: Int
last: Int
): AppCountableConnection
app(id: ID!): App
addressValidationRules(
countryCode: CountryCode!
countryArea: String
city: String
cityArea: String
): AddressValidationData
address(id: ID!): Address
customers(
filter: CustomerFilterInput
sortBy: UserSortingInput
before: String
after: String
first: Int
last: Int
): UserCountableConnection
permissionGroups(
filter: PermissionGroupFilterInput
sortBy: PermissionGroupSortingInput
before: String
after: String
first: Int
last: Int
): GroupCountableConnection
permissionGroup(id: ID!): Group
me: User
staffUsers(
filter: StaffUserInput
sortBy: UserSortingInput
before: String
after: String
first: Int
last: Int
): UserCountableConnection
user(id: ID, email: String): User
_entities(representations: [_Any]): [_Entity]
_service: _Service
}
type ReducedRate {
rate: Float!
rateType: TaxRateType!
}
type RefreshToken {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
token: String
user: User
accountErrors: [AccountError!]!
}
input ReorderInput {
id: ID!
sortOrder: Int
}
enum ReportingPeriod {
TODAY
THIS_MONTH
}
type RequestEmailChange {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
type RequestPasswordReset {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
accountErrors: [AccountError!]!
}
type Sale implements Node {
id: ID!
name: String!
type: SaleType!
startDate: DateTime!
endDate: DateTime
categories(
before: String
after: String
first: Int
last: Int
): CategoryCountableConnection
collections(
before: String
after: String
first: Int
last: Int
): CollectionCountableConnection
products(
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
translation(languageCode: LanguageCodeEnum!): SaleTranslation
channelListings: [SaleChannelListing!]
discountValue: Float
currency: String
}
type SaleAddCatalogues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
sale: Sale
discountErrors: [DiscountError!]!
}
type SaleBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
discountErrors: [DiscountError!]!
}
type SaleChannelListing implements Node {
id: ID!
channel: Channel!
discountValue: Float!
currency: String!
}
input SaleChannelListingAddInput {
channelId: ID!
discountValue: PositiveDecimal!
}
input SaleChannelListingInput {
addChannels: [SaleChannelListingAddInput!]
removeChannels: [ID!]
}
type SaleChannelListingUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
sale: Sale
discountErrors: [DiscountError!]!
}
type SaleCountableConnection {
pageInfo: PageInfo!
edges: [SaleCountableEdge!]!
totalCount: Int
}
type SaleCountableEdge {
node: Sale!
cursor: String!
}
type SaleCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
discountErrors: [DiscountError!]!
sale: Sale
}
type SaleDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
discountErrors: [DiscountError!]!
sale: Sale
}
input SaleFilterInput {
status: [DiscountStatusEnum]
saleType: DiscountValueTypeEnum
started: DateTimeRangeInput
search: String
}
input SaleInput {
name: String
type: DiscountValueTypeEnum
value: PositiveDecimal
products: [ID]
categories: [ID]
collections: [ID]
startDate: DateTime
endDate: DateTime
}
type SaleRemoveCatalogues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
sale: Sale
discountErrors: [DiscountError!]!
}
enum SaleSortField {
NAME
START_DATE
END_DATE
VALUE
TYPE
}
input SaleSortingInput {
direction: OrderDirection!
channel: String
field: SaleSortField!
}
type SaleTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): SaleTranslation
sale: Sale
}
type SaleTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
sale: Sale
}
type SaleTranslation implements Node {
id: ID!
name: String
language: LanguageDisplay!
}
enum SaleType {
FIXED
PERCENTAGE
}
type SaleUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
discountErrors: [DiscountError!]!
sale: Sale
}
type SelectedAttribute {
attribute: Attribute!
values: [AttributeValue]!
}
input SeoInput {
title: String
description: String
}
type SetPassword {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]!
}
type ShippingError {
field: String
message: String
code: ShippingErrorCode!
warehouses: [ID!]
channels: [ID!]
}
enum ShippingErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
MAX_LESS_THAN_MIN
NOT_FOUND
REQUIRED
UNIQUE
DUPLICATED_INPUT_ITEM
}
type ShippingMethod implements Node & ObjectWithMetadata {
id: ID!
name: String!
minimumOrderWeight: Weight
maximumOrderWeight: Weight
maximumDeliveryDays: Int
minimumDeliveryDays: Int
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
type: ShippingMethodTypeEnum
translation(languageCode: LanguageCodeEnum!): ShippingMethodTranslation
channelListings: [ShippingMethodChannelListing!]
price: Money
maximumOrderPrice: Money
minimumOrderPrice: Money
postalCodeRules: [ShippingMethodPostalCodeRule]
excludedProducts(
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
}
type ShippingMethodChannelListing implements Node {
id: ID!
channel: Channel!
minimumOrderPrice: Money
maximumOrderPrice: Money
price: Money
}
input ShippingMethodChannelListingAddInput {
channelId: ID!
price: PositiveDecimal
minimumOrderPrice: PositiveDecimal
maximumOrderPrice: PositiveDecimal
}
input ShippingMethodChannelListingInput {
addChannels: [ShippingMethodChannelListingAddInput!]
removeChannels: [ID!]
}
type ShippingMethodChannelListingUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]!
}
type ShippingMethodPostalCodeRule implements Node {
start: String
end: String
inclusionType: PostalCodeRuleInclusionTypeEnum
id: ID!
}
type ShippingMethodTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): ShippingMethodTranslation
shippingMethod: ShippingMethod
}
type ShippingMethodTranslation implements Node {
id: ID!
name: String
language: LanguageDisplay!
}
enum ShippingMethodTypeEnum {
PRICE
WEIGHT
}
input ShippingPostalCodeRulesCreateInputRange {
start: String!
end: String
}
type ShippingPriceBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
shippingErrors: [ShippingError!]!
}
type ShippingPriceCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingZone: ShippingZone
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]!
}
type ShippingPriceDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingMethod: ShippingMethod
shippingZone: ShippingZone
shippingErrors: [ShippingError!]!
}
type ShippingPriceExcludeProducts {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]!
}
input ShippingPriceExcludeProductsInput {
products: [ID]!
}
input ShippingPriceInput {
name: String
minimumOrderWeight: WeightScalar
maximumOrderWeight: WeightScalar
maximumDeliveryDays: Int
minimumDeliveryDays: Int
type: ShippingMethodTypeEnum
shippingZone: ID
addPostalCodeRules: [ShippingPostalCodeRulesCreateInputRange!]
deletePostalCodeRules: [ID!]
inclusionType: PostalCodeRuleInclusionTypeEnum
}
type ShippingPriceRemoveProductFromExclude {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]!
}
type ShippingPriceTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
shippingMethod: ShippingMethod
}
type ShippingPriceUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingZone: ShippingZone
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]!
}
type ShippingZone implements Node & ObjectWithMetadata {
id: ID!
name: String!
default: Boolean!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
priceRange: MoneyRange
countries: [CountryDisplay]
shippingMethods: [ShippingMethod]
warehouses: [Warehouse]
description: String
}
type ShippingZoneBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
shippingErrors: [ShippingError!]!
}
type ShippingZoneCountableConnection {
pageInfo: PageInfo!
edges: [ShippingZoneCountableEdge!]!
totalCount: Int
}
type ShippingZoneCountableEdge {
node: ShippingZone!
cursor: String!
}
type ShippingZoneCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingErrors: [ShippingError!]!
shippingZone: ShippingZone
}
input ShippingZoneCreateInput {
name: String
description: String
countries: [String]
default: Boolean
addWarehouses: [ID]
}
type ShippingZoneDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingErrors: [ShippingError!]!
shippingZone: ShippingZone
}
type ShippingZoneUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shippingErrors: [ShippingError!]!
shippingZone: ShippingZone
}
input ShippingZoneUpdateInput {
name: String
description: String
countries: [String]
default: Boolean
addWarehouses: [ID]
removeWarehouses: [ID]
}
type Shop {
availablePaymentGateways(currency: String): [PaymentGateway!]!
availableExternalAuthentications: [ExternalAuthentication!]!
availableShippingMethods(
channel: String!
address: AddressInput
): [ShippingMethod]
countries(languageCode: LanguageCodeEnum): [CountryDisplay!]!
defaultCountry: CountryDisplay
defaultMailSenderName: String
defaultMailSenderAddress: String
description: String
domain: Domain!
languages: [LanguageDisplay]!
name: String!
navigation: Navigation
@deprecated(
reason: "Fetch menus using the `menu` query with `slug` parameter."
)
permissions: [Permission]!
phonePrefixes: [String]!
headerText: String
includeTaxesInPrices: Boolean!
displayGrossPrices: Boolean!
chargeTaxesOnShipping: Boolean!
trackInventoryByDefault: Boolean
defaultWeightUnit: WeightUnitsEnum
translation(languageCode: LanguageCodeEnum!): ShopTranslation
automaticFulfillmentDigitalProducts: Boolean
defaultDigitalMaxDownloads: Int
defaultDigitalUrlValidDays: Int
companyAddress: Address
customerSetPasswordUrl: String
staffNotificationRecipients: [StaffNotificationRecipient]
}
type ShopAddressUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shop: Shop
shopErrors: [ShopError!]!
}
type ShopDomainUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shop: Shop
shopErrors: [ShopError!]!
}
type ShopError {
field: String
message: String
code: ShopErrorCode!
}
enum ShopErrorCode {
ALREADY_EXISTS
CANNOT_FETCH_TAX_RATES
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
type ShopFetchTaxRates {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shop: Shop
shopErrors: [ShopError!]!
}
input ShopSettingsInput {
headerText: String
description: String
includeTaxesInPrices: Boolean
displayGrossPrices: Boolean
chargeTaxesOnShipping: Boolean
trackInventoryByDefault: Boolean
defaultWeightUnit: WeightUnitsEnum
automaticFulfillmentDigitalProducts: Boolean
defaultDigitalMaxDownloads: Int
defaultDigitalUrlValidDays: Int
defaultMailSenderName: String
defaultMailSenderAddress: String
customerSetPasswordUrl: String
}
type ShopSettingsTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shop: Shop
translationErrors: [TranslationError!]!
}
input ShopSettingsTranslationInput {
headerText: String
description: String
}
type ShopSettingsUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shop: Shop
shopErrors: [ShopError!]!
}
type ShopTranslation implements Node {
id: ID!
headerText: String!
description: String!
language: LanguageDisplay!
}
input SiteDomainInput {
domain: String
name: String
}
type StaffBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
staffErrors: [StaffError!]!
}
type StaffCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
staffErrors: [StaffError!]!
user: User
}
input StaffCreateInput {
firstName: String
lastName: String
email: String
isActive: Boolean
note: String
addGroups: [ID!]
redirectUrl: String
}
type StaffDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
staffErrors: [StaffError!]!
user: User
}
type StaffError {
field: String
message: String
code: AccountErrorCode!
permissions: [PermissionEnum!]
groups: [ID!]
users: [ID!]
}
enum StaffMemberStatus {
ACTIVE
DEACTIVATED
}
type StaffNotificationRecipient implements Node {
user: User
active: Boolean
id: ID!
email: String
}
type StaffNotificationRecipientCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shopErrors: [ShopError!]!
staffNotificationRecipient: StaffNotificationRecipient
}
type StaffNotificationRecipientDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shopErrors: [ShopError!]!
staffNotificationRecipient: StaffNotificationRecipient
}
input StaffNotificationRecipientInput {
user: ID
email: String
active: Boolean
}
type StaffNotificationRecipientUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
shopErrors: [ShopError!]!
staffNotificationRecipient: StaffNotificationRecipient
}
type StaffUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
staffErrors: [StaffError!]!
user: User
}
input StaffUpdateInput {
firstName: String
lastName: String
email: String
isActive: Boolean
note: String
addGroups: [ID!]
removeGroups: [ID!]
}
input StaffUserInput {
status: StaffMemberStatus
search: String
}
type Stock implements Node {
warehouse: Warehouse!
productVariant: ProductVariant!
quantity: Int!
id: ID!
quantityAllocated: Int!
}
enum StockAvailability {
IN_STOCK
OUT_OF_STOCK
}
type StockCountableConnection {
pageInfo: PageInfo!
edges: [StockCountableEdge!]!
totalCount: Int
}
type StockCountableEdge {
node: Stock!
cursor: String!
}
type StockError {
field: String
message: String
code: StockErrorCode!
}
enum StockErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
input StockFilterInput {
quantity: Float
search: String
}
input StockInput {
warehouse: ID!
quantity: Int
}
enum TaxRateType {
ACCOMMODATION
ADMISSION_TO_CULTURAL_EVENTS
ADMISSION_TO_ENTERTAINMENT_EVENTS
ADMISSION_TO_SPORTING_EVENTS
ADVERTISING
AGRICULTURAL_SUPPLIES
BABY_FOODSTUFFS
BIKES
BOOKS
CHILDRENS_CLOTHING
DOMESTIC_FUEL
DOMESTIC_SERVICES
E_BOOKS
FOODSTUFFS
HOTELS
MEDICAL
NEWSPAPERS
PASSENGER_TRANSPORT
PHARMACEUTICALS
PROPERTY_RENOVATIONS
RESTAURANTS
SOCIAL_HOUSING
STANDARD
WATER
WINE
}
type TaxType {
description: String
taxCode: String
}
type TaxedMoney {
currency: String!
gross: Money!
net: Money!
tax: Money!
}
type TaxedMoneyRange {
start: TaxedMoney
stop: TaxedMoney
}
type Transaction implements Node {
id: ID!
created: DateTime!
payment: Payment!
token: String!
kind: TransactionKind!
isSuccess: Boolean!
error: TransactionError
amount: Money
}
enum TransactionError {
TRANSACTIONERROR_INCORRECT_NUMBER
TRANSACTIONERROR_INVALID_NUMBER
TRANSACTIONERROR_INCORRECT_CVV
TRANSACTIONERROR_INVALID_CVV
TRANSACTIONERROR_INCORRECT_ZIP
TRANSACTIONERROR_INCORRECT_ADDRESS
TRANSACTIONERROR_INVALID_EXPIRY_DATE
TRANSACTIONERROR_EXPIRED
TRANSACTIONERROR_PROCESSING_ERROR
TRANSACTIONERROR_DECLINED
}
enum TransactionKind {
EXTERNAL
AUTH
PENDING
ACTION_TO_CONFIRM
REFUND
REFUND_ONGOING
CAPTURE
VOID
CONFIRM
CANCEL
}
union TranslatableItem =
ProductTranslatableContent
| CollectionTranslatableContent
| CategoryTranslatableContent
| AttributeTranslatableContent
| AttributeValueTranslatableContent
| ProductVariantTranslatableContent
| PageTranslatableContent
| ShippingMethodTranslatableContent
| SaleTranslatableContent
| VoucherTranslatableContent
| MenuItemTranslatableContent
type TranslatableItemConnection {
pageInfo: PageInfo!
edges: [TranslatableItemEdge!]!
totalCount: Int
}
type TranslatableItemEdge {
node: TranslatableItem!
cursor: String!
}
enum TranslatableKinds {
ATTRIBUTE
ATTRIBUTE_VALUE
CATEGORY
COLLECTION
MENU_ITEM
PAGE
PRODUCT
SALE
SHIPPING_METHOD
VARIANT
VOUCHER
}
type TranslationError {
field: String
message: String
code: TranslationErrorCode!
}
enum TranslationErrorCode {
GRAPHQL_ERROR
NOT_FOUND
REQUIRED
}
input TranslationInput {
seoTitle: String
seoDescription: String
name: String
description: JSONString
}
scalar UUID
input UpdateInvoiceInput {
number: String
url: String
}
type UpdateMetadata {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
metadataErrors: [MetadataError!]!
item: ObjectWithMetadata
}
type UpdatePrivateMetadata {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
metadataErrors: [MetadataError!]!
item: ObjectWithMetadata
}
scalar Upload
type UploadError {
field: String
message: String
code: UploadErrorCode!
}
enum UploadErrorCode {
GRAPHQL_ERROR
}
type User implements Node & ObjectWithMetadata {
id: ID!
lastLogin: DateTime
email: String!
firstName: String!
lastName: String!
isStaff: Boolean!
isActive: Boolean!
note: String
dateJoined: DateTime!
defaultShippingAddress: Address
defaultBillingAddress: Address
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
addresses: [Address]
checkout: Checkout
@deprecated(
reason: "Use the `checkout_tokens` field to fetch the user checkouts."
)
checkoutTokens(channel: String): [UUID!]
giftCards(
before: String
after: String
first: Int
last: Int
): GiftCardCountableConnection
orders(
before: String
after: String
first: Int
last: Int
): OrderCountableConnection
permissions: [Permission]
@deprecated(
reason: "Will be removed in Saleor 2.11.Use the `userPermissions` instead."
)
userPermissions: [UserPermission]
permissionGroups: [Group]
editableGroups: [Group]
avatar(size: Int): Image
events: [CustomerEvent]
storedPaymentSources: [PaymentSource]
}
type UserAvatarDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
type UserAvatarUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
accountErrors: [AccountError!]!
}
type UserBulkSetActive {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
accountErrors: [AccountError!]!
}
type UserCountableConnection {
pageInfo: PageInfo!
edges: [UserCountableEdge!]!
totalCount: Int
}
type UserCountableEdge {
node: User!
cursor: String!
}
input UserCreateInput {
defaultBillingAddress: AddressInput
defaultShippingAddress: AddressInput
firstName: String
lastName: String
email: String
isActive: Boolean
note: String
redirectUrl: String
}
type UserPermission {
code: PermissionEnum!
name: String!
sourcePermissionGroups(userId: ID!): [Group!]
}
enum UserSortField {
FIRST_NAME
LAST_NAME
EMAIL
ORDER_COUNT
}
input UserSortingInput {
direction: OrderDirection!
field: UserSortField!
}
type VAT {
countryCode: String!
standardRate: Float
reducedRates: [ReducedRate]!
}
enum VariantAttributeScope {
ALL
VARIANT_SELECTION
NOT_VARIANT_SELECTION
}
type VariantImageAssign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productVariant: ProductVariant
image: ProductImage
productErrors: [ProductError!]!
}
type VariantImageUnassign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
productVariant: ProductVariant
image: ProductImage
productErrors: [ProductError!]!
}
type VariantPricingInfo {
onSale: Boolean
discount: TaxedMoney
discountLocalCurrency: TaxedMoney
price: TaxedMoney
priceUndiscounted: TaxedMoney
priceLocalCurrency: TaxedMoney
}
type VerifyToken {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
user: User
isValid: Boolean!
payload: GenericScalar
accountErrors: [AccountError!]!
}
type Voucher implements Node {
id: ID!
name: String
type: VoucherTypeEnum!
code: String!
usageLimit: Int
used: Int!
startDate: DateTime!
endDate: DateTime
applyOncePerOrder: Boolean!
applyOncePerCustomer: Boolean!
discountValueType: DiscountValueTypeEnum!
minCheckoutItemsQuantity: Int
categories(
before: String
after: String
first: Int
last: Int
): CategoryCountableConnection
collections(
before: String
after: String
first: Int
last: Int
): CollectionCountableConnection
products(
before: String
after: String
first: Int
last: Int
): ProductCountableConnection
countries: [CountryDisplay]
translation(languageCode: LanguageCodeEnum!): VoucherTranslation
discountValue: Float
currency: String
minSpent: Money
channelListings: [VoucherChannelListing!]
}
type VoucherAddCatalogues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
voucher: Voucher
discountErrors: [DiscountError!]!
}
type VoucherBulkDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
count: Int!
discountErrors: [DiscountError!]!
}
type VoucherChannelListing implements Node {
id: ID!
channel: Channel!
discountValue: Float!
currency: String!
minSpent: Money
}
input VoucherChannelListingAddInput {
channelId: ID!
discountValue: PositiveDecimal
minAmountSpent: PositiveDecimal
}
input VoucherChannelListingInput {
addChannels: [VoucherChannelListingAddInput!]
removeChannels: [ID!]
}
type VoucherChannelListingUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
voucher: Voucher
discountErrors: [DiscountError!]!
}
type VoucherCountableConnection {
pageInfo: PageInfo!
edges: [VoucherCountableEdge!]!
totalCount: Int
}
type VoucherCountableEdge {
node: Voucher!
cursor: String!
}
type VoucherCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
discountErrors: [DiscountError!]!
voucher: Voucher
}
type VoucherDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
discountErrors: [DiscountError!]!
voucher: Voucher
}
enum VoucherDiscountType {
FIXED
PERCENTAGE
SHIPPING
}
input VoucherFilterInput {
status: [DiscountStatusEnum]
timesUsed: IntRangeInput
discountType: [VoucherDiscountType]
started: DateTimeRangeInput
search: String
}
input VoucherInput {
type: VoucherTypeEnum
name: String
code: String
startDate: DateTime
endDate: DateTime
discountValueType: DiscountValueTypeEnum
products: [ID]
collections: [ID]
categories: [ID]
minCheckoutItemsQuantity: Int
countries: [String]
applyOncePerOrder: Boolean
applyOncePerCustomer: Boolean
usageLimit: Int
}
type VoucherRemoveCatalogues {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
voucher: Voucher
discountErrors: [DiscountError!]!
}
enum VoucherSortField {
CODE
START_DATE
END_DATE
VALUE
TYPE
USAGE_LIMIT
MINIMUM_SPENT_AMOUNT
}
input VoucherSortingInput {
direction: OrderDirection!
channel: String
field: VoucherSortField!
}
type VoucherTranslatableContent implements Node {
id: ID!
name: String
translation(languageCode: LanguageCodeEnum!): VoucherTranslation
voucher: Voucher
}
type VoucherTranslate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
translationErrors: [TranslationError!]!
voucher: Voucher
}
type VoucherTranslation implements Node {
id: ID!
name: String
language: LanguageDisplay!
}
enum VoucherTypeEnum {
SHIPPING
ENTIRE_ORDER
SPECIFIC_PRODUCT
}
type VoucherUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
discountErrors: [DiscountError!]!
voucher: Voucher
}
type Warehouse implements Node & ObjectWithMetadata {
id: ID!
name: String!
slug: String!
companyName: String!
shippingZones(
before: String
after: String
first: Int
last: Int
): ShippingZoneCountableConnection!
address: Address!
email: String!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
}
input WarehouseAddressInput {
streetAddress1: String!
streetAddress2: String
city: String!
cityArea: String
postalCode: String
country: CountryCode!
countryArea: String
phone: String
}
type WarehouseCountableConnection {
pageInfo: PageInfo!
edges: [WarehouseCountableEdge!]!
totalCount: Int
}
type WarehouseCountableEdge {
node: Warehouse!
cursor: String!
}
type WarehouseCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
warehouseErrors: [WarehouseError!]!
warehouse: Warehouse
}
input WarehouseCreateInput {
slug: String
companyName: String
email: String
name: String!
address: WarehouseAddressInput!
shippingZones: [ID]
}
type WarehouseDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
warehouseErrors: [WarehouseError!]!
warehouse: Warehouse
}
type WarehouseError {
field: String
message: String
code: WarehouseErrorCode!
}
enum WarehouseErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
input WarehouseFilterInput {
search: String
ids: [ID]
}
type WarehouseShippingZoneAssign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
warehouseErrors: [WarehouseError!]!
warehouse: Warehouse
}
type WarehouseShippingZoneUnassign {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
warehouseErrors: [WarehouseError!]!
warehouse: Warehouse
}
enum WarehouseSortField {
NAME
}
input WarehouseSortingInput {
direction: OrderDirection!
field: WarehouseSortField!
}
type WarehouseUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
warehouseErrors: [WarehouseError!]!
warehouse: Warehouse
}
input WarehouseUpdateInput {
slug: String
companyName: String
email: String
name: String
address: WarehouseAddressInput
}
type Webhook implements Node {
name: String!
targetUrl: String!
isActive: Boolean!
secretKey: String
id: ID!
events: [WebhookEvent!]!
app: App!
}
type WebhookCreate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
webhookErrors: [WebhookError!]!
webhook: Webhook
}
input WebhookCreateInput {
name: String
targetUrl: String
events: [WebhookEventTypeEnum]
app: ID
isActive: Boolean
secretKey: String
}
type WebhookDelete {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
webhookErrors: [WebhookError!]!
webhook: Webhook
}
type WebhookError {
field: String
message: String
code: WebhookErrorCode!
}
enum WebhookErrorCode {
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
type WebhookEvent {
eventType: WebhookEventTypeEnum!
name: String!
}
enum WebhookEventTypeEnum {
ANY_EVENTS
ORDER_CREATED
ORDER_CONFIRMED
ORDER_FULLY_PAID
ORDER_UPDATED
ORDER_CANCELLED
ORDER_FULFILLED
INVOICE_REQUESTED
INVOICE_DELETED
INVOICE_SENT
CUSTOMER_CREATED
CUSTOMER_UPDATED
PRODUCT_CREATED
PRODUCT_UPDATED
PRODUCT_DELETED
CHECKOUT_CREATED
CHECKOUT_UPDATED
FULFILLMENT_CREATED
PAGE_CREATED
PAGE_UPDATED
PAGE_DELETED
}
enum WebhookSampleEventTypeEnum {
ORDER_CREATED
ORDER_CONFIRMED
ORDER_FULLY_PAID
ORDER_UPDATED
ORDER_CANCELLED
ORDER_FULFILLED
INVOICE_REQUESTED
INVOICE_DELETED
INVOICE_SENT
CUSTOMER_CREATED
CUSTOMER_UPDATED
PRODUCT_CREATED
PRODUCT_UPDATED
PRODUCT_DELETED
CHECKOUT_CREATED
CHECKOUT_UPDATED
FULFILLMENT_CREATED
PAGE_CREATED
PAGE_UPDATED
PAGE_DELETED
}
type WebhookUpdate {
errors: [Error!]!
@deprecated(
reason: "Use typed errors with error codes. This field will be removed after 2020-07-31."
)
webhookErrors: [WebhookError!]!
webhook: Webhook
}
input WebhookUpdateInput {
name: String
targetUrl: String
events: [WebhookEventTypeEnum]
app: ID
isActive: Boolean
secretKey: String
}
type Weight {
unit: WeightUnitsEnum!
value: Float!
}
scalar WeightScalar
enum WeightUnitsEnum {
KG
LB
OZ
G
}
scalar _Any
union _Entity =
Address
| User
| Group
| App
| ProductVariant
| Product
| ProductType
| Collection
| Category
| ProductImage
| PageType
type _Service {
sdl: String
}