Utilización de datos de contexto de negocio en la personalización

Algunas tareas de personalización implican escribir lógica de negocio que debe recuperar datos de contexto de negocio sobre una sesión de usuario. Por ejemplo, estos datos podrían ser el ID de usuario, el ID de tienda, el ID de idioma o el ID del catálogo que el usuario está examinando. HCL Commerce proporciona un conjuntos de interfaces que puede utiliza para recuperar los datos del contexto empresarial que necesita.

Durante una sesión de navegador de HCL Commerce, los datos para la sesión se capturan y almacenan como datos de contexto de negocio. HCL Commerce agrupa los diferentes tipos de datos disponibles de acuerdo con la finalidad y la función. Cada agrupación tiene una clase de interfaz que ofrece un conjunto de métodos para recuperar datos. Por ejemplo:

  • Los métodos de la interfaz com.ibm.commerce.context.base.BaseContext recuperan datos básicos de la sesión, como por ejemplo, el ID de tienda y el ID de ejecutar como.
  • Los métodos de la interfaz com.ibm.commerce.context.globalization.GlobalizationContext recuperan datos específicos del entorno local, como por ejemplo, el ID de idioma o la moneda de la sesión.
Se proporcionan interfaces y métodos adicionales.

Antes de empezar

Para obtener información de contexto sobre datos de contexto de negocio y una lista de contextos de negocio que HCL Commerce proporciona, revise Servicio de contexto de negocio.

Procedimiento

  1. Identifique la interfaz que proporciona los datos de contexto de negocio que necesita.
    Para obtener una lista de las interfaces disponibles y sus métodos, examine la lista de subinterfaces en la documentación de la API de la interfaz principal, com.ibm.commerce.context.base.Context.
  2. Escriba la lógica de negocio para recuperar los datos de contexto de negocio utilizando la interfaz y el método correctos.

    Para una personalización de la infraestructura de mandatos BOD, utilice código similar al del ejemplo siguiente. El código debe utilizar com.ibm.commerce.foundation.server.services.businesscontext.ContextServiceFactory, que es una clase auxiliar que se utiliza para recuperar el servicio de contexto que maneja el objeto de datos que necesita. El código de este ejemplo devuelve el ID de usuario y el ID de tienda de la petición:

                        
      ContextService bcs = ContextServiceFactory.getContextService();
    		BaseContext baseContext = (BaseContext) bcs
         .findContext(BaseContext.CONTEXT_NAME);
    		Long userId = baseContext.getRunAsId();
    		Integer storeId = baseContext.getStoreId();
    

    Para una personalización de infraestructura de mandatos de par de nombre-valor, utilice código similar al del ejemplo siguiente. En ese caso, el código debe utilizar el contexto del mandato para obtener el objeto de datos de contexto. El código de este ejemplo devuelve el ID de usuario y el ID de tienda de la petición:

    BaseContext baseContext = (BaseContext)getCommandContext().getContext(BaseContext.CONTEXT_NAME); 
    Long userId = baseContext.getRunAsId();
    Integer storeId = baseContext.getStoreId();