![HCL Commerce Enterprise](../../base/images/ngent.gif)
Ejemplo: Cómo los widgets pueden mostrar productos y precios según un contrato de B2B
En una tienda de B2B, es posible que desee que el widget de Commerce Composer muestre productos y precios según los términos del contrato bajo los que el comprador está comprando. Si es así, revise un ejemplo de cómo la infraestructura de Commerce Composer utiliza servicios REST para asegurarse de que la lista de entradas de catálogo widget muestre los productos y precios a los que un comprador tiene derecho. Puede utilizar un método similar al codificar su propio widget.
Ejemplo: Widget de Lista de entradas de catálogo
Cuando publica la tienda de inicio Aurora como una tienda B2B, Widget de Lista de entradas de catálogo utiliza el ID de contrato de la sesión actual para determinar qué productos y precios se deben visualizar. Este ejemplo muestra cómo funciona el widget en el escaparate:Un comprador está comprando según el contrato X. Este contrato autoriza al comprador a los productos y precios siguientes:
Cuando el comprador examina el catálogo y las vistas lista de productos en la lista de entradas de catálogo widget en las páginas de categoría y resultados de la búsqueda:
Si el comprador cambia al contrato Y, la lista de entradas de catálogo widget muestra productos y precios según el contrato Y. |
La siguiente ilustración identifica los archivos JSP y el recurso de REST que están implicados en este proceso para la lista de entradas de catálogo widget:
![Archivos de widget de lista de entradas de catálogo para soportar precios de contrato y productos](../images/locale/pz_contractrest.png)
- 1 El archivo JSP del proveedor de datos (CatalogEntryList_Data.jspf) para la lista de entradas de catálogo widget incluye el archivo SearchSetup.jspf. A continuación, se muestra el fragmento de código relevante del archivo CatalogEntryList_Data.jspf:
<c:choose> <c:when test="${!empty WCParam.searchTerm || !empty WCParam.manufacturer || !empty WCParam.facet || !empty WCParam.metaData || WCParam.advancedSearch == 1}"> <%@include file = "/Widgets/Common/SearchSetup.jspf" %> </c:when> <c:otherwise> <%@include file = "/Widgets/Common/CategoryNavigationSetup.jspf" %> </c:otherwise> </c:choose>
- 2 El archivo SearchSetup.jspf:
- Incluye el archivo EnvironmentSetup.jspf. Este archivo declara las variables de entorno globales, incluido el ID de contrato. El archivo EnvironmentSetup.jspf devuelve una matriz de los ID de contrato para los contratos a los que tiene derecho el comprador actual. A continuación, se muestra el fragmento de código relevante del archivo EnvironmentSetup.jspf:
<c:set var="env_activeContractIds" value="${fn:split(CommandContext.currentTradingAgreementIdsAsString, ';')}" scope="request"/>
- Llama al recurso de REST del producto y pasa el ID de contrato. La llamada de servicio en el archivo SearchSetup.jspf es parecida a la siguiente:
<wcf:rest var="catalogNavigationView1" url="${searchHostNamePath}${searchContextPath}/store/${WCParam.storeId}/productview/${restType}"> ... <c:forEach var="contractId" items="${env_activeContractIds }"> <wcf:param name="contractId" value="${contractId}"/> </c:forEach> </wcf:rest>
- Incluye el archivo EnvironmentSetup.jspf. Este archivo declara las variables de entorno globales, incluido el ID de contrato. El archivo EnvironmentSetup.jspf devuelve una matriz de los ID de contrato para los contratos a los que tiene derecho el comprador actual. A continuación, se muestra el fragmento de código relevante del archivo EnvironmentSetup.jspf:
- 3 El recurso de REST de producto utiliza el ID de contrato para devolver productos y precios a la lista de entradas de catálogo widget de acuerdo con los términos del contrato.
Si desea que el widget tenga esta prestación, puede utilizar un método similar para pasar el ID de contrato al servicio. Como alternativa a incluir el archivo SearchSetup.jspf, puede llamar al servicio directamente desde el archivo JSP del proveedor de datos.