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.
workspace.json
Das Feld Adobe I/O Workspace Configuration bietet eine optimierte Möglichkeit, Ihren benutzerdefinierten Matcher zu konfigurieren, indem Sie Ihre App Builder workspace.json-Konfigurationsdatei importieren.
Sie können die workspace.json Datei von der Adobe Developer Console herunterladen. Die Datei enthält alle Anmeldeinformationen und Konfigurationsdetails für Ihren App Builder Workspace.
workspace.json| code language-json |
|---|
|
- Ziehen Sie Ihre
workspace.jsonaus dem App Builder-Projekt in das Feld Adobe I/O Workspace Configuration . Alternativ können Sie zum Durchsuchen klicken und die Datei auswählen.
-
Das System führt automatisch folgende Schritte durch:
- Validiert die JSON-Struktur
- Extrahiert und füllt OAuth-Anmeldeinformationen
- Ruft verfügbare Laufzeitaktionen für den Arbeitsbereich ab
- Füllt Dropdown-Optionen für die Felder Product to Asset URL und Asset to Product URL aus
-
Wählen Sie für jeden Fluss die entsprechenden Laufzeitaktionen aus den Dropdown-Menüs aus.
-
Klicken Sie auf Save Config.
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
assetIdeventDataAntwort
{
"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
productSKUeventDataAntwort
{
"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
}
]
}
productSKUasset_matchesDer asset_matches-Parameter enthält die folgenden Attribute:
asset_idasset_rolesthumbnail, image, small_image und swatch_image.asset_formatimage und video.asset_position