8.SET
Typical request/response flow for matching product clusters.
GraphQL API Query
Get matching product clusters for product with identifier 8S-DEMO-Polohemd-1.
We request 4 clusters with 2 products each, i.e. a total of 8 products.
query {
product(id: "8S-DEMO-Polohemd-1") {
matchingProductClusters(first: 4) {
edges {
node {
products(first: 2) {
edges {
node {
id
}
}
}
}
}
}
}
}
GraphQL API response
The API returns the first 4 clusters with the first 2 products as requested.
View event
User scrolls to the displayed cross-selling items and items are about 50% inside the viewport.
A view event with type matchingProductClusters must contain a matchingProductClusters property containing the identifier of the product the content was requested for. Here it is 8S-DEMO-Polohemd-1, i.e. the same id as in our initial API query.
Also a user context need to be attached.
{
"type": "view",
"view": {
"type": "matchingProductClusters",
"matchingProductClusters": {
"id": "8S-DEMO-Polohemd-1",
}
},
"context": [
{
"type": "user",
"user": {
"id": "c57a43f7-eefc-462b-b5a8-0ef421e90f67"
}
}
]
}Interact event
click
User clicks on one of the shown cross-selling products. Let's say 8S-DEMO-Hose-1 and no specific size is selected.
An interact event with type product must contain a product property containing the sku of the respective product and can contain an action.
Also a content and user context need to be attached.
The content context basically resembles the data from the view event.
{
"type": "interact",
"interact": {
"action": "click",
"type": "product",
"product": {
"sku": "8S-DEMO-Hose-1"
}
},
"context": [
{
"content": {
"matchingProductClusters": {
"id": "8S-DEMO-Polohemd-1"
},
"type": "matchingProductClusters"
},
"type": "content"
},
{
"type": "user",
"user": {
"id": "c57a43f7-eefc-462b-b5a8-0ef421e90f67"
}
}
]
}add to cart
User adds one of the shown cross-selling products to the cart. Let's say 8S-DEMO-Schuhe-1 in size 43 - e.g. the variant SKU is 8S-DEMO-Schuhe-1-43.
An interact event with type product must contain a product property containing the sku of the respective product and must contain an action.
Also a content and user context need to be attached.
The content context basically resembles the data from the view event.
{
"type": "interact",
"interact": {
"action": "addToCart",
"type": "product",
"product": {
"sku": "8S-DEMO-Schuhe-1-43"
}
},
"context": [
{
"content": {
"matchingProductClusters": {
"id": "8S-DEMO-Polohemd-1"
},
"type": "matchingProductClusters"
},
"type": "content"
},
{
"type": "user",
"user": {
"id": "c57a43f7-eefc-462b-b5a8-0ef421e90f67"
}
}
]
}Last updated