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'APIwcTopic.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); Où - 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.
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.
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é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. ![]() |
Cet événement publie la nouvelle quantité de l'article après qu'un client a changé la quantité. ![]() |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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
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). |
|
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)
|
|
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 |
|
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.
|
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. |
|
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 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é. |
|
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 :
|
|
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é. |
|
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.
wcTopic.publish('identifier_eventAction, parameter, parameter);Où parameter correspond aux informations incluses dans l'événement. Les widgets abonnés peuvent récupérer ces informations.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.



