Algorithme de service GetPageDesign

Le service GetPageDesign cherche les données d'agencement correctes à utiliser pour afficher une page sur la vitrine. L'agencement peut être un agencement attribué ou un agencement par défaut. Le service renvoie les données d'agencement à l'appelant.

Cet algorithme fait référence aux emplacements e-marketing et aux activités d'attribution d'agencement qui sont utilisés dans la résolution d'agencement. Pour plus d'informations, voir Résolution d'agencement Commerce Composer.

Le diagramme d'algorithme suivant montre les étapes de traitement qui ont lieu lorsque le service GetPageDesign est appelé pour rechercher et renvoyer des données d'agencement :


Algorithme de service GetPageDesign
  • 1 Le service GetPageDesign est appelé avec une série de paramètres pour rechercher et renvoyer un agencement. L'expression d'action appelée est :
    /PageDesign[(ObjectIdenfier='$ObjectIdentifier$') and @deviceClass='$deviceClass$' and @pageGroup='$pageGroup$']
  • 2 La commande GetPageDesignCmd appelle la commande FetchPageDesignCmd. La commande FetchPageDesignCmd effectue la majeure partie du travail pour résoudre l'agencement (voir la zone indiquée avec une ligne pointillée dans le diagramme).
  • 3 La commande FetchDesignCmd appelle la commande de tâche PageDesignEMarketingSpotListTaskCmd pour créer une liste d'un ou plusieurs emplacements e-marketing à utiliser pour la résolution d'agencement. Chaque emplacement e-marketing représente une page ou un terme de recherche pour rechercher les attributions d'agencement.

    Création de noms d'emplacements e-marketing pour la résolution d'agencement

    3a Si le paramètre pageGroup est Category, Product, Bundle, Kit, DynamicKit ou Item : La commande crée une liste de noms d'emplacements e-marketing qui représentent :
    • Une page d'entrée de catégorie ou de catalogue dans la requête de page.
    • Toutes les pages de catégorie parent dans la hiérarchie de catalogue. Ces emplacements e-marketing sont inclus afin que les pages de catégorie parent puissent être vérifiées pour les attributions d'agencement héritées.

    La liste est construite à partir du bas de la hiérarchie du catalogue et remonte progressivement jusqu'en haut. Les emplacements e-marketing représentant les pages en bas sont prioritaires lors de la résolution d'agencement.

    Pour plus d'informations sur l'héritage d'agencement et la hiérarchisation des pages d'entrée de catégorie et de catalogue, voir :
    3b Si le paramètre pageGroup est de type Search (recherche) : La commande crée une liste de noms d'emplacements e-marketing qui représentent :
    • Terme de recherche dans la requête.
    • Synonymes définis pour le terme de recherche dans l'outil des catalogues, si la fonctionnalité Utiliser des synonymes est activée pour le magasin.
    3c Si le paramètre pageGroup est de type Content (contenu) : La commande crée un nom d'emplacement e-marketing qui représente la page de contenu de la requête de page.
  • 4 A partir d'un ou plusieurs noms d'emplacements e-marketing, par ordre de priorité, la façade marketing est appelée pour chercher l'attribution d'agencement à appliquer à la page. La commande FetchPageDesignCmd crée des paramètres de déclenchement à partir de la liste des noms d'emplacements e-marketing. Une chaîne de requête de paramètre de déclenchement peut ressembler à ceci :
    DM_EmsName=Content_50005&DM_Emspot_Usage=LAYOUTMARKETINGSPOT&DM_DeviceClass=Web&DM_resolvedParentCategories=true_mkt.endTriggerParameters
    Lorsque les paramètres de déclenchement sont générés, l'expression d'action /MarketingSpotData est appelée. Le service GetMarketingSpotData évalue toutes les activités d'attribution d'agencement qui existent pour les noms d'emplacement e-marketing. Les activités d'attribution d'agencement représentent des attributions d'agencement possibles pour la page. L'ID unique du premier agencement applicable est renvoyé à la commande FetchPageDesignCmd.
  • 5 Si un agencement applicable est trouvé, la commande FetchPageDesignCmd remplit le nom PageDesign en chargeant les détails de l'agencement, potentiellement à partir du cache.
  • 6 Si un agencement applicable est introuvable, la commande FetchPageDesignCmdtente de charger un agencement par défaut. En règle générale, ce processus se fait en mémoire et implique jusqu'à quatre tentatives :

    Tentatives de repli pour les agencements par défaut

    Recherchez l'agencement par défaut à l'aide de… Détails
    deviceClass + pageGroup La commande tente de trouver un agencement par défaut défini pour deviceClass et pageGroup, par exemple Any et Item.
    (deviceClass de repli) + pageGroup Si aucun agencement par défaut n'est trouvé, la commande tente de trouver un agencement par défaut à l'aide d'une classe deviceClass de repli. Dans le fichier de configuration wc-component.xml Commerce Composer, il existe un groupe de configuration DeviceClassDefaultLayoutFallback dans lequel le repli est défini. Par exemple, le repli pour Any peut être Web.
    deviceClass + (pageGroup de repli) Si aucun agencement par défaut n'est trouvé, la commande tente de trouver un agencement par défaut à l'aide d'un groupe pageGroup de repli. Dans le fichier de configuration wc-component.xml Commerce Composer, il existe un groupe de configuration PageGroupDefaultLayoutFallback dans lequel le repli est défini. Par exemple, le repli pour Item peut être Product.
    (deviceClass de repli) + (pageGroup de repli) Si aucun agencement par défaut n'est trouvé, la commande tente de trouver un agencement par défaut à l'aide d'une classe deviceClass de repli et d'un groupe pageGroup de repli.
    Remarque : La structure Commerce Composer doit être programmée de sorte qu'un agencement par défaut soit toujours trouvé. Sinon, une réponse vide est renvoyée.
  • 7 Les données d'agencement (PageDesign) sont renvoyées à l'appelant (page).