Intégration de storefront découplé
Le module CommerceAdapter s’étend Adobe Commerce pour combler l’écart entre un storefront découplé et un Adobe Commerce Optimizer. Il fournit une requête GraphQL pour résoudre le contexte du catalogue des prix client et applique l’encodage du bundle de produits attendu par l’API Adobe Commerce Optimizer GraphQL.
Pour obtenir des instructions générales sur la configuration des storefronts, consultez Configuration du marchandisage et des storefronts dans la présentation du Adobe Commerce Optimizer Connector.
GraphQL : requête commerceOptimizer graphql-commerceoptimizer-query
Les storefronts découplés appellent la requête commerceOptimizer GraphQL pour récupérer les priceBookId de la session client actuelle. Transmettez cette valeur à l’API Adobe Commerce Optimizer lors de la récupération des prix.
{
commerceOptimizer {
priceBookId
}
}
Exemple de réponse :
{
"data": {
"commerceOptimizer": {
"priceBookId": "base::a94a8fe5ccb19ba61c4c0873d391e987982fbbd3"
}
}
}
Comment résoudre priceBookId problème :
priceBookIdwebsiteCode::sha1(0), où 0 est l’ID du groupe client invitéwebsiteCode::sha1(customerGroupId)L’en-tête de requête Store détermine la portée du site web et, par conséquent, le composant websiteCode. Le composant sha1(customerGroupId) correspond à la formule d’identifiant de catalogue des prix utilisée lors de la synchronisation des données. Voir Prix des livres.
Produits groupés : format d’ajout au panier bundle-products-add-to-cart-format
Autorisez les acheteurs à ajouter des produits groupés au panier à partir d’une vitrine découplée avec uniquement les SKU et qty pour chaque option de bundle sélectionnée.
Chaque valeur d’option sélectionnée ou saisie doit être codée en base64 au format suivant :
base64("bundle_item/" + JSON.stringify({"sku": "<child_sku>", "qty": "<qty>"}))
Le même SKU enfant peut apparaître une seule fois pour toutes les options.
Exemple (JavaScript) :
const encodedOption = btoa(
'bundle_item/' + JSON.stringify({ sku: 'child-product-sku', qty: '1' })
);