Merchandising GraphQL API
Use the Merchandising GraphQL API to access rich view-model (read-only) catalog data to build product-related storefront experiences. 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-Environment-Id: Tenant ID for your Commerce Optimizer instance
- AC-View-Id: View ID for catalog context
- AC-Source-Locale: Catalog source locale to filter products for display or update
- 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 an 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": "xyz789",
"slugs": ["xyz789"],
"depth": 123
}
Response
{
"data": {
"categoryTree": [
{
"slug": "abc123",
"name": "xyz789",
"description": "abc123",
"metaTags": CategoryMetaTags,
"images": [CategoryImage],
"level": 123,
"parentSlug": "abc123",
"childrenSlugs": ["xyz789"]
}
]
}
}
productSearch
Description
Search products using Live Search
Response
Returns a 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": ["abc123"],
"suggestions": ["abc123"],
"total_count": 987,
"warnings": [ProductSearchWarning]
}
}
}
products
Description
Search for products that match the specified SKU values.
Response
Returns [ProductView]
Arguments
| Name | Description |
|---|---|
skus - [String]
|
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": true,
"inStock": false,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "xyz789",
"id": 4,
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "abc123",
"metaKeyword": "xyz789",
"metaTitle": "abc123",
"name": "xyz789",
"shortDescription": "xyz789",
"inputOptions": [ProductViewInputOption],
"sku": "xyz789",
"externalId": "abc123",
"url": "abc123",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "xyz789"
}
]
}
}
recommendations
Description
Get Recommendations
Response
Returns a Recommendations
Arguments
| Name | Description |
|---|---|
cartSkus - [String]
|
SKUs of products in the cart |
category - String
|
Category currently being viewed |
currentSku - String
|
SKU of the product currently being viewed on PDP |
pageType - PageType
|
Type of page on which recommendations are requested |
userPurchaseHistory - [PurchaseHistory]
|
User purchase history with timestamp |
userViewHistory - [ViewHistory]
|
User view history with timestamp |
config - UnitConfigInput
|
Optional unit configuration |
Example
Query
query recommendations(
$cartSkus: [String],
$category: String,
$currentSku: String,
$pageType: PageType,
$userPurchaseHistory: [PurchaseHistory],
$userViewHistory: [ViewHistory],
$config: UnitConfigInput
) {
recommendations(
cartSkus: $cartSkus,
category: $category,
currentSku: $currentSku,
pageType: $pageType,
userPurchaseHistory: $userPurchaseHistory,
userViewHistory: $userViewHistory,
config: $config
) {
results {
...RecommendationUnitFragment
}
totalResults
}
}
Variables
{
"cartSkus": ["xyz789"],
"category": "xyz789",
"currentSku": "abc123",
"pageType": "CMS",
"userPurchaseHistory": [PurchaseHistory],
"userViewHistory": [ViewHistory],
"config": UnitConfigInput
}
Response
{
"data": {
"recommendations": {
"results": [RecommendationUnit],
"totalResults": 987
}
}
}
recommendationsByUnitIds
Response
Returns a 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": ["xyz789"],
"currentSku": "abc123",
"userPurchaseHistory": [PurchaseHistory],
"userViewHistory": [ViewHistory],
"cartSkus": ["abc123"]
}
Response
{
"data": {
"recommendationsByUnitIds": {
"results": [RecommendationUnit],
"totalResults": 123
}
}
}
refineProduct
Response
Returns a ProductView
Arguments
| Name | Description |
|---|---|
optionIds - [String!]!
|
|
sku - String!
|
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": ["xyz789"],
"sku": "xyz789"
}
Response
{
"data": {
"refineProduct": {
"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": "xyz789",
"metaTitle": "abc123",
"name": "abc123",
"shortDescription": "abc123",
"inputOptions": [ProductViewInputOption],
"sku": "xyz789",
"externalId": "xyz789",
"url": "xyz789",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "xyz789"
}
}
}
variants
Response
Returns a ProductViewVariantResults
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": "xyz789",
"optionIds": ["xyz789"],
"pageSize": 123,
"cursor": "xyz789"
}
Response
{
"data": {
"variants": {
"variants": [ProductViewVariant],
"cursor": "abc123"
}
}
}
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": "abc123",
"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": "xyz789",
"label": "abc123",
"roles": ["xyz789"],
"customRoles": ["xyz789"]
}
CategoryMetaTags
Description
SEO metadata tags for the category.
Example
{
"title": "abc123",
"description": "xyz789",
"keywords": ["xyz789"]
}
CategoryProductView
Description
Represents category information associated with a product, including hierarchical parent relationships.
Fields
| Field Name | Description |
|---|---|
name - String!
|
The display name of the category. |
slug - String!
|
The unique URL-friendly identifier for the category. |
level - Int!
|
The depth level of the category in the hierarchy (0 for root categories). |
parents - [CategoryProductView!]
|
The ancestor categories in the hierarchy, ordered from root to immediate parent. |
Example
{
"name": "xyz789",
"slug": "abc123",
"level": 987,
"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!
|
The display name of the category. |
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 depth level of the category in the tree hierarchy (0 for root categories). |
parentSlug - String
|
The slug of the parent category, if any. |
childrenSlugs - [String]
|
The slugs of all direct child categories. |
Example
{
"slug": "abc123",
"name": "abc123",
"description": "xyz789",
"metaTags": CategoryMetaTags,
"images": [CategoryImage],
"level": 987,
"parentSlug": "xyz789",
"childrenSlugs": ["xyz789"]
}
CategoryView
Description
Old category bucket for federation
Fields
| Field Name | Description |
|---|---|
availableSortBy - [String]
|
|
children - [String!]
|
|
defaultSortBy - String
|
|
id - ID!
|
'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead. |
level - Int
|
|
name - String
|
|
parentId - String!
|
|
path - String
|
'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead. |
roles - [String!]!
|
|
urlKey - String
|
|
urlPath - String
|
|
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": "abc123",
"id": 4,
"level": 123,
"name": "abc123",
"parentId": "xyz789",
"path": "xyz789",
"roles": ["xyz789"],
"urlKey": "xyz789",
"urlPath": "xyz789",
"count": 123,
"title": "abc123"
}
CategoryViewInterface
Fields
| Field Name | Description |
|---|---|
availableSortBy - [String]
|
|
defaultSortBy - String
|
|
id - ID!
|
'CategoryView' is deprecated for use as a Bucket in 'productSearch' facet (to be removed after Sep 1, 2024). Use 'CategoryBucket' instead. |
level - Int
|
|
name - String
|
|
path - String
|
|
roles - [String]
|
|
urlKey - String
|
|
urlPath - String
|
Possible Types
| CategoryViewInterface Types |
|---|
Example
{
"availableSortBy": ["abc123"],
"defaultSortBy": "abc123",
"id": 4,
"level": 123,
"name": "abc123",
"path": "xyz789",
"roles": ["xyz789"],
"urlKey": "xyz789",
"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!
|
The display name of the category. |
Possible Types
| CategoryViewV2 Types |
|---|
Example
{
"slug": "abc123",
"name": "xyz789"
}
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
|
A flag stating if the product stock is low 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 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
|
Product SKU. |
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 |
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": false,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "abc123",
"id": 4,
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "abc123",
"metaKeyword": "abc123",
"metaTitle": "abc123",
"name": "xyz789",
"inputOptions": [ProductViewInputOption],
"options": [ProductViewOption],
"priceRange": ProductViewPriceRange,
"shortDescription": "abc123",
"sku": "xyz789",
"externalId": "xyz789",
"url": "xyz789",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "xyz789",
"visibility": "xyz789"
}
ConditionInput
Fields
| Input Field | Description |
|---|---|
field - Field
|
|
operator - OperatorInput
|
|
enabled - Boolean
|
Example
{
"field": "UNKNOWN_FIELD",
"operator": OperatorInput,
"enabled": true
}
CustomOperatorInput
Fields
| Input Field | Description |
|---|---|
type - CustomOperatorType
|
|
value - [String]
|
Example
{
"type": "UNKNOWN_CUSTOMOPERATOR_TYPE",
"value": ["abc123"]
}
CustomOperatorType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"UNKNOWN_CUSTOMOPERATOR_TYPE"
DateTime
Field
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"UNKNOWN_FIELD"
FilterRuleInput
Fields
| Input Field | Description |
|---|---|
name - String
|
|
type - FilterRuleType
|
|
conditions - [ConditionInput]
|
Example
{
"name": "xyz789",
"type": "UNKNOWN_FILTER_RULE_TYPE",
"conditions": [ConditionInput]
}
FilterRuleType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"UNKNOWN_FILTER_RULE_TYPE"
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": false
}
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
Highlight
Description
An object that provides highlighted text for matched words
Example
{
"attribute": "xyz789",
"matched_words": ["xyz789"],
"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
IsOperatorInput
Fields
| Input Field | Description |
|---|---|
type - IsOperatorType
|
|
value - Boolean
|
Example
{"type": "UNKNOWN_ISOPERATOR_TYPE", "value": false}
IsOperatorType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"UNKNOWN_ISOPERATOR_TYPE"
JSON
NumericOperatorInput
Fields
| Input Field | Description |
|---|---|
type - NumericOperatorType
|
Example
{"type": "UNKNOWN_NUMERIC_OPERATOR"}
NumericOperatorType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"UNKNOWN_NUMERIC_OPERATOR"
OperatorInput
Fields
| Input Field | Description |
|---|---|
rangeOperator - RangeOperatorInput
|
|
customOperator - CustomOperatorInput
|
|
isOperator - IsOperatorInput
|
|
numericOperator - NumericOperatorInput
|
|
stringOperator - StringOperatorInput
|
Example
{
"rangeOperator": RangeOperatorInput,
"customOperator": CustomOperatorInput,
"isOperator": IsOperatorInput,
"numericOperator": NumericOperatorInput,
"stringOperator": StringOperatorInput
}
PageType
Description
Type of page on which recommendations are requested
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
This field is deprecated and will be removed. |
|
|
|
|
|
|
|
|
Example
"CMS"
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]
|
A list of price adjustments. |
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": "abc123"}
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": 123,
"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": "xyz789",
"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
|
A flag stating if the product stock is low 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 name. |
shortDescription - String
|
A summary of the product. |
inputOptions - [ProductViewInputOption]
|
A list of input options. This field is deprecated and will be removed. |
sku - String
|
Product SKU. |
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. |
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": true,
"attributes": [ProductViewAttribute],
"description": "xyz789",
"id": "4",
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "xyz789",
"metaKeyword": "xyz789",
"metaTitle": "abc123",
"name": "xyz789",
"shortDescription": "abc123",
"inputOptions": [ProductViewInputOption],
"sku": "xyz789",
"externalId": "abc123",
"url": "abc123",
"urlKey": "xyz789",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "abc123",
"visibility": "abc123"
}
ProductViewAttribute
Description
A container for customer-defined attributes that are displayed the storefront.
Example
{
"label": "abc123",
"name": "xyz789",
"roles": ["xyz789"],
"value": {}
}
ProductViewCurrency
Description
The list of supported currency codes.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"AED"
ProductViewImage
Description
Contains details about a product image.
Example
{
"label": "xyz789",
"roles": ["xyz789"],
"url": "xyz789"
}
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 |
title - String
|
The display name of the option value |
required - Boolean
|
Wether this option is required or not |
type - String
|
The type of data entry |
markupAmount - Float
|
Price markup or markdown |
suffix - String
|
SKU suffix to add to the product |
sortOrder - Int
|
Sort order |
range - ProductViewInputOptionRange
|
|
imageSize - ProductViewInputOptionImageSize
|
|
fileExtensions - String
|
Example
{
"id": 4,
"title": "xyz789",
"required": true,
"type": "xyz789",
"markupAmount": 987.65,
"suffix": "xyz789",
"sortOrder": 123,
"range": ProductViewInputOptionRange,
"imageSize": ProductViewInputOptionImageSize,
"fileExtensions": "abc123"
}
ProductViewInputOptionImageSize
Example
{"width": 123, "height": 123}
ProductViewInputOptionRange
Example
{"from": 987.65, "to": 987.65}
ProductViewLink
Description
The product link type.
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": 123.45}
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. |
multi - Boolean
|
Indicates whether the option allows multiple choices. |
required - Boolean
|
Indicates whether the option must be selected. |
title - String
|
The display name of the option. |
values - [ProductViewOptionValue!]
|
List of available option values. |
Example
{
"id": "4",
"multi": true,
"required": true,
"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 if the option is in stock. |
Possible Types
| ProductViewOptionValue Types |
|---|
Example
{
"id": "4",
"title": "xyz789",
"inStock": false
}
ProductViewOptionValueConfiguration
Description
An implementation of ProductViewOptionValue for configuration values.
Example
{
"id": "4",
"title": "abc123",
"inStock": false
}
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. |
isDefault - Boolean
|
States if the option value is default or not. |
product - SimpleProductView
|
Details about a simple product. |
quantity - Float
|
Default quantity of an option value. |
title - String
|
The display name of the option value. |
inStock - Boolean
|
Indicates if the option is in stock. |
Example
{
"id": 4,
"isDefault": false,
"product": SimpleProductView,
"quantity": 987.65,
"title": "xyz789",
"inStock": true
}
ProductViewOptionValueSwatch
Description
An implementation of ProductViewOptionValueSwatch for swatches.
Fields
| Field Name | Description |
|---|---|
id - ID
|
The ID of an option value. |
title - String
|
The display name of the option value. |
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 if the option is in stock. |
Example
{
"id": 4,
"title": "abc123",
"type": "TEXT",
"value": "xyz789",
"inStock": false
}
ProductViewPrice
Description
Base product price view, inherent for simple products.
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. |
Example
{
"final": Price,
"regular": Price,
"tiers": [ProductViewTierPrice],
"roles": ["xyz789"]
}
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
ProductViewTierPrice
Fields
| Field Name | Description |
|---|---|
tier - Price
|
Volume based price |
quantity - [ProductViewTierCondition!]!
|
Condition to active price |
Example
{
"tier": Price,
"quantity": [ProductViewTierRangeCondition]
}
ProductViewTierRangeCondition
Example
{"gte": 987.65, "lt": 123.45}
ProductViewVariant
Fields
| Field Name | Description |
|---|---|
selections - [String!]
|
List of option values that make up the variant. |
product - ProductView
|
Product corresponding to the variant. |
Example
{
"selections": ["xyz789"],
"product": ProductView
}
ProductViewVariantResults
Fields
| Field Name | Description |
|---|---|
variants - [ProductViewVariant]!
|
List of product variants. |
cursor - String
|
Pagination cursor |
Example
{
"variants": [ProductViewVariant],
"cursor": "abc123"
}
ProductViewVideo
Description
Contains details about a product video
Fields
| Field Name | Description |
|---|---|
preview - ProductViewImage
|
Preview image for the video |
url - String!
|
The URL to the product video. |
description - String
|
Description of the product video. |
title - String
|
The title of the product video. |
Example
{
"preview": ProductViewImage,
"url": "abc123",
"description": "xyz789",
"title": "xyz789"
}
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": "abc123",
"userViewHistory": [ViewHistoryInput]
}
RangeBucket
Description
For use on numeric product fields
Example
{
"count": 987,
"from": 123.45,
"title": "xyz789",
"to": 123.45
}
RangeOperatorInput
Fields
| Input Field | Description |
|---|---|
type - RangeType
|
|
value - RangeValueInput
|
Example
{"type": "UNKNOWN_RANGE_TYPE", "value": RangeValueInput}
RangeType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"UNKNOWN_RANGE_TYPE"
RangeValueInput
Example
{"from": 987.65, "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": 123,
"pageType": "xyz789",
"productsView": [ProductView],
"storefrontLabel": "xyz789",
"totalProducts": 987,
"typeId": "abc123",
"unitId": "abc123",
"unitName": "xyz789"
}
Recommendations
Description
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": 123, "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": "abc123",
"in": ["xyz789"],
"range": SearchRangeInput,
"startsWith": "xyz789"
}
SearchRangeInput
Description
A range of numeric values for use in a search
Example
{"from": 123.45, "to": 987.65}
SearchResultPageInfo
Description
Provides navigation for the query response.
Example
{"current_page": 987, "page_size": 987, "total_pages": 123}
SimpleProductView
Description
Represents simple products. Simple product prices do not contain price ranges.
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
|
A flag stating if the product stock is low 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. |
Arguments
|
|
videos - [ProductViewVideo]
|
A list of videos defined for the product. |
inputOptions - [ProductViewInputOption]
|
A list of input options. 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
|
Product SKU. |
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 |
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": false,
"lowStock": false,
"attributes": [ProductViewAttribute],
"description": "xyz789",
"id": "4",
"images": [ProductViewImage],
"videos": [ProductViewVideo],
"inputOptions": [ProductViewInputOption],
"lastModifiedAt": "2007-12-03T10:15:30Z",
"metaDescription": "xyz789",
"metaKeyword": "abc123",
"metaTitle": "xyz789",
"name": "abc123",
"price": ProductViewPrice,
"shortDescription": "xyz789",
"sku": "abc123",
"externalId": "abc123",
"url": "xyz789",
"urlKey": "abc123",
"links": [ProductViewLink],
"categories": [CategoryProductView],
"queryType": "xyz789",
"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": "abc123",
"label": "xyz789",
"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"
StringOperatorInput
Fields
| Input Field | Description |
|---|---|
type - StringOperatorType
|
Example
{"type": "UNKNOWN_STRING_OPERATOR"}
StringOperatorType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"UNKNOWN_STRING_OPERATOR"
SwatchType
UnitConfigInput
Example
{
"unitName": "abc123",
"storefrontLabel": "xyz789",
"pagePlacement": "abc123",
"displayNumber": 123,
"pageType": "xyz789",
"unitStatus": "abc123",
"typeId": "xyz789",
"filterRules": [FilterRuleInput]
}
ViewHistory
Example
{
"date": "2007-12-03T10:15:30Z",
"sku": "abc123"
}
ViewHistoryInput
Example
{
"dateTime": "2007-12-03T10:15:30Z",
"sku": "xyz789"
}