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
Procédure
-
Remplacez la valeur
wc.search.priceMode.compatiblePriceIndexpar1.0dans 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. -
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=PricePour Elasticsearch :Où :https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/build?storeId=storeId&connectorId=auth.price&indexSubType=Price- 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 :- Trouvez l'ID du magasin :
select * from storeent where IDENTIFIER='STORE_IDENTIFIER' - 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 :
Où 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.select * from storerel where store_id=XXXXXX and streltyp_id=-4 and relatedstore_id not in (XXXXXX) - Obtenez l'ID du catalogue principal :
Où YYYYYY est la valeur relatedstore_id dans l'étape 2.b lors de la génération de l'index de recherche.select * from storecat where storeent_id=YYYYYY and mastercatalog='1'
- Trouvez l'ID du magasin :
- contractId
- Facultatif : Utilisé pour générer des prix pour les ID de contrat spécifiés.
- catentry
- Facultatif : Utilisé pour générer des prix pour les entrées de catalogue spécifiées.
- storeId
- L'ID du magasin eSite.
- devise
- Facultatif : Utilisé pour générer des prix pour les devises spécifiées.
- 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.
- 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.
-
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.
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.{ "jobStatusId": "1003" }
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 :https://transactionServerHost:transactionHttpsPort/wcs/resources/admin/index/dataImport/status?jobStatusId=jobStatusId
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.{ "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" } }Pour obtenir plus d'informations sur la journalisation, définissez le niveau de journalisation surFINEST.
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.com.ibm.commerce.foundation.dataimport.priceindex.*=finest -
Pour la recherche Solr uniquement : Générez l'index de recherche pour indexer le prix avec
indexSubType=Structured.
Exemple
- Configurer l'index de prix de l'organisation et des contrats :
- Enregistrez une organisation dans AuroraB2BESite.
- 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.
- Remplacez la valeur
wc.search.priceMode.compatiblePriceIndexpar1.0dans la table STORECONF. - Appelez le service RESTFul de calcul de prix.
- Vérifiez les prix des contrats dans la vitrine :
- Ouvrez le site AuroraB2BESite dans un navigateur Web et connectez-vous au magasin.
- Sous Contrats, sélectionnez le contrat Boulons uniquement et continuez vos achats.
- Accédez à la catégorie Boulons et ajoutez des articles à votre panier.
- Procédez au paiement et confirmez que les règles de tarification sont correctement appliquées pendant le processus de paiement.