di-calculateprice utility

The di-calculateprice utility updates the information in the price index based on the pricing model your store uses. For example, for a B2B starter store, the price index is built to display contract prices in the storefront.

Syntax diagram for di-calculateprice utility

Parameter values

instance
The name of the WebSphere Commerce instance with which you are working (for example, demo).
serverName
The fully qualified host name of your WebSphere Commerce Server (for example, wcserver.mydomain.ibm.com is fully qualified).
masterCatalogId
Required: The ID of the master catalog (for example, 10101).
If you do not know the master catalog ID, run the following SQL:
SQL: select * from catalog where IDENTIFIER='STORE_IDENTIFIER'
To find the master catalog ID for an Extended Site store:
  1. Find the store ID:
    select * from storeent where IDENTIFIER='STORE_IDENTIFIER'
    
  2. Use the storeent_id as the store_id in the following SQL to find the catalog asset store ID of this Extended Site store:
    
    select * from storerel where store_id=XXXXXX and streltyp_id=-4 and relatedstore_id not in (XXXXXX)
    
    Where XXXXXX is the storeent_id from the SQL in step 1 when building the search index.
  3. Get the master catalog ID:
    
    select * from storecat where storeent_id=YYYYYY and mastercatalog='1'
    
    Where YYYYYY is the relatedstore_id from step 2 when building the search index.
siteAdminId
The user ID of the site administrator. The utility is run under the authority of this user.
siteAdminPwd
Optional: The password of the site administrator. You are prompted for the password if not passed in.
Alternatively, you can use the passwordFile parameter to specify the encrypted password from a file.
passwordFile
Optional: The full path to the password.properties file that contains the site administrator password. For example, C:\password.properties.
The password.properties file contains the following content:

siteAdminPassword=encrypted_pwd
Where encrypted_pwd is the site administrator password that is encrypted by the wcs_encrypt utility.
trading
Optional: Used to build prices for the specified contract IDs.
Specify comma-separated contract IDs to index.
If no contract IDs are passed in, a full recalculation is performed by default.
currency
Optional: Used to build prices for the specified currencies.
Specify comma-separated currencies to index.
Note: Ensure that the CURLIST table contains any additional currencies that you want built by the calculate price utility.
If no currencies are passed in, a full recalculation is performed by default.
catentry
Optional: Used to build prices for the specified catalog entries.
Specify comma-separated catalog entry IDs to index.
If no catalog entry IDs are passed in, a full recalculation is performed by default.
numWorkers
Optional: This parameter defines the number of calculators. The total number of products that are assigned to one calculator is arrived by dividing the number of products by the number of calculators. In every calculator, the assigned catentries are calculated against all valid buyer contracts that are deployed by the sharing stores of the specified master catalog and all valid currencies that are supported by the sharing stores. For large catalog size, it is recommended to define larger numWorkers to decrease the total execution time of a thread. In addition, the running thread is defined by workManager maximum number, therefore when the numWorkers are larger than work manager number, other numWorkers must wait in queue to be run.
The default value is 1000.
flushSize
Optional: This parameter defines the number of batch statements that flush into database. With large flushSize, the database might roll back. With small flushSize, the database might have to be committed multiple times.
The default value is 1000.

Example

From the following directory:
  • WC_installdir/bin
  • WebSphere Commerce DeveloperWCDE_installdir\bin
Run the following command:
  • Windowsdi-calculateprice.bat -instance instance_name -serverName host_name -masterCatalogId masterCatalogId -siteAdminId siteAdminId [-siteAdminPwd siteAdminPwd] [-passwordFile passwordFile] [-trading trading] [-currency currency] [-catentry catentry] [-numWorkers numWorkers] [-flushSize flushSize]
  • LinuxAIXFor IBM i OS operating systemdi-calculateprice.sh -instance instance_name -serverName serverName -masterCatalogId masterCatalogId -siteAdminId siteAdminId [-siteAdminPwd siteAdminPwd] [-passwordFile passwordFile] [-trading trading] [-currency currency] [-catentry catentry] [-numWorkers numWorkers] [-flushSize flushSize]
  • WebSphere Commerce Developerdi-calculateprice.bat -instance instance_name -serverName serverName -masterCatalogId masterCatalogId -siteAdminId siteAdminId [-siteAdminPwd siteAdminPwd] [-passwordFile passwordFile] [-trading trading] [-currency currency] [-catentry catentry] [-numWorkers numWorkers] [-flushSize flushSize]

Ensure that the utility runs successfully.

If the utility runs successfully, the following message is displayed in the Command window:
The program exiting with exit code: 0.
Price calculation process completed successfully with no errors.
Also, inspect the following file for errors:
  • LinuxAIXWindowsWC_installdir/logs/wc-dataimport-calculateprice.log
  • WebSphere Commerce DeveloperWCDE_installdir\logs\wc-dataimport-calculateprice.log
If there is any error in the wc-dataimport-calculateprice.log, you can find more information from WC_profiledir/logs/solrServer/SystemOut.log
To get more logging information, update the logging level from INFO to FINEST in the WC_installdir/instances/instance_name/xml/config/dataimport/calculateprice-logging.properties file:
# Default global logging level, INFO
com.ibm.commerce.level=FINEST
You can also increase the log file size and the number of log files. For example:

# Limiting size of output file in bytes:
java.util.logging.FileHandler.limit=50000000

# Number of output files to cycle through
java.util.logging.FileHandler.count=2 
If the utility fails due to a transaction timeout error, increase the transaction timeout time to a higher value.