# Copyright © Magento, Inc. All rights reserved. # See COPYING.txt for license details. type Mutation { addConfigurableProductsToCart(input: AddConfigurableProductsToCartInput): AddConfigurableProductsToCartOutput @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\AddConfigurableProductsToCart") } type ConfigurableProduct implements ProductInterface, PhysicalProductInterface, CustomizableProductInterface @doc(description: "ConfigurableProduct defines basic features of a configurable product and its simple product variants") { variants: [ConfigurableVariant] @doc(description: "An array of variants of products") @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\ConfigurableVariant") configurable_options: [ConfigurableProductOptions] @doc(description: "An array of linked simple product items") @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\Options") configurable_product_options_selection(configurableOptionValueUids: [ID!]): ConfigurableProductOptionsSelection @doc(description: "Metadata for the specified configurable options selection") @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\OptionsSelectionMetadata") } type ConfigurableVariant @doc(description: "An array containing all the simple product variants of a configurable product") { attributes: [ConfigurableAttributeOption] @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\Variant\\Attributes") @doc(description: "") product: SimpleProduct @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product") } type ConfigurableAttributeOption @doc(description: "ConfigurableAttributeOption contains the value_index (and other related information) assigned to a configurable product option") { label: String @doc(description: "A string that describes the configurable attribute option") code: String @doc(description: "The ID assigned to the attribute") value_index: Int @doc(description: "A unique index number assigned to the configurable product option") uid: ID! @doc(description: "The unique ID for a `ConfigurableAttributeOption` object") @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\Variant\\Attributes\\ConfigurableAttributeUid") } type ConfigurableProductOptions @doc(description: "ConfigurableProductOptions defines configurable attributes for the specified product") { id: Int @deprecated(reason: "Use uid instead") @doc(description: "The configurable option ID number assigned by the system") uid: ID! @doc(description: "The unique ID for a `ConfigurableProductOptions` object") attribute_id: String @deprecated(reason: "Use attribute_uid instead") @doc(description: "The ID assigned to the attribute") attribute_id_v2: Int @deprecated(reason: "Use attribute_uid instead") @doc(description: "The ID assigned to the attribute") attribute_uid: ID! @doc(description: "The unique ID for a `Attribute` object") attribute_code: String @doc(description: "A string that identifies the attribute") label: String @doc(description: "A string that describes the configurable product option, which is displayed on the UI") position: Int @doc(description: "A number that indicates the order in which the attribute is displayed") use_default: Boolean @doc(description: "Indicates whether the option is the default") values: [ConfigurableProductOptionsValues] @doc(description: "An array that defines the value_index codes assigned to the configurable product") product_id: Int @deprecated(reason: "`product_id` is not needed and can be obtained from it's parent") @doc(description: "This is the same as a product's id field") } type ConfigurableProductOptionsValues @doc(description: "ConfigurableProductOptionsValues contains the index number assigned to a configurable product option") { value_index: Int @deprecated(reason: "Use `uid` instead") @doc(description: "A unique index number assigned to the configurable product option") uid: ID @doc(description: "The unique ID for a `ConfigurableProductOptionsValues` object") @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\Variant\\Attributes\\ConfigurableAttributeUid") label: String @doc(description: "The label of the product") default_label: String @doc(description: "The label of the product on the default store") store_label: String @doc(description: "The label of the product on the current store") use_default_value: Boolean @doc(description: "Indicates whether to use the default_label") } input AddConfigurableProductsToCartInput { cart_id: String! cart_items: [ConfigurableProductCartItemInput!]! } type AddConfigurableProductsToCartOutput { cart: Cart! } input ConfigurableProductCartItemInput { data: CartItemInput! variant_sku: String @doc(description: "Deprecated. Use CartItemInput.sku instead.") parent_sku: String @doc(description: "Configurable product SKU.") customizable_options:[CustomizableOptionInput!] } type ConfigurableCartItem implements CartItemInterface { customizable_options: [SelectedCustomizableOption] @resolver(class: "Magento\\QuoteGraphQl\\Model\\Resolver\\CustomizableOptions") configurable_options: [SelectedConfigurableOption!]! @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\ConfigurableCartItemOptions") } type SelectedConfigurableOption { id: Int! @deprecated(reason: "Use SelectedConfigurableOption.configurable_product_option_uid instead") configurable_product_option_uid: ID! @doc(description: "The unique ID for a `ConfigurableProductOptions` object") option_label: String! value_id: Int! @deprecated(reason: "Use SelectedConfigurableOption.configurable_product_option_value_uid instead") configurable_product_option_value_uid: ID! @doc(description: "The unique ID for a `ConfigurableProductOptionsValues` object") value_label: String! } type ConfigurableWishlistItem implements WishlistItemInterface @doc(description: "A configurable product wish list item"){ child_sku: String! @doc(description: "The SKU of the simple product corresponding to a set of selected configurable options") @resolver(class: "\\Magento\\ConfigurableProductGraphQl\\Model\\Wishlist\\ChildSku") configurable_options: [SelectedConfigurableOption!] @resolver(class: "\\Magento\\ConfigurableProductGraphQl\\Model\\Wishlist\\ConfigurableOptions") @doc (description: "An array of selected configurable options") } type ConfigurableProductOptionsSelection @doc(description: "Metadata corresponding to the configurable options selection.") { options_available_for_selection: [ConfigurableOptionAvailableForSelection!] @doc(description: "Configurable options available for further selection based on current selection.") media_gallery: [MediaGalleryInterface!] @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\SelectionMediaGallery") @doc(description: "Product images and videos corresponding to the specified configurable options selection.") variant: SimpleProduct @resolver(class: "Magento\\ConfigurableProductGraphQl\\Model\\Resolver\\Variant\\Variant") @doc(description: "Variant represented by the specified configurable options selection. It is expected to be null, until selections are made for each configurable option.") } type ConfigurableOptionAvailableForSelection @doc(description: "Configurable option available for further selection based on current selection.") { option_value_uids: [ID!]! @doc(description: "Configurable option values available for further selection.") attribute_code: String! @doc(description: "Attribute code that uniquely identifies configurable option.") } type StoreConfig @doc(description: "The type contains information about a store config") { configurable_thumbnail_source : String @doc(description: "The configuration setting determines which thumbnail should be used in the cart for configurable products.") }