Integração com a loja headless
O módulo CommerceAdapter estende Adobe Commerce para preencher a lacuna entre uma loja headless e Adobe Commerce Optimizer. Ela fornece uma consulta GraphQL para resolver o contexto do catálogo de preços do cliente e impõe a codificação do produto do pacote esperada pela API do GraphQL Adobe Commerce Optimizer.
Para obter instruções de configuração de vitrine de alto nível, consulte Configurar merchandising e vitrines na visão geral do Adobe Commerce Optimizer Connector.
GraphQL: consulta commerceOptimizer graphql-commerceoptimizer-query
As vitrines headless chamam a consulta do GraphQL commerceOptimizer para recuperar o priceBookId da sessão de cliente atual. Transmita este valor para a Adobe Commerce Optimizer API do GraphQL ao buscar preços.
{
commerceOptimizer {
priceBookId
}
}
Exemplo de resposta:
{
"data": {
"commerceOptimizer": {
"priceBookId": "base::a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
}
}
}
Como priceBookId é resolvido:
priceBookIdwebsiteCode::sha1(0), onde 0 é a ID do grupo de clientes convidadoswebsiteCode::sha1(customerGroupId)O cabeçalho de solicitação Store determina o escopo do site e, portanto, o componente websiteCode. O componente sha1(customerGroupId) corresponde à fórmula de ID do catálogo de preços usada durante a sincronização de dados. Consulte Price books.
Produtos do pacote: formato de adição ao carrinho bundle-products-add-to-cart-format
Permitir que os compradores adicionem produtos de pacote ao carrinho de uma loja headless com apenas a SKU e qty para cada opção de pacote selecionada.
Cada valor de opção selecionado ou inserido deve ser codificado na base64 no seguinte formato:
base64("bundle_item/" + JSON.stringify({"sku": "<child_sku>", "qty": "<qty>"}))
O mesmo SKU filho pode aparecer apenas uma vez em todas as opções.
Exemplo (JavaScript):
const encodedOption = btoa(
'bundle_item/' + JSON.stringify({ sku: 'child-product-sku', qty: '1' })
);