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]
    }
  }
}
back to top

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:

  • Returns only specified categories
  • Includes their hierarchical relationships (parents and children)
  • Enables targeted category tree queries

When Omitted: All categories in the specified family are returned

Use Cases:

  • Fetching specific category branches
  • Retrieving category subtrees
  • Targeted hierarchy queries
depth - Int

Optional maximum depth level to retrieve in the category tree structure.

Depth Levels:

  • 0: Root categories only
  • 1: Root categories + immediate children
  • 2: Root + children + grandchildren
  • And so on...

Benefits:

  • Improves performance for large category trees
  • Controls response payload size
  • Enables progressive tree loading

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"]
      }
    ]
  }
}
back to top

navigation

Description

Retrieves the navigation tree for a given product family.

Response

Returns [CategoryNavigationView]

Arguments
Name Description
family - String!

Required. The catalog family identifier that determines which catalog's navigation structure to retrieve.

Typically: Your store's catalog ID

Performance Optimizations:

  • Entire family structure retrieved in single query
  • Heavily cached responses
  • Optimized for frequent navigation requests
  • Minimal database load for menu rendering

Example

Query
query navigation($family: String!) {
  navigation(family: $family) {
    slug
    name
    children {
      ...CategoryNavigationViewFragment
    }
  }
}
Variables
{"family": "xyz789"}
Response
{
  "data": {
    "navigation": [
      {
        "slug": "xyz789",
        "name": "xyz789",
        "children": [CategoryNavigationView]
      }
    ]
  }
}
back to top

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]
    }
  }
}
back to top

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"
      }
    ]
  }
}
back to top

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
    }
  }
}
back to top

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
    }
  }
}
back to top

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"
    }
  }
}
back to top

variants

Response

Returns a ProductViewVariantResults

Arguments
Name Description
sku - String!
optionIds - [String!]
pageSize - Int
cursor - String

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"
    }
  }
}
back to top

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"
}
back to top

AggregationType

Description

Identifies the data type of the aggregation

Values
Enum Value Description

INTELLIGENT

PINNED

POPULAR

Example
"INTELLIGENT"
back to top

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"
}
back to top

AppliedQueryRuleActionType

Description

The type of rule that was applied to a product during search (optional)

Values
Enum Value Description

BOOST

BURY

PIN

Example
"BOOST"
back to top

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]
}
back to top

Boolean

Description

The Boolean scalar type represents true or false.

Example
true
back to top

Bucket

Description

An interface for bucket contents

Fields
Field Name Description
title - String! A human-readable name of a bucket
Example
{"title": "xyz789"}
back to top

CategoryBucket

Description

New category bucket for federation

Fields
Field Name Description
count - Int!
id - ID!
path - String!
title - String!
Example
{
  "count": 987,
  "id": "4",
  "path": "abc123",
  "title": "xyz789"
}
back to top

CategoryBucketInterface

Fields
Field Name Description
id - ID!
Possible Types
CategoryBucketInterface Types

CategoryBucket

Example
{"id": "4"}
back to top

CategoryImage

Description

Represents an image associated with a category.

Fields
Field Name Description
url - String! The URL where the image is hosted.
label - String A descriptive label or alt text for the image.
roles - [String] Standard predefined roles for the image.
customRoles - [String] Custom roles specific to the implementation.
Example
{
  "url": "xyz789",
  "label": "abc123",
  "roles": ["xyz789"],
  "customRoles": ["xyz789"]
}
back to top

CategoryMetaTags

Description

SEO metadata tags for the category.

Fields
Field Name Description
title - String The page title for SEO purposes.
description - String The meta description for SEO purposes.
keywords - [String] Keywords associated with the category for SEO.
Example
{
  "title": "abc123",
  "description": "xyz789",
  "keywords": ["xyz789"]
}
back to top

CategoryNavigationView

Description

Represents a category optimized for navigation menus, with nested children for building navigation trees.

Fields
Field Name Description
slug - String! The unique URL-friendly identifier for the category.
name - String! The display name of the category.
children - [CategoryNavigationView] The direct child categories for building nested navigation menus.
Example
{
  "slug": "xyz789",
  "name": "xyz789",
  "children": [CategoryNavigationView]
}
back to top

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]
}
back to top

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"]
}
back to top

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"
}
back to top

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

CategoryView

Example
{
  "availableSortBy": ["abc123"],
  "defaultSortBy": "abc123",
  "id": 4,
  "level": 123,
  "name": "abc123",
  "path": "xyz789",
  "roles": ["xyz789"],
  "urlKey": "xyz789",
  "urlPath": "abc123"
}
back to top

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

CategoryNavigationView

CategoryProductView

CategoryTreeView

Example
{
  "slug": "abc123",
  "name": "xyz789"
}
back to top

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.
Arguments
roles - [String]
names - [String]
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
roles - [String]
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
linkTypes - [String!]
categories - [CategoryProductView!] A list of categories in which the product is present.
Arguments
family - String
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"
}
back to top

ConditionInput

Fields
Input Field Description
field - Field
operator - OperatorInput
enabled - Boolean
Example
{
  "field": "UNKNOWN_FIELD",
  "operator": OperatorInput,
  "enabled": true
}
back to top

CustomOperatorInput

Fields
Input Field Description
type - CustomOperatorType
value - [String]
Example
{
  "type": "UNKNOWN_CUSTOMOPERATOR_TYPE",
  "value": ["abc123"]
}
back to top

CustomOperatorType

Values
Enum Value Description

UNKNOWN_CUSTOMOPERATOR_TYPE

CUSTOM

Example
"UNKNOWN_CUSTOMOPERATOR_TYPE"
back to top

DateTime

Description

An RFC-3339 compliant DateTime Scalar

Example
"2007-12-03T10:15:30Z"
back to top

Field

Values
Enum Value Description

UNKNOWN_FIELD

CATEGORY

PRICE

PRODUCT

OUT_OF_STOCK

LOW_STOCK

TYPE

VISIBILITY

Example
"UNKNOWN_FIELD"
back to top

FilterRuleInput

Fields
Input Field Description
name - String
type - FilterRuleType
conditions - [ConditionInput]
Example
{
  "name": "xyz789",
  "type": "UNKNOWN_FILTER_RULE_TYPE",
  "conditions": [ConditionInput]
}
back to top

FilterRuleType

Values
Enum Value Description

UNKNOWN_FILTER_RULE_TYPE

INCLUSION

EXCLUSION

Example
"UNKNOWN_FILTER_RULE_TYPE"
back to top

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
}
back to top

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65
back to top

Highlight

Description

An object that provides highlighted text for matched words

Fields
Field Name Description
attribute - String! The product attribute that contains a match for the search phrase
matched_words - [String]! An array of strings
value - String! The matched text, enclosed within emphasis tags
Example
{
  "attribute": "xyz789",
  "matched_words": ["xyz789"],
  "value": "abc123"
}
back to top

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
back to top

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
back to top

IsOperatorInput

Fields
Input Field Description
type - IsOperatorType
value - Boolean
Example
{"type": "UNKNOWN_ISOPERATOR_TYPE", "value": false}
back to top

IsOperatorType

Values
Enum Value Description

UNKNOWN_ISOPERATOR_TYPE

IS

Example
"UNKNOWN_ISOPERATOR_TYPE"
back to top

JSON

Description

A JSON scalar

Example
{}
back to top

NumericOperatorInput

Fields
Input Field Description
type - NumericOperatorType
Example
{"type": "UNKNOWN_NUMERIC_OPERATOR"}
back to top

NumericOperatorType

Values
Enum Value Description

UNKNOWN_NUMERIC_OPERATOR

GREATER_THAN_CURRENT

LESS_THAN_CURRENT

Example
"UNKNOWN_NUMERIC_OPERATOR"
back to top

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
}
back to top

PageType

Description

Type of page on which recommendations are requested

Values
Enum Value Description

CMS

Cart

Category

This field is deprecated and will be removed.

Checkout

PageBuilder

Product

Example
"CMS"
back to top

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
}
back to top

PriceAdjustment

Description

Specifies the amount and type of price adjustment.

Fields
Field Name Description
amount - Float The amount of the price adjustment.
code - String Identifies the type of price adjustment.
Example
{"amount": 987.65, "code": "abc123"}
back to top

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
}
back to top

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]
}
back to top

ProductSearchSortInput

Description

The product attribute to sort on

Fields
Input Field Description
attribute - String! The attribute code of a product attribute
direction - SortEnum! ASC (ascending) or DESC (descending)
Example
{"attribute": "xyz789", "direction": "ASC"}
back to top

ProductSearchWarning

Description

Structured warning with code and message for easier client handling

Fields
Field Name Description
code - String! Error code for programmatic handling (e.g., EMPTY_CATEGORY_PATH)
message - String! Human-readable message describing the warning
Example
{
  "code": "xyz789",
  "message": "xyz789"
}
back to top

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.
Arguments
roles - [String]
names - [String]
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
roles - [String]
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
linkTypes - [String!]
categories - [CategoryProductView!] A list of categories in which the product is present.
Arguments
family - String
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

ComplexProductView

SimpleProductView

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"
}
back to top

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.
roles - [String] Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search".
value - JSON Attribute value, arbitrary of type.
Example
{
  "label": "abc123",
  "name": "xyz789",
  "roles": ["xyz789"],
  "value": {}
}
back to top

ProductViewCurrency

Description

The list of supported currency codes.

Values
Enum Value Description

AED

AFN

ALL

AMD

ANG

AOA

ARS

AUD

AWG

AZM

AZN

BAM

BBD

BDT

BGN

BHD

BIF

BMD

BND

BOB

BRL

BSD

BTN

BUK

BWP

BYN

BZD

CAD

CDF

CHE

CHF

CHW

CLP

CNY

COP

CRC

CUP

CVE

CZK

DJF

DKK

DOP

DZD

EEK

EGP

ERN

ETB

EUR

FJD

FKP

GBP

GEK

GEL

GHS

GIP

GMD

GNF

GQE

GTQ

GYD

HKD

HNL

HRK

HTG

HUF

IDR

ILS

INR

IQD

IRR

ISK

JMD

JOD

JPY

KES

KGS

KHR

KMF

KPW

KRW

KWD

KYD

KZT

LAK

LBP

LKR

LRD

LSL

LSM

LTL

LVL

LYD

MAD

MDL

MGA

MKD

MMK

MNT

MOP

MRO

MUR

MVR

MWK

MXN

MYR

MZN

NAD

NGN

NIC

NOK

NPR

NZD

OMR

PAB

PEN

PGK

PHP

PKR

PLN

PYG

QAR

RHD

ROL

RON

RSD

RUB

RWF

SAR

SBD

SCR

SDG

SEK

SGD

SHP

SKK

SLL

SOS

SRD

STD

SVC

SYP

SZL

THB

TJS

TMM

TND

TOP

TRL

TRY

TTD

TWD

TZS

UAH

UGX

USD

UYU

UZS

VEB

VEF

VND

VUV

WST

XCD

XOF

XPF

YER

ZAR

ZMK

ZWD

NONE

Example
"AED"
back to top

ProductViewImage

Description

Contains details about a product image.

Fields
Field Name Description
label - String The display label of the product 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.
Example
{
  "label": "xyz789",
  "roles": ["xyz789"],
  "url": "xyz789"
}
back to top

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"
}
back to top

ProductViewInputOptionImageSize

Fields
Field Name Description
width - Int
height - Int
Example
{"width": 123, "height": 123}
back to top

ProductViewInputOptionRange

Fields
Field Name Description
from - Float
to - Float
Example
{"from": 987.65, "to": 987.65}
back to top

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}
back to top

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]
}
back to top

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.
Example
{
  "id": "4",
  "title": "xyz789",
  "inStock": false
}
back to top

ProductViewOptionValueConfiguration

Description

An implementation of ProductViewOptionValue for configuration values.

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.
Example
{
  "id": "4",
  "title": "abc123",
  "inStock": false
}
back to top

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
}
back to top

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
}
back to top

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"]
}
back to top

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
}
back to top

ProductViewTierCondition

Example
ProductViewTierRangeCondition
back to top

ProductViewTierExactMatchCondition

Fields
Field Name Description
in - [Float]
Example
{"in": [987.65]}
back to top

ProductViewTierPrice

Fields
Field Name Description
tier - Price Volume based price
quantity - [ProductViewTierCondition!]! Condition to active price
Example
{
  "tier": Price,
  "quantity": [ProductViewTierRangeCondition]
}
back to top

ProductViewTierRangeCondition

Fields
Field Name Description
gte - Float
lt - Float
Example
{"gte": 987.65, "lt": 123.45}
back to top

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
}
back to top

ProductViewVariantResults

Fields
Field Name Description
variants - [ProductViewVariant]! List of product variants.
cursor - String Pagination cursor
Example
{
  "variants": [ProductViewVariant],
  "cursor": "abc123"
}
back to top

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"
}
back to top

PurchaseHistory

Description

User purchase history

Fields
Input Field Description
date - DateTime
items - [String]!
Example
{
  "date": "2007-12-03T10:15:30Z",
  "items": ["xyz789"]
}
back to top

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]
}
back to top

RangeBucket

Description

For use on numeric product fields

Fields
Field Name Description
count - Int! The number of items in the bucket
from - Float! The minimum amount in a price range
title - String! The display text defining the price range
to - Float The maximum amount in a price range
Example
{
  "count": 987,
  "from": 123.45,
  "title": "xyz789",
  "to": 123.45
}
back to top

RangeOperatorInput

Fields
Input Field Description
type - RangeType
value - RangeValueInput
Example
{"type": "UNKNOWN_RANGE_TYPE", "value": RangeValueInput}
back to top

RangeType

Values
Enum Value Description

UNKNOWN_RANGE_TYPE

STATIC

PERCENTAGE

DYNAMIC

Example
"UNKNOWN_RANGE_TYPE"
back to top

RangeValueInput

Fields
Input Field Description
from - Float
to - Float
Example
{"from": 987.65, "to": 123.45}
back to top

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"
}
back to top

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}
back to top

ScalarBucket

Description

For use on string and other scalar product fields

Fields
Field Name Description
count - Int! The number of items in the bucket
id - ID! An identifier that can be used for filtering. It may contain non-human readable data
title - String! The display text for the scalar value
Example
{"count": 123, "id": 4, "title": "abc123"}
back to top

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"
}
back to top

SearchRangeInput

Description

A range of numeric values for use in a search

Fields
Input Field Description
from - Float The minimum value to filter on. If not specified, the value of 0 is applied
to - Float The maximum value to filter on
Example
{"from": 123.45, "to": 987.65}
back to top

SearchResultPageInfo

Description

Provides navigation for the query response.

Fields
Field Name Description
current_page - Int The specific page to return.
page_size - Int The maximum number of items to return per page of results.
total_pages - Int The total number of pages in the response.
Example
{"current_page": 987, "page_size": 987, "total_pages": 123}
back to top

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.
Arguments
roles - [String]
names - [String]
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
roles - [String]
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
linkTypes - [String!]
categories - [CategoryProductView!] A list of categories in which the product is present.
Arguments
family - String
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"
}
back to top

SortEnum

Description

Indicates whether to return results in ascending or descending order.

Values
Enum Value Description

ASC

DESC

Example
"ASC"
back to top

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
}
back to top

StatsBucket

Description

For retrieving statistics across multiple buckets

Fields
Field Name Description
max - Float! The maximum value
min - Float! The minimum value
title - String! The display text for the bucket
Example
{
  "max": 123.45,
  "min": 123.45,
  "title": "abc123"
}
back to top

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"
back to top

StringOperatorInput

Fields
Input Field Description
type - StringOperatorType
Example
{"type": "UNKNOWN_STRING_OPERATOR"}
back to top

StringOperatorType

Values
Enum Value Description

UNKNOWN_STRING_OPERATOR

SAME_AS_CURRENT

ALL_EXCEPT_CURRENT

Example
"UNKNOWN_STRING_OPERATOR"
back to top

SwatchType

Values
Enum Value Description

TEXT

IMAGE

COLOR_HEX

CUSTOM

Example
"TEXT"
back to top

UnitConfigInput

Fields
Input Field Description
unitName - String
storefrontLabel - String
pagePlacement - String
displayNumber - Int
pageType - String
unitStatus - String
typeId - String
filterRules - [FilterRuleInput]
Example
{
  "unitName": "abc123",
  "storefrontLabel": "xyz789",
  "pagePlacement": "abc123",
  "displayNumber": 123,
  "pageType": "xyz789",
  "unitStatus": "abc123",
  "typeId": "xyz789",
  "filterRules": [FilterRuleInput]
}
back to top

ViewHistory

Description

User view history

Fields
Input Field Description
date - DateTime
sku - String!
Example
{
  "date": "2007-12-03T10:15:30Z",
  "sku": "abc123"
}
back to top

ViewHistoryInput

Description

User view history

Fields
Input Field Description
dateTime - DateTime
sku - String!
Example
{
  "dateTime": "2007-12-03T10:15:30Z",
  "sku": "xyz789"
}
back to top