Publicar y recuperar información con sucesos wcTopic para widgets
Si el widget personalizado debe utilizar datos generados por un widget diferente o proporcionar datos que otro widget necesita, puede utilizar un suceso wcTopic para recuperar o proporcionar los datos. Para utilizar datos generados por un widget, puede suscribirse al suceso wcTopic que el otro widget publica. Para que un widget proporcione información que otro widget pueda utilizar, puede utilizar un suceso wcTopic para publicar esta información. Los otros widgets pueden suscribirse al evento wcTopic que publicó.
Recuperar información de otros widgets con sucesos wcTopic
Si un widget publica un suceso wcTopic que contiene todos los datos necesarios para el widget, puede hacer que el widget personalizado se suscriba al suceso wcTopic para recuperar los datos. Utilice la APIwcTopic.subscribe
para suscribirse a los sucesos de widget publicados. Para suscribirse a un suceso wcTopic publicado, el código siguiente debe incluirse en el archivo JSP de nivel superior para el widget que tiene que suscribirse al suceso wcTopic: wcTopic.subscribe('identifier_eventAction', location.function);
Donde - identifier
- El widget que genera los datos dentro del suceso publicado.
- eventAction
- El suceso al que se está suscribiendo. Por ejemplo, si se cambia o completa la información de otro widget.
- location
- El archivo al que está suscrito que incluye el código para publicar el suceso.
- function
- La función para llamar al widget personalizado cuando se recupera la información del suceso publicado.
DefiningAttributes_Changed
- Se publica cuando se selecciona el valor para un atributo mientras otros atributos no tienen valores seleccionados y el código de artículo no se resuelve. Por ejemplo, cuando un comprador selecciona el tamaño de un producto, pero todavía no ha seleccionado el valor para el color del producto.
DefiningAttributes_Resolved
- Se publica cuando se selecciona el valor para un atributo y los demás atributos tienen valores y el se resuelve código de artículo.
wcTopic.subscribe('DefiningAttributes_Resolved', productDisplayJS.updateProductImage);
wcTopic.subscribe('DefiningAttributes_Changed', productDisplayJS.updateProductImage);
La publicación de estos sucesos y más sucesos para los widgets que se visualizan en la página Detalles del producto se definen en el archivo crs-web\WebContent\widgetdir\Common\CatalogEntry\javascript\ProductDisplay.js. La tabla siguiente identifica los sucesos wcTopic que se publican de forma predeterminada. Puede hacer que un widget se suscriba a los sucesos para recuperar datos para que los widget la utilicen.
Suceso de wcTopic | Descripción (desencadenante de suceso) | Parámetros publicados | Archivo que publica el suceso |
---|---|---|---|
ShopperActions_Changed |
Este suceso publica una notificación que indica que hay un cambio en la cantidad de un producto que un comprador está viendo. ![]() |
Este suceso publica la nueva cantidad del artículo después de que un comprador cambie la cantidad. ![]() |
|
DefiningAttributes_Changed_productId |
Este suceso se produce cuando un comprador cambia los atributos de definición de una entrada de catálogo. Este suceso también se produce después de que el comprador guarde los cambios. Este suceso concatena el ID de producto de la entrada de catálogo cambiada con el nombre de suceso. Suscríbase a este suceso cuando el widget necesite notificar los cambios en productos y entradas de catálogo específicas (códigos de artículo). |
El suceso publica el ID de entrada de catálogo y el ID de producto de la entrada de catálogo que incluye los cambios de atributo de definición. |
|
DefiningAttributes_Changed |
Este suceso se produce cuando un comprador cambia los atributos de definición de una entrada de catálogo. Este suceso también se produce después de que el comprador guarde los cambios. |
El suceso publica el ID de entrada de catálogo y el ID de producto de la entrada de catálogo que incluye los cambios de atributo de definición. |
|
DefiningAttributes_Resolved |
Este suceso se produce cuando un comprador guarda los cambios en los atributos de definición de una entrada de catálogo. |
El suceso publica el ID de entrada de catálogo y el ID de producto de la entrada de catálogo que incluye los cambios de atributos de definición guardados. |
|
DefiningAttributes_Resolved_productId |
Este suceso se produce cuando un comprador guarda los cambios en los atributos de definición de una entrada de catálogo dentro del carro de la compra. Este suceso concatena el ID de producto de la entrada de catálogo cambiada con el nombre de suceso. Suscríbase a este suceso cuando el widget necesite notificar los cambios en productos y entradas de catálogo específicas (códigos de artículo). |
El suceso publica el ID de entrada de catálogo y el ID de producto de la entrada de catálogo que incluye los cambios de atributos de definición guardados. |
|
DefiningAttributes_Resolved_catalogEntryID |
Este suceso se produce cuando un comprador guarda los cambios en los atributos de definición de una entrada de catálogo dentro del carro de la compra. Este suceso concatena el ID de entrada de catálogo de la entrada de catálogo modificada con el nombre de suceso. Suscríbase a este suceso cuando el widget necesite notificar los cambios en entradas de catálogo específicas (códigos de artículo) dentro del carro de la compra. |
El suceso publica el ID de entrada de catálogo para la nueva entrada de catálogo. |
|
DefiningAttributes_Resolved_productId |
Este suceso se produce cuando un comprador guarda los cambios en los atributos de definición de una entrada de catálogo dentro del carro de la compra. Este suceso concatena el ID de producto de la entrada de catálogo cambiada con el nombre de suceso. Suscríbase a este suceso cuando el widget necesite notificar los cambios en productos y entradas de catálogo específicas (códigos de artículo) dentro del carro de la compra. |
El suceso publica el ID de entrada de catálogo y el ID de producto para la nueva entrada de catálogo. |
|
ProductInfo_Added |
Este evento se produce después de que un comprador Haga clic en el botón añadir al carro de la compra. Este suceso se desencadena cuando la información del producto se añade al carro de la compra para el producto que el comprador ha añadido al carro. |
Este suceso publica la siguiente información para el producto en la matriz, this.productAddedList
Si el producto que el cliente añade al carro de la compra es un paquete compuesto, la matriz contiene la información de cada producto del paquete. La información del paquete se devuelve en una sola lista con varias entradas (una entrada para cada producto que se incluye en el paquete). |
|
Quantity_changed |
Este suceso publica una notificación que indica que hay un cambio en la cantidad de un producto en el carro de la compra. |
En función de los detalles del producto, el suceso puede publicar la información de cantidad o publicar toda o parte de la información siguiente en forma de cadena de serialización JSON wcTopic.toJson(productDetails)
|
|
DefiningAttributes_Resolved_shoppingActionsJS.baseCatalogEntryId |
Este suceso se produce cuando un comprador guarda los cambios en los atributos de definición de una entrada de catálogo dentro del carro de la compra. Al suscribirse a este suceso, se notifica a un widget cuando un comprador guarda cambios en los atributos de definición de una entrada de catálogo, indicando que el comprador tiene un código de artículo diferente dentro del carro de la compra. |
Publica el valor del ID de entrada de catálogo del código de artículo que se acaba de añadir al carro. Este ID pasa al widget suscriptor como valor para el parámetro |
|
Facet_Remove |
Este evento se publica cuando un comprador elimina una faceta mientras examina la tienda. En función del tipo de faceta que el comprador elimina, este suceso también publica el ID de la faceta eliminada.
|
Este suceso publica el ID de faceta si un comprador elimina una faceta que filtra por el ID específico de las facetas, este suceso publica el ID de filtro con notificación de que se produce el suceso. |
|
ProductInfo_Reset |
Este evento se produce después de que se complete una operación de añadir al carro satisfactoria y se muestre la ventana del mini carro de la compra que confirma que la operación añadir al carro se ha completado. Cuando concluye la operación añadir al carro de la compra, la operación borra la información del producto para el artículo añadido al carro de la lógica del mini carro de la compra. Este suceso Al suscribir un widget a este suceso, el widget puede ahora cuando un comprador añade un artículo al carro de la compra. Si el widget suscriptor está realizando el seguimiento del artículo que un comprador está añadiendo al carro de la compra, este suceso proporciona la advertencia de que el comprador ya no podrá ver la información sobre el producto dentro del mini carro de las compras. |
Este suceso no publica ningún dato de parámetro que un widget de suscripción pueda recuperar. Solo la notificación de que el suceso se produce pasa a la widget de suscripción. |
|
ShoppingList_changed |
Este evento se publica cuando el comprador cambia la información sobre una lista de deseos. Este suceso puede producirse cuando el comprador añade, edita o suprime una lista de deseos. |
Este evento publica una matriz que incluye los tres parámetros de par nombre-valor siguientes:
|
|
ShoppingListItem_Added |
Este suceso se publica después de que un comprador añada un artículo a su lista de deseos. El comprador puede añadir el artículo a la lista de deseos mientras examina la tienda, o puede mover un artículo del carro de la compra a la lista de deseos. Al suscribirse a este suceso, un widget recibe un aviso cuando el comprador añade un artículo a la lista de deseos y mueve un artículo del carro de la compra a su lista de deseos. |
Este suceso no publica ningún dato de parámetro que un widget de suscripción pueda recuperar. Solo la notificación de que el suceso se produce pasa a la widget de suscripción. |
|
Publicar información para utilizarla en otros widgets con sucesos wcTopic
Si el widget personalizado debe generar datos para que los utilicen otros widgets, puede utilizar un suceso wcTopic para publicar los datos. A continuación, los demás widgets podrán suscribirse al suceso wcTopic publicado. Utilice la API wcTopic.publish
para publicar el suceso wcTopic. Incluya el código para publicar el suceso en el archivo JSP de nivel superior. Si está publicando varios sucesos wcTopic relacionados a través de varios widgets personalizados, incluya el código para publicar los sucesos en un archivo JavaScript individual en un directorio common. Por ejemplo, si el widget realiza un seguimiento de la indicación de ruta, puede hacer que el widget publique un suceso wcTopic BreadCrumb_Ready con los datos. Este suceso wcTopic se publicará siempre que el widget de indicación de ruta se cargue en una página. Este suceso puede devolver a otros widgets la información de la indicación de ruta en una lista delimitada por un punto y coma. Por ejemplo, Home;Apparel;Women;Dresses
.
wcTopic.publish('identifier_eventAction, parameter, parameter);
Donde parameter es la información que se incluye en el suceso. Los widgets de suscripción pueden recuperar esta información.wcTopic.publish('DefiningAttributes_Changed', catalogEntryId, productId);
Este suceso wcTopic se publica siempre que se cambia un atributo de definición e incluye catalogEntryId y productId como parámetros. Los widgets de suscripción recuperan información de producto padre y código de artículo siempre que un comprador cambia los atributos de definición de un producto. Por ejemplo, si un comprador cambia el valor del atributo de color en la página Detalles del producto, el widget de Atributos de definición publica el suceso. El suceso incluye el nuevo catalogEntryId del código de artículo. El widget de Imagen de tamaño normal que se suscribe a este suceso wcTopic recupera la información de catalogEntryId y productId. El widget utiliza estos nuevos parámetros para determinar la imagen correcta que se debe visualizar en la página Detalles del producto.