Anpassad automatisk matchning

Om standardstrategin för automatisk matchning (OTB automatisk matchning) inte är anpassad efter dina specifika affärskrav väljer du det anpassade matchningsalternativet. Det här alternativet stöder användningen av Adobe Developer App Builder för att utveckla ett anpassat matchningsprogram som hanterar komplex matchningslogik, eller resurser från ett tredjepartssystem som inte kan fylla i metadata i AEM Assets.

Konfigurera anpassad automatisk matchning

  1. Gå till Store > Konfiguration > ADOBE SERVICES > AEM Assets Integration i Commerce Admin.

  2. Välj Custom Matcher som matchningsregel.

  3. När du väljer den här matchande regeln visar Admin ytterligare fält för att konfigurera slutpunkterna och de nödvändiga autentiseringsparametrarna för den anpassade matchningslogiken.

workspace.json

I fältet Adobe I/O Workspace Configuration finns ett smidigt sätt att konfigurera din anpassade matchare genom att importera konfigurationsfilen för App Builder workspace.json.

Du kan hämta filen workspace.json från Adobe Developer Console. Filen innehåller alla autentiseringsuppgifter och konfigurationsinformation för din App Builder-arbetsyta.

Exempel workspace.json
code language-json
{
  "project": {
    "id": "project_id",
    "name": "project_name",
    "title": "title_name",
    "org": {
      "id": "id",
      "name": "Organization_name",
      "ims_org_id": "ims_id"
    },
    "workspace": {
      "id": "workspace_id",
      "name": "workspace_name_id",
      "title": "workspace_title_id",
      "action_url": "https://action_url.net",
      "app_url": "https://app_url.net",
      "details": {
        "credentials": [
          {
            "id": "credential_id",
            "name": "credential_name_id",
            "integration_type": "oauth_server_to_server",
            "oauth_server_to_server": {
              "client_id": "client_id",
              "client_secrets": ["secret"],
              "technical_account_email": "xx@technical_account_email.com",
              "technical_account_id": "technical_account_id",
              "scopes": [
                "AdobeID",
                "openid",
                "read_organizations",
                "additional_info.projectedProductContext",
                "additional_info.roles",
                "adobeio_api",
                "read_client_secret",
                "manage_client_secrets"
              ]
            }
          }
        ],
        "services": [
          {
            "code": "AdobeIOManagementAPISDK",
            "name": "I/O Management API"
          }
        ],
        "runtime": {
          "namespaces": [
            {
              "name": "namespace_name",
              "auth": "example_auth"
            }
          ]
        },
        "events": {
          "registrations": []
        },
        "mesh": {}
      }
    }
  }
}
  1. Dra och släpp din workspace.json-fil från ditt App Builder-projekt till fältet Adobe I/O Workspace Configuration. Du kan också klicka för att bläddra och markera filen.

Workspace-konfiguration {width="600" modal="regular"}

  1. Systemet automatiskt:

    • Validerar JSON-strukturen
    • Extraherar och fyller i OAuth-autentiseringsuppgifter
    • Hämtar tillgängliga körningsåtgärder för arbetsytan
    • Fyller i listrutealternativ för fälten Product to Asset URL och Asset to Product URL
  2. Välj lämpliga körningsåtgärder i listrutorna för varje flöde.

  3. Klicka på Save Config.

API-slutpunkter för anpassad matchning

När du skapar ett anpassat matchningsprogram med App Builder måste följande slutpunkter visas:

  • App Builder-resurs till produkt-URL-slutpunkt
  • App Builder-produkt till resurs-URL slutpunkt

App Builder-resurs till produkt-URL-slutpunkt

Den här slutpunkten hämtar listan med SKU:er som är associerade med en given resurs:

Exempel på användning

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;

Begäran

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
Parameter
Datatyp
Beskrivning
assetId
Sträng
Representerar det uppdaterade resurs-ID:t.
eventData
Sträng
Returnerar datanyttolasten som är associerad med resurs-ID:t.

Svar

{
  "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
}
Parameter
Datatyp
Beskrivning
asset_id
Sträng
Det resurs-ID som matchas.
product_matches
Array
Lista över produkter som är associerade med tillgången.
skip
Boolean
(Valfritt) När true inträffar, hoppar regelmotorn över synkronisering för den här resursen (ingen produktmappningsuppdatering). När false eller utelämnas körs normal bearbetning. Se Hoppa över synkroniseringsbearbetning.

App Builder product to asset URL endpoint

Den här slutpunkten hämtar listan över resurser som är associerade med en given SKU:

Exempel på användning

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;

Begäran

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
Parameter
Datatyp
Beskrivning
productSKU
Sträng
Representerar den uppdaterade produktens SKU.
eventData
Sträng
Returnerar den datanyttolast som är associerad med produkt-SKU:n.

Svar

{
  "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
}
Parameter
Datatyp
Beskrivning
product_sku
Sträng
Produkt-SKU som matchas.
asset_matches
Array
Lista över resurser som är associerade med produkten.
skip
Boolean
(Valfritt) När true inträffar, hoppar regelmotorn över synkronisering för den här produkten (ingen resursmappningsuppdatering). När false eller utelämnas körs normal bearbetning. Se Hoppa över synkroniseringsbearbetning.

Parametern asset_matches innehåller följande attribut:

Attribut
Datatyp
Beskrivning
asset_id
Sträng
Resurs-ID.
asset_roles
Array
Resursroller. Använder Commerce-resursroller som stöds som thumbnail, image, small_image och swatch_image.
asset_format
Sträng
Resursformatet. Möjliga värden är image och video.
asset_position
Nummer
Positionen för resursen i produktgalleriet.

Hoppa över synkroniseringsbearbetning

Parametern skip gör att din anpassade matchare kan kringgå synkroniseringsbearbetning för specifika resurser eller produkter.

När ditt App Builder-program returnerar "skip": true i svaret skickar regelmotorn inte uppdateringar eller tar bort API-begäranden till Commerce för den resursen eller produkten. Optimeringen minskar onödiga API-anrop och förbättrar prestandan.

recommendation-more-help
8c823fd5-5db1-44f8-b0b7-6cafdbd7aefa