Aangepaste automatische matching
Als de standaard automatische passende strategie (automatische aanpassing OTB) niet met uw specifieke bedrijfsvereisten wordt gericht, selecteer de optie van de douanegelijke. Deze optie steunt het gebruik van Adobe Developer App Builder om een toepassing van de douanematcher te ontwikkelen die complexe passende logica, of activa behandelt die uit een derdesysteem komen dat meta-gegevens in AEM Assets niet kan bevolken.
Aangepaste automatische overeenkomsten configureren
-
Navigeer in Commerce Admin naar Store > Configuratie > ADOBE SERVICES > AEM Assets Integration .
-
Selecteer Custom Matcher als overeenkomende regel.
-
Wanneer u deze passende regel selecteert, toont Admin extra gebieden om eindpunten en noodzakelijke authentificatieparameters voor de douane passende logica te vormen.
Eindpunten voor aangepaste matcher-API
Wanneer u een toepassing van de douanematcher gebruikend App Builder bouwt, moet de toepassing de volgende eindpunten blootstellen:
- activa van App Builder aan productURL eindpunt
- het product van App Builder aan activaURL eindpunt
App Builder-element naar URL-eindpunt van product
Dit eindpunt wint de lijst van SKUs verbonden aan een bepaald activa terug:
Voorbeeldgebruik
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;
Verzoek
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
assetId
eventData
Reactie
{
"asset_id": "{ASSET_ID}",
"product_matches": [
{
"product_sku": "{PRODUCT_SKU_1}",
"asset_roles": ["thumbnail","image"]
},
{
"product_sku": "{PRODUCT_SKU_2}",
"asset_roles": ["thumbnail"]
}
]
}
App Builder-product naar URL-eindpunt van element
Dit eindpunt wint de lijst van activa verbonden aan bepaalde SKU terug:
Voorbeeldgebruik
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;
Verzoek
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
productSKU
eventData
Reactie
{
"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
De parameter asset_matches
bevat de volgende kenmerken:
asset_id
asset_roles
thumbnail
, image
, small_image
, en swatch_image
.asset_format
image
en video
.asset_position