Content types
The types the content domain defines, with the fields other domains add to them.
Objects
ArticleList
Article cards: the articles the editor picked, or else the newest that match its filters on section, topic and category.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the article list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2. |
section | ArticleOverviewPage | The overview the list filters on, for a link to all of its articles; null where the list does not filter on a section. |
articles | [ArticlePage!]! | The articles to show, at most the editor's limit. An article in the list has an empty related list; query that article by its path for its related ones. |
ArticleOverviewPage
Implements Page
The overview of one section of articles, such as a blog or the buying guides. The template renders its heading as the H1, with the intro below it.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the overview. |
name | String! | Internal name of the overview. |
path | String! | URL path of the overview. |
translatedPaths | [TranslatedPath!] | List of translated paths for different locales. |
breadcrumbs | [Breadcrumb!] | Breadcrumb trail for the overview. |
meta | PageMeta | Page metadata for SEO and other purposes. |
heading | String! | Text of the page's one top-level heading, which the template renders as the H1, since no block in an overview's body is its heading. |
intro | String | The intro below the heading. |
featured | ArticlePage | The article the editor picked to show first; null where none is picked. Its related list is always empty. |
body | [Block!]! | Content around the article list, composed of blocks. |
topic | Topic | The topic the overview is narrowed to, on that topic's page below the section, as in /blog/topic/tennis; null on the section's own page. A topic's page keeps the section's id, so its articles are articles(section: id, topic: topic.id), and takes its heading, intro and SEO fields from the topic. |
topicPages | [TopicPage!]! | The topics the section's published articles are about, each with its page below the section, by name: for the topic links and the sitemap. Empty where the store sets no topic path segment. |
ArticlePage
Implements Page
An article, such as a blog post, a buying guide or a news item: a page whose text owns it. The template renders its title as the H1, with the lead and the lead image below it.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the article. |
name | String! | Internal name of the article. |
heading | String! | Text of the page's one top-level heading: the title, which the template renders as the H1, since no block in an article's body is its heading. |
section | ArticleOverviewPage | The overview the article belongs to, which is its parent; null where it has none. |
path | String! | URL path of the article. |
translatedPaths | [TranslatedPath!] | List of translated paths for different locales. |
breadcrumbs | [Breadcrumb!] | Breadcrumb trail for the article. |
meta | PageMeta | Page metadata for SEO; its image falls back to the lead image. |
title | String! | The visible title, which the template renders as the H1. |
lead | String! | The intro below the title, also the card text in an overview. |
leadImage | ContentAsset | The image below the heading, also the card image in an overview. |
publishedAt | Date | The day the article was published, as shown on the page. |
author | Author | Who wrote the article; null where the editor picked no one or it is not published. |
topics | [Topic!]! | What the article is about, at most three, in the editor's order. |
categories | [ProductCategory!]! | The product categories the article is about. |
body | [Block!]! | The article's text, composed of blocks. |
related | [ArticlePage!]! | The articles to show below this one, at most three: the editor's picks, or where there are none, the newest articles that share a topic with this one. A related article's own related list is always empty, since two articles may name each other; query that article by its path for its related articles. |
ArticleResult
One page of articles, newest first.
| Field | Type | Description |
|---|---|---|
items | [ArticlePage!]! | |
pagination | Pagination! |
Author
Who wrote an article, as the byline and the author markup name them.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the author. |
name | String! | The author's name. |
role | String | The author's role, such as tennis coach; null where the editor set none. |
photo | ContentAsset | A square photo of the author; null where the editor set none. |
bio | String | A short bio; null where the editor set none. |
Brand
A brand, as content refers to it by key. Its page is where a brand list links to; null where the brand has none.
| Field | Type | Description |
|---|---|---|
key | String! | Unique key for the brand. |
name | String! | The brand's name, in the current locale. |
logo | ProductImage | The brand's logo; null where it has none. |
path | String | Path of the brand's page, without a locale prefix; null where it has none. |
BrandList
Brand logos that link to their brand pages, in the order the editor placed them.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the brand list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2. |
brands | [Brand!]! | The brands, each picked by its key; commerce resolves the rest. |
CampaignBanner
A campaign: an image with the text beside it, not on it, and one call to action. Its height is capped, so it never fills a phone's first screen. A banner past its visibleUntil is left out of the page.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the campaign banner. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String! | The campaign's title. |
text | String | A short text beside the image. |
image | ContentAsset! | The image, whose focal point decides how it is cropped on a phone. |
link | Link | The one call to action; null where its target is not published. |
visibleUntil | DateTime | The moment the banner disappears; null where it stays. A page holding the banner is cached no longer than this. |
CatalogPage
Implements Page
| Field | Type | Description |
|---|---|---|
id | ID! | |
productListingConfig | ProductListingConfig! | The listing the page shows: the source's category, else the page's categoryId, with the source's sort as the default order. |
name | String! | Name of the product listing page. |
heading | String! | Text of the page's one top-level heading, which the page renders itself. |
path | String! | URL path of the product listing page. |
translatedPaths | [TranslatedPath!] | List of translated paths for different locales. |
breadcrumbs | [Breadcrumb!] | Breadcrumb trail for the product listing page. |
meta | PageMeta | Page metadata for SEO and other purposes. |
intro | String | The text below the heading, clamped to two lines. |
topContent | [Block!] | Top content of the product listing page, composed of various block types. |
bottomContent | [Block!] | Bottom content of the product listing page, composed of various block types. |
categoryId | String | Identifier of the category associated with this product listing.
Owned here: the commerce subgraph extends CatalogPage and marks this
@external, so some subgraph has to define it or composition fails.Deprecated: Read source. |
source | ProductSource | The products the listing shows: the page's category, narrowed by its filters, in its sort order. Null where the page sets none of them. |
layout | CatalogPageLayoutType! | How the page presents its category: a listing, or a landing page. |
promos | [Promo!]! | At most two promo cards inside the product grid: the first at position 4, the second at position 12, on the first page of an unfiltered listing only. |
facetFilters | [CatalogPageFacetFilter!]! | The facet selections that make this page a curated collection of its category, such as one colour of the category's products, to apply to the listing. Empty for the category's own page.Deprecated: Read source.filters. |
CatalogPageFacetFilter
One facet of a curated collection and the values it selects. Deprecated with CatalogPage.facetFilters: read ProductSourceFilter.
| Field | Type | Description |
|---|---|---|
key | String! | The facet's key, as the product search names it. |
values | [String!]! | The selected values; a product matches any of them. |
CategoryList
Entrances to categories: the ones the editor picked, or the children of one category. Commerce resolves each by its key to its name, image and page.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the category list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2. |
categories | [ProductCategory!]! | The picked categories, in the editor's order; empty where the list shows a category's children. |
parentCategory | ProductCategory | The category whose children the list shows; null where the editor picked categories. |
Columns
Two to four blocks side by side, stacked in their order on a narrow screen. A project opts into it, since combinations editors keep building become blocks of their own. A column entry placed directly in a page body is answered as columns holding that one entry.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the columns. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2 that labels the section. |
ratio | ColumnsRatioType! | How the width is shared; always EQUAL for one, three or four items. |
items | [ColumnEntry!]! | The blocks, one per column: one for a column entry placed in a body. |
ContentAsset
Represents a content asset, such as an image or file.
| Field | Type | Description |
|---|---|---|
alt | String | Alternative text for the asset. |
filename | String! | Filename of the asset. |
name | String | Name of the asset. |
isExternalUrl | Boolean | Indicates if the asset URL is external. |
title | String | Title of the asset. |
focalPoint | FocalPoint | The point a crop keeps in view, such as for a phone; null where none is set and the image is cropped around its centre. |
ContentPage
Implements Page
Represents a content page with various sections and blocks.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the content page. |
name | String! | Name of the content page. |
heading | String! | Text of the page's one top-level heading, which the page renders itself. |
headingVisible | Boolean! | False keeps the H1 for search engines and screen readers but hides it, for a page whose first block opens it, such as a home page with a campaign banner. |
path | String! | URL path of the content page. |
translatedPaths | [TranslatedPath!] | List of translated paths for different locales. |
breadcrumbs | [Breadcrumb!] | Breadcrumb trail for the content page. |
meta | PageMeta | Page metadata for SEO and other purposes. |
intro | String | The text below the heading. |
leadImage | ContentAsset | The image below the heading, with no text on it; also the card image in a list and the fallback for the SEO image. |
body | [Block] | Main content body of the page, composed of various block types. |
categories | [ProductCategory!]! | The product categories the page is about. A product shows the page among its articles when its primary category, or one of that category's ancestors, is among them. |
ContentSearchHit
A page or an article that matches a search.
| Field | Type | Description |
|---|---|---|
page | Page! | |
excerpt | String | A short plain-text summary of the page, where the source has one. |
ContentSearchResult
What the CMS answers to a search term.
| Field | Type | Description |
|---|---|---|
hits | [ContentSearchHit!]! | The best matching pages and articles, at most limit. |
redirect | SearchRedirect | Where the CMS's keyword list sends this search term. Null where none matches. |
ContentSnippet
Represents a snippet of content that can be used in various places.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the content snippet. |
key | String! | Key for identifying the content snippet. |
content | [Block!] | Content for the snippet. |
ContentTeaser
An image beside text, or text alone, with up to two links. Its title is the H2 of the section it opens.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the content teaser. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String! | The visible title, rendered as the H2. |
text | RichText | The text beside the image; null where the editor wrote none. |
image | ContentAsset | The image; null for a teaser of text alone. |
links | [Link!]! | At most two links, in the order the editor placed them; a link whose target is not published is left out. |
Faq
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the Faq. |
title | String! | |
link | ResourceLink | |
groups | [FaqGroup!]! |
FaqGroup
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the Faq group. |
title | String! | Title of the FAQ item list. |
items | [FaqItem!]! | List of FAQ items. |
FaqItem
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the Faq item. |
question | String! | |
answer | RichText! |
Figure
One key figure: a value with what it measures.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the figure. |
value | String! | The figure as the editor wrote it, such as 98.6%. |
label | String! | What the value measures. |
source | String | Where the figure comes from, such as a customer survey; null where none is given. |
FigureList
Two to four key figures.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the figure list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2; null where the editor wrote none. |
figures | [Figure!]! | The figures, in the order the editor placed them. |
FocalPoint
A point in an image, in percent from its left and top edges.
| Field | Type | Description |
|---|---|---|
x | Float! | Percent from the left edge, from 0 to 100. |
y | Float! | Percent from the top edge, from 0 to 100. |
Hotspot
One product pinned on a shoppable image.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the hotspot. |
x | Float! | Percent of the image's width from its left edge, 0 to 100. |
y | Float! | Percent of the image's height from its top edge, 0 to 100. |
variant | ProductVariant! | The variant the editor picked by its sku; its name, price and stock come from commerce. |
Image
One image, or a pair side by side.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the image. |
image | ContentAsset! | |
secondImage | ContentAsset | A second image, shown beside the first as a pair and below it on a phone; null for one image. |
Link
A link with its own label, to one target: a page, a product, a storefront route or a URL. Each target the link does not point at is null, and so is a page that is not published in the current locale.
| Field | Type | Description |
|---|---|---|
label | String! | The visible text. |
page | Page | The page it opens. |
product | ProductVariant | The product it opens, as the variant the editor picked by its sku; the variant's product links to its page. |
route | StorefrontRouteType | The storefront route it opens, such as the cart. |
url | URL | The URL it opens, for a target outside the site. |
variant | LinkVariantType! | How prominently the link is drawn. |
MenuItem
One menu entry: a link, or a heading for the entries below it.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the entry. |
label | String! | The visible text. |
link | Link | Where the entry leads; null where it is a heading for its children, or its target is not published. |
children | [MenuItem!]! | The entries below this one, at most two levels under the top. |
promo | Promo | A card shown beside the entry in a large menu. |
Messages
The store's fixed system copy, one entry per store, for the places no editor fills by hand. A field is null where the editor left it empty, so the storefront shows its own default. A project extends the type with fields of its own.
Navigation
A menu: the header's, the footer's, or one of the project's own.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the menu. |
items | [MenuItem!]! | The top-level entries, in the order the editor placed them. |
PageRedirect
Where a path sends a visitor: written by an editor, or by the CMS when a page's path changed, from the old path to the page.
| Field | Type | Description |
|---|---|---|
kind | LinkKindType! | |
path | String! | A page's path in the current locale without a locale prefix, or the URL. |
pageType | PageType | The type of the page a PAGE redirect opens. Null for a URL. |
permanent | Boolean! | True for a moved page (301), false for a temporary redirect (302). |
PagesResult
Represents the result of a query for multiple pages.
| Field | Type | Description |
|---|---|---|
results | [Page!]! | List of pages returned in the result. |
total | Int! | Total number of pages matching the query. |
Product
Fields added by Product review
Product entity containing all product information, variants, and metadata.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the product |
slug | String! | URL-friendly slug for the product |
localizedSlugs | [LocalizedSlug!]! | Localized slugs for different localesArguments: locales |
name | String! | Name of the product |
meta | ResourceMeta | Metadata for the product |
brand | String | Brand of the product |
image | ProductImage | The primary image associated with the product. |
relatedProducts | [Product!] | Products that are similar. E.g. the same t-shirt in another color. |
variant | ProductVariant! | A specific variant, often used to show data in a product card. If no sku is given then the primary variant is returned.Arguments: sku |
variants | [ProductVariant!]! | A list of all variants, often used to show all available options in a product detail page.Arguments: sku |
variantDimensions | [ProductVariantDimension!]! | Product variant dimensions for the product with selection optionsArguments: selectedSku |
categories | [ProductCategory!] | The categories to which the product belongs. |
primaryCategory | ProductCategory | The primary category to which the product belongs. |
startingPrice | TaxedPrice | The lowest price of all variants, often used to communicate the price on the product list page. |
reviews | Reviews | Customer reviews for the product |
bundle | ProductBundle | The products sold with this one as a bundle, added together with cartBundleAdd. Null when the product has none that can be bought now. |
breadcrumbs | [Breadcrumb!] | |
articles | [Page!] | Published pages about the product's primary category, or else about its nearest ancestor: the most specific category first, then the newest first. Nullable, so a content service that cannot answer leaves the product intact. |
reviewDistribution | [ProductReviewRatingCount!]! | How many approved reviews gave each rating, from 5 down to 1, including ratings nobody gave |
reviewFitDistribution | [ProductReviewFitCount!]! | How many approved reviews found the size each way, in the order of ProductReviewFitType, including ways nobody chose. All zero where buyers are not asked. |
reviewList | ProductReviewResult! | The approved reviews of the productArguments: page, pageSize, rating, sort |
ProductCategory
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the product category. |
key | String! | Unique key for the product category |
name | String! | Name of the product category |
path | String! | URL path for the category |
description | String | Description of the product category |
ancestors | [ProductCategory!]! | Ancestor categories in the category hierarchy, root first: the last one is the category's parent. |
children | [ProductCategory!]! | The direct subcategories, in the engine's order. |
productCount | Int | How many products the category holds, its subcategories included; null where the engine does not count them. |
image | ProductImage | The category's image; null where it has none or the engine keeps none. |
ProductList
| Field | Type | Description |
|---|---|---|
id | ID! | |
items | [Product!] | The products the list's source selects, up to its limit and without the sold-out ones; null where the engine cannot select products by a source. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2. |
variants | [ProductVariant!]! | The variants the editor picked, in their order; empty where the list has a source. |
source | ProductSource | The products to select where no variants are picked; null where none is set. |
limit | Int! | The most products to show. |
link | ResourceLink | A link to all of the products, such as their catalog page. |
Promo
A card that links somewhere. The same card sits in rich text, in a promo list, in the product grid of a catalog page and in a menu.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the promo. |
title | String! | The card's title. |
text | String | A short text below the title. |
image | ContentAsset | The card's image. |
link | Link | Where the card leads; null where its target is not published. |
PromoList
Two to four promo cards side by side.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the promo list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2. |
promos | [Promo!]! | The cards, in the order the editor placed them. |
ResourceLink
Represents a link to a resource, either internal or external.
| Field | Type | Description |
|---|---|---|
type | ResourceLinkType! | Type of the resource link. |
name | String | Name of the linked resource. |
value | String | The URL or identifier for the content link, which can be a product ID, category ID, or page path. |
anchor | String | The anchor within the page or content that the link points to, if applicable. |
newTab | Boolean | Indicates if the link should open in a new tab. |
asset | ContentAsset | Asset for the link. |
RichText
Formatted text, the same whichever CMS wrote it. The document is a vendor- neutral tree that refers to links and embeds by id only; their data is beside it, in links and embeds, so one renderer draws every CMS's text.
The tree's nodes: paragraph, heading (levels 2 to 4, since the page's H1 belongs to the template, so a CMS's h1 reads as 2 and its h5 and h6 as 4, each with an anchor unique in the document), list and listItem, quote, hr, embed, and table with tableRow, tableHeaderCell and tableCell (a cell holds block nodes, and a merged one its colSpan or rowSpan); inline, text with marks (bold, italic, underline, strike, code, superscript, subscript), link and hardBreak. A link to a page that was deleted or is not published is plain text.
Heading levels are relative to where the text is placed: 2 is the top level within the document, and a client nested under a heading of its own shifts them down. Later releases may add node types and marks without notice, so a client renders the children of a node it does not know, and ignores a mark it does not know, rather than failing.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the rich text content. |
document | JSON! | The text as the vendor-neutral tree. |
embeds | [RichTextEmbed!]! | What the tree embeds, each referred to by its id. |
links | [RichTextLink!]! | What the tree links to, resolved for the current locale, each referred to by its id. |
RichTextImageEmbed
An image placed in rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's embed node refers to. |
image | Image! |
RichTextLink
A link in rich text, resolved by the adapter.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's link node refers to. |
kind | LinkKindType! | |
path | String! | The page's path in the current locale, without a locale prefix, as a page's own path is given; or the URL. |
pageType | PageType | The type of the page the link opens, so a client routes a catalog page apart from a content page. Null for a URL. |
anchor | String | The fragment the link scrolls to, without its #; path already ends in it. Null where the link has none. |
openInNewTab | Boolean | Whether the editor set the link to open in a new tab. Null where the CMS has no such setting, as Contentful has not. |
RichTextProductEmbed
A product placed in rich text, by its sku. Commerce resolves the variant, so a fragment can ask for its live price.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's embed node refers to. |
variant | ProductVariant! |
RichTextPromoEmbed
A promo placed in rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's embed node refers to. |
promo | Promo! |
RichTextShoppableImageEmbed
A shoppable image placed in rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's embed node refers to. |
shoppableImage | ShoppableImage! |
RichTextTipEmbed
A tip placed in rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's embed node refers to. |
tip | Tip! |
RichTextVideoEmbed
A video placed in rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | What the tree's embed node refers to. |
video | YoutubeVideo! |
ShoppableImage
One image with two to six products pinned on it, also listed beside or below it.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the shoppable image. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2; null where the editor wrote none. |
image | ContentAsset! | |
hotspots | [Hotspot!]! | The pinned products, in the editor's order. |
Site
The store's settings, one per store: its menus, the selling points in the header bar, its social profiles, payment brands and review rating, and the templates the SEO title and description of a page fall back to. In a template, a name in braces, such as {category}, stands for the page's own value.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the settings. |
headerNavigation | Navigation | The header's menu; null where the editor picked none or it is not published. |
secondaryNavigation | Navigation | The header's secondary menu, such as service or business; null where the editor picked none or it is not published. |
footerNavigation | Navigation | The footer's menu; null where the editor picked none or it is not published. |
usps | [Usp!]! | The selling points in the header bar, at most four. |
socials | [SocialLink!]! | The store's social profiles, in the editor's order. |
paymentMethods | [PaymentBrandType!]! | The ways to pay the store shows, in the editor's order. |
trustRating | TrustRating | The store's review rating; null unless the editor set its score, best score and count. |
catalogSeoTitle | String | The SEO title of a catalog page that sets none, such as {category} | {count} products. |
catalogSeoDescription | String | The SEO description of a catalog page that sets none. |
articleSeoTitle | String | The SEO title of an article that sets none, such as {title} | {section}. |
contentSeoTitle | String | The SEO title of a content page that sets none, such as {heading} | Evolve. |
topicPathSegment | String | The path segment between a section and a topic, in the current locale, as in /blog/topic/tennis; null where the editor set none. |
SiteSettings
Which page of the site answers each recurring purpose, such as the contact or the returns page, one entry per store. A field is null where the editor picked no page, or the picked page is not published in the requested locale.
| Field | Type | Description |
|---|---|---|
contactPage | ContentPage | The page to contact the store. |
termsPage | ContentPage | The terms and conditions. |
privacyPage | ContentPage | The privacy statement. |
cookiePage | ContentPage | The cookie statement. |
returnsPage | ContentPage | How returns work. |
shippingPage | ContentPage | How shipping works, its costs and delivery times. |
SocialLink
The store's profile on a social network; the site draws the network's icon.
| Field | Type | Description |
|---|---|---|
platform | SocialPlatformType! | |
url | URL! | The profile's URL. |
Step
One step of a step list.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the step. |
title | String! | The step's title, rendered one level below the list's title. |
text | String | A short text; null where the editor wrote none. |
link | Link | Where the step continues; null where none is set or its target is not published. |
StepList
Two to four numbered steps, such as how an account, a return or a job works.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the step list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title, rendered as the H2; null where the editor wrote none. |
steps | [Step!]! | The steps, numbered in the order the editor placed them. |
StoreContentPreviewData
Represents data for storing content previews.
| Field | Type | Description |
|---|---|---|
id | ID | Identifier for the stored content preview data. |
StoreContentPreviewResponse
| Field | Type | Description |
|---|---|---|
data | StoreContentPreviewData | Response containing the stored content preview data. |
previewErrors | [StoreContentPreviewError!] | List of errors encountered while storing the content preview. |
TableOfContents
Links to the anchors on the page. The storefront generates them from the anchors of the page's headings and blocks; the block holds only its title.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the table of contents. |
anchor | String | The id an in-page link points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
title | String | The visible title; null where the editor left it empty, so the storefront shows its own default. |
Tip
A highlighted tip, in a page body or inside rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the tip. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
label | String | A short label above the text, such as the name of whoever gives the tip. |
text | String! | The tip itself. |
Topic
What an article is about, such as tennis or maintenance. A topic gets a page of its own below each section, so it has a name to head that page and a slug for its path.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the topic. |
name | String! | The topic's name, the heading of its page. |
slug | String! | The topic's own part of the path, below a section and the topic path segment. |
description | String | The intro of the topic's page; null where the editor set none. |
leadImage | ContentAsset | The image in the topic page's heading; null where the editor set none. |
TopicPage
A topic's page below a section of articles.
| Field | Type | Description |
|---|---|---|
topic | Topic! | |
path | String! | URL path of the topic's page, in the current locale. |
translatedPaths | [TranslatedPath!] | The topic page's path in each locale where the section, the topic and the segment all have one. |
TranslatedPath
Represents a translated path for a specific locale.
| Field | Type | Description |
|---|---|---|
locale | String! | The locale of the translated path. |
path | String! | The translated path for the given locale. |
TrustRating
The store's average review score at a review service, such as 9.2 out of 10 from 1,284 reviews, as an editor entered it.
| Field | Type | Description |
|---|---|---|
score | Float! | The average score. |
maxScore | Float! | The best score the service gives, such as 5 or 10. |
count | Int! | How many reviews the score averages. |
url | URL | The store's page at the review service; null where the editor set none. |
Usp
Represents a single Unique Selling Point (USP).
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the USP (Unique Selling Point). |
title | String! | Title of the USP. |
description | String | A second line under the title; null where the editor set none. |
icon | UspIconType | The icon before the title; null where the editor picked none. |
link | ResourceLink | Optional link associated with the USP. |
UspList
The store's selling points, two to six of them.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the USP list. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
usps | [Usp!]! | The selling points, in the order the editor placed them. |
Video
A YouTube video, played from the privacy-enhanced domain once the visitor consents.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the video. |
anchor | String | The id an in-page link or the table of contents points to; null where none is set. |
audience | AudienceType! | Who the block is shown to. |
youtubeId | String! | The video's id on YouTube, eleven characters. |
title | String! | The video's accessible name. |
YoutubeVideo
A YouTube video embedded in rich text.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the video. |
youtubeId | String! | The YouTube video ID. |
autoplay | Boolean! | Whether the video should autoplay when loaded. |
controls | Boolean! | Whether the video should show controls like play/pause, volume, etc. |
loop | Boolean! | Whether the video should loop when it reaches the end. |
Input objects
CatalogPageFacetFilterInput
One facet of a listing's filter and the values it selects.
| Field | Type | Description |
|---|---|---|
key | String! | The facet's key, as the product search names it. |
values | [String!]! | The selected values. |
Enums
AudienceType
Who a block is shown to. The storefront applies it in the browser once the session is known, so the page stays cacheable for every visitor. It decides relevance, not access: every variant is in the page source.
EVERYONE | Every visitor. |
LOGGED_IN | Only a visitor who is logged in. |
LOGGED_OUT | Only a visitor who is not logged in, as crawlers are. |
CatalogPageLayoutType
How a catalog page presents its category.
LISTING | The subcategories as chips above the product grid. |
LANDING | The subcategories as tiles and the category's popular products, for a broad category. |
ColumnsRatioType
How the width is shared between two columns, in the order they are placed.
EQUAL | Both columns are as wide. |
NARROW_WIDE | The second column is twice as wide as the first. |
WIDE_NARROW | The first column is twice as wide as the second. |
ContentVersionType
Specifies different versions of content.
DRAFT | Draft version of the content. |
PUBLISHED | Published version of the content. |
LinkVariantType
How prominently a link is drawn.
PRIMARY | The main call to action. |
SECONDARY | A call to action beside the main one. |
PageSortOrderType
Specifies sorting options for pages.
NAME_ASCENDING | Sort by name in ascending order. |
NAME_DESCENDING | Sort by name in descending order. |
PaymentBrandType
A way to pay the store accepts, which the site draws as that brand's logo.
IDEAL | |
BANCONTACT | |
VISA | |
MASTERCARD | |
AMERICAN_EXPRESS | |
MAESTRO | |
PAYPAL | |
APPLE_PAY | |
GOOGLE_PAY | |
KLARNA | |
RIVERTY | |
IN3 | |
SEPA_DIRECT_DEBIT | |
BANK_TRANSFER | |
PAY_ON_ACCOUNT | Paying an invoice afterwards, as a business customer on account. |
ResourceLinkType
Specifies different types of resource links.
EXTERNAL | External URL link. |
ASSET | Asset link. |
PRODUCT | Product content link type. |
CATALOG | Catalog page content link type. |
CONTENT | Category content link type. |
APPLICATION | Link to a specific page or section within the application. |
INTERNAL | Internal page link. |
SocialPlatformType
A social network a store keeps a profile on.
FACEBOOK | |
INSTAGRAM | |
LINKEDIN | |
PINTEREST | |
TIKTOK | |
X | |
YOUTUBE |
StorefrontRouteType
A page the storefront itself serves rather than the CMS. The site maps each to its own path in the current locale.
HOME | The home page. |
ACCOUNT | The customer's account. |
ORDERS | The customer's orders. |
CART | The cart. |
SEARCH | The search results. |
WISHLIST | The customer's wishlist. |
RETURNS | The customer's returns. |
UspIconType
The icon a selling point shows, from a fixed set the storefront maps to its own glyphs.
TRUCK | |
INVOICE | |
LEAF | |
HEADSET | |
RETURN | |
SHIELD | |
STORE | |
CLOCK | |
GIFT | |
LOCK |
Interfaces
Page
A page a route can land on. Every page type implements it, so a route that does not know which type it will get selects these fields here and the rest per type.
| Field | Type | Description |
|---|---|---|
id | ID! | Unique identifier for the page. |
name | String! | Name of the page. |
heading | String! | Text of the page's one top-level heading, which the page renders itself. |
path | String! | URL path of the page. |
translatedPaths | [TranslatedPath!] | List of translated paths for different locales. |
breadcrumbs | [Breadcrumb!] | Breadcrumb trail for the page. |
meta | PageMeta | Page metadata for SEO and other purposes. |
Implemented by ArticleOverviewPage, ArticlePage, CatalogPage and ContentPage.
Unions
Block
Rich text is also a block of its own, placed directly in a page body.
One of RichText, ArticleList, BrandList, Columns, TableOfContents, Tip, StepList, ShoppableImage, FigureList, CampaignBanner, PromoList, UspList, Video, CategoryList, ContentTeaser or ProductList.
ColumnEntry
Represents content types that can be used in columns.
One of RichText, ShoppableImage, FigureList, UspList, Video, Faq or Image.
RichTextEmbed
What rich text can embed.
One of RichTextImageEmbed, RichTextVideoEmbed, RichTextProductEmbed, RichTextTipEmbed, RichTextShoppableImageEmbed or RichTextPromoEmbed.
StoreContentPreviewError
One of ValidationError.

