Corrispondenza automatica personalizzata

Se la strategia di corrispondenza automatica predefinita (Corrispondenza automatica OOTB) non è allineata ai requisiti aziendali specifici, selezionare l'opzione di corrispondenza personalizzata. Questa opzione supporta l'utilizzo di Adobe Developer App Builder per sviluppare un'applicazione di corrispondenza personalizzata che gestisca logiche di corrispondenza complesse o risorse provenienti da un sistema di terze parti che non possono popolare i metadati in AEM Assets.

Configurare la corrispondenza automatica personalizzata

  1. Dall'amministratore di Commerce, passare a Store > Configurazione > ADOBE SERVICES > AEM Assets Integration.

  2. Selezionare Custom Matcher come regola corrispondente.

  3. Quando selezioni questa regola corrispondente, l'amministratore visualizza campi aggiuntivi per configurare gli endpoint e i parametri di autenticazione necessari per la logica di corrispondenza personalizzata.

Endpoint API di corrispondenza personalizzati

Quando si crea un'applicazione di corrispondenza personalizzata utilizzando App Builder, l'applicazione deve esporre i seguenti endpoint:

  • Endpoint da risorsa App Builder all'URL prodotto
  • Endpoint da prodotto App Builder a URL risorsa

Endpoint da risorsa App Builder a URL prodotto

Questo endpoint recupera l’elenco di SKU associati a una determinata risorsa:

Esempio di utilizzo

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;

Richiesta

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
Parametro
Tipo di dati
Descrizione
assetId
Stringa
Rappresenta l’ID risorsa aggiornato.
eventData
Stringa
Restituisce il payload di dati associato all’ID risorsa.

Risposta

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

Endpoint "product to asset URL" di App Builder

Questo endpoint recupera l’elenco delle risorse associate a un determinato SKU:

Esempio di utilizzo

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;

Richiesta

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
Parametro
Tipo di dati
Descrizione
productSKU
Stringa
Rappresenta lo SKU del prodotto aggiornato.
eventData
Stringa
Restituisce il payload di dati associato allo SKU del prodotto.

Risposta

{
  "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
    }
  ]
}
Parametro
Tipo di dati
Descrizione
productSKU
Stringa
Rappresenta lo SKU del prodotto aggiornato.
asset_matches
Stringa
Restituisce tutte le risorse associate a uno SKU di prodotto specifico.

Il parametro asset_matches contiene i seguenti attributi:

Attributo
Tipo di dati
Descrizione
asset_id
Stringa
Rappresenta l’ID risorsa aggiornato.
asset_roles
Stringa
Restituisce tutti i ruoli di risorse disponibili. Utilizza i ruoli di risorse Commerce supportati come thumbnail, image, small_image e swatch_image.
asset_format
Stringa
Fornisce i formati disponibili per la risorsa. I valori possibili sono image e video.
asset_position
Stringa
Mostra la posizione della risorsa.
recommendation-more-help
a946a0ea-3a16-4ab1-9bea-af7261643345