Correspondance automatique personnalisée

Si la stratégie de correspondance automatique par défaut (correspondance automatique prête à l’emploi) n’est pas alignée avec les besoins spécifiques de votre entreprise, sélectionnez l’option Correspondance personnalisée . Cette option prend en charge l’utilisation de Adobe Developer App Builder pour développer une application de correspondance personnalisée qui gère une logique de correspondance complexe, ou des ressources provenant d’un système tiers qui ne peut pas renseigner de métadonnées dans AEM Assets.

Configuration de la correspondance automatique personnalisée

  1. Dans l’Administration Commerce, accédez à Store > Configuration > ADOBE SERVICES > AEM Assets Integration.

  2. Sélectionnez Custom Matcher comme règle correspondante.

  3. Lorsque vous sélectionnez cette règle de correspondance, Admin affiche des champs supplémentaires pour configurer les points d’entrée et les paramètres d’authentification nécessaires à la logique de correspondance personnalisée.

workspace.json

Le champ Adobe I/O Workspace Configuration permet de configurer votre correspondant personnalisé de manière simplifiée en important votre fichier de configuration de workspace.json App Builder.

Vous pouvez télécharger le fichier workspace.json à partir de Adobe Developer Console. Le fichier contient toutes les informations d’identification et de configuration pour votre espace de travail App Builder.

Exemple de workspace.json
code language-json
{
  "project": {
    "id": "project_id",
    "name": "project_name",
    "title": "title_name",
    "org": {
      "id": "id",
      "name": "Organization_name",
      "ims_org_id": "ims_id"
    },
    "workspace": {
      "id": "workspace_id",
      "name": "workspace_name_id",
      "title": "workspace_title_id",
      "action_url": "https://action_url.net",
      "app_url": "https://app_url.net",
      "details": {
        "credentials": [
          {
            "id": "credential_id",
            "name": "credential_name_id",
            "integration_type": "oauth_server_to_server",
            "oauth_server_to_server": {
              "client_id": "client_id",
              "client_secrets": ["secret"],
              "technical_account_email": "xx@technical_account_email.com",
              "technical_account_id": "technical_account_id",
              "scopes": [
                "AdobeID",
                "openid",
                "read_organizations",
                "additional_info.projectedProductContext",
                "additional_info.roles",
                "adobeio_api",
                "read_client_secret",
                "manage_client_secrets"
              ]
            }
          }
        ],
        "services": [
          {
            "code": "AdobeIOManagementAPISDK",
            "name": "I/O Management API"
          }
        ],
        "runtime": {
          "namespaces": [
            {
              "name": "namespace_name",
              "auth": "example_auth"
            }
          ]
        },
        "events": {
          "registrations": []
        },
        "mesh": {}
      }
    }
  }
}
  1. Effectuez un glisser-déposer de votre fichier workspace.json de votre projet App Builder vers le champ Adobe I/O Workspace Configuration . Vous pouvez également cliquer sur pour parcourir et sélectionner le fichier.

Configuration Workspace {width="600" modal="regular"}

  1. Le système effectue automatiquement les opérations suivantes :

    • Valide la structure JSON.
    • Extrait et renseigne les informations d’identification OAuth
    • Récupère les actions d’exécution disponibles pour l’espace de travail
    • Remplit les options de liste déroulante pour les champs Product to Asset URL et Asset to Product URL
  2. Sélectionnez les actions d’exécution appropriées dans les menus déroulants de chaque flux.

  3. Cliquez sur Save Config.

Points d’entrée de l’API de correspondance personnalisés

Lorsque vous créez une application de correspondance personnalisée à l’aide d’App Builder, l’application doit exposer les points d’entrée suivants :

  • Ressource App Builder vers l’URL du produit point d’entrée
  • Point d’entrée du produit App Builder vers l’URL de la ressource

Ressource App Builder vers le point d’entrée de l’URL du produit

Ce point d’entrée récupère la liste des SKU associés à une ressource donnée :

Exemple d’utilisation

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;

Requête

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/asset-to-product
Paramètre
Type de données
Description
assetId
String
Représente l’ID de ressource mis à jour.
eventData
String
Renvoie la payload de données associée à l’ID de ressource.

Réponse

{
  "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
}
Paramètre
Type de données
Description
asset_id
String
Identifiant de ressource correspondant.
product_matches
Tableau
Liste des produits associés à la ressource.
skip
Booléen
(Facultatif) Lorsqu’il est true, le moteur de règle ignore la synchronisation pour cette ressource (aucune mise à jour du mappage de produits). Lorsqu’il est false ou omis, le traitement normal s’exécute. Voir Ignorer le traitement de la synchronisation.

Produit App Builder vers le point d’entrée de l’URL de la ressource

Ce point d’entrée récupère la liste des ressources associées à un SKU donné :

Exemple d’utilisation

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;

Requête

POST https://your-app-builder-url/api/v1/web/app-builder-external-rule/product-to-asset
Paramètre
Type de données
Description
productSKU
String
Représente le SKU de produit mis à jour.
eventData
String
Renvoie la payload de données associée au SKU du produit.

Réponse

{
  "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
}
Paramètre
Type de données
Description
product_sku
String
SKU du produit correspondant.
asset_matches
Tableau
Liste des ressources associées au produit.
skip
Booléen
(Facultatif) Lorsqu’il est true, le moteur de règles ignore la synchronisation pour ce produit (aucune mise à jour du mappage des ressources). Lorsqu’il est false ou omis, le traitement normal s’exécute. Voir Ignorer le traitement de la synchronisation.

Le paramètre asset_matches contient les attributs suivants :

Attribut
Type de données
Description
asset_id
String
Identifiant de la ressource.
asset_roles
Tableau
Rôles de ressources. Utilise les rôles de ressources Commerce pris en charge tels que thumbnail, image, small_image et swatch_image.
asset_format
String
Format de la ressource. Les valeurs possibles sont image et video.
asset_position
Nombre
Position de la ressource dans la galerie de produits.

Ignorer le traitement de la synchronisation

Le paramètre skip permet à votre mappeur personnalisé de contourner le traitement de synchronisation pour des ressources ou des produits spécifiques.

Lorsque votre application App Builder renvoie des "skip": true dans la réponse, le moteur de règle n’envoie pas de requêtes de mise à jour ou de suppression d’API à Commerce pour cette ressource ou ce produit. Cette optimisation réduit les appels d’API inutiles et améliore les performances.

recommendation-more-help
1e1bf82b-b08f-47bf-a397-ef30dbe31665