Merchandising GraphQL API
The Merchandising GraphQL API enables developers to build rich, dynamic storefront experiences by providing efficient access to catalog data from Adobe Commerce Optimizer. This API is designed for frontend applications that need to retrieve product information, pricing, search results, and recommendations in real-time. For more information about the API, see the developer documentation.
API Endpoints
https://na1-sandbox.api.commerce.adobe.com/{TENANT_ID}/graphql
Headers
# Required. View ID for catalog context.
AC-View-Id: cde0ab4c-1f7b-4e12-91f6-9c7840ab6523
# Required. Content type header.
Content-Type: application/json
# Price book identifier for pricing context.
AC-Price-Book-ID: us
# Trigger name and value that sets data access filters to restrict product access based on request attributes.
AC-Policy-{*}: AC-Policy-Brand
Required Headers
All API requests must include the following headers:
- AC-View-Id: View ID for catalog context
- Content-Type: application/json
These headers ensure proper context for your API requests. See the server configuration below for example values.
Queries
attributeMetadata
Description
Return a list of product attribute codes that can be used for sorting or filtering in a productSearch query
Response
Returns AttributeMetadataResponse!
Example
Query
query attributeMetadata {
attributeMetadata {
filterableInSearch {
...FilterableInSearchAttributeFragment
}
sortable {
...SortableAttributeFragment
}
}
}
Response
{
"data": {
"attributeMetadata": {
"filterableInSearch": [FilterableInSearchAttribute],
"sortable": [SortableAttribute]
}
}
}
categoryTree
Description
Retrieves category tree nodes, optionally filtered by slugs and limited by depth.
Response
Returns [CategoryTreeView]
Arguments
| Name | Description |
|---|---|
family - String!
|
Required. The catalog family identifier that determines which catalog's categories to retrieve. Typically: Your store's catalog ID |
slugs - [String!]
|
Optional array of specific category slugs to retrieve. When Provided:
When Omitted: All categories in the specified family are returned Use Cases:
|
depth - Int
|
Optional maximum depth level to retrieve in the category tree structure. Depth Levels:
Benefits:
Default: All available levels are returned if omitted |
Example
Query
query categoryTree(
$family: String!,
$slugs: [String!],
$depth: Int
) {
categoryTree(
family: $family,
slugs: $slugs,
depth: $depth
) {
slug
name
description
metaTags {
...CategoryMetaTagsFragment
}
images {
...CategoryImageFragment
}
level
parentSlug
childrenSlugs
}
}
Variables
{
"family": "abc123",
"slugs": ["abc123"],
"depth": 987
}
Response
{
"data": {
"categoryTree": [
{
"slug": "xyz789",
"name": "xyz789",
"description": "xyz789",
"metaTags": CategoryMetaTags,
"images": [CategoryImage],
"level": 987,
"parentSlug": "xyz789",
"childrenSlugs": ["xyz789"]
}
]
}
}
productSearch
Description
Runs a search or browse request against an Adobe Commerce Optimizer catalog view based on a query phrase, filters, and sort options. It applies Product Discovery configuration (merchandising rules, intelligent ranking, and facets) and returns matching products, facet buckets with counts, and pagination metadata for use by headless storefronts (AEM, Edge Delivery Services, custom SPAs).
Response
Returns ProductSearchResponse!
Arguments
| Name | Description |
|---|---|
context - QueryContextInput
|
The query context |
current_page - Int
|
Specifies which page of results to return. The default value is 1. Default = 1 |
filter - [SearchClauseInput!]
|
Identifies product attributes and conditions to filter on |
page_size - Int
|
The maximum number of results to return at once. Default = 20 |
phrase - String!
|
Phrase to search for in product catalog |
sort - [ProductSearchSortInput!]
|
Attributes and direction to sort on |
Example
Query
query productSearch(
$context: QueryContextInput,
$current_page: Int,
$filter: [SearchClauseInput!],
$page_size: Int,
$phrase: String!,
$sort: [ProductSearchSortInput!]
) {
productSearch(
context: $context,
current_page: $current_page,
filter: $filter,
page_size: $page_size,
phrase: $phrase,
sort: $sort
) {
facets {
...AggregationFragment
}
items {
...ProductSearchItemFragment
}
page_info {
...SearchResultPageInfoFragment
}
related_terms
suggestions
total_count
warnings {
...ProductSearchWarningFragment
}
}
}
Variables
{
"context": QueryContextInput,
"current_page": 1,
"filter": [SearchClauseInput],
"page_size": 20,
"phrase": "abc123",
"sort": [ProductSearchSortInput]
}
Response
{
"data": {
"productSearch": {
"facets": [Aggregation],
"items": [ProductSearchItem],
"page_info": SearchResultPageInfo,
"related_terms": ["xyz789"],
"suggestions": ["abc123"],
"total_count": 987,
"warnings": [ProductSearchWarning]
}
}
}
products
Description
Search for products that match the specified SKU values. In Adobe Commerce as a Cloud Service, this query replaces the products query defined in the Commerce Foundation.
Response
Returns [ProductView]
Arguments
| Name | Description |
|---|---|
skus - [String]
|
List of SKUs to search for. For example, 123, 456 or 789. |
Example
Query
query products($skus: [String]) {
products(skus: $skus) {
addToCartAllowed
inStock
lowStock
attributes {
...ProductViewAttributeFragment
}
description
id
images {
...ProductViewImageFragment
}
videos {
...ProductViewVideoFragment
}
lastModifiedAt
metaDescription
metaKeyword
metaTitle
name
shortDescription
inputOptions {
...ProductViewInputOptionFragment
}
sku
externalId
url
urlKey
links {
...ProductViewLinkFragment
}
categories {
...CategoryProductViewFragment
}
queryType
visibility
}
}
Variables
{"skus": ["abc123"]}
Response
{
"data": {
"products": [
{
"addToCartAllowed": false,
"inStock": false,
"lowStock": true,
"attributes": [ProductViewAttribute],
"description": "abc123",
"id": 4,
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "xyz789",
"metaKeyword": "xyz789",
"metaTitle": "xyz789",
"name": "xyz789",
"shortDescription": "abc123",
"inputOptions": [ProductViewInputOption],
"sku": "xyz789",
"externalId": "abc123",
"url": "xyz789",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "xyz789",
"visibility": "xyz789"
}
]
}
}
recommendationsByUnitIds
Description
Retrieve recommendation units by their unique ID to use on the storefront.
Response
Returns Recommendations
Arguments
| Name | Description |
|---|---|
unitIds - [String!]!
|
List unit IDs of preconfigured units |
currentSku - String
|
SKU of the product currently being viewed on PDP |
userPurchaseHistory - [PurchaseHistory]
|
User purchase history with timestamp |
userViewHistory - [ViewHistory]
|
User view history with timestamp |
cartSkus - [String]
|
SKUs of products in the cart |
Example
Query
query recommendationsByUnitIds(
$unitIds: [String!]!,
$currentSku: String,
$userPurchaseHistory: [PurchaseHistory],
$userViewHistory: [ViewHistory],
$cartSkus: [String]
) {
recommendationsByUnitIds(
unitIds: $unitIds,
currentSku: $currentSku,
userPurchaseHistory: $userPurchaseHistory,
userViewHistory: $userViewHistory,
cartSkus: $cartSkus
) {
results {
...RecommendationUnitFragment
}
totalResults
}
}
Variables
{
"unitIds": ["abc123"],
"currentSku": "xyz789",
"userPurchaseHistory": [PurchaseHistory],
"userViewHistory": [ViewHistory],
"cartSkus": ["xyz789"]
}
Response
{
"data": {
"recommendationsByUnitIds": {
"results": [RecommendationUnit],
"totalResults": 987
}
}
}
refineProduct
Description
Retrieves refined product search results by applying additional filters, sorting, or facets to an existing product result set, enabling incremental narrowing of product lists without running a completely new product query.
Response
Returns ProductView
Arguments
| Name | Description |
|---|---|
optionIds - [String!]!
|
List of option IDs to refine the product by. For example, 123, 456 or 789. |
sku - String!
|
SKU of the product to refine. For example, RF903, DG90-54 or 789-001. |
Example
Query
query refineProduct(
$optionIds: [String!]!,
$sku: String!
) {
refineProduct(
optionIds: $optionIds,
sku: $sku
) {
addToCartAllowed
inStock
lowStock
attributes {
...ProductViewAttributeFragment
}
description
id
images {
...ProductViewImageFragment
}
videos {
...ProductViewVideoFragment
}
lastModifiedAt
metaDescription
metaKeyword
metaTitle
name
shortDescription
inputOptions {
...ProductViewInputOptionFragment
}
sku
externalId
url
urlKey
links {
...ProductViewLinkFragment
}
categories {
...CategoryProductViewFragment
}
queryType
visibility
}
}
Variables
{
"optionIds": ["abc123"],
"sku": "xyz789"
}
Response
{
"data": {
"refineProduct": {
"addToCartAllowed": true,
"inStock": true,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "xyz789",
"id": "4",
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "abc123",
"metaKeyword": "abc123",
"metaTitle": "abc123",
"name": "abc123",
"shortDescription": "abc123",
"inputOptions": [ProductViewInputOption],
"sku": "xyz789",
"externalId": "xyz789",
"url": "xyz789",
"urlKey": "abc123",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "abc123"
}
}
}
variants
Response
Returns ProductViewVariantResults
Arguments
| Name | Description |
|---|---|
sku - String!
|
SKU of the product to get variants for. For example, UR123, MZ456 or KS789. |
optionIds - [String!]
|
List of option IDs to get variants for. For example, 123, 456 or 789. |
pageSize - Int
|
Page size for pagination. For example, 10 for a page size of 10 or 20 for a page size of 20. |
cursor - String
|
Pagination cursor. For example, 123 for the first variant, 456 for the second variant. |
Example
Query
query variants(
$sku: String!,
$optionIds: [String!],
$pageSize: Int,
$cursor: String
) {
variants(
sku: $sku,
optionIds: $optionIds,
pageSize: $pageSize,
cursor: $cursor
) {
variants {
...ProductViewVariantFragment
}
cursor
}
}
Variables
{
"sku": "abc123",
"optionIds": ["abc123"],
"pageSize": 123,
"cursor": "xyz789"
}
Response
{
"data": {
"variants": {
"variants": [ProductViewVariant],
"cursor": "xyz789"
}
}
}
Types
Aggregation
Description
A bucket that contains information for each filterable option
Fields
| Field Name | Description |
|---|---|
attribute - String!
|
The attribute code of the filter item |
buckets - [Bucket]!
|
A container that divides the data into manageable groups. For example, attributes that can have numeric values might have buckets that define price ranges |
title - String!
|
The filter name displayed in layered navigation |
type - AggregationType
|
Identifies the data type of the aggregation |
Example
{
"attribute": "xyz789",
"buckets": [Bucket],
"title": "xyz789",
"type": "INTELLIGENT"
}
AggregationType
Description
Identifies the data type of the aggregation
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"INTELLIGENT"
AppliedQueryRule
Description
The rule that was applied to this product
Fields
| Field Name | Description |
|---|---|
action_type - AppliedQueryRuleActionType
|
An enum that defines the type of rule that was applied |
rule_id - String
|
The ID assigned to the rule |
rule_name - String
|
The name of the applied rule |
Example
{
"action_type": "BOOST",
"rule_id": "xyz789",
"rule_name": "xyz789"
}
AppliedQueryRuleActionType
Description
The type of rule that was applied to a product during search (optional)
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"BOOST"
AttributeMetadataResponse
Description
Contains the output of the attributeMetadata query
Fields
| Field Name | Description |
|---|---|
filterableInSearch - [FilterableInSearchAttribute!]
|
An array of product attributes that can be used for filtering in a productSearch query |
sortable - [SortableAttribute!]
|
An array of product attributes that can be used for sorting in a productSearch query |
Example
{
"filterableInSearch": [FilterableInSearchAttribute],
"sortable": [SortableAttribute]
}
Boolean
Bucket
Description
An interface for bucket contents
Fields
| Field Name | Description |
|---|---|
title - String!
|
A human-readable name of a bucket |
Possible Types
| Bucket Types |
|---|
Example
{"title": "xyz789"}
CategoryBucket
Description
New category bucket for federation
Example
{
"count": 987,
"id": "4",
"path": "xyz789",
"title": "xyz789"
}
CategoryBucketInterface
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Possible Types
| CategoryBucketInterface Types |
|---|
Example
{"id": 4}
CategoryImage
Description
Represents an image associated with a category.
Example
{
"url": "abc123",
"label": "abc123",
"roles": ["xyz789"],
"customRoles": ["xyz789"]
}
CategoryMetaTags
Description
SEO metadata tags for the category.
Example
{
"title": "xyz789",
"description": "abc123",
"keywords": ["xyz789"]
}
CategoryProductView
Description
Represents category information associated with a product, including hierarchical parent relationships.
Fields
| Field Name | Description |
|---|---|
name - String!
|
Category name. For example, Electronics, Clothing or Books. |
slug - String!
|
The unique URL-friendly identifier for the category. |
level - Int!
|
The level of the category. The root category is a level 1 category. For example, men -> level 1, men/clothing -> level 2, men/clothing/shorts -> level 3 |
parents - [CategoryProductView!]
|
The ancestor categories in the hierarchy, ordered from root to immediate parent. |
Example
{
"name": "xyz789",
"slug": "abc123",
"level": 123,
"parents": [CategoryProductView]
}
CategoryTreeView
Description
Represents a category within a hierarchical tree structure, including parent and children relationships.
Fields
| Field Name | Description |
|---|---|
slug - String!
|
The unique URL-friendly identifier for the category. |
name - String!
|
Category name. For example, Electronics, Clothing or Books. |
description - String
|
A detailed description of the category. |
metaTags - CategoryMetaTags
|
SEO metadata tags for the category. |
images - [CategoryImage]
|
Visual images associated with the category. |
level - Int
|
The root category is a level 1 category. For example, men -> level 1, men/clothing -> level 2, men/clothing/shorts -> level 3 |
parentSlug - String
|
The slug of the parent category, if any. |
childrenSlugs - [String]
|
The slugs of all direct child categories. Ex: men/clothing/shorts -> [men/clothing/shorts/athletic, men/clothing/shorts/swimwear] |
Example
{
"slug": "xyz789",
"name": "abc123",
"description": "abc123",
"metaTags": CategoryMetaTags,
"images": [CategoryImage],
"level": 987,
"parentSlug": "abc123",
"childrenSlugs": ["abc123"]
}
CategoryView
Description
Represents a category. Contains information about a category, including the category ID, the category name, the category path, the category URL key, the category URL path, and the category roles.
Fields
| Field Name | Description |
|---|---|
availableSortBy - [String]
|
List of available sort by options. For example, name, position or size. |
children - [String!]
|
List of child category IDs. For example, 123, 456 or 789. |
defaultSortBy - String
|
Default sort by option. For example, name, position or size. |
id - ID!
|
Category ID. For example, 123, 456 or 789. 'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead.
|
level - Int
|
The level of the category. The root category is a level 1 category. For example, men -> level 1, men/clothing -> level 2, men/clothing/shorts -> level 3 |
name - String
|
Category name. For example, Electronics, Clothing or Books. |
parentId - String!
|
Parent category ID. For example, 123, 456 or 789. |
path - String
|
Category path. For example, /electronics/laptops, /clothing/shirts or /books/fiction. 'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead.
|
roles - [String!]!
|
List of roles for the category. For example, show_on_plp, show_in_pdp or show_in_search. |
urlKey - String
|
Category URL key. For example, electronics, clothing or books. |
urlPath - String
|
Category URL path. For example, /electronics/laptops, /clothing/shirts or /books/fiction. |
count - Int!
|
'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead. |
title - String!
|
'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead. |
Example
{
"availableSortBy": ["abc123"],
"children": ["xyz789"],
"defaultSortBy": "xyz789",
"id": "4",
"level": 987,
"name": "abc123",
"parentId": "abc123",
"path": "abc123",
"roles": ["xyz789"],
"urlKey": "xyz789",
"urlPath": "xyz789",
"count": 123,
"title": "xyz789"
}
CategoryViewInterface
Description
Base interface defining essential category fields shared across all category views.
Fields
| Field Name | Description |
|---|---|
availableSortBy - [String]
|
List of available sort by options. For example, name, size or position. |
defaultSortBy - String
|
Default sort by option. For example, name, size or position. |
id - ID!
|
Category ID. For example, 123, 456 or 789. 'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead.
|
level - Int
|
The level of the category. The root category is a level 1 category. For example, men -> level 1, men/clothing -> level 2, men/clothing/shorts -> level 3 |
name - String
|
Category name. For example, Electronics, Clothing or Books. |
path - String
|
Category path. For example, /electronics/laptops, /clothing/shirts or /books/fiction. |
roles - [String]
|
List of roles for the category. For example, show_on_plp, show_in_pdp or show_in_search. |
urlKey - String
|
Category URL key. For example, electronics, clothing or books. |
urlPath - String
|
Category URL path. For example, /electronics/laptops, /clothing/shirts or /books/fiction. |
Possible Types
| CategoryViewInterface Types |
|---|
Example
{
"availableSortBy": ["xyz789"],
"defaultSortBy": "xyz789",
"id": "4",
"level": 123,
"name": "xyz789",
"path": "xyz789",
"roles": ["xyz789"],
"urlKey": "abc123",
"urlPath": "abc123"
}
CategoryViewV2
Description
Base interface defining essential category fields shared across all category views.
Fields
| Field Name | Description |
|---|---|
slug - String!
|
The unique URL-friendly identifier for the category. |
name - String!
|
Category name. For example, Electronics, Clothing or Books. |
Possible Types
| CategoryViewV2 Types |
|---|
Example
{
"slug": "abc123",
"name": "abc123"
}
ComplexProductView
Description
Represents all product types, except simple products. Complex product prices are returned as a price range, because price values can vary based on selected options.
Fields
| Field Name | Description |
|---|---|
addToCartAllowed - Boolean
|
A flag stating if the product can be added to cart This field is deprecated and will be removed. |
inStock - Boolean
|
A flag stating if the product is in stock This field is deprecated and will be removed. |
lowStock - Boolean
|
Indicates whether the remaining quantity of the product has reached the Only X Left threshold. This field is deprecated and will be removed. |
attributes - [ProductViewAttribute]
|
A list of merchant-defined attributes designated for the storefront. They can be filtered by roles and names. |
description - String
|
The detailed description of the product. |
id - ID!
|
The product ID, generated as a composite key, unique per locale. |
images - [ProductViewImage]
|
A list of images defined for the product. Possible values include image, small_image or swatch. |
Arguments
|
|
videos - [ProductViewVideo]
|
A list of videos defined for the product. |
lastModifiedAt - DateTime
|
Date and time when the product was last updated. |
metaDescription - String
|
A brief overview of the product for search results listings. |
metaKeyword - String
|
A comma-separated list of keywords that are visible only to search engines. |
metaTitle - String
|
A string that is displayed in the title bar and tab of the browser and in search results lists. |
name - String
|
Product name. |
inputOptions - [ProductViewInputOption]
|
A list of input options. This field is deprecated and will be removed. |
options - [ProductViewOption]
|
A list of selectable options. |
priceRange - ProductViewPriceRange
|
A range of possible prices for a complex product. |
shortDescription - String
|
A summary of the product. |
sku - String
|
A unique code used for identification of a product. |
externalId - String
|
External Id This field is deprecated and will be removed. |
url - String
|
Canonical URL of the product. This field is deprecated and will be removed. |
urlKey - String
|
The URL key of the product. |
links - [ProductViewLink]
|
A list of product links. Links are used to navigate from one product to another. |
Arguments
|
|
categories - [CategoryProductView!]
|
A list of categories in which the product is present. |
Arguments
|
|
queryType - String
|
Indicates if the product was retrieved from the primary or the backup query |
visibility - String
|
Visibility setting of the product |
Example
{
"addToCartAllowed": false,
"inStock": true,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "abc123",
"id": "4",
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "xyz789",
"metaKeyword": "xyz789",
"metaTitle": "abc123",
"name": "abc123",
"inputOptions": [ProductViewInputOption],
"options": [ProductViewOption],
"priceRange": ProductViewPriceRange,
"shortDescription": "xyz789",
"sku": "xyz789",
"externalId": "abc123",
"url": "abc123",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "abc123"
}
DateTime
Description
A slightly refined version of RFC-3339 compliant DateTime Scalar
Example
"2007-12-03T10:15:30Z"
FilterableInSearchAttribute
Description
Contains product attributes that can be used for filtering in a productSearch query
Fields
| Field Name | Description |
|---|---|
attribute - String!
|
The unique identifier for an attribute code. This value should be in lowercase letters and without spaces |
frontendInput - String
|
Indicates how field rendered on storefront |
label - String
|
The display name assigned to the attribute |
numeric - Boolean
|
Indicates whether this attribute has a numeric value, such as a price or integer |
Example
{
"attribute": "abc123",
"frontendInput": "abc123",
"label": "abc123",
"numeric": true
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
123.45
Highlight
Description
An object that provides highlighted text for matched words
Example
{
"attribute": "abc123",
"matched_words": ["abc123"],
"value": "abc123"
}
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
4
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
JSON
Price
Description
Defines the price of a simple product or a part of a price range for a complex product. It can include a list of price adjustments.
Fields
| Field Name | Description |
|---|---|
adjustments - [PriceAdjustment]
|
The signed value of the price adjustment (positive for markup, negative for markdown). |
amount - ProductViewMoney
|
Contains the monetary value and currency code of a product. |
Example
{
"adjustments": [PriceAdjustment],
"amount": ProductViewMoney
}
PriceAdjustment
Description
Specifies the amount and type of price adjustment.
Example
{"amount": 987.65, "code": "xyz789"}
ProductSearchItem
Description
A single product returned by the query
Fields
| Field Name | Description |
|---|---|
applied_query_rule - AppliedQueryRule
|
The query rule type that was applied to this product, if any (in preview mode only, returns null otherwise) |
highlights - [Highlight]
|
An object that provides highlighted text for matched words |
productView - ProductView
|
Contains a product view |
Example
{
"applied_query_rule": AppliedQueryRule,
"highlights": [Highlight],
"productView": ProductView
}
ProductSearchResponse
Description
Contains the output of a productSearch query
Fields
| Field Name | Description |
|---|---|
facets - [Aggregation]
|
Details about the static and dynamic facets relevant to the search |
items - [ProductSearchItem]
|
An array of products returned by the query |
page_info - SearchResultPageInfo
|
Information for rendering pages of search results |
related_terms - [String]
|
An array of strings that might include merchant-defined synonyms |
suggestions - [String]
|
An array of strings that include the names of products and categories that exist in the catalog that are similar to the search query |
total_count - Int
|
The total number of products returned that matched the query |
warnings - [ProductSearchWarning]
|
An array of warning messages for validation issues (e.g., sort parameter ignored due to missing categoryPath) |
Example
{
"facets": [Aggregation],
"items": [ProductSearchItem],
"page_info": SearchResultPageInfo,
"related_terms": ["abc123"],
"suggestions": ["xyz789"],
"total_count": 987,
"warnings": [ProductSearchWarning]
}
ProductSearchSortInput
Description
The product attribute to sort on
Example
{"attribute": "xyz789", "direction": "ASC"}
ProductSearchWarning
Description
Structured warning with code and message for easier client handling
Example
{
"code": "abc123",
"message": "xyz789"
}
ProductView
Description
Defines the product fields available to the SimpleProductView and ComplexProductView types.
Fields
| Field Name | Description |
|---|---|
addToCartAllowed - Boolean
|
A flag stating if the product can be added to cart This field is deprecated and will be removed. |
inStock - Boolean
|
A flag stating if the product is in stock This field is deprecated and will be removed. |
lowStock - Boolean
|
Indicates whether the remaining quantity of the product has reached the Only X Left threshold. This field is deprecated and will be removed. |
attributes - [ProductViewAttribute]
|
A list of merchant-defined attributes designated for the storefront. They can be filtered by roles and names. |
description - String
|
The detailed description of the product. |
id - ID!
|
The product ID, generated as a composite key, unique per locale. |
images - [ProductViewImage]
|
A list of images defined for the product. |
Arguments
|
|
videos - [ProductViewVideo]
|
A list of videos defined for the product. |
lastModifiedAt - DateTime
|
Date and time when the product was last updated. |
metaDescription - String
|
A brief overview of the product for search results listings. |
metaKeyword - String
|
A comma-separated list of keywords that are visible only to search engines. |
metaTitle - String
|
A string that is displayed in the title bar and tab of the browser and in search results lists. |
name - String
|
Product title for search results listings. |
shortDescription - String
|
A summary of the product for search results listings. |
inputOptions - [ProductViewInputOption]
|
A list of input options. For example, a text field, a number field or a date field. This field is deprecated and will be removed. |
sku - String
|
A unique code used for identification of a product. |
externalId - String
|
External Id This field is deprecated and will be removed. |
url - String
|
Canonical URL of the product. This field is deprecated and will be removed. |
urlKey - String
|
The URL key of the product. This is a unique identifier for the product that is used to create the product's URL. |
links - [ProductViewLink]
|
A list of product links. For example, related, up-sell, and cross-sell links. |
Arguments
|
|
categories - [CategoryProductView!]
|
A list of categories in which the product is present. |
Arguments
|
|
queryType - String
|
Indicates if the product was retrieved from the primary or the backup query |
visibility - String
|
Visibility setting of the product |
Possible Types
| ProductView Types |
|---|
Example
{
"addToCartAllowed": false,
"inStock": false,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "xyz789",
"id": 4,
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "xyz789",
"metaKeyword": "abc123",
"metaTitle": "abc123",
"name": "abc123",
"shortDescription": "xyz789",
"inputOptions": [ProductViewInputOption],
"sku": "xyz789",
"externalId": "abc123",
"url": "xyz789",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "xyz789"
}
ProductViewAttribute
Description
A container for customer-defined attributes that are displayed the storefront.
Fields
| Field Name | Description |
|---|---|
label - String
|
Label of the attribute. |
name - String!
|
Name of an attribute code. For example, color, size or material |
roles - [String]
|
Roles designated for an attribute on the storefront. For example, show_on_plp, show_in_pdp or show_in_search |
value - JSON
|
Attribute value, arbitrary of type. For example, red, blue or green |
Example
{
"label": "abc123",
"name": "abc123",
"roles": ["abc123"],
"value": {}
}
ProductViewCurrency
Description
The list of supported currency codes.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"AED"
ProductViewImage
Description
Contains details about a product image.
Fields
| Field Name | Description |
|---|---|
label - String
|
The display label of the product image. For example, Main Image, Small Image or Thumbnail Image |
roles - [String]
|
A list that describes how the image is used. Can be image, small_image or thumbnail |
url - String!
|
The URL to the product image. For example, https://example.com/image.jpg. |
Example
{
"label": "xyz789",
"roles": ["xyz789"],
"url": "abc123"
}
ProductViewInputOption
Description
Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a simple product.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of an option value. For example, 123 for the first option value, 456 for the second option value. |
title - String
|
The display name of the option value. For example, Red, Blue or Green |
required - Boolean
|
Indicates whether this input option is required. |
type - String
|
The type of data entry. For example, text, number or date |
markupAmount - Float
|
The percentage the prices is marked up or down. A positive value, such as 10.00, indicates the product is marked up 10%. A negative value, such as -10.00, indicates the price is marked down 10%. |
suffix - String
|
SKU suffix to add to the product. For example, -red, -blue or -green |
sortOrder - Int
|
Sort order for the input option. For example, 1 for the first input option, 2 for the second input option. |
range - ProductViewInputOptionRange
|
The range of values for the input option. For example, if the input option is a text field, the range represents the number of characters. |
imageSize - ProductViewInputOptionImageSize
|
The size of the image for the input option. |
fileExtensions - String
|
The file extensions allowed for the image. For example, jpg, png, gif, or svg |
Example
{
"id": 4,
"title": "abc123",
"required": true,
"type": "xyz789",
"markupAmount": 987.65,
"suffix": "xyz789",
"sortOrder": 987,
"range": ProductViewInputOptionRange,
"imageSize": ProductViewInputOptionImageSize,
"fileExtensions": "abc123"
}
ProductViewInputOptionImageSize
Description
Dimensions of the image associated with the input option.
Example
{"width": 123, "height": 123}
ProductViewInputOptionRange
Description
Lists the value range associated with a ProductViewInputOption. For example, if the input option is a text field, the range represents the number of characters.
Fields
| Field Name | Description |
|---|---|
from - Float
|
The starting value of the range. For example, if the input option is a text field, the starting value represents the minimum number of characters. |
to - Float
|
The ending value of the range. For example, if the input option is a text field, the ending value represents the maximum number of characters. |
Example
{"from": 123.45, "to": 123.45}
ProductViewLink
Description
The product link type. Contains details about product links for related products and cross selling. For example, related, up_sell or cross_sell
Fields
| Field Name | Description |
|---|---|
product - ProductView!
|
Contains the details of the product found in the link. |
linkTypes - [String!]!
|
Stores the types of the links with this product. |
Example
{
"product": ProductView,
"linkTypes": ["abc123"]
}
ProductViewMoney
Description
Defines a monetary value, including a numeric value and a currency code.
Fields
| Field Name | Description |
|---|---|
currency - ProductViewCurrency
|
A three-letter currency code, such as USD or EUR. |
value - Float
|
A number expressing a monetary value. |
Example
{"currency": "AED", "value": 987.65}
ProductViewOption
Description
Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a simple product.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of the option. For example, 123 for the first option, 456 for the second option. |
multi - Boolean
|
Indicates whether the option allows multiple choices. The value is true for a multi-select option, false for a single-select option. |
required - Boolean
|
Indicates whether the option must be selected. |
title - String
|
The display name of the option. For example, Color, Size or Material |
values - [ProductViewOptionValue!]
|
List of available option values. For example, Red, Blue or Green |
Example
{
"id": 4,
"multi": false,
"required": false,
"title": "abc123",
"values": [ProductViewOptionValue]
}
ProductViewOptionValue
Description
Defines the product fields available to the ProductViewOptionValueProduct and ProductViewOptionValueConfiguration types.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of an option value. |
title - String
|
The display name of the option value. |
inStock - Boolean
|
Indicates whether the remaining quantity of the product has reached the out-of-stock threshold. |
Possible Types
| ProductViewOptionValue Types |
|---|
Example
{
"id": 4,
"title": "abc123",
"inStock": false
}
ProductViewOptionValueConfiguration
Description
An implementation of ProductViewOptionValue for configuration values.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of an option value. For example, 123 for the first option value, 456 for the second option value. |
title - String
|
The display name of the option value. For example, Red, Blue or Green |
inStock - Boolean
|
Indicates whether the remaining quantity of the product option value has reached the out-of-stock threshold. |
Example
{
"id": 4,
"title": "abc123",
"inStock": true
}
ProductViewOptionValueProduct
Description
An implementation of ProductViewOptionValue that adds details about a simple product.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of an option value. For example, 123 for the first option value, 456 for the second option value. |
isDefault - Boolean
|
Indicates whether the option value is the default. |
product - SimpleProductView
|
Details about a simple product. For example, a product with a SKU of 123, a name of Product 1, a price of 100.00. |
quantity - Float
|
Default quantity of an option value. |
title - String
|
The display name of the option value. For example, Red, Blue or Green |
inStock - Boolean
|
Indicates whether the remaining quantity of the product option value has reached the out-of-stock threshold. |
Example
{
"id": 4,
"isDefault": true,
"product": SimpleProductView,
"quantity": 123.45,
"title": "xyz789",
"inStock": true
}
ProductViewOptionValueSwatch
Description
An implementation of ProductViewOptionValueSwatch for swatches.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of an option value. For example, 123 for the first option value, 456 for the second option value. |
title - String
|
The display name of the option value. For example, Red, Blue or Green |
type - SwatchType
|
Indicates the type of the swatch. |
value - String
|
The value of the swatch depending on the type of the swatch. |
inStock - Boolean
|
Indicates whether the remaining quantity of the product option value has reached the out-of-stock threshold. |
Example
{
"id": 4,
"title": "xyz789",
"type": "TEXT",
"value": "abc123",
"inStock": true
}
ProductViewPrice
Description
Base product price view. Contains the final price after discounts, the regular price, and the list of tier prices.
Fields
| Field Name | Description |
|---|---|
final - Price
|
Price value after discounts, excluding personalized promotions. |
regular - Price
|
Base product price specified by the merchant. |
tiers - [ProductViewTierPrice]
|
Volume based pricing. |
roles - [String]
|
Price roles, stating if the price should be visible or hidden. For example, show_on_plp, show_in_pdp or show_in_search |
Example
{
"final": Price,
"regular": Price,
"tiers": [ProductViewTierPrice],
"roles": ["abc123"]
}
ProductViewPriceRange
Description
The minimum and maximum price of a complex product.
Fields
| Field Name | Description |
|---|---|
maximum - ProductViewPrice
|
Maximum price. |
minimum - ProductViewPrice
|
Minimum price. |
Example
{
"maximum": ProductViewPrice,
"minimum": ProductViewPrice
}
ProductViewTierCondition
ProductViewTierExactMatchCondition
Description
Minimum quantity (inclusive) required to activate this tier price. For example, a value of 10 means this tier applies when 10 or more items are purchased.
Fields
| Field Name | Description |
|---|---|
in - [Float]
|
Exact quantity values that activate this tier price. For example, [5, 10] means the tier applies only when the purchased quantity is exactly 5 or exactly 10. |
Example
{"in": [987.65]}
ProductViewTierPrice
Description
The discounted price that applies when the quantity conditions in quantity are satisfied. Contains the monetary amount and any price adjustments applied to this tier.
Fields
| Field Name | Description |
|---|---|
tier - Price
|
The discounted price that applies when the quantity conditions in quantity are satisfied. Contains the monetary amount and any price adjustments applied to this tier. |
quantity - [ProductViewTierCondition!]!
|
The quantity conditions that must be met to activate the tier price. For example, 10 for a quantity of 10 or 20 for a quantity of 20. |
Example
{
"tier": Price,
"quantity": [ProductViewTierRangeCondition]
}
ProductViewTierRangeCondition
Description
Minimum quantity (inclusive) required to activate this tier price. For example, a value of 10 means this tier applies when 10 or more items are purchased. Maximum quantity (exclusive) required to activate this tier price. For example, a value of 20 means this tier applies when less than 20 items are purchased.
Fields
| Field Name | Description |
|---|---|
gte - Float
|
The minimum quantity that must be purchased to activate the tier price. Must be greater than or equal to the value in gte. |
lt - Float
|
Maximum quantity (exclusive) for this tier price. For example, a value of 20 means this tier applies only when fewer than 20 items are purchased. |
Example
{"gte": 987.65, "lt": 123.45}
ProductViewVariant
Description
Represents a product variant.
Fields
| Field Name | Description |
|---|---|
selections - [String!]
|
List of option values that make up the variant. For example, red, blue or green |
product - ProductView
|
Product corresponding to the variant. For example, a product with a SKU of 123, a name of Product 1, a price of 100.00. |
Example
{
"selections": ["abc123"],
"product": ProductView
}
ProductViewVariantResults
Description
Represents the results of a product variant search.
Fields
| Field Name | Description |
|---|---|
variants - [ProductViewVariant]!
|
List of product variants. For example, a variant with a selection of red, blue or green |
cursor - String
|
Pagination cursor. For example, 123 for the first variant, 456 for the second variant. |
Example
{
"variants": [ProductViewVariant],
"cursor": "abc123"
}
ProductViewVideo
Description
Contains details about a product video. For example, a video of the product being used or a video of the product being assembled.
Fields
| Field Name | Description |
|---|---|
preview - ProductViewImage
|
Preview image for the video. For example, a screenshot of the video. |
url - String!
|
The URL to the product video. For example, https://example.com/video.mp4 or https://example.com/video.webm |
description - String
|
Description of the product video. For example, A video of the product being used or A video of the product being assembled |
title - String
|
The title of the product video. For example, Product Video or Product Assembly Video |
Example
{
"preview": ProductViewImage,
"url": "xyz789",
"description": "xyz789",
"title": "abc123"
}
PurchaseHistory
Example
{
"date": "2007-12-03T10:15:30Z",
"items": ["xyz789"]
}
QueryContextInput
Fields
| Input Field | Description |
|---|---|
customerGroup - String!
|
The customer group code. Field reserved for future use. Currently, passing this field will have no impact on search results, that is, the search results will be for "Not logged in" customer |
userViewHistory - [ViewHistoryInput!]
|
User view history with timestamp |
Example
{
"customerGroup": "xyz789",
"userViewHistory": [ViewHistoryInput]
}
RangeBucket
Description
For use on numeric product fields
Example
{
"count": 987,
"from": 987.65,
"title": "abc123",
"to": 123.45
}
RecommendationUnit
Description
Recommendation Unit containing product and other details
Fields
| Field Name | Description |
|---|---|
displayOrder - Int
|
Order in which recommendation units are displayed |
pageType - String
|
Page type |
productsView - [ProductView]
|
List of product view |
storefrontLabel - String
|
Storefront label to be displayed on the storefront |
totalProducts - Int
|
Total products returned in recommedations |
typeId - String
|
Type of recommendation |
unitId - String
|
Id of the preconfigured unit |
unitName - String
|
Name of the preconfigured unit |
Example
{
"displayOrder": 987,
"pageType": "abc123",
"productsView": [ProductView],
"storefrontLabel": "xyz789",
"totalProducts": 123,
"typeId": "abc123",
"unitId": "abc123",
"unitName": "abc123"
}
Recommendations
Description
Returns a Recommendations response.
Fields
| Field Name | Description |
|---|---|
results - [RecommendationUnit]
|
List of rec units with products recommended |
totalResults - Int
|
total number of rec units for which recommendations are returned |
Example
{"results": [RecommendationUnit], "totalResults": 123}
ScalarBucket
Description
For use on string and other scalar product fields
Example
{"count": 987, "id": 4, "title": "abc123"}
SearchClauseInput
Description
A product attribute to filter on
Fields
| Input Field | Description |
|---|---|
attribute - String!
|
The attribute code of a product attribute |
contains - String
|
attribute value should contain the specified string |
eq - String
|
A string value to filter on |
in - [String]
|
An array of string values to filter on |
range - SearchRangeInput
|
A range of numeric values to filter on |
startsWith - String
|
attribute value should start with the specified string |
Example
{
"attribute": "xyz789",
"contains": "xyz789",
"eq": "xyz789",
"in": ["xyz789"],
"range": SearchRangeInput,
"startsWith": "xyz789"
}
SearchRangeInput
Description
A range of numeric values for use in a search
Example
{"from": 987.65, "to": 123.45}
SearchResultPageInfo
Description
Provides navigation for the query response.
Example
{"current_page": 123, "page_size": 987, "total_pages": 987}
SimpleProductView
Description
Represents a single-SKU product without selectable variants. Because there are no variant combinations, pricing is returned as a single price (not a price range).
Fields
| Field Name | Description |
|---|---|
addToCartAllowed - Boolean
|
A flag stating if the product can be added to cart This field is deprecated and will be removed. |
inStock - Boolean
|
A flag stating if the product is in stock This field is deprecated and will be removed. |
lowStock - Boolean
|
Indicates whether the remaining quantity of the product has reached the Only X Left threshold. This field is deprecated and will be removed. |
attributes - [ProductViewAttribute]
|
A list of merchant-defined attributes designated for the storefront. They can be filtered by names and roles. |
description - String
|
The detailed description of the product. |
id - ID!
|
The product ID, generated as a composite key, unique per locale. |
images - [ProductViewImage]
|
A list of images defined for the product. Possible values include image, small_image, and swatch. |
Arguments
|
|
videos - [ProductViewVideo]
|
A list of videos defined for the product. |
inputOptions - [ProductViewInputOption]
|
A list of input options. For example, a text field, a number field or a date field. This field is deprecated and will be removed. |
lastModifiedAt - DateTime
|
Date and time when the product was last updated. |
metaDescription - String
|
A brief overview of the product for search results listings. |
metaKeyword - String
|
A comma-separated list of keywords that are visible only to search engines. |
metaTitle - String
|
A string that is displayed in the title bar and tab of the browser and in search results lists. |
name - String
|
Product name. |
price - ProductViewPrice
|
Base product price view. |
shortDescription - String
|
A summary of the product. |
sku - String
|
A unique code used for identification of a product. |
externalId - String
|
External Id. For example, 123, 456 or 789. This field is deprecated and will be removed.
|
url - String
|
Canonical URL of the product. For example, https://example.com/product-1 or https://example.com/product-2. This field is deprecated and will be removed.
|
urlKey - String
|
The URL key of the product. For example, product-1, product-2 or product-3. |
links - [ProductViewLink]
|
A list of product links. For example, a related product, an up-sell product or a cross-sell product. |
Arguments
|
|
categories - [CategoryProductView!]
|
A list of categories in which the product is present. Categories are used to group products by category. |
Arguments
|
|
queryType - String
|
Indicates if the product was retrieved from the primary or the backup query |
visibility - String
|
Visibility setting of the product |
Example
{
"addToCartAllowed": true,
"inStock": false,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "abc123",
"id": 4,
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"inputOptions": [ProductViewInputOption],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "abc123",
"metaKeyword": "xyz789",
"metaTitle": "xyz789",
"name": "xyz789",
"price": ProductViewPrice,
"shortDescription": "xyz789",
"sku": "xyz789",
"externalId": "abc123",
"url": "abc123",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "abc123"
}
SortEnum
Description
Indicates whether to return results in ascending or descending order.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"ASC"
SortableAttribute
Description
Contains product attributes that be used for sorting in a productSearch query
Fields
| Field Name | Description |
|---|---|
attribute - String!
|
The unique identifier for an attribute code. This value should be in lowercase letters and without space |
frontendInput - String
|
Indicates how field rendered on storefront |
label - String
|
The display name assigned to the attribute |
numeric - Boolean
|
Indicates whether this attribute has a numeric value, such as a price or integer |
Example
{
"attribute": "xyz789",
"frontendInput": "xyz789",
"label": "abc123",
"numeric": true
}
StatsBucket
Description
For retrieving statistics across multiple buckets
Example
{
"max": 123.45,
"min": 123.45,
"title": "abc123"
}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
SwatchType
Description
The type of the swatch.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"TEXT"
ViewHistory
Example
{
"date": "2007-12-03T10:15:30Z",
"sku": "xyz789"
}
ViewHistoryInput
Example
{
"dateTime": "2007-12-03T10:15:30Z",
"sku": "xyz789"
}