Product Query GraphQL Magento contains a lot of information for a product.
You can fetch the result of the product query in multiple ways, Using Search Criteria with equal or match type, By full-text search within the product query.
Pass only the required field on GraphQL Query so the output will be displayed only on those fields.
If you want to explore CMS GraphQL query, check the link, Get Cms Page and Cms blocks GraphQL Query.
Product Query Demo with multiple fields that will be displayed in the Output.
{
products(search: "10001") {
items {
id
name
sku
stock_status
only_x_left_in_stock
meta_keyword
meta_description
special_price
special_from_date
special_to_date
attribute_set_id
manufacturer
canonical_url
description {
html
}
short_description {
html
}
image {
url
label
position
disabled
}
small_image {
url
label
position
disabled
}
thumbnail {
url
label
position
disabled
}
new_from_date
new_to_date
price_tiers {
quantity
discount {
percent_off
amount_off
}
final_price {
value
currency
}
}
... on PhysicalProductInterface {
weight
}
options_container
created_at
updated_at
country_of_manufacture
type_id
websites {
id
name
code
sort_order
default_group_id
is_default
}
product_links {
sku
link_type
linked_product_sku
linked_product_type
position
}
media_gallery {
url
label
position
disabled
... on ProductVideo {
video_content {
media_type
video_provider
video_url
video_title
video_description
video_metadata
}
}
}
price_range {
minimum_price {
regular_price {
value
currency
}
final_price {
value
currency
}
fixed_product_taxes {
label
amount {
value
currency
}
}
}
maximum_price {
discount {
amount_off
percent_off
}
fixed_product_taxes {
label
amount {
value
currency
}
}
}
}
gift_message_available
url_rewrites {
parameters {
name
value
}
}
related_products {
id
name
sku
}
upsell_products {
id
name
sku
}
crosssell_products {
id
name
sku
}
categories {
id
url_key
name
position
is_anchor
url_suffix
description
display_mode
meta_keywords
path_in_store
default_sort_by
meta_description
automatic_sorting
custom_layout_update_file
available_sort_by
products {
items {
id
sku
}
}
cms_block {
title
content
identifier
}
}
}
}
}
Given Query defines all the possible fields used for the product query but in real life, you can use the only required field inside the query.
In the given Product Query, We are expecting to return all the possible field that is used on the Products like,
- Price Management,
- Related,
- Upsell,
- Cross-Sell Products,
- Tier Price,
- Media Gallery Images,
- Weight,
- Product New From – To,
- Custom Attributes of the Product,
- Website Assignment,
- Product Links,
- URL Management,
- Gift Messages,
- Category Management.
Different ways to search product queries,
1.) Products By Search: You can filter the Product by the direct full-text search with the query.
{
products(search: "crown") {
items {
id
name
sku
special_price
}
}
}
2) Product by FilterEqualTypeInput attribute:
‘eq’ keywords,
{
products(filter: { sku: { eq: "24-MB03" } }) {
items {
id
name
sku
special_price
}
}
}
‘in’ keywords
{
products(filter: { sku: { in: ["24-MB03", "24-MB04"] } }) {
items {
id
name
sku
special_price
}
}
}
3) Product by FilterMatchTypeInput attribute:
{
products(filter: { name: { match: "Top" } }) {
items {
id
name
sku
stock_status
special_price
price_range {
minimum_price {
regular_price {
value
currency
}
final_price {
value
currency
}
}
}
}
}
}
4) Product by FilterRangeTypeInput attribute:
{
products(
filter: { name: { match: "Top" }, price: { from: "20", to: "50" } }
) {
items {
id
name
sku
stock_status
special_price
price_range {
minimum_price {
regular_price {
value
currency
}
final_price {
value
currency
}
}
}
}
}
}
You can filter either full text or match or equal by custom attribute type based on your project scope of work.
