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