Crear precio de contrato como incluido en el índice CatalogEntry

Puede crear precios de contrato incluidos en el índice de entrada de catálogo de búsqueda de HCL Commerce al desplegar una tienda de inicio B2B.

Por qué y cuándo se efectúa esta tarea

Solo para HCL Commerce Search versión 9.1.0, después de crear contratos con ajuste de precio, cree un índice completo y, a continuación, cree el índice de precios de contrato.

Procedimiento

  1. Cambie el valor wc.search.priceMode.compatiblePriceIndex a 1.0 en la tabla STORECONF:
    
    insert into storeconf(storeent_id,name,value) values('storeent_id', 'wc.search.priceMode.compatiblePriceIndex', '1.0');
    
    Nota: Para calcular el precio de contrato, todas las tiendas que comparten este catálogo maestro (por ejemplo: 10001) tienen que habilitar Indexación de precios de contrato (compatiblePriceIndex) en la tabla STORECONF.
    Para obtener más información, consulte Cambiar propiedades de configuración de búsqueda en la tabla STORECONF.
  2. Llame al servicio RESTFul para calcular precio.

    Puede llamar al programa de utilidad en el siguiente URL en el servidor de transacciones. El método es POST y la autenticación es básica, con spiuser y la contraseña proporcionadas en la cabecera.

    Para búsqueda Solr:
    https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/build?indexSubType=Price
    
    Para Elasticsearch:
    https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/build?storeId=storeId&connectorId=auth.price&indexSubType=Price
    Donde:
    masterCatalogId
    Se necesita: El ID del catálogo maestro (por ejemplo, 10101).
    Si no conoce el ID del catálogo maestro, ejecute el SQL siguiente:
    SQL: select * from catalog where IDENTIFIER='STORE_IDENTIFIER'
    
    Para averiguar el ID de catálogo maestro para una tienda de sitio ampliado:
    1. Busque el ID de tienda:
      select * from storeent where IDENTIFIER='STORE_IDENTIFIER'
      
    2. Utilice el storeent_id como el store_id en el siguiente SQL para averiguar el ID de tienda con elementos de catálogo de esta tienda de sitio ampliado:
      
      select * from storerel where store_id=XXXXXX and streltyp_id=-4 and relatedstore_id not in (XXXXXX)
      
      Donde XXXXXX es el storeent_id del SQL del paso 2.a al crear el índice de búsqueda.
    3. Obtenga el ID de catálogo maestro:
      
      select * from storecat where storeent_id=YYYYYY and mastercatalog='1'
      
      Donde YYYYYY es el relatedstore_id del paso 2.b al crear el índice de búsqueda.
    contractId
    Opcional: Se utiliza para crear precios para los ID de contrato especificados.
    Especifique los ID de contrato separados por comas a indexar.
    Si no se especifica ningún ID de contrato, se realiza un recálculo completo de forma predeterminada.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&contractId=-10008,-10005
    catentry
    Opcional: Se utiliza para crear precios para las entradas de catálogo especificadas.
    Especifique los ID de entrada de catálogo separados por comas a indexar.
    Si no se especifica ningún ID de entrada de catálogo, se realiza un recálculo completo de forma predeterminada.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&catentryId=10006,10005
    storeId
    El ID de tienda del sitio ampliado.
    Solo puede pasar un ID de tienda en este parámetro.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&storeId=1
    currency
    Opcional: Se utiliza para crear los precios de las monedas especificadas.
    Especifique las monedas separadas por comas a indexar.
    Nota: Asegúrese de que la tabla CURLIST contiene las monedas adicionales que desea que cree el programa de utilidad para calcular precio.
    Si no se pasan monedas, se realiza un recálculo completo de forma predeterminada.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&currency=USD,CAD
    numWorkers
    Opcional: Este parámetro define el número de calculadoras. El número total de productos que están asignados a una calculadora se obtiene dividiendo el número de productos por el número de calculadoras. En cada calculadora, los catentries asignados se calculan para todos los contratos de comprador válidos que están desplegados en las tiendas que comparten el catálogo maestro especificado y todas las monedas válidas soportadas en dichas tiendas. Para un catálogo de gran tamaño, se recomienda definir un valor mayor para numWorkers para reducir el tiempo de ejecución total de una hebra. Además, la hebra en ejecución se define mediante el número máximo de workManager y, por lo tanto, cuando numWorkers es mayor que el número de workManager, otros numWorkers deben esperar en la cola de ejecución.
    El valor predeterminado es 1000.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&numWorkers=100
    flushSize
    Opcional: Este parámetro define el número de sentencias por lotes que se desechan en la base de datos. Con un valor flushSize grande, la base de datos podría retrotraerse. Con un valor flushSize pequeño, la base de datos podría comprometerse varias veces.
    El valor predeterminado es 1000.
    Ejemplo: https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&flushSize=100
  3. Asegúrese de que la llamada se ejecuta satisfactoriamente.
    Si el REST se ejecuta satisfactoriamente, se devuelve una respuesta con el contenido del cuerpo similar a lo siguiente.
    {
        "jobStatusId": "1003"
    }
    Puede comprobar el estado de trabajo de calcular precio llamando a la siguiente API utilizando el método GET y la autenticación básica en la cabecera, utilizando spiuser y su contraseña.
    https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId
    Si calcular precio se ha ejecutado correctamente, la respuesta a la llamada REST anterior será parecida al siguiente ejemplo:
    {
        "status": {
            "finishTime": "2017-11-02 02:50:27.737085",
            "lastUpdate": "2017-11-02 02:50:27.737085",
            "progress": "100%",
            "jobStatusId": "1002",
            "startTime": "2017-11-02 02:49:55.641083",
            "message": "Price calculation started for masterCatalogId:10,001.\nPrice calculation finished successfully for masterCatalogId:10001.\n",
            "jobType": "SearchIndex",
            "properties": "[indexSubType=Price]",
            "status": "0"
        }
    }
    Status=0 significa que el trabajo se ha ejecutado satisfactoriamente. -1 significa que el trabajo está en curso o que su progreso es desconocido. Otros valores significan que el trabajo ha fallado. Si obtiene un estado que no es igual a 0, se visualizará un mensaje de error en el campo message.
    Para obtener más información de registro, establezca el nivel de registro a FINEST:
    com.ibm.commerce.foundation.dataimport.priceindex.*=finest
    Después de habilitar este nivel de rastreo en el servidor de transacciones, puede volver a ejecutar la llamada REST para calcular precio. Todos los errores se registrarán en el archivo trace.log en el servidor de transacciones.
  4. Solo para búsqueda Solr: Cree el índice de búsqueda para indexar el precio con indexSubType=Structured.

Ejemplo

Puede verificar que el índice de precio de contrato se utiliza correctamente en la tienda de inicio Aurora B2B siguiendo estos pasos:
  1. Configure el índice de precios de contrato y organización:
    1. Registre una organización en AuroraB2BESite.
    2. Configure los contratos siguientes:
      Copia de contrato predeterminado
      Utilice el filtro de catálogo predeterminado y la regla de precio de oferta.
      Contrato solo de pernos
      Incluir solo la categoría de pernos solo al 50% de descuento.
    3. Cambie el valor wc.search.priceMode.compatiblePriceIndex a 1.0 en la tabla STORECONF.
    4. Llame al servicio RESTFul para calcular precio.
  2. Verifique los precios de contrato en el escaparate:
    1. Abra AuroraB2BESite en un navegador web e inicie la sesión en la tienda.
    2. Bajo contratos, seleccione el contrato solo de pernos y continúe comprando.
    3. Vaya a la categoría Pernos y añada artículos al carro.
    4. Pase por caja y confirme que las reglas de precio se aplican correctamente durante el proceso de pasar por caja.

Qué hacer a continuación

Después de que se haya creado el índice de precios, opcionalmente puede replicar y propagar el índice de .HCL Commerce Search