saleor-dashboard/schema.graphql
Piotr Grundas ebe56da583
Add swatch attributes (#1301)
* Initial work

* #

* Base color logic

* Handle file urls

* Improvements, fix snapshots

* Add messages

* Update changelog

* Update storybook

* Improvements

* Messages

* Review corrections

* Bugfixes
2021-09-21 15:16:21 +02:00

7275 lines
No EOL
166 KiB
GraphQL

schema {
query: Query
mutation: Mutation
}
type AccountAddressCreate {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
address: Address
}
type AccountAddressDelete {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
address: Address
}
type AccountAddressUpdate {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
address: Address
}
type AccountDelete {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
user: User
}
type AccountError {
field: String
message: String
code: AccountErrorCode!
addressType: AddressTypeEnum
}
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
CHANNEL_INACTIVE
MISSING_CHANNEL_SLUG
}
input AccountInput {
firstName: String
lastName: String
defaultBillingAddress: AddressInput
defaultShippingAddress: AddressInput
languageCode: LanguageCodeEnum
}
type AccountRegister {
requiresConfirmation: Boolean
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
user: User
}
input AccountRegisterInput {
email: String!
password: String!
redirectUrl: String
languageCode: LanguageCodeEnum
metadata: [MetadataInput!]
channel: String
}
type AccountRequestDeletion {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type AccountSetDefaultAddress {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type AccountUpdate {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
address: Address
}
type AddressDelete {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
enum AddressTypeEnum {
BILLING
SHIPPING
}
type AddressUpdate {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
extensions: [AppExtension!]!
}
type AppActivate {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
app: App
}
type AppCountableConnection {
pageInfo: PageInfo!
edges: [AppCountableEdge!]!
totalCount: Int
}
type AppCountableEdge {
node: App!
cursor: String!
}
type AppCreate {
authToken: String
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
app: App
}
type AppDeactivate {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
app: App
}
type AppDelete {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
app: App
}
type AppDeleteFailedInstallation {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 AppExtension implements Node {
id: ID!
app: App!
label: String!
url: String!
view: AppExtensionViewEnum!
type: AppExtensionTypeEnum!
target: AppExtensionTargetEnum!
permissions: [Permission!]!
accessToken: String
}
type AppExtensionCountableConnection {
pageInfo: PageInfo!
edges: [AppExtensionCountableEdge!]!
totalCount: Int
}
type AppExtensionCountableEdge {
node: AppExtension!
cursor: String!
}
input AppExtensionFilterInput {
view: AppExtensionViewEnum
type: AppExtensionTypeEnum
target: AppExtensionTargetEnum
}
enum AppExtensionTargetEnum {
MORE_ACTIONS
CREATE
}
enum AppExtensionTypeEnum {
OVERVIEW
DETAILS
}
enum AppExtensionViewEnum {
PRODUCT
}
type AppFetchManifest {
manifest: Manifest
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
}
input AppFilterInput {
search: String
isActive: Boolean
type: AppTypeEnum
}
input AppInput {
name: String
permissions: [PermissionEnum]
}
type AppInstall {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 AppManifestExtension {
permissions: [Permission!]!
label: String!
url: String!
view: AppExtensionViewEnum!
type: AppExtensionTypeEnum!
target: AppExtensionTargetEnum!
}
type AppRetryInstall {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
authToken: String
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
appToken: AppToken
}
type AppTokenDelete {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
appToken: AppToken
}
input AppTokenInput {
name: String
app: ID!
}
type AppTokenVerify {
valid: Boolean!
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
}
enum AppTypeEnum {
LOCAL
THIRDPARTY
}
type AppUpdate {
appErrors: [AppError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AppError!]!
app: App
}
enum AreaUnitsEnum {
SQ_CM
SQ_M
SQ_KM
SQ_FT
SQ_YD
SQ_INCH
}
type AssignNavigation {
menu: Menu
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
unit: MeasurementUnitsEnum
choices(sortBy: AttributeChoicesSortingInput, filter: AttributeValueFilterInput, before: String, after: String, first: Int, last: Int): AttributeValueCountableConnection
valueRequired: Boolean!
visibleInStorefront: Boolean!
filterableInStorefront: Boolean!
filterableInDashboard: Boolean!
availableInGrid: Boolean!
translation(languageCode: LanguageCodeEnum!): AttributeTranslation
storefrontSearchPosition: Int!
withChoices: Boolean!
}
type AttributeBulkDelete {
count: Int!
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
}
enum AttributeChoicesSortField {
NAME
SLUG
}
input AttributeChoicesSortingInput {
direction: OrderDirection!
field: AttributeChoicesSortField!
}
type AttributeCountableConnection {
pageInfo: PageInfo!
edges: [AttributeCountableEdge!]!
totalCount: Int
}
type AttributeCountableEdge {
node: Attribute!
cursor: String!
}
type AttributeCreate {
attribute: Attribute
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
}
input AttributeCreateInput {
inputType: AttributeInputTypeEnum
entityType: AttributeEntityTypeEnum
name: String!
slug: String
type: AttributeTypeEnum!
unit: MeasurementUnitsEnum
values: [AttributeValueCreateInput]
valueRequired: Boolean
isVariantOnly: Boolean
visibleInStorefront: Boolean
filterableInStorefront: Boolean
filterableInDashboard: Boolean
storefrontSearchPosition: Int
availableInGrid: Boolean
}
type AttributeDelete {
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
metadata: [MetadataFilter]
search: String
ids: [ID]
type: AttributeTypeEnum
inCollection: ID
inCategory: ID
channel: String
}
input AttributeInput {
slug: String!
values: [String]
valuesRange: IntRangeInput
dateTime: DateTimeRangeInput
date: DateRangeInput
boolean: Boolean
}
enum AttributeInputTypeEnum {
DROPDOWN
MULTISELECT
FILE
REFERENCE
NUMERIC
RICH_TEXT
SWATCH
BOOLEAN
DATE
DATE_TIME
}
type AttributeReorderValues {
attribute: Attribute
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type AttributeTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
attribute: Attribute
}
type AttributeTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
enum AttributeTypeEnum {
PRODUCT_TYPE
PAGE_TYPE
}
type AttributeUpdate {
attribute: Attribute
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
}
input AttributeUpdateInput {
name: String
slug: String
unit: MeasurementUnitsEnum
removeValues: [ID]
addValues: [AttributeValueUpdateInput]
valueRequired: Boolean
isVariantOnly: Boolean
visibleInStorefront: Boolean
filterableInStorefront: Boolean
filterableInDashboard: Boolean
storefrontSearchPosition: Int
availableInGrid: Boolean
}
type AttributeValue implements Node {
id: ID!
name: String
slug: String
value: String
translation(languageCode: LanguageCodeEnum!): AttributeValueTranslation
inputType: AttributeInputTypeEnum
reference: ID
file: File
richText: JSONString
boolean: Boolean
date: Date
dateTime: DateTime
}
type AttributeValueBulkDelete {
count: Int!
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
}
type AttributeValueCountableConnection {
pageInfo: PageInfo!
edges: [AttributeValueCountableEdge!]!
totalCount: Int
}
type AttributeValueCountableEdge {
node: AttributeValue!
cursor: String!
}
type AttributeValueCreate {
attribute: Attribute
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
attributeValue: AttributeValue
}
input AttributeValueCreateInput {
value: String
richText: JSONString
fileUrl: String
contentType: String
name: String!
}
type AttributeValueDelete {
attribute: Attribute
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
attributeValue: AttributeValue
}
input AttributeValueFilterInput {
search: String
}
input AttributeValueInput {
id: ID
values: [String!]
file: String
contentType: String
references: [ID!]
richText: JSONString
boolean: Boolean
date: Date
dateTime: DateTime
}
type AttributeValueTranslatableContent implements Node {
id: ID!
name: String!
richText: JSONString
translation(languageCode: LanguageCodeEnum!): AttributeValueTranslation
attributeValue: AttributeValue @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type AttributeValueTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
attributeValue: AttributeValue
}
type AttributeValueTranslation implements Node {
id: ID!
name: String!
richText: JSONString
language: LanguageDisplay!
}
input AttributeValueTranslationInput {
name: String
richText: JSONString
}
type AttributeValueUpdate {
attribute: Attribute
attributeErrors: [AttributeError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AttributeError!]!
attributeValue: AttributeValue
}
input AttributeValueUpdateInput {
value: String
richText: JSONString
fileUrl: String
contentType: String
name: String
}
input BulkAttributeValueInput {
id: ID
values: [String!]
boolean: Boolean
}
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 {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
slug: String!
parent: Category
level: Int!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
descriptionJson: JSONString @deprecated(reason: "This field 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
children(before: String, after: String, first: Int, last: Int): CategoryCountableConnection
backgroundImage(size: Int): Image
translation(languageCode: LanguageCodeEnum!): CategoryTranslation
}
type CategoryBulkDelete {
count: Int!
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type CategoryCountableConnection {
pageInfo: PageInfo!
edges: [CategoryCountableEdge!]!
totalCount: Int
}
type CategoryCountableEdge {
node: Category!
cursor: String!
}
type CategoryCreate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
category: Category
}
type CategoryDelete {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
category: Category
}
input CategoryFilterInput {
search: String
metadata: [MetadataFilter]
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 {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.")
translation(languageCode: LanguageCodeEnum!): CategoryTranslation
category: Category @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type CategoryTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
category: Category
}
type CategoryTranslation implements Node {
id: ID!
seoTitle: String
seoDescription: String
name: String
description: JSONString
language: LanguageDisplay!
descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.")
}
type CategoryUpdate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
category: Category
}
type Channel implements Node {
id: ID!
name: String!
isActive: Boolean!
slug: String!
currencyCode: String!
hasOrders: Boolean!
defaultCountry: CountryDisplay!
}
type ChannelActivate {
channel: Channel
channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ChannelError!]!
}
type ChannelCreate {
channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ChannelError!]!
channel: Channel
}
input ChannelCreateInput {
isActive: Boolean
name: String!
slug: String!
currencyCode: String!
defaultCountry: CountryCode!
addShippingZones: [ID!]
}
type ChannelDeactivate {
channel: Channel
channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ChannelError!]!
}
type ChannelDelete {
channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ChannelError!]!
channel: Channel
}
input ChannelDeleteInput {
channelId: ID!
}
type ChannelError {
field: String
message: String
code: ChannelErrorCode!
shippingZones: [ID!]
}
enum ChannelErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
CHANNELS_CURRENCY_MUST_BE_THE_SAME
CHANNEL_WITH_ORDERS
DUPLICATED_INPUT_ITEM
}
type ChannelUpdate {
channelErrors: [ChannelError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ChannelError!]!
channel: Channel
}
input ChannelUpdateInput {
isActive: Boolean
name: String
slug: String
defaultCountry: CountryCode
addShippingZones: [ID!]
removeShippingZones: [ID!]
}
type Checkout implements Node & ObjectWithMetadata {
created: DateTime!
lastChange: DateTime!
user: User
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]!
availableCollectionPoints: [Warehouse!]!
availablePaymentGateways: [PaymentGateway!]!
email: String!
isShippingRequired: Boolean!
quantity: Int!
lines: [CheckoutLine]
shippingPrice: TaxedMoney
shippingMethod: ShippingMethod @deprecated(reason: "This field will be removed in Saleor 4.0. Use `deliveryMethod` instead.")
deliveryMethod: DeliveryMethod
subtotalPrice: TaxedMoney
token: UUID!
totalPrice: TaxedMoney
languageCode: LanguageCodeEnum!
}
type CheckoutAddPromoCode {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutBillingAddressUpdate {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutComplete {
order: Order
confirmationNeeded: Boolean!
confirmationData: JSONString
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutCountableConnection {
pageInfo: PageInfo!
edges: [CheckoutCountableEdge!]!
totalCount: Int
}
type CheckoutCountableEdge {
node: Checkout!
cursor: String!
}
type CheckoutCreate {
created: Boolean @deprecated(reason: "This field will be removed in Saleor 4.0. Always returns `True`.")
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
checkout: Checkout
}
input CheckoutCreateInput {
channel: String
lines: [CheckoutLineInput]!
email: String
shippingAddress: AddressInput
billingAddress: AddressInput
languageCode: LanguageCodeEnum
}
type CheckoutCustomerAttach {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutCustomerDetach {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutDeliveryMethodUpdate {
checkout: Checkout
errors: [CheckoutError!]!
}
type CheckoutEmailUpdate {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutError {
field: String
message: String
code: CheckoutErrorCode!
variants: [ID!]
addressType: AddressTypeEnum
}
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
DELIVERY_METHOD_NOT_APPLICABLE
SHIPPING_METHOD_NOT_SET
SHIPPING_NOT_REQUIRED
TAX_ERROR
UNIQUE
VOUCHER_NOT_APPLICABLE
GIFT_CARD_NOT_APPLICABLE
ZERO_QUANTITY
MISSING_CHANNEL_SLUG
CHANNEL_INACTIVE
UNAVAILABLE_VARIANT_IN_CHANNEL
}
type CheckoutLanguageCodeUpdate {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
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 {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
input CheckoutLineInput {
quantity: Int!
variantId: ID!
}
type CheckoutLinesAdd {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutLinesUpdate {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutPaymentCreate {
checkout: Checkout
payment: Payment
paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PaymentError!]!
}
type CheckoutRemovePromoCode {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutShippingAddressUpdate {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type CheckoutShippingMethodUpdate {
checkout: Checkout
checkoutErrors: [CheckoutError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CheckoutError!]!
}
type ChoiceValue {
raw: String
verbose: String
}
type Collection implements Node & ObjectWithMetadata {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
slug: String!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
descriptionJson: JSONString @deprecated(reason: "This field 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 {
collection: Collection
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CollectionError!]!
}
type CollectionBulkDelete {
count: Int!
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CollectionError!]!
}
type CollectionChannelListing implements Node {
id: ID!
publicationDate: Date
isPublished: Boolean!
channel: Channel!
}
type CollectionChannelListingError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
channels: [ID!]
}
type CollectionChannelListingUpdate {
collection: Collection
collectionChannelListingErrors: [CollectionChannelListingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CollectionChannelListingError!]!
}
input CollectionChannelListingUpdateInput {
addChannels: [PublishableChannelListingInput!]
removeChannels: [ID!]
}
type CollectionCountableConnection {
pageInfo: PageInfo!
edges: [CollectionCountableEdge!]!
totalCount: Int
}
type CollectionCountableEdge {
node: Collection!
cursor: String!
}
type CollectionCreate {
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
metadata: [MetadataFilter]
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 {
collection: Collection
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CollectionError!]!
}
type CollectionReorderProducts {
collection: Collection
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CollectionError!]!
}
enum CollectionSortField {
NAME
AVAILABILITY
PRODUCT_COUNT
PUBLICATION_DATE
}
input CollectionSortingInput {
direction: OrderDirection!
channel: String
field: CollectionSortField!
}
type CollectionTranslatableContent implements Node {
id: ID!
seoTitle: String
seoDescription: String
name: String!
description: JSONString
descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.")
translation(languageCode: LanguageCodeEnum!): CollectionTranslation
collection: Collection @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type CollectionTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
collection: Collection
}
type CollectionTranslation implements Node {
id: ID!
seoTitle: String
seoDescription: String
name: String
description: JSONString
language: LanguageDisplay!
descriptionJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `description` field instead.")
}
type CollectionUpdate {
collectionErrors: [CollectionError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [CollectionError!]!
collection: Collection
}
type ConfigurationItem {
name: String!
value: String
type: ConfigurationTypeFieldEnum
helpText: String
label: String
}
input ConfigurationItemInput {
name: String!
value: String
}
enum ConfigurationTypeFieldEnum {
STRING
MULTILINE
BOOLEAN
SECRET
PASSWORD
SECRETMULTILINE
OUTPUT
}
type ConfirmAccount {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type ConfirmEmailChange {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type CreditCard {
brand: String!
firstDigits: String
lastDigits: String!
expMonth: Int
expYear: Int
}
type CustomerBulkDelete {
count: Int!
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type CustomerCreate {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
user: User
}
type CustomerDelete {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
user: User
}
type CustomerEvent implements Node {
id: ID!
date: DateTime
type: CustomerEventsEnum
user: User
app: App
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
metadata: [MetadataFilter]
}
input CustomerInput {
defaultBillingAddress: AddressInput
defaultShippingAddress: AddressInput
firstName: String
lastName: String
email: String
isActive: Boolean
note: String
languageCode: LanguageCodeEnum
}
type CustomerUpdate {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
user: User
}
scalar Date
input DateRangeInput {
gte: Date
lte: Date
}
scalar DateTime
input DateTimeRangeInput {
gte: DateTime
lte: DateTime
}
type DeactivateAllUserTokens {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type DeleteMetadata {
metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MetadataError!]!
item: ObjectWithMetadata
}
type DeletePrivateMetadata {
metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MetadataError!]!
item: ObjectWithMetadata
}
union DeliveryMethod = Warehouse | ShippingMethod
type DigitalContent implements Node & ObjectWithMetadata {
useDefaultSettings: Boolean!
automaticFulfillment: Boolean!
contentFile: String!
maxDownloads: Int
urlValidDays: Int
urls: [DigitalContentUrl]
id: ID!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
productVariant: ProductVariant!
}
type DigitalContentCountableConnection {
pageInfo: PageInfo!
edges: [DigitalContentCountableEdge!]!
totalCount: Int
}
type DigitalContentCountableEdge {
node: DigitalContent!
cursor: String!
}
type DigitalContentCreate {
variant: ProductVariant
content: DigitalContent
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type DigitalContentDelete {
variant: ProductVariant
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
input DigitalContentInput {
useDefaultSettings: Boolean!
maxDownloads: Int
urlValidDays: Int
automaticFulfillment: Boolean
}
type DigitalContentUpdate {
variant: ProductVariant
content: DigitalContent
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
}
enum DistanceUnitsEnum {
CM
M
KM
FT
YD
INCH
}
type Domain {
host: String!
sslEnabled: Boolean!
url: String!
}
type DraftOrderBulkDelete {
count: Int!
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type DraftOrderComplete {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type DraftOrderCreate {
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
order: Order
}
input DraftOrderCreateInput {
billingAddress: AddressInput
user: ID
userEmail: String
discount: PositiveDecimal
shippingAddress: AddressInput
shippingMethod: ID
voucher: ID
customerNote: String
channelId: ID
redirectUrl: String
lines: [OrderLineCreateInput]
}
type DraftOrderDelete {
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
order: Order
}
input DraftOrderInput {
billingAddress: AddressInput
user: ID
userEmail: String
discount: PositiveDecimal
shippingAddress: AddressInput
shippingMethod: ID
voucher: ID
customerNote: String
channelId: ID
redirectUrl: String
}
type DraftOrderLinesBulkDelete {
count: Int!
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type DraftOrderUpdate {
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
order: Order
}
type ExportError {
field: String
message: String
code: ExportErrorCode!
}
enum ExportErrorCode {
GRAPHQL_ERROR
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 {
exportFile: ExportFile
exportErrors: [ExportError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
authenticationData: JSONString
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type ExternalLogout {
logoutData: JSONString
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type ExternalNotificationError {
field: String
message: String
code: ExternalNotificationErrorCodes!
}
enum ExternalNotificationErrorCodes {
REQUIRED
INVALID_MODEL_TYPE
NOT_FOUND
CHANNEL_INACTIVE
}
type ExternalNotificationTrigger {
errors: [ExternalNotificationError!]!
}
input ExternalNotificationTriggerInput {
ids: [ID]!
extraPayload: JSONString
externalEventType: String!
}
type ExternalObtainAccessTokens {
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type ExternalRefresh {
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type ExternalVerify {
user: User
isValid: Boolean!
verifyData: JSONString
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type File {
url: String!
contentType: String
}
enum FileTypesEnum {
CSV
XLSX
}
type FileUpload {
uploadedFile: File
uploadErrors: [UploadError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 FulfillmentApprove {
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type FulfillmentCancel {
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input FulfillmentCancelInput {
warehouseId: ID
}
type FulfillmentLine implements Node {
id: ID!
quantity: Int!
orderLine: OrderLine
}
type FulfillmentRefundProducts {
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type FulfillmentReturnProducts {
returnFulfillment: Fulfillment
replaceFulfillment: Fulfillment
order: Order
replaceOrder: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
enum FulfillmentStatus {
FULFILLED
REFUNDED
RETURNED
REPLACED
REFUNDED_AND_RETURNED
CANCELED
WAITING_FOR_APPROVAL
}
type FulfillmentUpdateTracking {
fulfillment: Fulfillment
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input FulfillmentUpdateTrackingInput {
trackingNumber: String
notifyCustomer: Boolean = false
}
type GatewayConfigLine {
field: String!
value: String
}
scalar GenericScalar
type GiftCard implements Node & ObjectWithMetadata {
code: String!
isActive: Boolean!
expiryDate: Date
tag: String
created: DateTime!
lastUsedOn: DateTime
initialBalance: Money
currentBalance: Money
id: ID!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
displayCode: String!
createdBy: User
usedBy: User
createdByEmail: String
usedByEmail: String
app: App
product: Product
events: [GiftCardEvent!]!
boughtInChannel: String
user: User @deprecated(reason: "This field will be removed in Saleor 4.0. Use `createdBy` field instead.")
endDate: DateTime @deprecated(reason: "This field will be removed in Saleor 4.0. Use `expiryDate` field instead.")
startDate: DateTime @deprecated(reason: "This field will be removed in Saleor 4.0.")
}
type GiftCardActivate {
giftCard: GiftCard
giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [GiftCardError!]!
}
type GiftCardAddNote {
giftCard: GiftCard
event: GiftCardEvent
errors: [GiftCardError!]!
}
input GiftCardAddNoteInput {
message: String!
}
type GiftCardBulkActivate {
count: Int!
errors: [GiftCardError!]!
}
type GiftCardBulkDeactivate {
count: Int!
errors: [GiftCardError!]!
}
type GiftCardBulkDelete {
count: Int!
errors: [GiftCardError!]!
}
type GiftCardCountableConnection {
pageInfo: PageInfo!
edges: [GiftCardCountableEdge!]!
totalCount: Int
}
type GiftCardCountableEdge {
node: GiftCard!
cursor: String!
}
type GiftCardCreate {
giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [GiftCardError!]!
giftCard: GiftCard
}
input GiftCardCreateInput {
tag: String
expiryDate: Date
startDate: Date
endDate: Date
balance: PriceInput!
userEmail: String
channel: String
isActive: Boolean!
code: String
note: String
}
type GiftCardDeactivate {
giftCard: GiftCard
giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [GiftCardError!]!
}
type GiftCardDelete {
giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [GiftCardError!]!
giftCard: GiftCard
}
type GiftCardError {
field: String
message: String
code: GiftCardErrorCode!
}
enum GiftCardErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
type GiftCardEvent implements Node {
id: ID!
date: DateTime
type: GiftCardEventsEnum
user: User
app: App
message: String
email: String
orderId: ID
orderNumber: String
tag: String
oldTag: String
balance: GiftCardEventBalance
expiryDate: Date
oldExpiryDate: Date
}
type GiftCardEventBalance {
initialBalance: Money
currentBalance: Money!
oldInitialBalance: Money
oldCurrentBalance: Money
}
enum GiftCardEventsEnum {
ISSUED
BOUGHT
UPDATED
ACTIVATED
DEACTIVATED
BALANCE_RESET
EXPIRY_DATE_UPDATED
SENT_TO_CUSTOMER
RESENT
NOTE_ADDED
USED_IN_ORDER
}
input GiftCardFilterInput {
isActive: Boolean
tag: String
tags: [String]
products: [ID]
usedBy: [ID]
currency: String
currentBalance: PriceRangeInput
initialBalance: PriceRangeInput
}
type GiftCardResend {
giftCard: GiftCard
errors: [GiftCardError!]!
}
input GiftCardResendInput {
id: ID!
email: String
channel: String!
}
type GiftCardSettings {
expiryType: GiftCardSettingsExpiryTypeEnum!
expiryPeriod: TimePeriod
}
type GiftCardSettingsError {
field: String
message: String
code: GiftCardSettingsErrorCode!
}
enum GiftCardSettingsErrorCode {
INVALID
REQUIRED
GRAPHQL_ERROR
}
enum GiftCardSettingsExpiryTypeEnum {
NEVER_EXPIRE
EXPIRY_PERIOD
}
type GiftCardSettingsUpdate {
giftCardSettings: GiftCardSettings
errors: [GiftCardSettingsError!]!
}
input GiftCardSettingsUpdateInput {
expiryType: GiftCardSettingsExpiryTypeEnum
expiryPeriod: TimePeriodInputType
}
enum GiftCardSortField {
TAG
PRODUCT
USED_BY
CURRENT_BALANCE
}
input GiftCardSortingInput {
direction: OrderDirection!
field: GiftCardSortField!
}
type GiftCardUpdate {
giftCardErrors: [GiftCardError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [GiftCardError!]!
giftCard: GiftCard
}
input GiftCardUpdateInput {
tag: String
expiryDate: Date
startDate: Date
endDate: Date
balanceAmount: PositiveDecimal
}
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 {
invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [InvoiceError!]!
invoice: Invoice
}
input InvoiceCreateInput {
number: String!
url: String!
}
type InvoiceDelete {
invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
order: Order
invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceRequestDelete {
invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceSendNotification {
invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [InvoiceError!]!
invoice: Invoice
}
type InvoiceUpdate {
invoiceErrors: [InvoiceError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [InvoiceError!]!
invoice: Invoice
}
scalar JSONString
interface Job {
status: JobStatusEnum!
createdAt: DateTime!
updatedAt: DateTime!
message: String
}
enum JobStatusEnum {
PENDING
SUCCESS
FAILED
DELETED
}
enum LanguageCodeEnum {
AF
AF_NA
AF_ZA
AGQ
AGQ_CM
AK
AK_GH
AM
AM_ET
AR
AR_AE
AR_BH
AR_DJ
AR_DZ
AR_EG
AR_EH
AR_ER
AR_IL
AR_IQ
AR_JO
AR_KM
AR_KW
AR_LB
AR_LY
AR_MA
AR_MR
AR_OM
AR_PS
AR_QA
AR_SA
AR_SD
AR_SO
AR_SS
AR_SY
AR_TD
AR_TN
AR_YE
AS
AS_IN
ASA
ASA_TZ
AST
AST_ES
AZ
AZ_CYRL
AZ_CYRL_AZ
AZ_LATN
AZ_LATN_AZ
BAS
BAS_CM
BE
BE_BY
BEM
BEM_ZM
BEZ
BEZ_TZ
BG
BG_BG
BM
BM_ML
BN
BN_BD
BN_IN
BO
BO_CN
BO_IN
BR
BR_FR
BRX
BRX_IN
BS
BS_CYRL
BS_CYRL_BA
BS_LATN
BS_LATN_BA
CA
CA_AD
CA_ES
CA_ES_VALENCIA
CA_FR
CA_IT
CCP
CCP_BD
CCP_IN
CE
CE_RU
CEB
CEB_PH
CGG
CGG_UG
CHR
CHR_US
CKB
CKB_IQ
CKB_IR
CS
CS_CZ
CU
CU_RU
CY
CY_GB
DA
DA_DK
DA_GL
DAV
DAV_KE
DE
DE_AT
DE_BE
DE_CH
DE_DE
DE_IT
DE_LI
DE_LU
DJE
DJE_NE
DSB
DSB_DE
DUA
DUA_CM
DYO
DYO_SN
DZ
DZ_BT
EBU
EBU_KE
EE
EE_GH
EE_TG
EL
EL_CY
EL_GR
EN
EN_AE
EN_AG
EN_AI
EN_AS
EN_AT
EN_AU
EN_BB
EN_BE
EN_BI
EN_BM
EN_BS
EN_BW
EN_BZ
EN_CA
EN_CC
EN_CH
EN_CK
EN_CM
EN_CX
EN_CY
EN_DE
EN_DG
EN_DK
EN_DM
EN_ER
EN_FI
EN_FJ
EN_FK
EN_FM
EN_GB
EN_GD
EN_GG
EN_GH
EN_GI
EN_GM
EN_GU
EN_GY
EN_HK
EN_IE
EN_IL
EN_IM
EN_IN
EN_IO
EN_JE
EN_JM
EN_KE
EN_KI
EN_KN
EN_KY
EN_LC
EN_LR
EN_LS
EN_MG
EN_MH
EN_MO
EN_MP
EN_MS
EN_MT
EN_MU
EN_MW
EN_MY
EN_NA
EN_NF
EN_NG
EN_NL
EN_NR
EN_NU
EN_NZ
EN_PG
EN_PH
EN_PK
EN_PN
EN_PR
EN_PW
EN_RW
EN_SB
EN_SC
EN_SD
EN_SE
EN_SG
EN_SH
EN_SI
EN_SL
EN_SS
EN_SX
EN_SZ
EN_TC
EN_TK
EN_TO
EN_TT
EN_TV
EN_TZ
EN_UG
EN_UM
EN_US
EN_VC
EN_VG
EN_VI
EN_VU
EN_WS
EN_ZA
EN_ZM
EN_ZW
EO
ES
ES_AR
ES_BO
ES_BR
ES_BZ
ES_CL
ES_CO
ES_CR
ES_CU
ES_DO
ES_EA
ES_EC
ES_ES
ES_GQ
ES_GT
ES_HN
ES_IC
ES_MX
ES_NI
ES_PA
ES_PE
ES_PH
ES_PR
ES_PY
ES_SV
ES_US
ES_UY
ES_VE
ET
ET_EE
EU
EU_ES
EWO
EWO_CM
FA
FA_AF
FA_IR
FF
FF_ADLM
FF_ADLM_BF
FF_ADLM_CM
FF_ADLM_GH
FF_ADLM_GM
FF_ADLM_GN
FF_ADLM_GW
FF_ADLM_LR
FF_ADLM_MR
FF_ADLM_NE
FF_ADLM_NG
FF_ADLM_SL
FF_ADLM_SN
FF_LATN
FF_LATN_BF
FF_LATN_CM
FF_LATN_GH
FF_LATN_GM
FF_LATN_GN
FF_LATN_GW
FF_LATN_LR
FF_LATN_MR
FF_LATN_NE
FF_LATN_NG
FF_LATN_SL
FF_LATN_SN
FI
FI_FI
FIL
FIL_PH
FO
FO_DK
FO_FO
FR
FR_BE
FR_BF
FR_BI
FR_BJ
FR_BL
FR_CA
FR_CD
FR_CF
FR_CG
FR_CH
FR_CI
FR_CM
FR_DJ
FR_DZ
FR_FR
FR_GA
FR_GF
FR_GN
FR_GP
FR_GQ
FR_HT
FR_KM
FR_LU
FR_MA
FR_MC
FR_MF
FR_MG
FR_ML
FR_MQ
FR_MR
FR_MU
FR_NC
FR_NE
FR_PF
FR_PM
FR_RE
FR_RW
FR_SC
FR_SN
FR_SY
FR_TD
FR_TG
FR_TN
FR_VU
FR_WF
FR_YT
FUR
FUR_IT
FY
FY_NL
GA
GA_GB
GA_IE
GD
GD_GB
GL
GL_ES
GSW
GSW_CH
GSW_FR
GSW_LI
GU
GU_IN
GUZ
GUZ_KE
GV
GV_IM
HA
HA_GH
HA_NE
HA_NG
HAW
HAW_US
HE
HE_IL
HI
HI_IN
HR
HR_BA
HR_HR
HSB
HSB_DE
HU
HU_HU
HY
HY_AM
IA
ID
ID_ID
IG
IG_NG
II
II_CN
IS
IS_IS
IT
IT_CH
IT_IT
IT_SM
IT_VA
JA
JA_JP
JGO
JGO_CM
JMC
JMC_TZ
JV
JV_ID
KA
KA_GE
KAB
KAB_DZ
KAM
KAM_KE
KDE
KDE_TZ
KEA
KEA_CV
KHQ
KHQ_ML
KI
KI_KE
KK
KK_KZ
KKJ
KKJ_CM
KL
KL_GL
KLN
KLN_KE
KM
KM_KH
KN
KN_IN
KO
KO_KP
KO_KR
KOK
KOK_IN
KS
KS_ARAB
KS_ARAB_IN
KSB
KSB_TZ
KSF
KSF_CM
KSH
KSH_DE
KU
KU_TR
KW
KW_GB
KY
KY_KG
LAG
LAG_TZ
LB
LB_LU
LG
LG_UG
LKT
LKT_US
LN
LN_AO
LN_CD
LN_CF
LN_CG
LO
LO_LA
LRC
LRC_IQ
LRC_IR
LT
LT_LT
LU
LU_CD
LUO
LUO_KE
LUY
LUY_KE
LV
LV_LV
MAI
MAI_IN
MAS
MAS_KE
MAS_TZ
MER
MER_KE
MFE
MFE_MU
MG
MG_MG
MGH
MGH_MZ
MGO
MGO_CM
MI
MI_NZ
MK
MK_MK
ML
ML_IN
MN
MN_MN
MNI
MNI_BENG
MNI_BENG_IN
MR
MR_IN
MS
MS_BN
MS_ID
MS_MY
MS_SG
MT
MT_MT
MUA
MUA_CM
MY
MY_MM
MZN
MZN_IR
NAQ
NAQ_NA
NB
NB_NO
NB_SJ
ND
ND_ZW
NDS
NDS_DE
NDS_NL
NE
NE_IN
NE_NP
NL
NL_AW
NL_BE
NL_BQ
NL_CW
NL_NL
NL_SR
NL_SX
NMG
NMG_CM
NN
NN_NO
NNH
NNH_CM
NUS
NUS_SS
NYN
NYN_UG
OM
OM_ET
OM_KE
OR
OR_IN
OS
OS_GE
OS_RU
PA
PA_ARAB
PA_ARAB_PK
PA_GURU
PA_GURU_IN
PCM
PCM_NG
PL
PL_PL
PRG
PS
PS_AF
PS_PK
PT
PT_AO
PT_BR
PT_CH
PT_CV
PT_GQ
PT_GW
PT_LU
PT_MO
PT_MZ
PT_PT
PT_ST
PT_TL
QU
QU_BO
QU_EC
QU_PE
RM
RM_CH
RN
RN_BI
RO
RO_MD
RO_RO
ROF
ROF_TZ
RU
RU_BY
RU_KG
RU_KZ
RU_MD
RU_RU
RU_UA
RW
RW_RW
RWK
RWK_TZ
SAH
SAH_RU
SAQ
SAQ_KE
SAT
SAT_OLCK
SAT_OLCK_IN
SBP
SBP_TZ
SD
SD_ARAB
SD_ARAB_PK
SD_DEVA
SD_DEVA_IN
SE
SE_FI
SE_NO
SE_SE
SEH
SEH_MZ
SES
SES_ML
SG
SG_CF
SHI
SHI_LATN
SHI_LATN_MA
SHI_TFNG
SHI_TFNG_MA
SI
SI_LK
SK
SK_SK
SL
SL_SI
SMN
SMN_FI
SN
SN_ZW
SO
SO_DJ
SO_ET
SO_KE
SO_SO
SQ
SQ_AL
SQ_MK
SQ_XK
SR
SR_CYRL
SR_CYRL_BA
SR_CYRL_ME
SR_CYRL_RS
SR_CYRL_XK
SR_LATN
SR_LATN_BA
SR_LATN_ME
SR_LATN_RS
SR_LATN_XK
SU
SU_LATN
SU_LATN_ID
SV
SV_AX
SV_FI
SV_SE
SW
SW_CD
SW_KE
SW_TZ
SW_UG
TA
TA_IN
TA_LK
TA_MY
TA_SG
TE
TE_IN
TEO
TEO_KE
TEO_UG
TG
TG_TJ
TH
TH_TH
TI
TI_ER
TI_ET
TK
TK_TM
TO
TO_TO
TR
TR_CY
TR_TR
TT
TT_RU
TWQ
TWQ_NE
TZM
TZM_MA
UG
UG_CN
UK
UK_UA
UR
UR_IN
UR_PK
UZ
UZ_ARAB
UZ_ARAB_AF
UZ_CYRL
UZ_CYRL_UZ
UZ_LATN
UZ_LATN_UZ
VAI
VAI_LATN
VAI_LATN_LR
VAI_VAII
VAI_VAII_LR
VI
VI_VN
VO
VUN
VUN_TZ
WAE
WAE_CH
WO
WO_SN
XH
XH_ZA
XOG
XOG_UG
YAV
YAV_CM
YI
YO
YO_BJ
YO_NG
YUE
YUE_HANS
YUE_HANS_CN
YUE_HANT
YUE_HANT_HK
ZGH
ZGH_MA
ZH
ZH_HANS
ZH_HANS_CN
ZH_HANS_HK
ZH_HANS_MO
ZH_HANS_SG
ZH_HANT
ZH_HANT_HK
ZH_HANT_MO
ZH_HANT_TW
ZU
ZU_ZA
}
type LanguageDisplay {
code: LanguageCodeEnum!
language: String!
}
type LimitInfo {
currentUsage: Limits!
allowedUsage: Limits!
}
type Limits {
channels: Int
orders: Int
productVariants: Int
staffUsers: Int
warehouses: Int
}
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
extensions: [AppManifestExtension!]!
}
type Margin {
start: Int
stop: Int
}
enum MeasurementUnitsEnum {
CM
M
KM
FT
YD
INCH
SQ_CM
SQ_M
SQ_KM
SQ_FT
SQ_YD
SQ_INCH
CUBIC_MILLIMETER
CUBIC_CENTIMETER
CUBIC_DECIMETER
CUBIC_METER
LITER
CUBIC_FOOT
CUBIC_INCH
CUBIC_YARD
QT
PINT
FL_OZ
ACRE_IN
ACRE_FT
G
LB
OZ
KG
TONNE
}
type Menu implements Node & ObjectWithMetadata {
id: ID!
name: String!
slug: String!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
items: [MenuItem]
}
type MenuBulkDelete {
count: Int!
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
}
type MenuCountableConnection {
pageInfo: PageInfo!
edges: [MenuCountableEdge!]!
totalCount: Int
}
type MenuCountableEdge {
node: Menu!
cursor: String!
}
type MenuCreate {
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
menu: Menu
}
input MenuCreateInput {
name: String!
slug: String
items: [MenuItemInput]
}
type MenuDelete {
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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]
metadata: [MetadataFilter]
}
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 {
count: Int!
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
}
type MenuItemCountableConnection {
pageInfo: PageInfo!
edges: [MenuItemCountableEdge!]!
totalCount: Int
}
type MenuItemCountableEdge {
node: MenuItem!
cursor: String!
}
type MenuItemCreate {
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
menuItem: MenuItem
}
input MenuItemCreateInput {
name: String!
url: String
category: ID
collection: ID
page: ID
menu: ID!
parent: ID
}
type MenuItemDelete {
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
menuItem: MenuItem
}
input MenuItemFilterInput {
search: String
metadata: [MetadataFilter]
}
input MenuItemInput {
name: String
url: String
category: ID
collection: ID
page: ID
}
type MenuItemMove {
menu: Menu
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type MenuItemTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
menuItem: MenuItem
}
type MenuItemTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
type MenuItemUpdate {
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
menuItem: MenuItem
}
enum MenuItemsSortField {
NAME
}
enum MenuSortField {
NAME
ITEMS_COUNT
}
input MenuSortingInput {
direction: OrderDirection!
field: MenuSortField!
}
type MenuUpdate {
menuErrors: [MenuError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MenuError!]!
menu: Menu
}
type MetadataError {
field: String
message: String
code: MetadataErrorCode!
}
enum MetadataErrorCode {
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
}
input MetadataFilter {
key: String!
value: String
}
input MetadataInput {
key: String!
value: String!
}
type MetadataItem {
key: String!
value: String!
}
type Money {
currency: String!
amount: Float!
}
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
giftCardSettingsUpdate(input: GiftCardSettingsUpdateInput!): GiftCardSettingsUpdate
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: ShippingPriceTranslationInput!, 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
productMediaCreate(input: ProductMediaCreateInput!): ProductMediaCreate
productVariantReorder(moves: [ReorderInput]!, productId: ID!): ProductVariantReorder
productMediaDelete(id: ID!): ProductMediaDelete
productMediaBulkDelete(ids: [ID]!): ProductMediaBulkDelete
productMediaReorder(mediaIds: [ID]!, productId: ID!): ProductMediaReorder
productMediaUpdate(id: ID!, input: ProductMediaUpdateInput!): ProductMediaUpdate
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
variantMediaAssign(mediaId: ID!, variantId: ID!): VariantMediaAssign
variantMediaUnassign(mediaId: ID!, variantId: ID!): VariantMediaUnassign
paymentCapture(amount: PositiveDecimal, paymentId: ID!): PaymentCapture
paymentRefund(amount: PositiveDecimal, paymentId: ID!): PaymentRefund
paymentVoid(paymentId: ID!): PaymentVoid
paymentInitialize(channel: String, 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 @deprecated(reason: "This field will be removed in Saleor 4.0.")
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
orderFulfillmentApprove(id: ID!, notifyCustomer: Boolean!): FulfillmentApprove
orderFulfillmentUpdateTracking(id: ID!, input: FulfillmentUpdateTrackingInput!): FulfillmentUpdateTracking
orderFulfillmentRefundProducts(input: OrderRefundProductsInput!, order: ID!): FulfillmentRefundProducts
orderFulfillmentReturnProducts(input: OrderReturnProductsInput!, order: ID!): FulfillmentReturnProducts
orderLinesCreate(id: ID!, input: [OrderLineCreateInput]!): OrderLinesCreate
orderLineDelete(id: ID!): OrderLineDelete
orderLineUpdate(id: ID!, input: OrderLineInput!): OrderLineUpdate
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
invoiceSendNotification(id: ID!): InvoiceSendNotification
giftCardActivate(id: ID!): GiftCardActivate
giftCardCreate(input: GiftCardCreateInput!): GiftCardCreate
giftCardDelete(id: ID!): GiftCardDelete
giftCardDeactivate(id: ID!): GiftCardDeactivate
giftCardUpdate(id: ID!, input: GiftCardUpdateInput!): GiftCardUpdate
giftCardResend(input: GiftCardResendInput!): GiftCardResend
giftCardAddNote(id: ID!, input: GiftCardAddNoteInput!): GiftCardAddNote
giftCardBulkDelete(ids: [ID]!): GiftCardBulkDelete
giftCardBulkActivate(ids: [ID]!): GiftCardBulkActivate
giftCardBulkDeactivate(ids: [ID]!): GiftCardBulkDeactivate
pluginUpdate(channelId: ID, id: ID!, input: PluginUpdateInput!): PluginUpdate
externalNotificationTrigger(channel: String!, input: ExternalNotificationTriggerInput!, pluginId: String): ExternalNotificationTrigger
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!, token: UUID): CheckoutAddPromoCode
checkoutBillingAddressUpdate(billingAddress: AddressInput!, checkoutId: ID, token: UUID): CheckoutBillingAddressUpdate
checkoutComplete(checkoutId: ID, paymentData: JSONString, redirectUrl: String, storeSource: Boolean = false, token: UUID): CheckoutComplete
checkoutCreate(input: CheckoutCreateInput!): CheckoutCreate
checkoutCustomerAttach(checkoutId: ID, customerId: ID, token: UUID): CheckoutCustomerAttach
checkoutCustomerDetach(checkoutId: ID, token: UUID): CheckoutCustomerDetach
checkoutEmailUpdate(checkoutId: ID, email: String!, token: UUID): CheckoutEmailUpdate
checkoutLineDelete(checkoutId: ID, lineId: ID, token: UUID): CheckoutLineDelete
checkoutLinesAdd(checkoutId: ID, lines: [CheckoutLineInput]!, token: UUID): CheckoutLinesAdd
checkoutLinesUpdate(checkoutId: ID, lines: [CheckoutLineInput]!, token: UUID): CheckoutLinesUpdate
checkoutRemovePromoCode(checkoutId: ID, promoCode: String!, token: UUID): CheckoutRemovePromoCode
checkoutPaymentCreate(checkoutId: ID, input: PaymentInput!, token: UUID): CheckoutPaymentCreate
checkoutShippingAddressUpdate(checkoutId: ID, shippingAddress: AddressInput!, token: UUID): CheckoutShippingAddressUpdate
checkoutShippingMethodUpdate(checkoutId: ID, shippingMethodId: ID!, token: UUID): CheckoutShippingMethodUpdate @deprecated(reason: "This field will be removed in Saleor 4.0. Use `checkoutDeliveryMethodUpdate` instead.")
checkoutDeliveryMethodUpdate(deliveryMethodId: ID, token: UUID): CheckoutDeliveryMethodUpdate
checkoutLanguageCodeUpdate(checkoutId: ID, languageCode: LanguageCodeEnum!, token: UUID): CheckoutLanguageCodeUpdate
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: AttributeValueUpdateInput!): AttributeValueUpdate
attributeValueTranslate(id: ID!, input: AttributeValueTranslationInput!, 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(channel: String, 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(channel: String, newEmail: String!, password: String!, redirectUrl: String!): RequestEmailChange
confirmEmailChange(channel: String, 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(channel: String, 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
}
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
trackingClientId: String!
billingAddress: Address
shippingAddress: Address
shippingMethodName: String
collectionPointName: 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]
availableCollectionPoints: [Warehouse!]!
invoices: [Invoice]
number: String
original: ID
origin: OrderOriginEnum!
isPaid: Boolean!
paymentStatus: PaymentChargeStatusEnum!
paymentStatusDisplay: String!
payments: [Payment]
total: TaxedMoney!
undiscountedTotal: TaxedMoney!
shippingMethod: ShippingMethod @deprecated(reason: "This field will be removed in Saleor 4.0. Use `deliveryMethod` instead.")
subtotal: TaxedMoney!
statusDisplay: String
canFinalize: Boolean!
totalAuthorized: Money!
totalCaptured: Money!
events: [OrderEvent]
totalBalance: Money!
userEmail: String
isShippingRequired: Boolean!
deliveryMethod: DeliveryMethod
languageCode: String! @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `languageCodeEnum` field to fetch the language code. ")
languageCodeEnum: LanguageCodeEnum!
discount: Money @deprecated(reason: "This field will be removed in Saleor 4.0. Use discounts field.")
discountName: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use discounts field.")
translatedDiscountName: String @deprecated(reason: "This field will be removed in Saleor 4.0. Use discounts field. ")
discounts: [OrderDiscount!]
errors: [OrderError!]!
}
enum OrderAction {
CAPTURE
MARK_AS_PAID
REFUND
VOID
}
type OrderAddNote {
order: Order
event: OrderEvent
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input OrderAddNoteInput {
message: String!
}
type OrderBulkCancel {
count: Int!
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type OrderCancel {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type OrderCapture {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type OrderConfirm {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input OrderDiscountCommonInput {
valueType: DiscountValueTypeEnum!
value: PositiveDecimal!
reason: String
}
type OrderDiscountDelete {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
enum OrderDiscountType {
VOUCHER
MANUAL
}
type OrderDiscountUpdate {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input OrderDraftFilterInput {
customer: String
created: DateRangeInput
search: String
metadata: [MetadataFilter]
channels: [ID]
}
type OrderError {
field: String
message: String
code: OrderErrorCode!
warehouse: ID
orderLines: [ID!]
variants: [ID!]
addressType: AddressTypeEnum
}
enum OrderErrorCode {
BILLING_ADDRESS_NOT_SET
CANNOT_CANCEL_FULFILLMENT
CANNOT_CANCEL_ORDER
CANNOT_DELETE
CANNOT_DISCOUNT
CANNOT_REFUND
CANNOT_FULFILL_UNPAID_ORDER
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
app: App
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
ADDED_PRODUCTS
REMOVED_PRODUCTS
PLACED
PLACED_FROM_DRAFT
OVERSOLD_ITEMS
CANCELED
ORDER_MARKED_AS_PAID
ORDER_FULLY_PAID
ORDER_REPLACEMENT_CREATED
ORDER_DISCOUNT_ADDED
ORDER_DISCOUNT_AUTOMATICALLY_UPDATED
ORDER_DISCOUNT_UPDATED
ORDER_DISCOUNT_DELETED
ORDER_LINE_DISCOUNT_UPDATED
ORDER_LINE_DISCOUNT_REMOVED
ORDER_LINE_PRODUCT_DELETED
ORDER_LINE_VARIANT_DELETED
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
FULFILLMENT_AWAITS_APPROVAL
TRACKING_UPDATED
NOTE_ADDED
OTHER
}
input OrderFilterInput {
paymentStatus: [PaymentChargeStatusEnum]
status: [OrderStatusFilter]
customer: String
created: DateRangeInput
search: String
metadata: [MetadataFilter]
channels: [ID]
}
type OrderFulfill {
fulfillments: [Fulfillment]
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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!]
quantityToFulfill: Int!
unitDiscountType: DiscountValueTypeEnum
}
input OrderLineCreateInput {
quantity: Int!
variantId: ID!
}
type OrderLineDelete {
order: Order
orderLine: OrderLine
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type OrderLineDiscountRemove {
orderLine: OrderLine
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type OrderLineDiscountUpdate {
orderLine: OrderLine
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input OrderLineInput {
quantity: Int!
}
type OrderLineUpdate {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
orderLine: OrderLine
}
type OrderLinesCreate {
order: Order
orderLines: [OrderLine!]
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type OrderMarkAsPaid {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
enum OrderOriginEnum {
CHECKOUT
DRAFT
REISSUE
}
type OrderRefund {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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!
automaticallyFulfillNonShippableGiftCard: Boolean!
}
type OrderSettingsError {
field: String
message: String
code: OrderSettingsErrorCode!
}
enum OrderSettingsErrorCode {
INVALID
}
type OrderSettingsUpdate {
orderSettings: OrderSettings
orderSettingsErrors: [OrderSettingsError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderSettingsError!]!
}
input OrderSettingsUpdateInput {
automaticallyConfirmAllNewOrders: Boolean
automaticallyFulfillNonShippableGiftCard: 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 {
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
order: Order
}
input OrderUpdateInput {
billingAddress: AddressInput
userEmail: String
shippingAddress: AddressInput
}
type OrderUpdateShipping {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
input OrderUpdateShippingInput {
shippingMethod: ID
}
type OrderVoid {
order: Order
orderErrors: [OrderError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [OrderError!]!
}
type Page implements Node & ObjectWithMetadata {
id: ID!
seoTitle: String
seoDescription: String
title: String!
content: JSONString
publicationDate: Date
isPublished: Boolean!
slug: String!
pageType: PageType!
created: DateTime!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
contentJson: JSONString! @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `content` field instead.")
translation(languageCode: LanguageCodeEnum!): PageTranslation
attributes: [SelectedAttribute!]!
}
type PageAttributeAssign {
pageType: PageType
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
type PageAttributeUnassign {
pageType: PageType
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
type PageBulkDelete {
count: Int!
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
type PageBulkPublish {
count: Int!
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
type PageCountableConnection {
pageInfo: PageInfo!
edges: [PageCountableEdge!]!
totalCount: Int
}
type PageCountableEdge {
node: Page!
cursor: String!
}
type PageCreate {
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
page: Page
}
input PageCreateInput {
slug: String
title: String
content: JSONString
attributes: [AttributeValueInput!]
isPublished: Boolean
publicationDate: String
seo: SeoInput
pageType: ID!
}
type PageDelete {
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
metadata: [MetadataFilter]
pageTypes: [ID]
ids: [ID]
}
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 {
page: Page
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
enum PageSortField {
TITLE
SLUG
VISIBILITY
CREATION_DATE
PUBLICATION_DATE
}
input PageSortingInput {
direction: OrderDirection!
field: PageSortField!
}
type PageTranslatableContent implements Node {
id: ID!
seoTitle: String
seoDescription: String
title: String!
content: JSONString
contentJson: JSONString @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `content` field instead.")
translation(languageCode: LanguageCodeEnum!): PageTranslation
page: Page @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
attributeValues: [AttributeValueTranslatableContent!]!
}
type PageTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
page: PageTranslatableContent
}
type PageTranslation implements Node {
id: ID!
seoTitle: String
seoDescription: String
title: String
content: JSONString
language: LanguageDisplay!
contentJson: JSONString @deprecated(reason: "This field 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 {
count: Int!
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
type PageTypeCountableConnection {
pageInfo: PageInfo!
edges: [PageTypeCountableEdge!]!
totalCount: Int
}
type PageTypeCountableEdge {
node: PageType!
cursor: String!
}
type PageTypeCreate {
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
pageType: PageType
}
input PageTypeCreateInput {
name: String
slug: String
addAttributes: [ID!]
}
type PageTypeDelete {
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
pageType: PageType
}
input PageTypeFilterInput {
search: String
}
type PageTypeReorderAttributes {
pageType: PageType
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
}
enum PageTypeSortField {
NAME
SLUG
}
input PageTypeSortingInput {
direction: OrderDirection!
field: PageTypeSortField!
}
type PageTypeUpdate {
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
pageType: PageType
}
input PageTypeUpdateInput {
name: String
slug: String
addAttributes: [ID!]
removeAttributes: [ID!]
}
type PageUpdate {
pageErrors: [PageError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PageError!]!
page: Page
}
type PasswordChange {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type Payment implements Node {
id: ID!
gateway: String!
isActive: Boolean!
created: DateTime!
modified: DateTime!
token: String!
checkout: Checkout
order: Order
paymentMethodType: String!
customerIpAddress: String
chargeStatus: PaymentChargeStatusEnum!
actions: [OrderAction]!
total: Money
capturedAmount: Money
transactions: [Transaction]
availableCaptureAmount: Money
availableRefundAmount: Money
creditCard: CreditCard
}
type PaymentCapture {
payment: Payment
paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
CHANNEL_INACTIVE
}
input PaymentFilterInput {
checkouts: [ID]
}
type PaymentGateway {
name: String!
id: ID!
config: [GatewayConfigLine!]!
currencies: [String]!
}
type PaymentInitialize {
initializedPayment: PaymentInitialized
paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PaymentError!]!
}
type PaymentInitialized {
gateway: String!
name: String!
data: JSONString
}
input PaymentInput {
gateway: String!
token: String
amount: PositiveDecimal
returnUrl: String
}
type PaymentRefund {
payment: Payment
paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PaymentError!]!
}
type PaymentSource {
gateway: String!
paymentMethodId: String
creditCardInfo: CreditCard
}
type PaymentVoid {
payment: Payment
paymentErrors: [PaymentError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PaymentError!]!
}
type Permission {
code: PermissionEnum!
name: String!
}
enum PermissionEnum {
MANAGE_USERS
MANAGE_STAFF
IMPERSONATE_USER
MANAGE_APPS
MANAGE_CHANNELS
MANAGE_DISCOUNTS
MANAGE_PLUGINS
MANAGE_GIFT_CARD
MANAGE_MENUS
MANAGE_ORDERS
MANAGE_PAGES
MANAGE_PAGE_TYPES_AND_ATTRIBUTES
HANDLE_PAYMENTS
MANAGE_PRODUCTS
MANAGE_PRODUCT_TYPES_AND_ATTRIBUTES
MANAGE_SHIPPING
MANAGE_SETTINGS
MANAGE_TRANSLATIONS
MANAGE_CHECKOUTS
}
type PermissionGroupCreate {
permissionGroupErrors: [PermissionGroupError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PermissionGroupError!]!
group: Group
}
input PermissionGroupCreateInput {
addPermissions: [PermissionEnum!]
addUsers: [ID!]
name: String!
}
type PermissionGroupDelete {
permissionGroupErrors: [PermissionGroupError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
permissionGroupErrors: [PermissionGroupError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PermissionGroupError!]!
group: Group
}
input PermissionGroupUpdateInput {
addPermissions: [PermissionEnum!]
addUsers: [ID!]
name: String
removePermissions: [PermissionEnum!]
removeUsers: [ID!]
}
type Plugin {
id: ID!
name: String!
description: String!
globalConfiguration: PluginConfiguration
channelConfigurations: [PluginConfiguration!]!
}
type PluginConfiguration {
active: Boolean!
channel: Channel
configuration: [ConfigurationItem]
}
enum PluginConfigurationType {
PER_CHANNEL
GLOBAL
}
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 {
statusInChannels: PluginStatusInChannelsInput
search: String
type: PluginConfigurationType
}
enum PluginSortField {
NAME
IS_ACTIVE
}
input PluginSortingInput {
direction: OrderDirection!
field: PluginSortField!
}
input PluginStatusInChannelsInput {
active: Boolean!
channels: [ID!]!
}
type PluginUpdate {
plugin: Plugin
pluginsErrors: [PluginError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [PluginError!]!
}
input PluginUpdateInput {
active: Boolean
configuration: [ConfigurationItemInput]
}
scalar PositiveDecimal
enum PostalCodeRuleInclusionTypeEnum {
INCLUDE
EXCLUDE
}
input PriceInput {
currency: String!
amount: PositiveDecimal!
}
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: "This field will be removed in Saleor 4.0. Use the `description` field instead.")
thumbnail(size: Int): Image
pricing(address: AddressInput): ProductPricingInfo
isAvailable(address: AddressInput): Boolean
taxType: TaxType
attributes: [SelectedAttribute!]!
channelListings: [ProductChannelListing!]
mediaById(id: ID): ProductMedia
imageById(id: ID): ProductImage @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `mediaById` field instead.")
variants: [ProductVariant]
media: [ProductMedia!]
images: [ProductImage] @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `media` field instead.")
collections: [Collection]
translation(languageCode: LanguageCodeEnum!): ProductTranslation
availableForPurchase: Date
isAvailableForPurchase: Boolean
}
type ProductAttributeAssign {
productType: ProductType
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
input ProductAttributeAssignInput {
id: ID!
type: ProductAttributeType!
}
enum ProductAttributeType {
PRODUCT
VARIANT
}
type ProductAttributeUnassign {
productType: ProductType
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type ProductBulkDelete {
count: Int!
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
addVariants: [ID!]
removeVariants: [ID!]
}
type ProductChannelListingError {
field: String
message: String
code: ProductErrorCode!
attributes: [ID!]
values: [ID!]
channels: [ID!]
variants: [ID!]
}
type ProductChannelListingUpdate {
product: Product
productChannelListingErrors: [ProductChannelListingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductChannelListingError!]!
}
input ProductChannelListingUpdateInput {
updateChannels: [ProductChannelListingAddInput!]
removeChannels: [ID!]
}
type ProductCountableConnection {
pageInfo: PageInfo!
edges: [ProductCountableEdge!]!
totalCount: Int
}
type ProductCountableEdge {
node: Product!
cursor: String!
}
type ProductCreate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
UNSUPPORTED_MEDIA_PROVIDER
}
enum ProductFieldEnum {
NAME
DESCRIPTION
PRODUCT_TYPE
CATEGORY
PRODUCT_WEIGHT
COLLECTIONS
CHARGE_TAXES
PRODUCT_MEDIA
VARIANT_SKU
VARIANT_WEIGHT
VARIANT_MEDIA
}
input ProductFilterInput {
isPublished: Boolean
collections: [ID]
categories: [ID]
hasCategory: Boolean
attributes: [AttributeInput]
stockAvailability: StockAvailability
stocks: ProductStockFilterInput
search: String
metadata: [MetadataFilter]
price: PriceRangeInput
minimalPrice: PriceRangeInput
productTypes: [ID]
giftCard: Boolean
ids: [ID]
channel: String
}
type ProductImage {
id: ID!
alt: String
sortOrder: Int
url(size: Int): 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
}
type ProductMedia implements Node {
id: ID!
sortOrder: Int
alt: String!
type: ProductMediaType!
oembedData: JSONString!
url(size: Int): String!
}
type ProductMediaBulkDelete {
count: Int!
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type ProductMediaCreate {
product: Product
media: ProductMedia
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
input ProductMediaCreateInput {
alt: String
image: Upload
product: ID!
mediaUrl: String
}
type ProductMediaDelete {
product: Product
media: ProductMedia
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type ProductMediaReorder {
product: Product
media: [ProductMedia!]
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
enum ProductMediaType {
IMAGE
VIDEO
}
type ProductMediaUpdate {
product: Product
media: ProductMedia
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
input ProductMediaUpdateInput {
alt: String
}
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 {
product: Product
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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: "This field will be removed in Saleor 4.0. Use the `description` field instead.")
translation(languageCode: LanguageCodeEnum!): ProductTranslation
product: Product @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
attributeValues: [AttributeValueTranslatableContent!]!
}
type ProductTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
product: Product
}
type ProductTranslation implements Node {
id: ID!
seoTitle: String
seoDescription: String
name: String
description: JSONString
language: LanguageDisplay!
descriptionJson: JSONString @deprecated(reason: "This field 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]!
kind: ProductTypeKindEnum!
products(channel: String, before: String, after: String, first: Int, last: Int): ProductCountableConnection @deprecated(reason: "This field will be removed in Saleor 4.0. 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 {
count: Int!
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
enum ProductTypeConfigurable {
CONFIGURABLE
SIMPLE
}
type ProductTypeCountableConnection {
pageInfo: PageInfo!
edges: [ProductTypeCountableEdge!]!
totalCount: Int
}
type ProductTypeCountableEdge {
node: ProductType!
cursor: String!
}
type ProductTypeCreate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
productType: ProductType
}
type ProductTypeDelete {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
productType: ProductType
}
enum ProductTypeEnum {
DIGITAL
SHIPPABLE
}
input ProductTypeFilterInput {
search: String
configurable: ProductTypeConfigurable
productType: ProductTypeEnum
metadata: [MetadataFilter]
kind: ProductTypeKindEnum
ids: [ID]
}
input ProductTypeInput {
name: String
slug: String
kind: ProductTypeKindEnum
hasVariants: Boolean
productAttributes: [ID]
variantAttributes: [ID]
isShippingRequired: Boolean
isDigital: Boolean
weight: WeightScalar
taxCode: String
}
enum ProductTypeKindEnum {
NORMAL
GIFT_CARD
}
type ProductTypeReorderAttributes {
productType: ProductType
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
enum ProductTypeSortField {
NAME
DIGITAL
SHIPPING_REQUIRED
}
input ProductTypeSortingInput {
direction: OrderDirection!
field: ProductTypeSortField!
}
type ProductTypeUpdate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
productType: ProductType
}
type ProductUpdate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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!]!
margin: Int
quantityOrdered: Int
revenue(period: ReportingPeriod): TaxedMoney
images: [ProductImage] @deprecated(reason: "This field will be removed in Saleor 4.0. Use the `media` field instead.")
media: [ProductMedia!]
translation(languageCode: LanguageCodeEnum!): ProductVariantTranslation
digitalContent: DigitalContent
stocks(address: AddressInput, countryCode: CountryCode): [Stock]
quantityAvailable(address: AddressInput, countryCode: CountryCode): Int!
}
type ProductVariantBulkCreate {
count: Int!
productVariants: [ProductVariant!]!
bulkProductErrors: [BulkProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [BulkProductError!]!
}
input ProductVariantBulkCreateInput {
attributes: [BulkAttributeValueInput!]!
sku: String!
trackInventory: Boolean
weight: WeightScalar
stocks: [StockInput!]
channelListings: [ProductVariantChannelListingAddInput!]
}
type ProductVariantBulkDelete {
count: Int!
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
variant: ProductVariant
productChannelListingErrors: [ProductChannelListingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductChannelListingError!]!
}
type ProductVariantCountableConnection {
pageInfo: PageInfo!
edges: [ProductVariantCountableEdge!]!
totalCount: Int
}
type ProductVariantCountableEdge {
node: ProductVariant!
cursor: String!
}
type ProductVariantCreate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
productVariant: ProductVariant
}
input ProductVariantCreateInput {
attributes: [AttributeValueInput!]!
sku: String
trackInventory: Boolean
weight: WeightScalar
product: ID!
stocks: [StockInput!]
}
type ProductVariantDelete {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
productVariant: ProductVariant
}
input ProductVariantFilterInput {
search: String
sku: [String]
metadata: [MetadataFilter]
}
input ProductVariantInput {
attributes: [AttributeValueInput!]
sku: String
trackInventory: Boolean
weight: WeightScalar
}
type ProductVariantReorder {
product: Product
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type ProductVariantReorderAttributeValues {
productVariant: ProductVariant
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type ProductVariantSetDefault {
product: Product
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type ProductVariantStocksCreate {
productVariant: ProductVariant
bulkStockErrors: [BulkStockError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [BulkStockError!]!
}
type ProductVariantStocksDelete {
productVariant: ProductVariant
stockErrors: [StockError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [StockError!]!
}
type ProductVariantStocksUpdate {
productVariant: ProductVariant
bulkStockErrors: [BulkStockError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [BulkStockError!]!
}
type ProductVariantTranslatableContent implements Node {
id: ID!
name: String!
translation(languageCode: LanguageCodeEnum!): ProductVariantTranslation
productVariant: ProductVariant @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
attributeValues: [AttributeValueTranslatableContent!]!
}
type ProductVariantTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
productVariant: ProductVariant
}
type ProductVariantTranslation implements Node {
id: ID!
name: String!
language: LanguageDisplay!
}
type ProductVariantUpdate {
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
giftCardSettings: GiftCardSettings!
shippingZone(id: ID!, channel: String): ShippingZone
shippingZones(filter: ShippingZoneFilterInput, 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, 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(filter: PaymentFilterInput, 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, channel: String, before: String, after: String, first: Int, last: Int): OrderCountableConnection
draftOrders(sortBy: OrderSortingInput, filter: OrderDraftFilterInput, 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(sortBy: GiftCardSortingInput, filter: GiftCardFilterInput, 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
checkoutLines(before: String, after: String, first: Int, last: Int): CheckoutLineCountableConnection
channel(id: ID): Channel
channels: [Channel!]
attributes(filter: AttributeFilterInput, sortBy: AttributeSortingInput, channel: String, 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
appExtensions(filter: AppExtensionFilterInput, before: String, after: String, first: Int, last: Int): AppExtensionCountableConnection
appExtension(id: ID!): AppExtension
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: String!
}
type RefreshToken {
token: String
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
input ReorderInput {
id: ID!
sortOrder: Int
}
enum ReportingPeriod {
TODAY
THIS_MONTH
}
type RequestEmailChange {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type RequestPasswordReset {
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type Sale implements Node & ObjectWithMetadata {
id: ID!
name: String!
type: SaleType!
startDate: DateTime!
endDate: DateTime
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
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 {
sale: Sale
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
}
type SaleBulkDelete {
count: Int!
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
sale: Sale
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
}
type SaleCountableConnection {
pageInfo: PageInfo!
edges: [SaleCountableEdge!]!
totalCount: Int
}
type SaleCountableEdge {
node: Sale!
cursor: String!
}
type SaleCreate {
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
sale: Sale
}
type SaleDelete {
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
sale: Sale
}
input SaleFilterInput {
status: [DiscountStatusEnum]
saleType: DiscountValueTypeEnum
started: DateTimeRangeInput
search: String
metadata: [MetadataFilter]
}
input SaleInput {
name: String
type: DiscountValueTypeEnum
value: PositiveDecimal
products: [ID]
categories: [ID]
collections: [ID]
startDate: DateTime
endDate: DateTime
}
type SaleRemoveCatalogues {
sale: Sale
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type SaleTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
sale: Sale
}
type SaleTranslation implements Node {
id: ID!
name: String
language: LanguageDisplay!
}
enum SaleType {
FIXED
PERCENTAGE
}
type SaleUpdate {
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
sale: Sale
}
type SelectedAttribute {
attribute: Attribute!
values: [AttributeValue]!
}
input SeoInput {
title: String
description: String
}
type SetPassword {
token: String
refreshToken: String
csrfToken: String
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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!
description: JSONString
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 {
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingMethodPostalCodeRule implements Node {
start: String
end: String
inclusionType: PostalCodeRuleInclusionTypeEnum
id: ID!
}
type ShippingMethodTranslatableContent implements Node {
id: ID!
name: String!
description: JSONString
translation(languageCode: LanguageCodeEnum!): ShippingMethodTranslation
shippingMethod: ShippingMethod @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type ShippingMethodTranslation implements Node {
id: ID!
name: String
description: JSONString
language: LanguageDisplay!
}
enum ShippingMethodTypeEnum {
PRICE
WEIGHT
}
input ShippingPostalCodeRulesCreateInputRange {
start: String!
end: String
}
type ShippingPriceBulkDelete {
count: Int!
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingPriceCreate {
shippingZone: ShippingZone
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingPriceDelete {
shippingMethod: ShippingMethod
shippingZone: ShippingZone
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingPriceExcludeProducts {
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
input ShippingPriceExcludeProductsInput {
products: [ID]!
}
input ShippingPriceInput {
name: String
description: JSONString
minimumOrderWeight: WeightScalar
maximumOrderWeight: WeightScalar
maximumDeliveryDays: Int
minimumDeliveryDays: Int
type: ShippingMethodTypeEnum
shippingZone: ID
addPostalCodeRules: [ShippingPostalCodeRulesCreateInputRange!]
deletePostalCodeRules: [ID!]
inclusionType: PostalCodeRuleInclusionTypeEnum
}
type ShippingPriceRemoveProductFromExclude {
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingPriceTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
shippingMethod: ShippingMethod
}
input ShippingPriceTranslationInput {
name: String
description: JSONString
}
type ShippingPriceUpdate {
shippingZone: ShippingZone
shippingMethod: ShippingMethod
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingZone implements Node & ObjectWithMetadata {
id: ID!
name: String!
default: Boolean!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
priceRange: MoneyRange
countries: [CountryDisplay]
shippingMethods: [ShippingMethod]
warehouses: [Warehouse!]!
channels: [Channel!]!
description: String
}
type ShippingZoneBulkDelete {
count: Int!
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
}
type ShippingZoneCountableConnection {
pageInfo: PageInfo!
edges: [ShippingZoneCountableEdge!]!
totalCount: Int
}
type ShippingZoneCountableEdge {
node: ShippingZone!
cursor: String!
}
type ShippingZoneCreate {
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
shippingZone: ShippingZone
}
input ShippingZoneCreateInput {
name: String
description: String
countries: [String]
default: Boolean
addWarehouses: [ID]
addChannels: [ID!]
}
type ShippingZoneDelete {
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
shippingZone: ShippingZone
}
input ShippingZoneFilterInput {
search: String
channels: [ID]
}
type ShippingZoneUpdate {
shippingErrors: [ShippingError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShippingError!]!
shippingZone: ShippingZone
}
input ShippingZoneUpdateInput {
name: String
description: String
countries: [String]
default: Boolean
addWarehouses: [ID]
addChannels: [ID!]
removeWarehouses: [ID]
removeChannels: [ID!]
}
type Shop {
availablePaymentGateways(currency: String, channel: String): [PaymentGateway!]!
availableExternalAuthentications: [ExternalAuthentication!]!
availableShippingMethods(channel: String!, address: AddressInput): [ShippingMethod]
channelCurrencies: [String!]!
countries(languageCode: LanguageCodeEnum): [CountryDisplay!]!
defaultCountry: CountryDisplay
defaultMailSenderName: String
defaultMailSenderAddress: String
description: String
domain: Domain!
languages: [LanguageDisplay]!
name: String!
permissions: [Permission]!
phonePrefixes: [String]!
headerText: String
includeTaxesInPrices: Boolean!
fulfillmentAutoApprove: Boolean!
fulfillmentAllowUnpaid: 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]
limits: LimitInfo!
version: String!
}
type ShopAddressUpdate {
shop: Shop
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShopError!]!
}
type ShopDomainUpdate {
shop: Shop
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
shop: Shop
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShopError!]!
}
input ShopSettingsInput {
headerText: String
description: String
includeTaxesInPrices: Boolean
displayGrossPrices: Boolean
chargeTaxesOnShipping: Boolean
trackInventoryByDefault: Boolean
defaultWeightUnit: WeightUnitsEnum
automaticFulfillmentDigitalProducts: Boolean
fulfillmentAutoApprove: Boolean
fulfillmentAllowUnpaid: Boolean
defaultDigitalMaxDownloads: Int
defaultDigitalUrlValidDays: Int
defaultMailSenderName: String
defaultMailSenderAddress: String
customerSetPasswordUrl: String
}
type ShopSettingsTranslate {
shop: Shop
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
}
input ShopSettingsTranslationInput {
headerText: String
description: String
}
type ShopSettingsUpdate {
shop: Shop
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShopError!]!
}
type ShopTranslation implements Node {
id: ID!
headerText: String!
description: String!
language: LanguageDisplay!
}
input SiteDomainInput {
domain: String
name: String
}
type StaffBulkDelete {
count: Int!
staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [StaffError!]!
}
type StaffCreate {
staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [StaffError!]!
user: User
}
input StaffCreateInput {
firstName: String
lastName: String
email: String
isActive: Boolean
note: String
addGroups: [ID!]
redirectUrl: String
}
type StaffDelete {
staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [StaffError!]!
user: User
}
type StaffError {
field: String
message: String
code: AccountErrorCode!
addressType: AddressTypeEnum
permissions: [PermissionEnum!]
groups: [ID!]
users: [ID!]
}
enum StaffMemberStatus {
ACTIVE
DEACTIVATED
}
type StaffNotificationRecipient implements Node {
user: User
active: Boolean
id: ID!
email: String
}
type StaffNotificationRecipientCreate {
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShopError!]!
staffNotificationRecipient: StaffNotificationRecipient
}
type StaffNotificationRecipientDelete {
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShopError!]!
staffNotificationRecipient: StaffNotificationRecipient
}
input StaffNotificationRecipientInput {
user: ID
email: String
active: Boolean
}
type StaffNotificationRecipientUpdate {
shopErrors: [ShopError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ShopError!]!
staffNotificationRecipient: StaffNotificationRecipient
}
type StaffUpdate {
staffErrors: [StaffError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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!
}
type TaxType {
description: String
taxCode: String
}
type TaxedMoney {
currency: String!
gross: Money!
net: Money!
tax: Money!
}
type TaxedMoneyRange {
start: TaxedMoney
stop: TaxedMoney
}
type TimePeriod {
amount: Int!
type: TimePeriodTypeEnum!
}
input TimePeriodInputType {
amount: Int!
type: TimePeriodTypeEnum!
}
enum TimePeriodTypeEnum {
DAY
WEEK
MONTH
YEAR
}
type Transaction implements Node {
id: ID!
created: DateTime!
payment: Payment!
token: String!
kind: TransactionKind!
isSuccess: Boolean!
error: String
gatewayResponse: JSONString!
amount: Money
}
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 {
metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [MetadataError!]!
item: ObjectWithMetadata
}
type UpdatePrivateMetadata {
metadataErrors: [MetadataError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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: "This field will be removed in Saleor 4.0. 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
userPermissions: [UserPermission]
permissionGroups: [Group]
editableGroups: [Group]
avatar(size: Int): Image
events: [CustomerEvent]
storedPaymentSources(channel: String): [PaymentSource]
languageCode: LanguageCodeEnum!
}
type UserAvatarDelete {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type UserAvatarUpdate {
user: User
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
type UserBulkSetActive {
count: Int!
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
languageCode: LanguageCodeEnum
redirectUrl: String
channel: 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 VariantMediaAssign {
productVariant: ProductVariant
media: ProductMedia
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type VariantMediaUnassign {
productVariant: ProductVariant
media: ProductMedia
productErrors: [ProductError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [ProductError!]!
}
type VariantPricingInfo {
onSale: Boolean
discount: TaxedMoney
discountLocalCurrency: TaxedMoney
price: TaxedMoney
priceUndiscounted: TaxedMoney
priceLocalCurrency: TaxedMoney
}
type VerifyToken {
user: User
isValid: Boolean!
payload: GenericScalar
accountErrors: [AccountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [AccountError!]!
}
enum VolumeUnitsEnum {
CUBIC_MILLIMETER
CUBIC_CENTIMETER
CUBIC_DECIMETER
CUBIC_METER
LITER
CUBIC_FOOT
CUBIC_INCH
CUBIC_YARD
QT
PINT
FL_OZ
ACRE_IN
ACRE_FT
}
type Voucher implements Node & ObjectWithMetadata {
id: ID!
name: String
type: VoucherTypeEnum!
code: String!
usageLimit: Int
used: Int!
startDate: DateTime!
endDate: DateTime
applyOncePerOrder: Boolean!
applyOncePerCustomer: Boolean!
onlyForStaff: Boolean!
discountValueType: DiscountValueTypeEnum!
minCheckoutItemsQuantity: Int
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
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 {
voucher: Voucher
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
}
type VoucherBulkDelete {
count: Int!
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
voucher: Voucher
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
}
type VoucherCountableConnection {
pageInfo: PageInfo!
edges: [VoucherCountableEdge!]!
totalCount: Int
}
type VoucherCountableEdge {
node: Voucher!
cursor: String!
}
type VoucherCreate {
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
voucher: Voucher
}
type VoucherDelete {
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
voucher: Voucher
}
enum VoucherDiscountType {
FIXED
PERCENTAGE
SHIPPING
}
input VoucherFilterInput {
status: [DiscountStatusEnum]
timesUsed: IntRangeInput
discountType: [VoucherDiscountType]
started: DateTimeRangeInput
search: String
metadata: [MetadataFilter]
}
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
onlyForStaff: Boolean
usageLimit: Int
}
type VoucherRemoveCatalogues {
voucher: Voucher
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 @deprecated(reason: "This field will be removed in Saleor 4.0. Get model fields from the root level queries.")
}
type VoucherTranslate {
translationErrors: [TranslationError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [TranslationError!]!
voucher: Voucher
}
type VoucherTranslation implements Node {
id: ID!
name: String
language: LanguageDisplay!
}
enum VoucherTypeEnum {
SHIPPING
ENTIRE_ORDER
SPECIFIC_PRODUCT
}
type VoucherUpdate {
discountErrors: [DiscountError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [DiscountError!]!
voucher: Voucher
}
type Warehouse implements Node & ObjectWithMetadata {
id: ID!
name: String!
slug: String!
shippingZones(before: String, after: String, first: Int, last: Int): ShippingZoneCountableConnection!
address: Address!
email: String!
isPrivate: Boolean!
privateMetadata: [MetadataItem]!
metadata: [MetadataItem]!
companyName: String! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `Address.companyName` instead.")
clickAndCollectOption: WarehouseClickAndCollectOptionEnum!
}
enum WarehouseClickAndCollectOptionEnum {
DISABLED
LOCAL
ALL
}
type WarehouseCountableConnection {
pageInfo: PageInfo!
edges: [WarehouseCountableEdge!]!
totalCount: Int
}
type WarehouseCountableEdge {
node: Warehouse!
cursor: String!
}
type WarehouseCreate {
warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [WarehouseError!]!
warehouse: Warehouse
}
input WarehouseCreateInput {
slug: String
email: String
name: String!
address: AddressInput!
shippingZones: [ID]
}
type WarehouseDelete {
warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [WarehouseError!]!
warehouse: Warehouse
}
type WarehouseError {
field: String
message: String
code: WarehouseErrorCode!
}
enum WarehouseErrorCode {
ALREADY_EXISTS
GRAPHQL_ERROR
INVALID
NOT_FOUND
REQUIRED
UNIQUE
}
input WarehouseFilterInput {
clickAndCollectOption: WarehouseClickAndCollectOptionEnum
search: String
ids: [ID]
isPrivate: Boolean
}
type WarehouseShippingZoneAssign {
warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [WarehouseError!]!
warehouse: Warehouse
}
type WarehouseShippingZoneUnassign {
warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [WarehouseError!]!
warehouse: Warehouse
}
enum WarehouseSortField {
NAME
}
input WarehouseSortingInput {
direction: OrderDirection!
field: WarehouseSortField!
}
type WarehouseUpdate {
warehouseErrors: [WarehouseError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [WarehouseError!]!
warehouse: Warehouse
}
input WarehouseUpdateInput {
slug: String
email: String
name: String
address: AddressInput
clickAndCollectOption: WarehouseClickAndCollectOptionEnum
isPrivate: Boolean
}
type Webhook implements Node {
name: String!
targetUrl: String!
isActive: Boolean!
secretKey: String
id: ID!
events: [WebhookEvent!]!
app: App!
}
type WebhookCreate {
webhookErrors: [WebhookError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [WebhookError!]!
webhook: Webhook
}
input WebhookCreateInput {
name: String
targetUrl: String
events: [WebhookEventTypeEnum]
app: ID
isActive: Boolean
secretKey: String
}
type WebhookDelete {
webhookErrors: [WebhookError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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
PRODUCT_VARIANT_CREATED
PRODUCT_VARIANT_UPDATED
PRODUCT_VARIANT_DELETED
PRODUCT_VARIANT_OUT_OF_STOCK
PRODUCT_VARIANT_BACK_IN_STOCK
CHECKOUT_CREATED
CHECKOUT_UPDATED
FULFILLMENT_CREATED
FULFILLMENT_CANCELED
NOTIFY_USER
PAGE_CREATED
PAGE_UPDATED
PAGE_DELETED
PAYMENT_AUTHORIZE
PAYMENT_CAPTURE
PAYMENT_CONFIRM
PAYMENT_LIST_GATEWAYS
PAYMENT_PROCESS
PAYMENT_REFUND
PAYMENT_VOID
TRANSLATION_CREATED
TRANSLATION_UPDATED
}
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
PRODUCT_VARIANT_CREATED
PRODUCT_VARIANT_UPDATED
PRODUCT_VARIANT_DELETED
PRODUCT_VARIANT_OUT_OF_STOCK
PRODUCT_VARIANT_BACK_IN_STOCK
CHECKOUT_CREATED
CHECKOUT_UPDATED
FULFILLMENT_CREATED
FULFILLMENT_CANCELED
NOTIFY_USER
PAGE_CREATED
PAGE_UPDATED
PAGE_DELETED
PAYMENT_AUTHORIZE
PAYMENT_CAPTURE
PAYMENT_CONFIRM
PAYMENT_LIST_GATEWAYS
PAYMENT_PROCESS
PAYMENT_REFUND
PAYMENT_VOID
TRANSLATION_CREATED
TRANSLATION_UPDATED
}
type WebhookUpdate {
webhookErrors: [WebhookError!]! @deprecated(reason: "This field will be removed in Saleor 4.0. Use `errors` field instead.")
errors: [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 {
G
LB
OZ
KG
TONNE
}
scalar _Any
union _Entity = App | Address | User | Group | ProductVariant | Product | ProductType | Collection | Category | ProductMedia | ProductImage | PageType
type _Service {
sdl: String
}