Skip to content

New: AI agent integration via Model Context Protocol (MCP).Learn more

Queries

All read operations exposed by the Evolve GraphQL gateway.

businessUnit(
id: ID!
): BusinessUnit

Get a specific business unit by ID

Example:

query {
businessUnit(id: "bu-123") {
id
name
key
addresses {
id
firstName
lastName
city
}
associates {
id
email
roles {
id
key
}
}
}
}

Returns: BusinessUnit

Arguments

  • id: ID!
businessUnits: [BusinessUnit!]!

Get all business units accessible to the current user

Example:

query {
businessUnits {
id
name
key
stores {
id
key
name
}
}
}

Returns: [BusinessUnit!]!

customer: Customer

Get the current authenticated customer’s information

Example:

query {
customer {
id
email
givenName
familyName
addresses {
id
firstName
lastName
city
}
}
}

Returns: Customer

customerExists(
email: EmailAddress!
): CustomerExistsResult!

Check if a customer account exists for the given email address

Example:

query {
customerExists(email: "john.doe@example.com") {
exists
}
}

Returns: CustomerExistsResult!

Arguments

shoppingList(
id: ID
): ShoppingList

Get a specific shopping list by ID (returns default list if no ID provided)

Example:

query {
shoppingList(id: "sl-123") {
id
name
description
lineItems {
id
sku
quantity
productVariant {
id
sku
}
}
}
}

Returns: ShoppingList

Arguments

  • id: ID
shoppingLists(
page: Int
pageSize: Int
): ShoppingListResult

Get paginated list of shopping lists for the current user

Example:

query {
shoppingLists(page: 1, pageSize: 20) {
items {
id
name
description
lineItemsCount
}
meta {
page
pageSize
totalItems
totalPages
}
}
}

Returns: ShoppingListResult

Arguments

  • page: Int
  • pageSize: Int
categories(
page: Int!
pageSize: Int!
searchTerm: String
sort: CategorySortOrder
): ProductCategoriesResult!

Get a paginated list of product categories with optional search and sorting

Example:

query {
categories(
page: 1
pageSize: 50
searchTerm: "electronics"
sort: NAME_ASC
) {
items {
id
key
name
slug
description
parent {
id
name
}
ancestors {
id
name
}
}
meta {
page
pageSize
totalItems
}
}
}

Returns: ProductCategoriesResult!

Arguments

product(
slug: String!
): Product

Get a single product by its slug

Example:

query {
product(slug: "laptop-dell-xps-13") {
id
slug
name
description
masterVariant {
id
sku
price {
value
currencyCode
}
images {
url
alt
}
}
variants {
id
sku
attributes {
name
value
}
}
}
}

Returns: Product

Arguments

  • slug: String!
productCategoryPageByPath(
path: String!
): ProductCategoryPage

Get category page data with associated products and CMS content by path

Example:

query {
productCategoryPageByPath(path: "/categories/electronics/laptops") {
category {
id
name
description
}
products {
items {
id
name
masterVariant {
id
sku
price {
value
currencyCode
}
}
}
}
}
}

Returns: ProductCategoryPage

Arguments

  • path: String!
productSearch(
categoryId: String
filters: [FacetFilterInput!]
page: Int!
pageSize: Int!
prefilters: [FilterConditionInput!]
searchTerm: String
sort: ProductSortOrder!
): ProductsResult!

Search for products with advanced filtering, sorting, and pagination capabilities

Example:

query {
productSearch(
searchTerm: "laptop"
categoryId: "cat-electronics"
page: 1
pageSize: 24
sort: RELEVANCE
filters: [
{
field: "price"
range: { min: 500, max: 2000 }
},
{
field: "brand"
values: ["Apple", "Dell"]
}
]
) {
items {
id
slug
name
description
masterVariant {
id
sku
price {
value
currencyCode
}
}
}
facets {
field
count
... on RangeFacet {
min
max
}
... on OptionsFacet {
options {
value
count
}
}
}
meta {
page
pageSize
totalItems
}
}
}

Returns: ProductsResult!

Arguments

products(
page: Int!
pageSize: Int!
): ProductsResult!

Get a paginated list of all products without search or filtering

Example:

query {
products(page: 1, pageSize: 50) {
items {
id
slug
name
masterVariant {
id
sku
price {
value
currencyCode
}
}
}
meta {
page
pageSize
totalItems
}
}
}

Returns: ProductsResult!

Arguments

  • page: Int!
  • pageSize: Int!
productsBySKU(
skus: [String!]!
): [Product!]!

Retrieve specific products by their SKU values

Example:

query {
productsBySKU(skus: ["SKU-001", "SKU-002", "SKU-003"]) {
id
slug
name
masterVariant {
id
sku
price {
value
currencyCode
}
images {
url
alt
}
}
}
}

Returns: [Product!]!

Arguments

  • skus: [String!]!
addressValidate(
address: AddressInput!
): AddressValidationResult

Validate a shipping or billing address for correctness and formatting

Example:

query {
addressValidate(address: {
firstName: "John"
lastName: "Doe"
streetName: "Main Street"
streetNumber: "123"
city: "Amsterdam"
postalCode: "1000AA"
country: "NL"
}) {
isValid
errors {
field
message
}
suggestions {
streetName
city
postalCode
}
}
}

Returns: AddressValidationResult

Arguments

cart: Cart

Get the current user’s shopping cart with all line items and totals

Example:

query {
cart {
id
version
lineItems {
... on CartSingleLineItem {
id
quantity
totalPrice {
value
currencyCode
}
productVariant {
id
sku
}
}
}
totalPrice {
value
currencyCode
}
shippingAddress {
firstName
lastName
city
}
billingAddress {
firstName
lastName
city
}
}
}

Returns: Cart

authoringBlockById(
id: ID!
): String

Fetch a single CMS entry by id and return it in gateway shape (with all linked entries and assets resolved). Used by the editor’s library drawer to preview / drag-drop existing entries onto a draft page. The entry is JSON-encoded — string + parse over a custom scalar to keep the subgraph dependency-light, same approach as authoringPushPage. Returns null if not found.

Returns: String

Arguments

  • id: ID!
authoringListPages(
locale: String
): [AuthoringPageSummary!]!

Authoring-side page list. Surfaces editor-specific fields the public pages query doesn’t (draft/changed/published status, last editor’s name) by hitting the Management API directly with the editor user’s OAuth token. Used by the drawer’s Pages tab.

Returns: [AuthoringPageSummary!]!

Arguments

  • locale: String — Optional locale filter — returns only pages with content in this locale.
authoringPushLocales: AuthoringPushLocales!

Pre-flight info for the push dialog: which locales the next push will write to (storefront request locale + CF space default). The dialog shows this so the editor knows what’s about to land where.

Returns: AuthoringPushLocales!

authoringSearchAssets(
limit: Int!
query: String
): AuthoringAssetSearchResult!

Authoring-side asset library search. Substring + case-insensitive full-text search over CMS image assets. Used by the editor’s library drawer and AI tooling.

Returns: AuthoringAssetSearchResult!

Arguments

  • limit: Int!
  • query: String
authoringSearchEntries(
contentType: String
excludedContentTypes: [String!]
limit: Int!
query: String
): AuthoringEntrySearchResult!

Authoring-side entry library search. Substring + case-insensitive full-text search over CMS entries, optionally narrowed by content type id. Used by the editor’s library drawer and AI tooling.

Returns: AuthoringEntrySearchResult!

Arguments

  • contentType: String
  • excludedContentTypes: [String!]
  • limit: Int!
  • query: String
catalogPage(
path: String!
previewID: String
version: ContentVersion
): CatalogPage

Fetch a catalog page with product browsing and filtering capabilities

Example:

query {
catalogPage(
path: "/categories/laptops"
version: PUBLISHED
) {
id
path
title
category {
id
name
description
}
filters {
field
type
label
}
sortOptions {
value
label
}
}
}

Returns: CatalogPage

Arguments

contentPage(
path: String!
previewID: String
version: ContentVersion
): ContentPage

Fetch a content page by path with optional preview functionality Used for CMS content pages like About Us, Terms & Conditions, etc.

Example:

query {
contentPage(
path: "/about-us"
version: PUBLISHED
previewID: "preview-123"
) {
id
path
title
content {
... on TextBlock {
text
}
... on ImageBlock {
image {
url
alt
}
}
}
seo {
title
description
}
}
}

Returns: ContentPage

Arguments

contentSnippet(
key: String!
previewID: String
version: ContentVersion
): ContentSnippet

Get a specific content snippet by key. These snippets are reusable content blocks that can be used accross different pages, and allow for more flexibility in content management.

Returns: ContentSnippet

Arguments

page(
path: String!
previewID: String
version: ContentVersion
): Page

Fetch any page type (content or product listing) by path Generic page resolver that returns the appropriate page type

Example:

query {
page(path: "/contact", version: PUBLISHED) {
... on ContentPage {
id
title
content {
... on TextBlock {
text
}
}
}
... on CatalogPage {
id
title
category {
name
}
}
}
}

Returns: Page

Arguments

pages(
page: Int!
pageSize: Int!
searchTerm: String
sort: PageSortOrder
types: [PageType!]
version: ContentVersion
): PagesResult!

Get a paginated list of pages with filtering and search capabilities Useful for sitemaps, navigation, and content management

Example:

query {
pages(
page: 1
pageSize: 50
version: PUBLISHED
types: [CONTENT_PAGE, CATALOG_PAGE]
searchTerm: "electronics"
sort: nameAscending
) {
items {
... on ContentPage {
id
path
title
}
... on CatalogPage {
id
path
title
category {
name
}
}
}
meta {
page
pageSize
totalItems
}
}
}

Returns: PagesResult!

Arguments

site(
previewID: String
version: ContentVersion
): Site

Get site-wide information and configuration Used for global site settings, branding, and configuration

Example:

query {
site(version: PUBLISHED) {
id
name
description
logo {
url
alt
}
favicon {
url
}
social {
facebook
twitter
instagram
}
}
}

Returns: Site

Arguments

siteLayout(
previewID: String
version: ContentVersion
): SiteLayout

Get site layout configuration including header, footer, and navigation Used for consistent site-wide layout and navigation structure

Example:

query {
siteLayout(version: PUBLISHED) {
header {
logo {
url
alt
}
navigation {
title
url
children {
title
url
}
}
}
footer {
copyright
links {
title
url
}
}
}
}

Returns: SiteLayout

Arguments

orderByPublicId(
publicId: ID!
): Order

Get order details for anonymous/public viewing using a public ID. Used for order confirmation pages accessible without authentication

Example:

query {
orderByPublicId(publicId: "ae7fbbd3-9474-4be7-b321-2842a2294331") {
id
orderNumber
orderState
totalPrice {
value
currencyCode
}
lineItems {
id
quantity
productVariant {
sku
}
}
shippingAddress {
firstName
lastName
city
}
}
}

Returns: Order

Arguments

  • publicId: ID!
_empty: String

Placeholder query to satisfy schema requirements for federation

Returns: String