Générer de prix des contrats tel qu'il est intégré dans l'index CatalogEntry

Vous pouvez générer les prix des contrats intégrés dans l'index d'entrée du catalogue de HCL Commerce Search, lorsque vous déployez un magasin type B2B.

Pourquoi et quand exécuter cette tâche

Pour HCL Commerce Search version 9.1.0 uniquement, après avoir créé des contrats avec ajustement des prix, générez l'index complet, puis l'index de prix des contrats.

Procédure

  1. Remplacez la valeur wc.search.priceMode.compatiblePriceIndex par 1.0 dans la table STORECONF :
    
    insert into storeconf(storeent_id,name,value) values('storeent_id', 'wc.search.priceMode.compatiblePriceIndex', '1.0');
    
    Remarque : Pour calculer les prix des contrats, tous les magasins qui partagent ce catalogue principal (par exemple : 10001) doivent activer l'index de prix du contrat (compatiblePriceIndex) dans la table STORECONF.
    Pour plus d'informations, voir Modification des propriétés de configuration de recherche dans la table STORECONF.
  2. Appelez le service RESTFul de calcul de prix.

    Vous pouvez appeler l'utilitaire à l'URL suivante sur le serveur de transactions. La méthode est POST, et l'authentification est basique, avec le paramètre spiuser et le mot de passe fourni dans l'en-tête.

    Pour la recherche Solr :
    https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/build?indexSubType=Price
    
    Pour Elasticsearch :
    https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/build?storeId=storeId&connectorId=auth.price&indexSubType=Price
    Où :
    masterCatalogId
    Obligatoire : L'ID du catalogue principal (par exemple, 10101).
    Si vous ne connaissez pas l'ID du catalogue principal, exécutez l'instruction SQL suivante :
    SQL: select * from catalog where IDENTIFIER='STORE_IDENTIFIER'
    
    Pour trouver l'ID de catalogue principal d'un magasin de site étendu :
    1. Trouvez l'ID du magasin :
      select * from storeent where IDENTIFIER='STORE_IDENTIFIER'
      
    2. Utilisez storeent_id comme store_id dans l'instruction SQL suivante pour trouver l'ID de magasin de ressources de catalogue de ce magasin de site étendu :
      
      select * from storerel where store_id=XXXXXX and streltyp_id=-4 and relatedstore_id not in (XXXXXX)
      
      XXXXXX est la valeur storeent_id de l'instruction SQL dans l'étape 2.a lors de la génération de l'index de recherche.
    3. Obtenez l'ID du catalogue principal :
      
      select * from storecat where storeent_id=YYYYYY and mastercatalog='1'
      
      YYYYYY est la valeur relatedstore_id dans l'étape 2.b lors de la génération de l'index de recherche.
    contractId
    Facultatif : Utilisé pour générer des prix pour les ID de contrat spécifiés.
    Précisez les ID de contrat séparés par des virgules à indexer.
    Si aucun ID de contrat n'est transmis, un recalcul complet est exécuté par défaut.
    Exemple : https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&contractId=-10008,-10005
    catentry
    Facultatif : Utilisé pour générer des prix pour les entrées de catalogue spécifiées.
    Précisez les ID d'entrée de catalogue séparés par des virgules à indexer.
    Si aucun ID d'entrée de catalogue n'est transmis, un recalcul complet est exécuté par défaut.
    Exemple : https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&catentryId=10006,10005
    storeId
    L'ID du magasin eSite.
    Vous ne pouvez transmettre qu'un seul ID de magasin dans ce paramètre.
    Exemple : https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&storeId=1
    devise
    Facultatif : Utilisé pour générer des prix pour les devises spécifiées.
    Précisez les ID de devise séparés par des virgules à indexer.
    Remarque : Vérifiez que la table CURLISTE contient toutes les devises supplémentaires que vous souhaitez générer par l'utilitaire de calcul des prix.
    Si aucun ID de devise n'est transmis, un recalcul complet est exécuté par défaut.
    Exemple : https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&currency=USD,CAD
    numWorkers
    Facultatif : Ce paramètre définit le nombre de calculateurs. Le nombre total de produits affecté à un calculateur est obtenu en divisant le nombre de produits par le nombre de calculateurs. Dans chaque calculateur, les valeurs catentries attribuées sont calculées en fonction de tous les contrats d'acheteur valides déployés par les magasins de partage du catalogue principal spécifié et de toutes les devises valides prises en charge par les magasins de partage. Pour les catalogues de grande taille, il est recommandé de définir des paramètres numWorkers plus importants afin de réduire le temps d'exécution total d'une unité d'exécution. En outre, l'unité d'exécution est définie par le nombre maximum de workManager. Par conséquent, lorsque la valeur numWorkers est supérieure au nombre de gestionnaires de travail, d'autres numWorkers doivent attendre dans la file d'attente pour être exécutés.
    La valeur par défaut est 1000.
    Exemple : https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&numWorkers=100
    flushSize
    Facultatif : Ce paramètre définit le nombre d'instructions de lot versées dans la base de données. Lorsque la valeur flushSize est élevée, la base de données peut être restaurée. Lorsque la valeur flushSize est faible, la base de données peut devoir être validée plusieurs fois.
    La valeur par défaut est 1000.
    Exemple : https://localhost/wcs/resources/admin/index/dataImport/build?indexSubType=Price&flushSize=100
  3. Assurez-vous que l'appel s'exécute correctement.
    Si le reste s'exécute avec succès, une réponse avec un corps présentant du contenu similaire à ce qui suit est renvoyée.
    {
        "jobStatusId": "1003"
    }
    Vous pouvez vérifier le statut du travail de prix de calcul en appelant l'API suivante via la méthode GET et l'authentification de base dans l'en-tête, à l'aide du spiuser et de son mot de passe.
    https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId
    Si le calcul du prix a été exécuté avec succès, la réponse à l'appel REST ci-dessus sera similaire à l'exemple suivant :
    {
        "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 signifie que le travail s'est exécuté avec succès. -1 signifie que le travail est en cours, ou que ses progrès sont inconnus. D'autres valeurs signifient que le travail a échoué. Si vous obtenez un statut qui n'est pas égal à 0, un message d'erreur s'affiche dans la zone message.
    Pour obtenir plus d'informations sur la journalisation, définissez le niveau de journalisation sur FINEST.
    com.ibm.commerce.foundation.dataimport.priceindex.*=finest
    Une fois que vous avez activé ce niveau de suivi dans le serveur de transactions, vous pouvez réexécuter l'appel REST de calcul de prix. Toutes les erreurs seront enregistrées dans le fichier trace.log sur le serveur de transactions.
  4. Pour la recherche Solr uniquement : Générez l'index de recherche pour indexer le prix avec indexSubType=Structured.

Exemple

Vous pouvez vérifier que l'index du prix des contrats est utilisé correctement dans le magasin type Aurora B2B en suivant ces étapes  :
  1. Configurer l'index de prix de l'organisation et des contrats :
    1. Enregistrez une organisation dans AuroraB2BESite.
    2. Configurez les contrats suivants :
      Copie du contrat par défaut
      Utilisez le filtre de catalogue par défaut et la règle de prix de vente.
      Contrat Boulons uniquement
      N'incluez que la catégorie Boulons à 50 % de rabais.
    3. Remplacez la valeur wc.search.priceMode.compatiblePriceIndex par 1.0 dans la table STORECONF.
    4. Appelez le service RESTFul de calcul de prix.
  2. Vérifiez les prix des contrats dans la vitrine :
    1. Ouvrez le site AuroraB2BESite dans un navigateur Web et connectez-vous au magasin.
    2. Sous Contrats, sélectionnez le contrat Boulons uniquement et continuez vos achats.
    3. Accédez à la catégorie Boulons et ajoutez des articles à votre panier.
    4. Procédez au paiement et confirmez que les règles de tarification sont correctement appliquées pendant le processus de paiement.

Que faire ensuite

Une fois l'index de prix généré, vous pouvez éventuellement reproduire et propager l'indexHCL Commerce Search .