Correspondance automatique personnalisée
Si la stratégie de correspondance automatique par défaut (correspondance automatique prête à l’emploi) n’est pas alignée avec les besoins spécifiques de votre entreprise, sélectionnez l’option Correspondance personnalisée . Cette option prend en charge l’utilisation de Adobe Developer App Builder pour développer une application de correspondance personnalisée qui gère une logique de correspondance complexe, ou des ressources provenant d’un système tiers qui ne peut pas renseigner de métadonnées dans AEM Assets.
Configuration de la correspondance automatique personnalisée
-
Dans l’Administration Commerce, accédez à Store > Configuration > ADOBE SERVICES > AEM Assets Integration.
-
Sélectionnez Custom Matcher comme règle correspondante.
-
Lorsque vous sélectionnez cette règle de correspondance, Admin affiche des champs supplémentaires pour configurer les points d’entrée et les paramètres d’authentification nécessaires à la logique de correspondance personnalisée.
Points d’entrée de l’API de correspondance personnalisés
Lorsque vous créez une application de correspondance personnalisée à l’aide d’App Builder, l’application doit exposer les points d’entrée suivants :
- Ressource App Builder vers l’URL du produit point d’entrée
- Point d’entrée du produit App Builder vers l’URL de la ressource
Ressource App Builder vers le point d’entrée de l’URL du produit
Ce point d’entrée récupère la liste des SKU associés à une ressource donnée :
Exemple d’utilisation
const { Core } = require('@adobe/aio-sdk')
async function main(params) {
// Build your own matching logic here to return the products that map to the assetId
// var productMatches = [];
// params.assetId
// params.eventData.assetMetadata['commerce:isCommerce']
// params.eventData.assetMetadata['commerce:skus'][i]
// params.eventData.assetMetadata['commerce:roles']
// params.eventData.assetMetadata['commerce:positions'][i]
// ...
// End of your matching logic
return {
statusCode: 500,
body: {
asset_id: params.assetId,
product_matches: [
{
product_sku: "<YOUR-SKU-HERE>",
asset_roles: ["thumbnail", "image", "swatch_image", "small_image"],
asset_position: 1
}
]
}
};
}
exports.main = main;
Requête
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
assetId
eventData
Réponse
{
"asset_id": "{ASSET_ID}",
"product_matches": [
{
"product_sku": "{PRODUCT_SKU_1}",
"asset_roles": ["thumbnail","image"]
},
{
"product_sku": "{PRODUCT_SKU_2}",
"asset_roles": ["thumbnail"]
}
]
}
Produit App Builder vers le point d’entrée de l’URL de la ressource
Ce point d’entrée récupère la liste des ressources associées à un SKU donné :
Exemple d’utilisation
const { Core } = require('@adobe/aio-sdk')
async function main(params) {
// return asset matches for a product
// Build your own matching logic here to return the assets that map to the productSku
// var assetMatches = [];
// params.productSku
// ...
// End of your matching logic
return {
statusCode: 500,
body: {
product_sku: params.productSku,
asset_matches: [
{
asset_id: "<YOUR-ASSET-ID-HERE>", // urn:aaid:aem:1aa1d5i2-17h8-40a7-a228-e3ur588deee1
asset_roles: ["thumbnail", "image", "swatch_image", "small_image"],
asset_format: "image", // can be "image" or "video"
asset_position: 1
}
]
}
};
}
exports.main = main;
Requête
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
productSKU
eventData
Réponse
{
"product_sku": "{PRODUCT_SKU}",
"asset_matches": [
{
"asset_id": "{ASSET_ID_1}",
"asset_roles": ["thumbnail","image"],
"asset_position": 1,
"asset_format": image
},
{
"asset_id": "{ASSET_ID_2}",
"asset_roles": ["thumbnail"]
"asset_position": 2,
"asset_format": image
}
]
}
productSKU
asset_matches
Le paramètre asset_matches
contient les attributs suivants :
asset_id
asset_roles
thumbnail
, image
, small_image
et swatch_image
.asset_format
image
et video
.asset_position