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
-
Dall'amministratore di Commerce, passare a Store > Configurazione > ADOBE SERVICES > AEM Assets Integration.
-
Selezionare Custom Matcher come regola corrispondente.
-
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
assetId
eventData
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
productSKU
eventData
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
}
]
}
productSKU
asset_matches
Il parametro asset_matches
contiene i seguenti attributi:
asset_id
asset_roles
thumbnail
, image
, small_image
e swatch_image
.asset_format
image
e video
.asset_position