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.
workspace.json
El campo Adobe I/O Workspace Configuration proporciona una forma sencilla de configurar su emparejador personalizado mediante la importación del archivo de configuración de App Builder workspace.json.
Puede descargar el archivo de workspace.json desde Adobe Developer Console. El archivo contiene todas las credenciales y los detalles de configuración de App Builder Workspace.
workspace.json| code language-json |
|---|
|
- Arrastre y suelte el archivo
workspace.jsonde su proyecto de App Builder en el campo Adobe I/O Workspace Configuration. También puede hacer clic en para examinar y seleccionar el archivo.
-
El sistema automáticamente:
- Valida la estructura JSON.
- Extrae y rellena credenciales de OAuth
- Obtiene las acciones de tiempo de ejecución disponibles para el espacio de trabajo
- Rellena las opciones desplegables de los campos Product to Asset URL y Asset to Product URL
-
Seleccione las acciones de tiempo de ejecución adecuadas en los menús desplegables para cada flujo.
-
Haga clic en Save Config.
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
// Set skip to true if the mapping hasn't changed
const skipSync = false;
return {
statusCode: 200,
body: {
asset_id: params.assetId,
product_matches: [
{
product_sku: "<YOUR-SKU-HERE>",
asset_roles: ["thumbnail", "image", "swatch_image", "small_image"],
asset_position: 1
}
],
skip: skipSync
}
};
}
exports.main = main;
Solicitud
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
assetIdeventDataRespuesta
{
"asset_id": "{ASSET_ID}",
"product_matches": [
{
"product_sku": "{PRODUCT_SKU_1}",
"asset_roles": ["thumbnail", "image"]
},
{
"product_sku": "{PRODUCT_SKU_2}",
"asset_roles": ["thumbnail"]
}
],
"skip": false
}
asset_idproduct_matchesskiptrue, el motor de reglas omite la sincronización de este recurso (sin actualización de asignación de productos). Si se omite o se false, se ejecuta el procesamiento normal. Ver Omitir procesamiento de sincronización.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
// Set skip to true if the mapping hasn't changed
const skipSync = false;
return {
statusCode: 200,
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
}
],
skip: skipSync
}
};
}
exports.main = main;
Solicitud
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
productSKUeventDataRespuesta
{
"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"
}
],
"skip": false
}
product_skuasset_matchesskiptrue, el motor de reglas omite la sincronización de este producto (sin actualización de asignación de recursos). Si se omite o se false, se ejecuta el procesamiento normal. Ver Omitir procesamiento de sincronización.El parámetro asset_matches contiene los atributos siguientes:
asset_idasset_rolesthumbnail, image, small_image y swatch_image.asset_formatimage y video.asset_positionOmitir procesamiento de sincronización
El parámetro skip permite que el elemento de coincidencia personalizado omita el procesamiento de sincronización para recursos o productos específicos.
Cuando la aplicación de App Builder devuelve "skip": true en la respuesta, el motor de reglas no envía solicitudes de actualización o eliminación de API a Commerce para ese recurso o producto. Esta optimización reduce las llamadas de API innecesarias y mejora el rendimiento.