Integrazione con la vetrina headless
Il modulo CommerceAdapter estende Adobe Commerce per colmare il gap tra una vetrina headless e Adobe Commerce Optimizer. Fornisce una query GraphQL per la risoluzione del contesto del listino prezzi cliente e applica la codifica del prodotto bundle prevista dall’API GraphQL Adobe Commerce Optimizer.
Per le istruzioni di configurazione della vetrina di alto livello, vedere Configurare merchandising e vetrine nella panoramica di Adobe Commerce Optimizer Connector.
GraphQL: query commerceOptimizer graphql-commerceoptimizer-query
Gli storefront headless chiamano la query GraphQL commerceOptimizer per recuperare priceBookId per la sessione cliente corrente. Trasferisci questo valore all’Adobe Commerce Optimizer API GraphQL durante il recupero dei prezzi.
{
commerceOptimizer {
priceBookId
}
}
Esempio di risposta:
{
"data": {
"commerceOptimizer": {
"priceBookId": "base::a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
}
}
}
Risoluzione di priceBookId:
priceBookIdwebsiteCode::sha1(0), dove 0 è l’ID gruppo clienti guestwebsiteCode::sha1(customerGroupId)L’intestazione della richiesta Store determina l’ambito del sito Web e quindi il componente websiteCode. Il componente sha1(customerGroupId) corrisponde alla formula ID listino prezzi utilizzata durante la sincronizzazione dei dati. Consulta Listino prezzi.
Prodotti bundle: formato add-to-cart bundle-products-add-to-cart-format
Consenti agli acquirenti di aggiungere prodotti bundle al carrello da una vetrina headless con solo SKU e qty per ogni opzione bundle selezionata.
Ogni valore di opzione selezionato o immesso deve essere codificato in base64 nel formato seguente:
base64("bundle_item/" + JSON.stringify({"sku": "<child_sku>", "qty": "<qty>"}))
Lo stesso SKU figlio può essere visualizzato una sola volta in tutte le opzioni.
Esempio (JavaScript):
const encodedOption = btoa(
'bundle_item/' + JSON.stringify({ sku: 'child-product-sku', qty: '1' })
);