自定义自动匹配
如果默认自动匹配策略(OOTB自动匹配)与您的特定业务要求不一致,请选择自定义匹配选项。 此选项支持使用Adobe Developer App Builder开发自定义匹配器应用程序,该应用程序可处理复杂的匹配逻辑,或者处理来自无法将元数据填充到AEM Assets中的第三方系统的资源。
配置自定义自动匹配
- 
                  
在Commerce管理员中,导航到 Store >配置> ADOBE SERVICES > AEM Assets Integration。
 - 
                  
选择 Custom Matcher 作为匹配规则。
 - 
                  
当您选择此匹配规则时,管理员会显示用于配置 端点 和自定义匹配逻辑所需 身份验证参数 的其他字段。
 
自定义匹配器API端点
当您使用App Builder生成自定义匹配程序应用程序时,该应用程序必须公开以下端点:
- App Builder资源到产品URL 端点
 - App Builder产品到资源URL 端点
 
App Builder资源到产品URL端点
此端点检索与给定资产关联的SKU列表:
使用示例
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;
            请求
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
            参数
            数据类型
            描述
          assetId字符串
            表示更新的资产ID。
          eventData字符串
            返回与资产ID关联的数据有效负载。
          响应
{
  "asset_id": "{ASSET_ID}",
  "product_matches": [
    {
      "product_sku": "{PRODUCT_SKU_1}",
      "asset_roles": ["thumbnail","image"]
    },
    {
      "product_sku": "{PRODUCT_SKU_2}",
      "asset_roles": ["thumbnail"]
    }
  ]
}
            App Builder产品到资源URL端点
此端点检索与给定SKU关联的资源列表:
使用示例
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;
            请求
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
            参数
            数据类型
            描述
          productSKU字符串
            表示更新的产品SKU。
          eventData字符串
            返回与产品SKU关联的数据有效负载。
          响应
{
  "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字符串
            表示更新的产品SKU。
          asset_matches字符串
            返回与特定产品SKU关联的所有资产。
          asset_matches参数包含以下属性:
属性
            数据类型
            描述
          asset_id字符串
            表示更新的资产ID。
          asset_format字符串
            提供资源的可用格式。 可能的值为
          image和video。asset_position字符串
            显示资源的位置。
          recommendation-more-help
            
          7606306b-826c-4603-82d4-2a2c203d5927