# Copyright © Magento, Inc. All rights reserved.
# See COPYING.txt for license details.
type Query {
products (
search: String @doc(description: "Performs a full-text search using the specified key words."),
filter: ProductFilterInput @doc(description: "Identifies which product attributes to search for and return."),
pageSize: Int = 20 @doc(description: "Specifies the maximum number of results to return at once. This attribute is optional."),
currentPage: Int = 1 @doc(description: "Specifies which page of results to return. The default value is 1."),
sort: ProductSortInput @doc(description: "Specifies which attribute to sort on, and whether to return the results in ascending or descending order.")
): Products
@resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Products") @doc(description: "The products query searches for products that match the criteria specified in the search and filter attributes") @cache(cacheTag: "cat_p", cacheIdentity: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Identity")
category (
id: Int @doc(description: "Id of the category")
): CategoryTree
@resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\CategoryTree") @doc(description: "The category query searches for categories that match the criteria specified in the search and filter attributes") @cache(cacheTag: "cat_c", cacheIdentity: "Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\CategoryTreeIdentity")
}
type Price @doc(description: "The Price object defines the price of a product as well as any tax-related adjustments.") {
amount: Money @doc(description: "The price of a product plus a three-letter currency code")
adjustments: [PriceAdjustment] @doc(description: "An array that provides information about tax, weee, or weee_tax adjustments")
}
type PriceAdjustment @doc(description: "The PricedAdjustment object defines the amount of money to apply as an adjustment, the type of adjustment to apply, and whether the item is included or excluded from the adjustment.") {
amount: Money @doc(description: "The amount of the price adjustment and its currency code")
code: PriceAdjustmentCodesEnum @doc(description: "Indicates whether the adjustment involves tax, weee, or weee_tax")
description: PriceAdjustmentDescriptionEnum @doc(description: "Indicates whether the entity described by the code attribute is included or excluded from the adjustment")
}
enum PriceAdjustmentCodesEnum @doc(description: "Note: This enumeration contains values defined in modules other than the Catalog module.") {
}
enum PriceAdjustmentDescriptionEnum @doc(description: "This enumeration states whether a price adjustment is included or excluded.") {
INCLUDED
EXCLUDED
}
enum PriceTypeEnum @doc(description: "This enumeration the price type.") {
FIXED
PERCENT
DYNAMIC
}
type ProductPrices @doc(description: "The ProductPrices object contains the regular price of an item, as well as its minimum and maximum prices. Only composite products, which include bundle, configurable, and grouped products, can contain a minimum and maximum price.") {
minimalPrice: Price @doc(description: "The lowest possible final price for all the options defined within a composite product. If you are specifying a price range, this would be the from value.")
maximalPrice: Price @doc(description: "The highest possible final price for all the options defined within a composite product. If you are specifying a price range, this would be the to value.")
regularPrice: Price @doc(description: "The base price of a product.")
}
type ProductLinks implements ProductLinksInterface @doc(description: "ProductLinks is an implementation of ProductLinksInterface.") {
}
interface ProductLinksInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\ProductLinkTypeResolverComposite") @doc(description:"ProductLinks contains information about linked products, including the link type and product type of each item.") {
sku: String @doc(description: "The identifier of the linked product")
link_type: String @doc(description: "One of related, associated, upsell, or crosssell")
linked_product_sku: String @doc(description: "The SKU of the linked product")
linked_product_type: String @doc(description: "The type of linked product (simple, virtual, bundle, downloadable, grouped, configurable)")
position: Int @doc(description: "The position within the list of product links")
}
type ProductTierPrices @doc(description: "The ProductTierPrices object defines a tier price, which is a quantity discount offered to a specific customer group.") {
customer_group_id: String @doc(description: "The ID of the customer group")
qty: Float @doc(description: "The number of items that must be purchased to qualify for tier pricing")
value: Float @doc(description: "The price of the fixed price item")
percentage_value: Float @doc(description: "The percentage discount of the item")
website_id: Float @doc(description: "The ID assigned to the website")
}
interface ProductInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\ProductInterfaceTypeResolverComposite") @doc(description: "The ProductInterface contains attributes that are common to all types of products. Note that descriptions may not be available for custom and EAV attributes.") {
id: Int @doc(description: "The ID number assigned to the product") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\EntityIdToId")
name: String @doc(description: "The product name. Customers use this name to identify the product.")
sku: String @doc(description: "A number or code assigned to a product to identify the product, options, price, and manufacturer")
description: ComplexTextValue @doc(description: "Detailed information about the product. The value can include simple HTML tags.") @resolver(class: "\\Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductComplexTextAttribute")
short_description: ComplexTextValue @doc(description: "A short description of the product. Its use depends on the theme.") @resolver(class: "\\Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductComplexTextAttribute")
special_price: Float @doc(description: "The discounted price of the product")
special_from_date: String @doc(description: "The beginning date that a product has a special price")
special_to_date: String @doc(description: "The end date that a product has a special price")
attribute_set_id: Int @doc(description: "The attribute set assigned to the product")
meta_title: String @doc(description: "A string that is displayed in the title bar and tab of the browser and in search results lists")
meta_keyword: String @doc(description: "A comma-separated list of keywords that are visible only to search engines")
meta_description: String @doc(description: "A brief overview of the product for search results listings, maximum 255 characters")
image: ProductImage @doc(description: "The relative path to the main image on the product page") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductImage")
small_image: ProductImage @doc(description: "The relative path to the small image, which is used on catalog pages") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductImage")
thumbnail: ProductImage @doc(description: "The relative path to the product's thumbnail image") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductImage")
new_from_date: String @doc(description: "The beginning date for new product listings, and determines if the product is featured as a new product") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\NewFromTo")
new_to_date: String @doc(description: "The end date for new product listings") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\NewFromTo")
tier_price: Float @doc(description: "The price when tier pricing is in effect and the items purchased threshold has been reached")
options_container: String @doc(description: "If the product has multiple options, determines where they appear on the product page")
created_at: String @doc(description: "Timestamp indicating when the product was created")
updated_at: String @doc(description: "Timestamp indicating when the product was updated")
country_of_manufacture: String @doc(description: "The product's country of origin")
type_id: String @doc(description: "One of simple, virtual, bundle, downloadable, grouped, or configurable")
websites: [Website] @doc(description: "An array of websites in which the product is available") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Websites")
product_links: [ProductLinksInterface] @doc(description: "An array of ProductLinks objects") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductLinks")
media_gallery_entries: [MediaGalleryEntry] @doc(description: "An array of MediaGalleryEntry objects") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\MediaGalleryEntries")
tier_prices: [ProductTierPrices] @doc(description: "An array of ProductTierPrices objects") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\TierPrices")
price: ProductPrices @doc(description: "A ProductPrices object, indicating the price of an item") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Price")
gift_message_available: String @doc(description: "Indicates whether a gift message is available")
manufacturer: Int @doc(description: "A number representing the product's manufacturer")
categories: [CategoryInterface] @doc(description: "The categories assigned to a product") @cache(cacheTag: "cat_c", cacheIdentity: "Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\CategoriesIdentity") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Categories")
canonical_url: String @doc(description: "Canonical URL") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\CanonicalUrl")
}
interface PhysicalProductInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\ProductInterfaceTypeResolverComposite") @doc(description: "PhysicalProductInterface contains attributes specific to tangible products") {
weight: Float @doc(description: "The weight of the item, in units defined by the store")
}
type CustomizableAreaOption implements CustomizableOptionInterface @doc(description: "CustomizableAreaOption contains information about a text area that is defined as part of a customizable option") {
value: CustomizableAreaValue @doc(description: "An object that defines a text area")
product_sku: String @doc(description: "The Stock Keeping Unit of the base product")
}
type CustomizableAreaValue @doc(description: "CustomizableAreaValue defines the price and sku of a product whose page contains a customized text area") {
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
max_characters: Int @doc(description: "The maximum number of characters that can be entered for this customizable option")
}
type CategoryTree implements CategoryInterface @doc(description: "Category Tree implementation") {
children: [CategoryTree] @doc(description: "Child categories tree") @resolve(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\CategoryTree")
}
type CustomizableDateOption implements CustomizableOptionInterface @doc(description: "CustomizableDateOption contains information about a date picker that is defined as part of a customizable option") {
value: CustomizableDateValue @doc(description: "An object that defines a date field in a customizable option.")
product_sku: String @doc(description: "The Stock Keeping Unit of the base product")
}
type CustomizableDateValue @doc(description: "CustomizableDateValue defines the price and sku of a product whose page contains a customized date picker") {
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
}
type CustomizableDropDownOption implements CustomizableOptionInterface @doc(description: "CustomizableDropDownOption contains information about a drop down menu that is defined as part of a customizable option") {
value: [CustomizableDropDownValue] @doc(description: "An array that defines the set of options for a drop down menu")
}
type CustomizableDropDownValue @doc(description: "CustomizableDropDownValue defines the price and sku of a product whose page contains a customized drop down menu") {
option_type_id: Int @doc(description: "The ID assigned to the value")
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
title: String @doc(description: "The display name for this option")
sort_order: Int @doc(description: "The order in which the option is displayed")
}
type CustomizableMultipleOption implements CustomizableOptionInterface @doc(description: "CustomizableMultipleOption contains information about a multiselect that is defined as part of a customizable option") {
value: [CustomizableMultipleValue] @doc(description: "An array that defines the set of options for a multiselect")
}
type CustomizableMultipleValue @doc(description: "CustomizableMultipleValue defines the price and sku of a product whose page contains a customized multiselect") {
option_type_id: Int @doc(description: "The ID assigned to the value")
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
title: String @doc(description: "The display name for this option")
sort_order: Int @doc(description: "The order in which the option is displayed")
}
type CustomizableFieldOption implements CustomizableOptionInterface @doc(description: "CustomizableFieldOption contains information about a text field that is defined as part of a customizable option") {
value: CustomizableFieldValue @doc(description: "An object that defines a text field")
product_sku: String @doc(description: "The Stock Keeping Unit of the base product")
}
type CustomizableFieldValue @doc(description: "CustomizableFieldValue defines the price and sku of a product whose page contains a customized text field") {
price: Float @doc(description: "The price of the custom value")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
max_characters: Int @doc(description: "The maximum number of characters that can be entered for this customizable option")
}
type CustomizableFileOption implements CustomizableOptionInterface @doc(description: "CustomizableFileOption contains information about a file picker that is defined as part of a customizable option") {
value: CustomizableFileValue @doc(description: "An object that defines a file value")
product_sku: String @doc(description: "The Stock Keeping Unit of the base product")
}
type CustomizableFileValue @doc(description: "CustomizableFileValue defines the price and sku of a product whose page contains a customized file picker") {
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
file_extension: String @doc(description: "The file extension to accept")
image_size_x: Int @doc(description: "The maximum width of an image")
image_size_y: Int @doc(description: "The maximum height of an image")
}
type ProductImage @doc(description: "Product image information. Contains image relative path, URL and label") {
url: String @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductImage\\Url")
label: String @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\ProductImage\\Label")
}
interface CustomizableOptionInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\CustomizableOptionTypeResolver") @doc(description: "The CustomizableOptionInterface contains basic information about a customizable option. It can be implemented by several types of configurable options.") {
title: String @doc(description: "The display name for this option")
required: Boolean @doc(description: "Indicates whether the option is required")
sort_order: Int @doc(description: "The order in which the option is displayed")
option_id: Int @doc(description: "Option ID")
}
interface CustomizableProductInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\ProductInterfaceTypeResolverComposite") @doc(description: "CustomizableProductInterface contains information about customizable product options.") {
options: [CustomizableOptionInterface] @doc(description: "An array of options for a customizable product") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Options")
}
interface CategoryInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\CategoryInterfaceTypeResolver") @doc(description: "CategoryInterface contains the full set of attributes that can be returned in a category search") {
id: Int @doc(description: "An ID that uniquely identifies the category")
description: String @doc(description: "An optional description of the category") @resolver(class: "\\Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\CategoryHtmlAttribute")
name: String @doc(description: "The display name of the category")
path: String @doc(description: "Category Path")
path_in_store: String @doc(description: "Category path in store")
url_key: String @doc(description: "The url key assigned to the category")
url_path: String @doc(description: "The url path assigned to the category")
position: Int @doc(description: "The position of the category relative to other categories at the same level in tree")
level: Int @doc(description: "Indicates the depth of the category within the tree")
created_at: String @doc(description: "Timestamp indicating when the category was created")
updated_at: String @doc(description: "Timestamp indicating when the category was updated")
product_count: Int @doc(description: "The number of products in the category") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\ProductsCount")
default_sort_by: String @doc(description: "The attribute to use for sorting")
products(
pageSize: Int = 20 @doc(description: "Specifies the maximum number of results to return at once. This attribute is optional."),
currentPage: Int = 1 @doc(description: "Specifies which page of results to return. The default value is 1."),
sort: ProductSortInput @doc(description: "Specifies which attribute to sort on, and whether to return the results in ascending or descending order.")
): CategoryProducts @doc(description: "The list of products assigned to the category") @cache(cacheTag: "cat_p", cacheIdentity: "Magento\\CatalogGraphQl\\Model\\Resolver\\Product\\Identity") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\Products")
breadcrumbs: [Breadcrumb] @doc(description: "Breadcrumbs, parent categories info") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\Breadcrumbs")
}
type Breadcrumb @doc(description: "Breadcrumb item"){
category_id: Int @doc(description: "Category ID")
category_name: String @doc(description: "Category name")
category_level: Int @doc(description: "Category level")
category_url_key: String @doc(description: "Category URL key")
}
type CustomizableRadioOption implements CustomizableOptionInterface @doc(description: "CustomizableRadioOption contains information about a set of radio buttons that are defined as part of a customizable option") {
value: [CustomizableRadioValue] @doc(description: "An array that defines a set of radio buttons")
}
type CustomizableRadioValue @doc(description: "CustomizableRadioValue defines the price and sku of a product whose page contains a customized set of radio buttons") {
option_type_id: Int @doc(description: "The ID assigned to the value")
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
title: String @doc(description: "The display name for this option")
sort_order: Int @doc(description: "The order in which the radio button is displayed")
}
type CustomizableCheckboxOption implements CustomizableOptionInterface @doc(description: "CustomizableCheckbbixOption contains information about a set of checkbox values that are defined as part of a customizable option") {
value: [CustomizableCheckboxValue] @doc(description: "An array that defines a set of checkbox values")
}
type CustomizableCheckboxValue @doc(description: "CustomizableCheckboxValue defines the price and sku of a product whose page contains a customized set of checkbox values") {
option_type_id: Int @doc(description: "The ID assigned to the value")
price: Float @doc(description: "The price assigned to this option")
price_type: PriceTypeEnum @doc(description: "FIXED, PERCENT, or DYNAMIC")
sku: String @doc(description: "The Stock Keeping Unit for this option")
title: String @doc(description: "The display name for this option")
sort_order: Int @doc(description: "The order in which the checkbox value is displayed")
}
type VirtualProduct implements ProductInterface, CustomizableProductInterface @doc(description: "A virtual product is non-tangible product that does not require shipping and is not kept in inventory") {
}
type SimpleProduct implements ProductInterface, PhysicalProductInterface, CustomizableProductInterface @doc(description: "A simple product is tangible and are usually sold as single units or in fixed quantities")
{
}
type Products @doc(description: "The Products object is the top-level object returned in a product search") {
items: [ProductInterface] @doc(description: "An array of products that match the specified search criteria")
page_info: SearchResultPageInfo @doc(description: "An object that includes the page_info and currentPage values specified in the query")
total_count: Int @doc(description: "The number of products returned")
filters: [LayerFilter] @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\LayerFilters") @doc(description: "Layered navigation filters array")
sort_fields: SortFields @doc(description: "An object that includes the default sort field and all available sort fields") @resolver(class: "Magento\\CatalogGraphQl\\Model\\Resolver\\Category\\SortFields")
}
type CategoryProducts @doc(description: "The category products object returned in the Category query") {
items: [ProductInterface] @doc(description: "An array of products that are assigned to the category")
page_info: SearchResultPageInfo @doc(description: "An object that includes the page_info and currentPage values specified in the query")
total_count: Int @doc(description: "The number of products returned")
}
input ProductFilterInput @doc(description: "ProductFilterInput defines the filters to be used in the search. A filter contains at least one attribute, a comparison operator, and the value that is being searched for.") {
name: FilterTypeInput @doc(description: "The product name. Customers use this name to identify the product.")
sku: FilterTypeInput @doc(description: "A number or code assigned to a product to identify the product, options, price, and manufacturer")
description: FilterTypeInput @doc(description: "Detailed information about the product. The value can include simple HTML tags.")
short_description: FilterTypeInput @doc(description: "A short description of the product. Its use depends on the theme.")
price: FilterTypeInput @doc(description: "The price of an item")
special_price: FilterTypeInput @doc(description: "The discounted price of the product. Do not include the currency code.")
special_from_date: FilterTypeInput @doc(description: "The beginning date that a product has a special price")
special_to_date: FilterTypeInput @doc(description: "The end date that a product has a special price")
weight: FilterTypeInput @doc(description: "The weight of the item, in units defined by the store")
manufacturer: FilterTypeInput @doc(description: "A number representing the product's manufacturer")
meta_title: FilterTypeInput @doc(description: "A string that is displayed in the title bar and tab of the browser and in search results lists")
meta_keyword: FilterTypeInput @doc(description: "A comma-separated list of keywords that are visible only to search engines")
meta_description: FilterTypeInput @doc(description: "A brief overview of the product for search results listings, maximum 255 characters")
image: FilterTypeInput @doc(description: "The relative path to the main image on the product page")
small_image: FilterTypeInput @doc(description: "The relative path to the small image, which is used on catalog pages")
thumbnail: FilterTypeInput @doc(description: "The relative path to the product's thumbnail image")
tier_price: FilterTypeInput @doc(description: "The price when tier pricing is in effect and the items purchased threshold has been reached")
news_from_date: FilterTypeInput @doc(description: "The beginning date for new product listings, and determines if the product is featured as a new product")
news_to_date: FilterTypeInput @doc(description: "The end date for new product listings")
custom_layout_update: FilterTypeInput @doc(description: "XML code that is applied as a layout update to the product page")
min_price: FilterTypeInput @doc(description:"The numeric minimal price of the product. Do not include the currency code.")
max_price: FilterTypeInput @doc(description:"The numeric maximal price of the product. Do not include the currency code.")
category_id: FilterTypeInput @doc(description: "Category ID the product belongs to")
options_container: FilterTypeInput @doc(description: "If the product has multiple options, determines where they appear on the product page")
required_options: FilterTypeInput @doc(description: "Indicates whether the product has required options")
has_options: FilterTypeInput @doc(description: "Indicates whether additional attributes have been created for the product")
image_label: FilterTypeInput @doc(description: "The label assigned to a product image")
small_image_label: FilterTypeInput @doc(description: "The label assigned to a product's small image")
thumbnail_label: FilterTypeInput @doc(description: "The label assigned to a product's thumbnail image")
created_at: FilterTypeInput @doc(description: "Timestamp indicating when the product was created")
updated_at: FilterTypeInput @doc(description: "Timestamp indicating when the product was updated")
country_of_manufacture: FilterTypeInput @doc(description: "The product's country of origin")
custom_layout: FilterTypeInput @doc(description: "The name of a custom layout")
gift_message_available: FilterTypeInput @doc(description: "Indicates whether a gift message is available")
or: ProductFilterInput @doc(description: "The keyword required to perform a logical OR comparison")
}
type ProductMediaGalleryEntriesContent @doc(description: "ProductMediaGalleryEntriesContent contains an image in base64 format and basic information about the image") {
base64_encoded_data: String @doc(description: "The image in base64 format")
type: String @doc(description: "The MIME type of the file, such as image/png")
name: String @doc(description: "The file name of the image")
}
type ProductMediaGalleryEntriesVideoContent @doc(description: "ProductMediaGalleryEntriesVideoContent contains a link to a video file and basic information about the video") {
media_type: String @doc(description: "Must be external-video")
video_provider: String @doc(description: "Describes the video source")
video_url: String @doc(description: "The URL to the video")
video_title: String @doc(description: "The title of the video")
video_description: String @doc(description: "A description of the video")
video_metadata: String @doc(description: "Optional data about the video")
}
input ProductSortInput @doc(description: "ProductSortInput specifies the attribute to use for sorting search results and indicates whether the results are sorted in ascending or descending order") {
name: SortEnum @doc(description: "The product name. Customers use this name to identify the product.")
sku: SortEnum @doc(description: "A number or code assigned to a product to identify the product, options, price, and manufacturer")
description: SortEnum @doc(description: "Detailed information about the product. The value can include simple HTML tags.")
short_description: SortEnum @doc(description: "A short description of the product. Its use depends on the theme.")
price: SortEnum @doc(description: "The price of the item")
special_price: SortEnum @doc(description: "The discounted price of the product")
special_from_date: SortEnum @doc(description: "The beginning date that a product has a special price")
special_to_date: SortEnum @doc(description: "The end date that a product has a special price")
weight: SortEnum @doc(description: "The weight of the item, in units defined by the store")
manufacturer: SortEnum @doc(description: "A number representing the product's manufacturer")
meta_title: SortEnum @doc(description: "A string that is displayed in the title bar and tab of the browser and in search results lists")
meta_keyword: SortEnum @doc(description: "A comma-separated list of keywords that are visible only to search engines")
meta_description: SortEnum @doc(description: "A brief overview of the product for search results listings, maximum 255 characters")
image: SortEnum @doc(description: "The relative path to the main image on the product page")
small_image: SortEnum @doc(description: "The relative path to the small image, which is used on catalog pages")
thumbnail: SortEnum @doc(description: "The relative path to the product's thumbnail image")
tier_price: SortEnum @doc(description: "The price when tier pricing is in effect and the items purchased threshold has been reached")
news_from_date: SortEnum @doc(description: "The beginning date for new product listings, and determines if the product is featured as a new product")
news_to_date: SortEnum @doc(description: "The end date for new product listings")
custom_layout_update: SortEnum @doc(description: "XML code that is applied as a layout update to the product page")
options_container: SortEnum @doc(description: "If the product has multiple options, determines where they appear on the product page")
required_options: SortEnum @doc(description: "Indicates whether the product has required options")
has_options: SortEnum @doc(description: "Indicates whether additional attributes have been created for the product")
image_label: SortEnum @doc(description: "The label assigned to a product image")
small_image_label: SortEnum @doc(description: "The label assigned to a product's small image")
thumbnail_label: SortEnum @doc(description: "The label assigned to a product's thumbnail image")
created_at: SortEnum @doc(description: "Timestamp indicating when the product was created")
updated_at: SortEnum @doc(description: "Timestamp indicating when the product was updated")
country_of_manufacture: SortEnum @doc(description: "The product's country of origin")
custom_layout: SortEnum @doc(description: "The name of a custom layout")
gift_message_available: SortEnum @doc(description: "Indicates whether a gift message is available")
}
type MediaGalleryEntry @doc(description: "MediaGalleryEntry defines characteristics about images and videos associated with a specific product") {
id: Int @doc(description: "The identifier assigned to the object")
media_type: String @doc(description: "image or video")
label: String @doc(description: "The alt text displayed on the UI when the user points to the image")
position: Int @doc(description: "The media item's position after it has been sorted")
disabled: Boolean @doc(description: "Whether the image is hidden from vie")
types: [String] @doc(description: "Array of image types. It can have the following values: image, small_image, thumbnail")
file: String @doc(description: "The path of the image on the server")
content: ProductMediaGalleryEntriesContent @doc(description: "Contains a ProductMediaGalleryEntriesContent object")
video_content: ProductMediaGalleryEntriesVideoContent @doc(description: "Contains a ProductMediaGalleryEntriesVideoContent object")
}
type LayerFilter {
name: String @doc(description: "Layered navigation filter name")
request_var: String @doc(description: "Request variable name for filter query")
filter_items_count: Int @doc(description: "Count of filter items in filter group")
filter_items: [LayerFilterItemInterface] @doc(description: "Array of filter items")
}
interface LayerFilterItemInterface @typeResolver(class: "Magento\\CatalogGraphQl\\Model\\LayerFilterItemTypeResolverComposite") {
label: String @doc(description: "Filter label")
value_string: String @doc(description: "Value for filter request variable to be used in query")
items_count: Int @doc(description: "Count of items by filter")
}
type LayerFilterItem implements LayerFilterItemInterface {
}
type SortField {
value: String @doc(description: "Attribute code of sort field")
label: String @doc(description: "Label of sort field")
}
type SortFields @doc(description: "SortFields contains a default value for sort fields and all available sort fields") {
default: String @doc(description: "Default value of sort fields")
options: [SortField] @doc(description: "Available sort fields")
}