HCL Commerce Search y el modelo de negocio B2B

HCL Commerce Search incluye soporte para la tienda B2B.

Precios en la HCL Commerce Search

Los precios devueltos por la HCL Commerce Search se indexan o se calculan:
  • Los precios de oferta, o precios de contrato predeterminado, se indexan directamente desde el contrato predeterminado de la tienda propietaria.
  • Los precios de catálogo se indexan directamente desde las tablas de base de datos LISTPRICE u OFFER, en función del origen de precio.
  • Los precios de contrato se calculan basándose en el contrato seleccionado. A continuación, se indexan en HCL Commerce Search en el índice de entrada de catálogo o el índice de extensión de precio, en función del número de contratos que contenga el sitio o el origen de los datos de precio.

Los precios indexados se llenan rápidamente, pero no se evalúan dinámicamente. Para asegurarse de que el escaparate muestra precios precisos, puede cambiar la modalidad de precio para que se adapte a sus necesidades de negocio. Para obtener más información, consulte Cambiar modalidades de precio.

Al trabajar con precios y monedas en HCL Commerce Search, se utiliza de forma predeterminada una columna de índice independiente para manejar varias monedas.

Flujos de B2B habituales

Un típico flujo de compra de navegación de escaparate business-to-business incluye escenarios como fijación de precios exclusiva, filtrado de catálogo, pedido en nombre de un cliente y varias selecciones de contrato. Los vendedores, directores de ventas y representantes de cuentas pueden utilizar el centro de gestión o Accelerator. Este personal puede implementar estrategias de precios que satisfagan las necesidades comerciales del sitio a lo largo del tiempo y filtrar su catálogo por productos y precios.

Puede utilizar filtros de catálogo de HCL Commerce Search para mejorar la experiencia de búsqueda y navegación de palabras clave de escaparate de empresa a empresa. Puede utilizar la herramienta Filtro de catálogo y precios para filtrar su catálogo a un conjunto específico de entradas de catálogo. Los elementos que puede especificar incluyen qué categorías, entradas de catálogo, atributos de diccionario de atributos y propiedades de entrada de catálogo incluir o excluir del filtro de catálogo. Utilice filtros de catálogo para la autorización de productos, es decir, para autorizar a los clientes a un subconjunto de su catálogo.

Para obtener más información, consulte Utilización de filtros de catálogo.

Indexación de precios de contrato y facetas

La HCL Commerce Search crea los precios calculados en el índice de búsqueda, para que la tienda de inicio B2B Aurora pueda utilizar la modalidad de precio indexado para soportar la fijación de precios basada en contrato según los precios calculados.

Los resultados visualizados en los valores de faceta de escaparate se basan en el contrato seleccionado. Las tiendas con elementos pueden compartir precios o utilizar precios diferentes para los sitios ampliados basándose en el modelo de fijación de precios seleccionado.

Campos de precios configurables

Están disponibles los siguientes campos configurables para soportar la fijación de precios:
  • El archivo wc-component.xml contiene los siguientes campos de fijación de precios configurables:
    MultipleContracts
    Define la operación entre varios contratos.
    Si la operación es AND, la expresión entre varios contratos se acomoda con +.
    De lo contrario, se acomodan varias expresiones con un espacio.
    El valor predeterminado es una operación OR.
    Para obtener más información, consulte Propiedades de búsqueda en el archivo de configuración de componente (wc-component.xml).
  • La tabla STORECONF contiene los siguientes campos de precios configurables para la propiedad wc.search.priceMode.compatiblePriceIndex:
    1,0
    La columna de precios se indexa a partir del precio de contrato utilizando el siguiente convenio de denominación: price_#currency_#contractId.
    1.1
    Solo Búsqueda Solr: La columna de precios está indexada a partir del precio de oferta estándar, utilizando la siguiente convención de nomenclatura: price_#currency.
    HCL Commerce Version 9.1.9.0 or laterNota: El valor de 1.1 ya no se admite ya que el valor de 1.0 cuando se utiliza con el contrato predeterminado puede lograr lo mismo. El significado de 1.1 es que la columna de precios se indexa a partir del precio de oferta estándar, utilizando la siguiente convención de nomenclatura: price_#currency.
    Para obtener más información, consulte Propiedades de configuración de búsqueda en la tabla STORECONF.
  • Si está utilizando la modalidad de precio como 1:

    Cuando se establece la modalidad de precio indexado (wc.search.priceMode=1 en la tabla STORECONF), todas las páginas de búsqueda y exploración de catálogo, incluida la página de visualización de producto, utilizan el precio indexado. Si el precio de contrato está indexado, las páginas utilizan el precio de contrato indexado. Sin embargo, todas las páginas de pago, incluidas las páginas de carro de la compra, utilizan los mandatos de precios para calcular el precio en tiempo real.

Cambiar modalidades de precio

Para cambiar las modalidades de precio en la HCL Commerce Search:
  1. Establezca la propiedad de valores predeterminados globales de perfiles de búsqueda SearchProfilesPrice en el archivo wc-component.xml. Para obtener más información, consulte Propiedades de búsqueda en el archivo de configuración de componente (wc-component.xml).
  2. Establezca la propiedad wc.search.priceMode en la tabla STORECONF. Para obtener más información, consulte Propiedades de configuración de búsqueda en la tabla STORECONF.

Valores de modalidad de precio con prioridad en las tiendas de inicio

Las diferentes tiendas de inicio pueden utilizar modalidades de precio diferentes en la HCL Commerce Search, en lugar de basarse en los valores de los archivos de configuración anteriores.

Las tiendas de inicio que utilizan la infraestructura de mandatos de documento de objeto de negocio (BOD) priorizan precios en el siguiente orden:
  1. Pasando el perfil de búsqueda en la URL de tienda. Este distintivo recibe la prioridad más alta.
  2. Especificando el perfil de búsqueda en la solicitud de búsqueda. Es decir, cualquier petición de búsqueda puede contener comprobación de autorización y modalidad de precio, para consideraciones de negocio o rendimiento.
  3. Utilizando storepath. Por ejemplo, las tiendas B2B almacenan de forma predeterminada la modalidad de precio calculado, mientras que las tiendas B2C utilizan la modalidad de precio indexado. Los sitios ampliados heredan la configuración de tienda con elementos.
  4. Utilizando el valor de nivel de sitio como reserva. La modalidad de indexado se utiliza de forma predeterminada.
La visualización de precios se gestiona de forma distinta si utiliza el entorno REST.
Las tiendas de inicio heredan las modalidades de precio en el orden siguiente:
  1. Nivel de tienda
  2. Tienda con elementos
  3. Sitio
  4. Perfil
Nota: La propiedad wc.search.entitlement de la tabla STORECONF hereda las modalidades de precio en el mismo orden, excepto para el perfil, que se ignora.

Indexación de precios

Puede indexar datos de precios en las ubicaciones siguientes, basándose en el número de contratos que el sitio contiene o el origen de los datos de precios:
  • En el índice de entrada de catálogo, cuando el sitio contiene menos de 1000 contratos y los datos de precios está contenidos en HCL Commerce. Puede calcular e indexar precios utilizando la llamada RESTful de creación de índice. Para obtener más información, consulte Creación del índice de HCL Commerce Search.

    La llamada RESTful para Calcular precio actualiza la información en el índice de precios a petición basándose en el modelo de fijación de precios que la tienda utiliza. Para obtener más información, consulte Crear precio de contrato como incluido en el índice CatalogEntry.

    El mandato de trabajo ContractPriceCalculate se utiliza para calcular precios en una planificación de todas las entradas de catálogo que pertenecen a un catálogo maestro específico. El precio de entrada de catálogo se calcula para todos los contratos que pertenecen a la tienda. Para obtener más información, consulte Creación y planificación del trabajo ContractPriceCalculate.

  • En el índice de extensión de precios, cuando el sitio contiene más de 1000 contratos o si utiliza un origen externo para llenar los precios. Los precios se indexan utilizando la carga de índice, ya que puede llenar una gran cantidad de datos en un índice de extensión independiente más rápido que lo que el índice de entrada de catálogo pueda indexar los datos de precios. Para obtener más información, consulte Carga de índice.
  • Al indexar precios de contrato, asegúrese de que el valor de wc.search.priceMode.compatiblePriceIndex está establecido en 1.0 en la tabla STORECONF:
    
    insert into storeconf(storeent_id,name,value) values('storeent_id', 'wc.search.priceMode.compatiblePriceIndex', '1.0');
    

Cálculo de precios

Los precios se pueden calcular completamente o para una entrada de catálogo, un contrato o una moneda especificados. Cuando se utilizan nuevos cálculos de precios, todos los datos de precios anteriores se eliminan del índice antes de que se vuelvan a calcular los precios de contrato B2B.

Para ayudarle a decidir cuándo y dónde se deben calcular los precios, tenga en cuenta las opciones siguientes:
Servidor o entorno dedicado
Asigne un servidor o una instancia dedicados para calcular los precios.
Llamada a servicio de indexación para calcular y crear índice después de que el canal de precios esté disponible en la base de datos de HCL Commerce en un nodo real.
En esta configuración, el cálculo de precios no tiene ningún impacto de rendimiento en el nodo de HCL Commerce.
Entorno real en un repetidor
Puede calcular y crear el índice de precios en un repetidor. A continuación, los precios y otros datos dentro del índice de entrada de catálogo y grupo de catálogo se replican en los subordinados de búsqueda.
En esta configuración, el cálculo de precios no impacta el rendimiento del nodo real.
Entorno de autoría en maestro
Calcule los precios en un nodo de HCL Commerce en un maestro/autoría.
Cree el precio junto con otros datos de índice en un nodo de transición en autoría/maestro y, a continuación, llame a la API RESTful indexprop para replicar el índice en un repetidor. Para más información sobre esta llamada, consulte Propagar el índice de búsqueda.
En esta configuración, no se necesitan cambios de topología adicionales. Esta característica sigue siendo compatible con versiones del paquete de características anteriores de HCL Commerce.

Lógica de recálculos de precios completos

  • El recálculo de precios utiliza los contratos de tienda actuales y futuros que comparten el catálogo maestro.
  • solo se respetan las monedas soportadas para todas las tiendas activas identificadas en el catálogo maestro, mientras que otras se ignoran y no se indexan. Esta restricción se debe a que los precios se vuelven a calcular en nombre del administrador de sitio y, por lo tanto, no se puede calcular ningún precio a nivel de segmento de cliente.
  • De forma predeterminada, los cálculos de precios se basan en alguna unidad de medida (kilos, cajas, lotes) que tenga una cantidad numérica base de 1 o en una unidad de C62. C62 se utiliza para indicar elementos que no se cuentan según una unidad de medida distinta. Por ejemplo, las camisas no se miden normalmente en kilos, sino por cantidad. Su unidad de medida se puede establecer como C62. Una limitación de este enfoque es que se omite cualquier precio a nivel de paso, es decir, precio basado en cantidad.
    Consejo: Puede solucionar temporalmente esta limitación definiendo de forma explícita C62 como un valor 1 y luego definiendo una unidad basada en C62 que puede multiplicarse. Por ejemplo, la siguiente consulta SQL crea una nueva unidad, CS, basada en C62, que puede multiplicarse para habilitar el precio a nivel de paso o basado en cantidad.
    INSERT INTO QTYCONVERT VALUE('CS',1,'C62',1,'M','N',0);

Lógica de los recálculos

  • Los ID de contrato no se validan cuando se pasan como un parámetro independiente, para que los contratos futuros muestren los precios correctos cuando se previsualiza una fecha futura en la vista previa de la tienda.
  • Todos los contratos caducados y suspendidos son seguros de eliminar de la tabla temporal TI_CNTRPRICE para la entrada de catálogo especificada o el contrato que se especifica en los parámetros del programa de utilidad. Es decir, la lista de depuración solo está limitada a la entrada de catálogo o al contrato especificados. Por ejemplo, si especifica un contrato caducado, se depuran todas las entradas de catálogo cubiertas por ese contrato. Sin embargo, si especifica una entrada de catálogo, todos los contratos caducados se depuran solo para la entrada de catálogo especificada.
  • Si un contrato está suspendido e inactivo, el precio de contrato se elimina. Si un usuario de empresa reanuda el contrato y se activa de nuevo, el precio no se muestra en el escaparate hasta que el precio se calcula de nuevo para el contrato reanudado.
  • Cuando se pasa un producto, un contrato o una moneda no válidos, la lógica ignora y, por lo tanto, no indexa los valores no válidos.
  • Si un contrato pasado está caducado o suspendido, se suprime y depura del resultado del cálculo. De lo contrario, si se pasa un contrato que estará activo en una fecha futura, se indexa. Es decir, aunque no esté actualmente activo en el momento del recálculo de precios.
  • Los parámetros storeId y currency no se pueden especificar con ningún otro parámetro.

Lógica de personalización

Los precios de contrato activos y futuros se incorporan en el índice de entrada de catálogo utilizando definiciones de campo que empiezan por price_, seguido por una combinación de contrato y moneda. Por ejemplo, price_USD_10001 o price_CNY_10002. En cambio, para releases sin precios de contrato indexados, el índice de entradas de catálogo utiliza definiciones de campo que empiezan por price_, seguidas solo por su moneda.

La llamada RESTful para calcular precio resuelve todos los contratos desplegados para las tiendas que comparten el catálogo maestro especificado. A continuación, inicializa el mandato de API de precios para calcular los precios para todas las entradas de catálogo que pertenecen al catálogo maestro especificado. Cuando los datos de precio se incluyen en el índice de CatalogEntry maestro, el resultado del precio calculado se guarda en la tabla temporal TI_CNTRPRICE_#INDEX_SCOPE#. Cuando los datos de precios se encuentran en un subnúcleo ampliado, los resultados de precios calculados se guardan en la tabla TI_EXT_CNTRPRICE_#INDEX_SCOPE#. Todos los resultados calculados para una entrada de catálogo se componen en una única columna:

TI_CNTRPRICE_#INDEX_SCOPE

Nombre: Tipo Descripción:
CATENTRY_ID BIGINT NOT NULL El ID de la entrada de catálogo. Esta columna contiene toda la entrada de catálogo para el catálogo maestro especificado.
PRICE CLOB Varios pares de valores para diferentes contratos y valores de moneda que están separados por un espacio en blanco.
NameValuePairTransformer es el transformador predeterminado que transforma la amplia columna de valores múltiples en el campo de precio dinámico. Puede generar diferentes nombres de columna de precios dinámicos en Solr personalizando o creando un nuevo transformador. Si personaliza el transformador, debe alterar temporalmente el método applyFieldNamingPattern en las clases siguientes para obtener los nombres de columna de precios actualizados:
  • SolrRESTSearchCatalogEntryViewPriceQueryPostprocessor
  • SolrRESTSearchByPriceExpressionProvider
  • SolrSearchResultFieldQueryPreprocessor
  • SolrSearchFacetQueryPreprocessor

En los sitios ampliados, la tienda con elementos de catálogo define el precio en el catálogo maestro para que los sitios ampliados compartan los precios de la tienda con elementos de catálogo. O bien, el sitio ampliado puede alterar temporalmente los precios para que contenga los precios específicos del sitio ampliado. Distintos sitios ampliados pueden crear elementos específicos con precio específico. Cuando se calculan los precios, se calculan primero los elementos específicos de tienda . Los elementos compartidos se calculan cada uno por tienda según el contrato y la moneda específicos. La API de precio obtiene el precio correcto, basado en el contrato, la regla de precio, el modelo de precios o los términos y condiciones de contrato específicos. Diferentes sitios ampliados pueden definir diferentes precios utilizando un contrato diferente. Cuando un comprador inicia la sesión en una tienda de sitio ampliado diferente, se resuelven contratos diferentes. A continuación, el comprador ve los precios relevantes en la tienda, incluso para el mismo producto del catálogo maestro.

Se configuran varias columnas de precios en el índice de entradas de catálogo. Cuando un comprador inicia la sesión en el escaparate, se recupera el contrato de comprador elegible. Si hay varios contratos elegibles, el comprador puede seleccionar un contrato para establecerlos para la sesión. A continuación, se visualiza en el escaparate la columna de precio correspondiente que está relacionada con el contrato en la sesión. Para personalizar este comportamiento, la URL ContractPriceCalculate utiliza ContractPriceCalculateCmd como el mandato de entrada general. La lógica puede alterarse registrando una nueva implementación de mandato en la tabla de registro de mandatos. Si desea introducir lógica de cálculo diferente, altere los métodos calculateStoreSpecificItemPrice y calculateSharedItemPrice en el mandato ContractPriceCalculateCmd.

Se utiliza el perfil de acceso IBM_Admin_CalculatePriceIndex para arrancar la entrada común de la API de precio com.ibm.commerce.price.commands.CompositeGetContractUnitPriceCmdImpl:

<cmdreg storeent_id="0" interfacename="com.ibm.commerce.price.commands.GetContractUnitPriceCmd+IBM_Admin_CalculatePriceIndex" 
classname="com.ibm.commerce.price.commands.CompositeGetContractUnitPriceCmdImpl" target="Local"/>
Si la tienda utiliza el modelo de precios de regla de precio, puede utilizar la implementación de mandato siguiente por motivos de rendimiento:

<cmdreg storeent_id="0" interfacename="com.ibm.commerce.price.commands.GetContractUnitPriceCmd+IBM_Admin_CalculatePriceIndex" 
classname="com.ibm.commerce.price.commands.PriceRuleGetContractUnitPriceCmdImpl" target="Local"/>

Si la tienda utiliza el modelo de precios externo, puede registrar su propio mandato de precio para obtener el resultado de precios deseado.

Vista previa del espacio de trabajo

Cuando usa la vista previa del espacio de trabajo:
  • Los precios B2B que se muestran en la vista previa de la tienda son solo del contenido aprobado.
  • Los precios futuros pueden verse previamente si el futuro contrato correspondiente está indexado. La fecha futura se respeta en el contexto de vista previa y muestra el contrato correcto para su visualización.
  • Los precios no se pueden asociar con contenido nuevo no aprobado, por ejemplo obtener una vista previa de un producto nuevo no aprobado que no pertenece a ningún contrato.
  • Cuando un usuario de empresa cambia el precio de oferta estándar en CMC, desea obtener una vista previa de dichos cambios en la vista previa de la tienda del espacio de trabajo. Si el índice de precios de contrato está habilitado, sin recálculo, no se puede obtener una vista previa de dichos cambios. Debe ejecutar manualmente el servicio de indexación o planificando el servicio de indexación, o calcular un trabajo de precio para capturar los precios cambiados. Esta operación permite que los productos afectados puedan captar los nuevos cambios de precios.