Publication et récupération d'informations avec des événements wcTopic pour widgets

Si votre widget personnalisé doit utiliser des données générées par un widget différent ou fournir des données dont un autre widget a besoin, vous pouvez utiliser un événement wcTopic pour récupérer ou fournir les données. Pour utiliser les données générées par un widget, vous pouvez vous abonner à l'événement wcTopic que l'autre widget publie. Pour qu'un widget fournisse des informations qu'un autre widget peut utiliser, vous pouvez utiliser un événement wcTopic pour publier ces informations. Les autres widgets peuvent s'abonner à l'événement wcTopic que vous avez publié.

Récupération d'informations à partir d'autres widgets avec des événements wcTopic

Si un widget publie un événement wcTopic qui contient toutes les données requises pour votre widget, vous pouvez demander à votre widget personnalisé de s'abonner à l'événement wcTopic pour récupérer les données. Utilisez l'API wcTopic.subscribe pour vous abonner aux événements de widgets publiés. Pour s'abonner à un événement wcTopic publié, le code suivant doit être inclus dans le fichier JSP de niveau supérieur pour le widget qui doit s'abonner à l'événement wcTopic :
wcTopic.subscribe('identifier_eventAction', location.function);	
identifier
Widget qui génère les données dans l'événement publié.
eventAction
Evénement auquel on s'abonne. Par exemple, si les informations d'un autre widget sont modifiées ou complétées.
location
Le fichier auquel il est abonné inclut le code pour publier l'événement.
function
Fonction à appeler dans votre widget personnalisé lorsque les informations de l'événement publié sont récupérées.
Par exemple, dans la page Détails du produit, le widget Image complète s'abonne aux événements wcTopic suivants publiés par le widget Définition des attributs :
DefiningAttributes_Changed
Publié lorsque la valeur d'un attribut est sélectionnée alors que d'autres attributs n'ont toujours pas de valeurs sélectionnées et que le SKU n'est pas résolu. Par exemple, lorsqu'un client sélectionne la taille d'un produit, mais pas encore la valeur de la couleur du produit.
DefiningAttributes_Resolved
Publié lorsque la valeur d'un attribut est sélectionnée et que tous les autres attributs ont des valeurs et que le SKU est résolu.
Ces événements sont utilisés par le widget Image complète pour déterminer l'image de produit correcte à afficher lorsque les valeurs d'attribut sont sélectionnées par les clients. Le widget Image complète s'abonne à ces événements avec le code suivant :
			wcTopic.subscribe('DefiningAttributes_Resolved', productDisplayJS.updateProductImage);
			wcTopic.subscribe('DefiningAttributes_Changed', productDisplayJS.updateProductImage);			
La publication de ces événements et plus d'événements pour les widgets qui s'affichent sur la page Détails du produit sont définis dans le fichier crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js.

Le tableau suivant identifie les événements wcTopic publiés par défaut. Vous pouvez abonner un widget aux événements pour récupérer des données pour le widget à utiliser.

Evénements wcTopic qui sont publiés par défaut.

Evénement wcTopic Description (déclencheur d'événement) Paramètres publiés Fichier qui publie l'événement
ShopperActions_Changed

Cet événement publie une notification indiquant qu'il y a un changement de quantité pour un produit qu'un client consulte.

espace intercalaire

Cet événement publie la nouvelle quantité de l'article après qu'un client a changé la quantité.

espace intercalaire
  • LinuxAIXWC_eardir/Stores.war/widgetdir/Common/CatalogEntry/javascript/ProductDisplay.js
  • WindowsWC_eardir\Stores.war\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
DefiningAttributes_Changed_productId

Cet événement se produit lorsqu'un client modifie les attributs de définition d'une entrée de catalogue. Cet événement se produit également après que le client enregistre les modifications.

Cet événement concatène l'ID de produit de l'entrée de catalogue modifiée pour le nom de l'événement. Abonnez-vous à cet événement lorsque votre widget a besoin d'une notification des modifications apportées aux produits et aux entrées de catalogue spécifiques (SKU).

L'événement publie l'ID d'entrée de catalogue et l'ID de produit de l'entrée de catalogue qui inclut les modifications d'attribut de définition.

  • LinuxAIXWC_eardir/Stores.war/widgetdir/Common/CatalogEntry/javascript/ProductDisplay.js
  • WindowsWC_eardir\Stores.war\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
DefiningAttributes_Changed

Cet événement se produit lorsqu'un client modifie les attributs de définition d'une entrée de catalogue. Cet événement se produit également après que le client enregistre les modifications.

L'événement publie l'ID d'entrée de catalogue et l'ID de produit de l'entrée de catalogue qui inclut les modifications d'attribut de définition.

  • LinuxAIXWC_eardir/Stores.war/widgetdir/Common/CatalogEntry/javascript/ProductDisplay.js
  • WindowsWC_eardir\Stores.war\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
DefiningAttributes_Resolved

Cet événement se produit lorsqu'un client enregistre des modifications apportées aux attributs de définition d'une entrée de catalogue.

L'événement publie l'ID d'entrée de catalogue et l'ID de produit de l'entrée de catalogue qui inclut les modifications d'attribut de définition enregistrées.

  • LinuxAIXWC_eardir/Stores.war/widgetdir/Common/CatalogEntry/javascript/ProductDisplay.js
  • WindowsWC_eardir\Stores.war\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
DefiningAttributes_Resolved_productId

Cet événement se produit lorsqu'un client enregistre des modifications apportées aux attributs de définition d'une entrée de catalogue dans le panier.

Cet événement concatène l'ID de produit de l'entrée de catalogue modifiée pour le nom de l'événement. Abonnez-vous à cet événement lorsque votre widget a besoin d'une notification des modifications apportées aux produits et aux entrées de catalogue spécifiques (SKU).

L'événement publie l'ID d'entrée de catalogue et l'ID de produit de l'entrée de catalogue qui inclut les modifications d'attribut de définition enregistrées.

  • LinuxAIXWC_eardir/Stores.war/widgetdir/Common/CatalogEntry/javascript/ProductDisplay.js
  • WindowsWC_eardir\Stores.war\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js
DefiningAttributes_Resolved_catalogEntryID

Cet événement se produit lorsqu'un client enregistre des modifications apportées aux attributs de définition d'une entrée de catalogue dans le panier.

Cet événement concatène l'ID d'entrée de catalogue de l'entrée de catalogue modifiée pour le nom de l'événement. Abonnez-vous à cet événement lorsque votre widget a besoin d'une notification des modifications apportées aux entrées de catalogue spécifiques (SKU) dans le panier.

L'événement publie l'ID d'entrée de catalogue pour la nouvelle entrée de catalogue.

  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Common/ShoppingAction.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Common\ShoppingAction.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Common\ShoppingAction.js
DefiningAttributes_Resolved_productId

Cet événement se produit lorsqu'un client enregistre des modifications apportées aux attributs de définition d'une entrée de catalogue dans le panier.

Cet événement concatène l'ID de produit de l'entrée de catalogue modifiée pour le nom de l'événement. Abonnez-vous à cet événement lorsque votre widget a besoin d'une notification des modifications apportées aux produits et aux entrées de catalogue spécifiques (SKU) dans le panier.

L'événement publie l'ID d'entrée de catalogue et l'ID de produit pour la nouvelle entrée de catalogue.

  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Common/ShoppingAction.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Common\ShoppingAction.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Common\ShoppingAction.js
ProductInfo_Added

Cet événement se produit après qu'un client clique sur le bouton Ajouter au panier. Cet événement se déclenche lorsque les informations du produit sont ajoutées au panier pour le produit que le client a ajouté au panier.

Cet événement publie les informations suivantes pour le produit dans la matrice, this.productAddedList
  • Nom du produit
  • Miniature
  • Prix
  • Quantité
  • Attributs de produit s'ils sont sélectionnés.

Si le produit que le client ajoute au panier est un groupement, la matrice contient les informations pour chaque produit dans le groupement. Les informations du groupement sont renvoyées dans une seule liste avec plusieurs entrées (une entrée pour chaque produit inclus dans le groupement).

  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Common/ShoppingAction.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Common\ShoppingAction.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Common\ShoppingAction.js
Quantity_changed

Cet événement publie une notification indiquant qu'il y a un changement de quantité pour un produit dans le panier.

Selon les détails du produit, l'événement peut publier les informations de quantité ou publier une partie ou la totalité des informations suivantes sous la forme d'une chaîne de sérialisation JSON wcTopic.toJson(productDetails)
  • Type d'entrée de catalogue
  • ID d'entrée de catalogue
  • Quantité
  • Prix
  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Common/ShoppingAction.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Common\ShoppingAction.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Common\ShoppingAction.js
DefiningAttributes_Resolved_shoppingActionsJS.baseCatalogEntryId

Cet événement se produit lorsqu'un client enregistre des modifications apportées aux attributs de définition d'une entrée de catalogue dans le panier.

En s'abonnant à cet événement, un widget est notifié lorsqu'un client enregistre des modifications apportées aux attributs de définition d'une entrée de catalogue, ce qui indique que le client dispose d'un SKU différent dans le panier.

Publie la valeur de l'ID d'entrée de catalogue du SKU qui vient d'être ajouté au panier. Cet ID passe au widget abonné comme valeur du paramètre shoppingActionsJS.baseCatalogEntryId

  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Common/ShoppingActionsServicesDeclaration.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Common\ShoppingActionsServicesDeclaration.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Common\ShoppingActionsServicesDeclaration.js
Facet_Remove
Cet événement publie quand un client supprime une facette pendant qu'il navigue dans le magasin. Selon le type de facette que le client supprime, cet événement publie également l'ID de la facette supprimée.
  • Si un client supprime une facette qui utilise des valeurs spécifiques qu'un client peut sélectionner, telles que les noms de marque, cet événement publie les informations d'ID de facette.
  • Si un client supprime une facette de filtre de prix, telle qu'une plage de prix configurée par le client, l'événement ne publie pas d'ID de facette.

Cet événement publie l'ID de facette. Si un client supprime une facette qui filtre par l'ID spécifique des facettes, cet événement publie l'ID de filtre avec la notification que l'événement se produit.

  • LinuxAIXWC_eardir/Stores.war/widgetdir/com.ibm.commerce.store.widgets.CatalogEntryList/javascript/SearchBasedNavigationDisplay.js
  • WindowsWC_eardir\Stores.war\widgetdir\com.ibm.commerce.store.widgets.CatalogEntryList\javascript\SearchBasedNavigationDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\widgetdir\com.ibm.commerce.store.widgets.CatalogEntryList\javascript\SearchBasedNavigationDisplay.js
ProductInfo_Reset

Cet événement se produit à l'issue d'une opération d'ajout au panier réussie et la fenêtre du mini panier s'affiche confirmant que l'opération ajouter au panier a été effectuée. Lorsque l'opération ajouter au panier se termine, l'opération efface les informations de produit pour l'article ajouté au panier à partir de la logique du mini panier. Cet événement ProductInfo_Reset déclenche et publie la notification indiquant que les informations du produit contenues dans le mini panier sont réinitialisées ou effacées.

En abonnant un widget à cet événement, le widget peut maintenant quand un client ajoute un article à son panier. Si le widget abonné suit l'article qu'un client ajoute au panier, cet événement indique que le client n'est plus en mesure d'afficher les informations du produit dans le mini panier.

Cet événement ne publie aucune donnée de paramètre qu'un widget abonné peut récupérer. Seule la notification indiquant que l'événement se produit est transmise au widget abonné.

  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Widgets/MiniShopCartDisplay/MiniShopCartDisplay.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Widgets\MiniShopCartDisplay\MiniShopCartDisplay.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Widgets\MiniShopCartDisplay\MiniShopCartDisplay.js
ShoppingList_changed

Cet événement publie lorsque le client modifie les informations relatives à une liste de présélection. Cet événement peut se produire lorsque le client ajoute, modifie ou supprime une liste de présélection.

Cet événement publie un tableau qui inclut les trois paramètres suivants de paire nom-valeur :
  • ID de liste de présélection
  • Nom de la liste de présélection
  • Action effectuée par le client par rapport à la liste, telle qu'une action de suppression.
Si vous abonnez un widget à cet événement, assurez-vous que votre widget peut déterminer les valeurs de paramètres dans la matrice. Votre widget doit être capable de déterminer l'action du client par rapport à la liste de présélection pour utiliser correctement les informations que cet événement publie.
  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Widgets/ShoppingList/ShoppingListServicesDeclaration.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Widgets\ShoppingList\ShoppingListServicesDeclaration.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Widgets\ShoppingList\ShoppingListServicesDeclaration.js
ShoppingListItem_Added

Cet événement est publié après qu'un client a ajouté un article à sa liste de présélection. Le client peut ajouter l'article à la liste de présélection pendant qu'il navigue dans le magasin, ou il peut déplacer un article de son panier vers la liste de présélection.

Lorsqu'un widget est abonné à cet événement, il reçoit un avis lorsque le client ajoute un élément à la liste de présélection et déplace un article de son panier à sa liste de présélection.

Cet événement ne publie aucune donnée de paramètre qu'un widget abonné peut récupérer. Seule la notification indiquant que l'événement se produit est transmise au widget abonné.

  • LinuxAIXWC_eardir/Stores.war/Aurora/javascript/Widgets/ShoppingList/ShoppingListServicesDeclaration.js
  • WindowsWC_eardir\Stores.war\Aurora\javascript\Widgets\ShoppingList\ShoppingListServicesDeclaration.js
  • HCL Commerce Developerworkspace_dir\crs-web\WebContent\Aurora\javascript\Widgets\ShoppingList\ShoppingListServicesDeclaration.js

Publication d'informations à utiliser dans d'autres widgets avec des événements wcTopic

Si votre widget personnalisé doit générer des données pour d'autres widgets à utiliser, vous pouvez utiliser un événement wcTopic pour publier les données. Les autres widgets peuvent ensuite s'abonner à l'événement wcTopic publié. Utilisez l'API wcTopic.publish pour publier l'événement wcTopic. Incluez le code pour publier l'événement dans votre fichier JSP de niveau supérieur. Si vous publiez plusieurs événements wcTopic associés dans plusieurs widgets personnalisés, incluez le code pour publier les événements dans un seul fichier JavaScript dans un répertoire common. Par exemple, si votre widget suit le trajet de navigation, vous pouvez demander à votre widget de publier un événement wcTopic BreadCrumb_Ready avec les données. Cet événement wcTopic est ensuite publié chaque fois que le trajet de navigation est chargé sur une page. Cet événement peut renvoyer les informations de trajet de navigation à d'autres widgets dans une liste qui est délimitée par un point-virgule. Par exemple, Home;Apparel;Women;Dresses.

Pour publier un événement, le code suivant doit être inclus dans le JSP de niveau supérieur pour le widget :
wcTopic.publish('identifier_eventAction, parameter, parameter);
parameter correspond aux informations incluses dans l'événement. Les widgets abonnés peuvent récupérer ces informations.
A titre d'autre exemple, le widget Définition des attributs publie l'événement wcTopic suivant :
wcTopic.publish('DefiningAttributes_Changed', catalogEntryId, productId);
Cet événement wcTopic est publié chaque fois qu'un attribut de définition est modifié et inclut catalogEntryId et productId comme paramètres. Les widgets abonnés récupèrent les informations de SKU et de produit parent chaque fois qu'un client modifie les attributs définis d'un produit. Par exemple, si un client modifie la valeur de l'attribut de couleur dans la page Détails du produit, le widget Définition des attributs publie l'événement. L'événement inclut le nouveau SKU catalogEntryId. Le widget Image complète qui s'abonne à cet événement wcTopic récupère les informations de catalogEntryId et productId. Le widget utilise ces nouveaux paramètres pour déterminer l'image correcte à afficher sur la page Détails du produit.