Headless storefront integration
Modulen CommerceAdapter utökar Adobe Commerce för att överbrygga gapet mellan en headless-butik och Adobe Commerce Optimizer. Den innehåller en GraphQL-fråga för att lösa kundprisbokskontexten och tvingar fram den paketproduktkodning som förväntas av GraphQL-API:t Adobe Commerce Optimizer.
Instruktioner för konfiguration av butiker på hög nivå finns i Konfigurera marknadsföring och butiker i översikten för Adobe Commerce Optimizer Connector .
GraphQL: commerceOptimizer fråga graphql-commerceoptimizer-query
Huvudlösa butiker anropar GraphQL-frågan commerceOptimizer för att hämta priceBookId för den aktuella kundsessionen. Skicka värdet till Adobe Commerce Optimizer GraphQL API när priser hämtas.
{
commerceOptimizer {
priceBookId
}
}
Exempelsvar:
{
"data": {
"commerceOptimizer": {
"priceBookId": "base::a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
}
}
}
Så här löses priceBookId:
priceBookIdwebsiteCode::sha1(0), där 0 är gästkundens grupp-IDwebsiteCode::sha1(customerGroupId)Huvudet för Store-begäran avgör webbplatsens omfång och därmed komponenten websiteCode. Komponenten sha1(customerGroupId) matchar den prisboks-ID-formel som används vid datasynkronisering. Se Prisböcker.
Paketprodukter: format för kundvagn bundle-products-add-to-cart-format
Tillåt att kunderna lägger till paketprodukter i kundvagnen från en headless Store med endast SKU och qty för varje valt paketalternativ.
Varje valt eller angivet alternativvärde måste vara base64-kodat i följande format:
base64("bundle_item/" + JSON.stringify({"sku": "<child_sku>", "qty": "<qty>"}))
Samma underordnade SKU kan bara visas en gång för alla alternativ.
Exempel (JavaScript):
const encodedOption = btoa(
'bundle_item/' + JSON.stringify({ sku: 'child-product-sku', qty: '1' })
);