Correspondência automática personalizada

Se a estratégia de correspondência automática padrão (correspondência automática OOTB) não estiver alinhada aos seus requisitos de negócios específicos, selecione a opção de correspondência personalizada. Esta opção oferece suporte ao uso do Adobe Developer App Builder para desenvolver um aplicativo de correspondência personalizado que lida com lógica de correspondência complexa ou com ativos provenientes de um sistema de terceiros que não pode preencher metadados no AEM Assets.

Configurar correspondência automática personalizada

  1. No Administrador do Commerce, navegue até Store > Configuração > ADOBE SERVICES > AEM Assets Integration.

  2. Selecione Custom Matcher como regra de correspondência.

  3. Ao selecionar esta regra de correspondência, o Administrador exibe campos adicionais para configurar os pontos de extremidade e os parâmetros de autenticação necessários para a lógica de correspondência personalizada.

Pontos de extremidade da API do correspondedor personalizado

Ao criar um aplicativo de correspondência personalizado usando o App Builder, o aplicativo deve expor os seguintes pontos de extremidade:

  • Ponto de extremidade Ativo App Builder para URL do produto
  • Ponto de extremidade Produto App Builder para URL do ativo

Ativo App Builder para endpoint do URL do produto

Esse endpoint recupera a lista de SKUs associadas a um determinado ativo:

Exemplo 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;

Solicitação

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
Parâmetro
Tipo de dados
Descrição
assetId
String
Representa a ID de ativo atualizada.
eventData
String
Retorna a carga de dados associada à ID do ativo.

Resposta

{
  "asset_id": "{ASSET_ID}",
  "product_matches": [
    {
      "product_sku": "{PRODUCT_SKU_1}",
      "asset_roles": ["thumbnail","image"]
    },
    {
      "product_sku": "{PRODUCT_SKU_2}",
      "asset_roles": ["thumbnail"]
    }
  ]
}

Produto App Builder para endpoint do URL do ativo

Esse endpoint recupera a lista de ativos associados a determinada SKU:

Exemplo 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;

Solicitação

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
Parâmetro
Tipo de dados
Descrição
productSKU
String
Representa o SKU do produto atualizado.
eventData
String
Retorna a carga de dados associada ao SKU do produto.

Resposta

{
  "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
    }
  ]
}
Parâmetro
Tipo de dados
Descrição
productSKU
String
Representa o SKU do produto atualizado.
asset_matches
String
Retorna todos os ativos associados a um SKU de produto específico.

O parâmetro asset_matches contém os seguintes atributos:

Atributo
Tipo de dados
Descrição
asset_id
String
Representa a ID de ativo atualizada.
asset_roles
String
Retorna todas as funções de ativo disponíveis. Usa funções de ativos do Commerce com suporte, como thumbnail, image, small_image e swatch_image.
asset_format
String
Fornece os formatos disponíveis para o ativo. Os valores possíveis são image e video.
asset_position
String
Mostra a posição do ativo.
recommendation-more-help
ca3e43e7-8fc7-412c-9d52-80a723c40cea