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.
workspace.json
Het veld Adobe I/O Workspace Configuration biedt een gestroomlijnde manier om uw aangepaste matcher te configureren door het App Builder workspace.json -configuratiebestand te importeren.
U kunt het workspace.json dossier van Adobe Developer Console downloaden. Het bestand bevat alle gegevens en configuratiegegevens voor uw App Builder-werkruimte.
workspace.json| code language-json |
|---|
|
- Sleep het
workspace.json-bestand van uw App Builder-project naar het veld Adobe I/O Workspace Configuration . U kunt ook klikken om te bladeren en het bestand te selecteren.
-
Het systeem automatisch:
- Valideert de JSON-structuur
- Extraheert en vult OAuth-referenties
- Beschikbare runtimeacties voor de werkruimte ophalen
- Hiermee vult u de vervolgkeuzemogelijkheden in voor de velden Product to Asset URL en Asset to Product URL .
-
Selecteer de juiste runtimeacties in de vervolgkeuzemenu's voor elke flow.
-
Klik op Save Config.
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
// Set skip to true if the mapping hasn't changed
const skipSync = false;
return {
statusCode: 200,
body: {
asset_id: params.assetId,
product_matches: [
{
product_sku: "<YOUR-SKU-HERE>",
asset_roles: ["thumbnail", "image", "swatch_image", "small_image"],
asset_position: 1
}
],
skip: skipSync
}
};
}
exports.main = main;
Verzoek
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
assetIdeventDataReactie
{
"asset_id": "{ASSET_ID}",
"product_matches": [
{
"product_sku": "{PRODUCT_SKU_1}",
"asset_roles": ["thumbnail", "image"]
},
{
"product_sku": "{PRODUCT_SKU_2}",
"asset_roles": ["thumbnail"]
}
],
"skip": false
}
asset_idproduct_matchesskiptrue slaat de regelengine de synchronisatie voor dit element over (geen update voor producttoewijzing). Wanneer false wordt uitgevoerd of weggelaten, wordt de normale verwerking uitgevoerd. Zie synchronisatieverwerking overslaan.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
// Set skip to true if the mapping hasn't changed
const skipSync = false;
return {
statusCode: 200,
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
}
],
skip: skipSync
}
};
}
exports.main = main;
Verzoek
POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
productSKUeventDataReactie
{
"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"
}
],
"skip": false
}
product_skuasset_matchesskiptrue , slaat de regelengine de synchronisatie voor dit product over (geen update voor middelentoewijzing). Wanneer false wordt uitgevoerd of weggelaten, wordt de normale verwerking uitgevoerd. Zie synchronisatieverwerking overslaan.De parameter asset_matches bevat de volgende kenmerken:
asset_idasset_rolesthumbnail, image, small_image, en swatch_image.asset_formatimage en video .asset_positionSynchronisatieverwerking overslaan
Met de parameter skip kan uw aangepaste matcher de synchronisatie-verwerking voor specifieke elementen of producten omzeilen.
Wanneer uw App Builder-toepassing "skip": true retourneert in de reactie, verzendt de regelengine geen API-aanvragen voor dat middel of product naar Commerce. Deze optimalisatie vermindert onnodige API-aanroepen en verbetert de prestaties.