Coincidencia automática personalizada
Si la estrategia de coincidencia automática predeterminada (coincidencia automática OOTB) no está alineada con los requisitos comerciales específicos, seleccione la opción de coincidencia personalizada. Esta opción admite el uso de Adobe Developer App Builder para desarrollar una aplicación de emparejamiento personalizada que administre lógicas de emparejamiento complejas o recursos procedentes de un sistema de terceros que no puedan rellenar metadatos en los AEM Assets.
Configurar la coincidencia automática personalizada
-
En el Administrador de Commerce, vaya a Store > Configuración > ADOBE SERVICES > AEM Assets Integration.
-
Seleccione Custom Matcher como regla coincidente.
-
Al seleccionar esta regla coincidente, el administrador muestra campos adicionales para configurar los extremos y los parámetros de autenticación necesarios para la lógica de coincidencia personalizada.
Extremos de API de emparejador personalizados
Cuando crea una aplicación de emparejador personalizada usando App Builder, la aplicación debe exponer los siguientes extremos:
- Extremo de recurso de App Builder a dirección URL del producto
- Extremo de App Builder product to asset URL
Extremo de recurso de App Builder a URL del producto
Este punto de conexión recupera la lista de SKU asociadas a un recurso determinado:
Ejemplo de uso
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;
Solicitud
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
assetId
eventData
Respuesta
{
"asset_id": "{ASSET_ID}",
"product_matches": [
{
"product_sku": "{PRODUCT_SKU_1}",
"asset_roles": ["thumbnail","image"]
},
{
"product_sku": "{PRODUCT_SKU_2}",
"asset_roles": ["thumbnail"]
}
]
}
Extremo de URL de producto a recurso de App Builder
Este extremo recupera la lista de recursos asociados a un SKU determinado:
Ejemplo de uso
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;
Solicitud
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
productSKU
eventData
Respuesta
{
"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
El parámetro asset_matches
contiene los atributos siguientes:
asset_id
asset_roles
thumbnail
, image
, small_image
y swatch_image
.asset_format
image
y video
.asset_position