This is a beta release of documentation for Magento 2.4, published for previewing soon-to-be-released functionality. Content in this version is subject to change. Links to the v2.4 code base may not properly resolve until the code is officially released.

ProductInterface attributes

Any type that implements ProductInterface contains all the base attributes necessary for the frontend of the product model. The items that are returned in a ProductInterface array can also contain attributes from resources external to the CatalogGraphQl module:

ProductInterface attributes

The following table defines the ProductInterface attributes and objects.

Attribute Data type Description
attribute_set_id Int The attribute set assigned to the product
canonical_url String The relative canonical URL. This value is returned only if the system setting Use Canonical Link Meta Tag For Products is enabled
categories [CategoryInterface] The categories assigned to the product. See CategoryInterface attributes for more information
country_of_manufacture String The product’s country of origin
created_at String Timestamp indicating when the product was created
crosssell_products [ProductInterface] An array of cross-sell products
description ComplexTextValue An object that contains detailed information about the product. The object can include simple HTML tags
gift_message_available String Indicates whether a gift message is available
id Int The ID number assigned to the product
image ProductImage An object that contains the URL and label for the main image on the product page
is_returnable String Indicates whether the product can be returned. This attribute is defined in the RmaGraphQl module.
manufacturer Int A number representing the product’s manufacturer
media_gallery [MediaGalleryInterface] An array of media gallery objects
media_gallery_entries [MediaGalleryEntry] Deprecated. Use media_gallery instead
meta_description String A brief overview of the product for search results listings, maximum 255 characters
meta_keyword String A comma-separated list of keywords that are visible only to search engines
meta_title String A string that is displayed in the title bar and tab of the browser and in search results lists
name String The product name. Customers use this name to identify the product.
new_from_date String The beginning date for new product listings, and determines if the product is featured as a new product
new_to_date String The end date for new product listings
only_x_left_in_stock Float The “Only X left Threshold” assigned to the product. This attribute is defined in the InventoryGraphQl module.
options_container String If the product has multiple options, determines where they appear on the product page
price ProductPrices Deprecated. Use price_range instead
price_range PriceRange! A PriceRange object, indicating the range of prices for the product
price_tiers [TierPrice] An array of TierPrice objects
product_links [ProductLinksInterface] An array of ProductLinks objects
related_products [ProductInterface] An array of related products
short_description ComplexTextValue An object that contains a short description of the product. Its use depends on the store’s theme. The object can include simple HTML tags
sku String A number or code assigned to a product to identify the product, options, price, and manufacturer
small_image ProductImage An object that contains the URL and label for the small image used on catalog pages
special_from_date String The beginning date that a product has a special price
special_price Float The discounted price of the product
special_to_date String The end date that a product has a special price
stock_status ProductStockStatus The status of the stock. ProductStockStatus is an enumeration that can have the value of IN_STOCK or OUT_OF_STOCK. This attribute is defined in the InventoryGraphQl module.
swatch_image String The file name of a swatch image. This attribute is defined in the SwatchesGraphQl module.
tax_class_id Int An ID assigned to a tax class. This attribute is defined in the TaxGraphQl module.
thumbnail ProductImage An object that contains the URL and label for the product’s thumbnail image
tier_price Float Deprecated. Use price_tiers instead
tier_prices [ProductTierPrices] Deprecated. Use price_tiers instead
type_id String Deprecated. Use the GraphQL __typename meta attribute instead
updated_at String The timestamp indicating when the product was last updated
upsell_products [ProductInterface] An array of up-sell products
url_key String The part of the URL that identifies the product. This attribute is defined in the CatalogUrlRewriteGraphQl module
url_path String Deprecated. Use canonical_url instead
url_suffix String The part of the URL that is appended to the url_key, such as .html. This attribute is defined in the CatalogUrlRewriteGraphQl module
url_rewrites [UrlRewrite] A list of URL rewrites
websites [Website] Deprecated. This attribute is not applicable for GraphQL

ProductPrices object

The ProductPrices object has been deprecated. Use the PriceRange object instead.

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.

Attribute Data Type Description
maximalPrice Price Deprecated. Use PriceRange.maximum_price instead
minimalPrice Price Deprecated. Use PriceRange.minimum_price instead
regularPrice Price Deprecated. Use PriceRange.maximum_price or PriceRange.minimum_price instead

PriceRange object

The PriceRange object defines the price range for a product. If a product only has a single price, the minimum and maximum price will be the same.

Attribute Data Type Description
maximum_price ProductPrice The highest possible final price for a product
minimum_price ProductPrice The lowest possible final price for a product

ProductPrice object

The ProductPrice object includes the regular price, final price, and the difference between those two prices.

Attribute Data Type Description
discount ProductDiscount The amount of the discount applied to the product. It represents the difference between the final_price and regular_price
final_price Money! The price of the product after applying discounts
fixed_product_taxes [FixedProductTax] An array of fixed product taxes that either have been or can be applied to a product price
regular_price Money! The regular price of the product, without any applied discounts

ProductDiscount object

The ProductDiscount object expresses the discount applied to a product as a fixed amount, such as $5, and as a percentage, such as 10%. The discount originates from special pricing or a catalog price rule.

Attribute Data Type Description
amount_off Float The actual value of the discount
percent_off Float The discount expressed as a percentage

FixedProductTax object

Some tax jurisdictions have a fixed product tax (FPT) that must be applied to certain types of products. An example FPT is the Waste Electrical and Electronic Equipment (WEEE) tax, which is collected on some types of electronics to offset the cost of recycling.

Attribute Data Type Description
amount Money The amount of the fixed product tax
label String The label assigned to the fixed product tax to be displayed on the frontend

Price object

The Price object has been deprecated. Use the ProductPrice object instead.

The Price object defines the price of a product as well as any tax-related adjustments.

Attribute Data Type Description
amount Money The price of the product and its currency code. See Money object.
adjustments [PriceAdjustment] An array of PriceAdjustment objects.

Money object

A Money object defines a monetary value, including a numeric value and a currency code.

Attribute Data Type Description
currency CurrencyEnum A three-letter currency code, such as USD or EUR.
value Float The price of the product

PriceAdjustment array

The PriceAdjustment object has been deprecated. In cases where the value for the code attribute was WEEE, use fixed_product_taxes.label instead. If the value was tax or weee_tax, the taxes will be included or excluded as part of the price in the ProductPrice or FixedProductTax object, respectively.

The PriceAdjustment 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.

Attribute Data Type Description
amount Money The amount of the price adjustment and its currency code. See Money object.
code PriceAdjustmentCodesEnum One of tax, weee, or weee_tax.
description PriceAdjustmentDescriptionEnum Indicates whether the entity described by the code attribute is included or excluded from the adjustment.

ProductLinks contains information about linked products, including the link type and product type of each item.

Attribute Type Description
link_type String One of related, associated, upsell, or crosssell.
linked_product_sku String The SKU of the linked product
linked_product_type String The type of linked product (simple, virtual, bundle, downloadable,grouped, configurable)
position Int The position within the list of product links
sku String The identifier of the linked product

MediaGalleryInterface

The MediaGalleryInterface contains basic information about a product image or video.

Attribute Type Description
disabled Boolean Indicates whether the media item is hidden from view
label String The label for the product image or video
position Int The media item’s position after it has been sorted
url String The URL for the product image or video

ProductImage object

ProductImage implements MediaGalleryInterface, which contains information about an image’s URL and label.

ProductVideo object

ProductVideo implements MediaGalleryInterface and contains information about a product video.

Attribute Type Description
video_content ProductMediaGalleryEntriesVideoContent Contains a ProductMediaGalleryEntriesVideoContent object

MediaGalleryEntry object

MediaGalleryEntry defines characteristics about images and videos associated with a specific product.

Attribute Type Description
content ProductMediaGalleryEntriesContent Contains a ProductMediaGalleryEntriesContent object
disabled Boolean Whether the image is hidden from view
file String The path of the image on the server
id Int The identifier assigned to the object
label String The “alt” text displayed on the UI when the user points to the image
media_type String image or video
position Int The media item’s position after it has been sorted
types [String] Array of image types. It can have the following values: image, small_image, thumbnail
video_content ProductMediaGalleryEntriesVideoContent Contains a ProductMediaGalleryEntriesVideoContent object

ProductMediaGalleryEntriesContent object

ProductMediaGalleryEntriesContent contains an image in base64 format and basic information about the image.

Attribute Type Description
base64_encoded_data String The image in base64 format
name String The file name of the image
type String The MIME type of the file, such as image/png

ProductMediaGalleryEntriesVideoContent object

ProductMediaGalleryEntriesVideoContent contains a link to a video file and basic information about the video.

Attribute Type Description
media_type String Must be external-video
video_description String A description of the video
video_metadata String Optional data about the video
video_provider String Optionally describes the video source
video_title String The title of the video
video_url String The URL to the video

ProductTierPrices object

The ProductTierPrices object and all of its attributes have been deprecated. Use TierPrice instead.

The ProductTierPrices object defines a tier price, which is a quantity discount offered to a specific customer group.

Attribute Type Description
customer_group_id Int Deprecated. This attribute is not applicable for GraphQL
percentage_value Float Deprecated. Use TierPrice.discount instead
qty Float Deprecated. Use TierPrice.quantity instead
value Float Deprecated. Use TierPrice.final_price instead
website_id Int Deprecated. This attribute is not applicable for GraphQL

TierPrice object

The TierPrice object defines a tier price, which is a price based on the quantity purchased.

Attribute Type Description
discount ProductDiscount The price discount applied to this tier
final_price Money! The price of the product at this tier
quantity Float The minimum number of items that must be purchased to qualify for this price tier

Website object

The Website object has been deprecated because it is not applicable for GraphQL.

Use the Website attributes to retrieve information about the website’s configuration, which includes the website name, website code, and default group ID. The Website object is defined in the StoreGraphQl module.

Attribute Data Type Description
code String A code assigned to the website to identify it
default_group_id String The default group ID that the website has
id Integer The ID number assigned to the store
is_default Boolean Indicates whether this is the default website
name String The website name. Websites use this name to identify it easier
sort_order Integer The attribute to use for sorting websites

UrlRewrite object

The products query can request details about the UrlRewrite object. This object is defined in the UrlRewriteGraphQl module.

Attribute Type Description
parameters [HttpQueryParameter] An array of target path parameters
url String The request URL

HTTPQueryParameter object

The HttpQueryParameter object provides details about target path parameters.

Attribute Type Description
name String The parameter name, such as id
value String The value assigned to the parameter

PhysicalProductInterface

PhysicalProductInterfacedefines the weight of all tangible products.

Attribute Type Description
weight Float The weight of the item, in units defined by the store