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
-
Navigieren Sie vom Commerce-Administrator aus zu Store > Konfiguration > ADOBE SERVICES > AEM Assets Integration.
-
Wählen Sie Custom Matcher als Übereinstimmungsregel aus.
-
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
assetId
eventData
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
productSKU
eventData
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
}
]
}
productSKU
asset_matches
Der asset_matches
-Parameter enthält die folgenden Attribute:
asset_id
asset_roles
thumbnail
, image
, small_image
und swatch_image
.asset_format
image
und video
.asset_position