Headless Server Developer Manual / Version 2101
Table Of Contents
Categories and products can be augmented with content of type CMExternalChannel
and CMExternalProduct
, respectively.
These content objects are created by Studio if you choose the menu item Augment Category
for categories or
Augment Product
for products. See Section 6.2.3, “Adding CMS Content to Your Shop” in Studio User Manual for more details.
If a product is augmented, the augmenting content is available in the
externalProduct
.
Note that this externalProduct
field is only non-null if this
product is actually augmented. The same is true for the externalChannel
in categories - that field is only
non-null if exactly this category is augmented, the field value is not inherited from the parent category.
In contrast, page grid placements are inherited along the navigation hierarchy. For example, a product variant inherits placements from the parent product, a product inherits placements from its category, which in turn inherits placements from its parent category or channel, all up the navigation hierarchy.
Page grid placements of categories, products and product variants
can be retrieved with the grid
field, just the same way as for
CMChannel
content objects. For categories,
the placements of the ordinary page grid are retrieved, while for products the Product Detail Page (PDP) page grid is used.
Product variants simply inherit all placements from their parent product.
The placements within a page grid might be retrieved as a whole, including the whole grid structure with grid rows.
Alternatively, a plain list of placements can be retrieved, optionally filtered by placement names. In the following
example, only the placements "header"
and "additional"
are retrieved for a product:
{ commerce { product(siteId: "sfra-en-gb", externalId: "sfcc:///catalog/product/25448070M") { externalId name externalProduct { name teaserTitle } grid { placements(names: ["header", "additional"]) { name items { name type ... on CMTeasable { teaserTitle teaserText picture { uriTemplate } } } } } } } }
In this example, you also query the name
and teaserTitle
fields of an
associated externalProduct
. Note that this externalProduct
field is only non-null if this
product is actually augmented. The same is true for the externalChannel
in categories - that field is only
non-null if exactly this category is augmented, the field value is not inherited from the parent category.