Benutzerdefinierter automatischer Abgleich

Wenn die standardmäßige automatische Abgleichstrategie (OOTB Automatic Matching) nicht an Ihren spezifischen Geschäftsanforderungen ausgerichtet ist, wählen Sie die Option Benutzerdefinierte Abgleichung aus. Diese Option unterstützt die Verwendung von Adobe Developer App Builder zum Entwickeln einer benutzerdefinierten Matcher-Anwendung, die komplexe Matching-Logik verarbeitet, oder von Assets, die von einem Drittanbietersystem stammen, das keine Metadaten in AEM Assets einfügen kann.

Konfigurieren von benutzerdefiniertem automatischem Abgleich

  1. Navigieren Sie vom Commerce-Administrator aus zu Store > Konfiguration > ADOBE SERVICES > AEM Assets Integration.

  2. Wählen Sie Custom Matcher als Übereinstimmungsregel aus.

  3. Wenn Sie diese Zuordnungsregel auswählen, zeigt Admin zusätzliche Felder zum Konfigurieren der Endpunkte und der erforderlichen Authentifizierungsparameter für die benutzerdefinierte Zuordnungslogik an.

Benutzerdefinierte Matcher-API-Endpunkte

Wenn Sie eine benutzerdefinierte Matcher-Anwendung mit App Builder erstellen, muss die Anwendung die folgenden Endpunkte bereitstellen:

  • Endpunkt App Builder-Asset zur Produkt URL
  • Endpunkt App Builder-Produkt zu Asset URL

Endpunkt von App Builder Asset-zu-Produkt-URL

Dieser Endpunkt ruft die Liste der mit einem bestimmten Asset verknüpften SKUs ab:

Beispielverwendung

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;

Anfrage

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
Parameter
Datentyp
Beschreibung
assetId
Zeichenfolge
Stellt die aktualisierte Asset-ID dar.
eventData
Zeichenfolge
Gibt die Daten-Payload zurück, die mit der Asset-ID verknüpft ist.

Antwort

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

Endpunkt von App Builder-Produkt-zu-Asset-URL

Dieser Endpunkt ruft die Liste der Assets ab, die mit einer bestimmten SKU verknüpft sind:

Beispielverwendung

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;

Anfrage

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
Parameter
Datentyp
Beschreibung
productSKU
Zeichenfolge
Stellt die aktualisierte Produkt-SKU dar.
eventData
Zeichenfolge
Gibt die Daten-Payload zurück, die mit der Produkt-SKU verknüpft ist.

Antwort

{
  "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
    }
  ]
}
Parameter
Datentyp
Beschreibung
productSKU
Zeichenfolge
Stellt die aktualisierte Produkt-SKU dar.
asset_matches
Zeichenfolge
Gibt alle Assets zurück, die mit einer bestimmten Produkt-SKU verknüpft sind.

Der asset_matches-Parameter enthält die folgenden Attribute:

Attribut
Datentyp
Beschreibung
asset_id
Zeichenfolge
Stellt die aktualisierte Asset-ID dar.
asset_roles
Zeichenfolge
Gibt alle verfügbaren Asset-Rollen zurück. Verwendet unterstützte CommerceAsset-Rollen wie thumbnail, image, small_image und swatch_image.
asset_format
Zeichenfolge
Stellt die verfügbaren Formate für das Asset bereit. Mögliche Werte sind image und video.
asset_position
Zeichenfolge
Zeigt die Position des Assets an.
recommendation-more-help
7d6707fb-4d59-44b9-ab2a-b69de39eb44d