Technote

(troubleshooting)
"No nominal cost pricelist found" Error
Problem(Abstract)
You see the following errors during Order Capture after migrating to WebSphere Commerce 6.0, :
[7/23/07 16:05:35:098 EDT] 0000002c CommerceSrvr A com.ibm.commerce.price.commands.PriceCalculationHelper getNominalCostPriceList CMN0409E: The following error has occurred during processing: "No nominal cost pricelist found for store=10001".
[7/23/07 16:05:35:113 EDT] 0000002c CommerceSrvr E com.ibm.commerce.orderitems.commands.OrderItemBaseCmdImpl
captureChangesForBusinessAuditing CMN0409E: The following error has occurred during processing: "{0}".
Correlation Identity: 12599bc0-3958-11dc-a830-825646a509c0
Additional Data:
null
Current exception:
Message:
_ERR_GENERIC
Stack trace:
com.ibm.commerce.exception.ECApplicationException: The following error has occurred during processing: "No nominal cost pricelist found for store=10001".
at com.ibm.commerce.price.commands.PriceCalculationHelper. getNominalCostPriceList(PriceCalculationHelper.java:2527)
at com.ibm.commerce.orderitems.commands.OrderItemBaseCmdImpl.captureChanges
ForBusinessAuditing(OrderItemBaseCmdImpl.java:2561)
at com.ibm.commerce.orderitems.commands.OrderItemBaseCmdImpl.
orderItemUpdate(OrderItemBaseCmdImpl.java:2523)
at com.ibm.commerce.orderitems.commands.OrderItemBaseCmdImpl.performExecute
(OrderItemBaseCmdImpl.java:2830)
Cause The notion of nominal cost was introduced in WebSphere Commerce 6.0. A nominal cost is a monetary amount which represents the cost of a single unit of a catalog entry. There is at most one nominal cost for each catalog entry in a catalog. The collection of nominal costs are stored in a nominal cost price list.

The Order Capture code in WebSphere Commerce 6.0 assumes that there is a nominal cost price list defined in your database. However, if you migrated to WebSphere Commerce 6.0, this will not be the case. Resolving the problem The solution to this problem will depend on your intention to use the price negotiation feature. For more information regarding price negotiation, refer to:
http://publib.boulder.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=/com.ibm.commerce.user.doc/concepts/cpcoverride.htm

If you intend to use the price negotiation, refer to solution A. Otherwise, refer to Solution B.

Solution A:
In order to use the price negotiation feature, have a nominal price list defined for your store. In this case...

1. Find the Price policy for your store:
select POLICY_ID, POLICYNAME, PROPERTIES from POLICY where POLICYTYPE_ID='Price' and STOREENT_ID=<your_store_id>

The result will look similar to:

POLICY_ID POLICYNAME PROPERTIES
10001 MasterCatalogPriceList name=ConsumerDirect&orgentity_dn=ou=b2c,o=seller organization,o=root organization

2. Set this price list policy as nominal by adding the type=NOMINAL attribute to the properties column. For example:
update POLICY set PROPERTIES='name=ConsumerDirect&orgentity_dn=ou=b2c,o=seller organization,o=root organization&type=NOMINAL'

Note that in order for the update to take effect, either refresh the registry or restart the server.

Solution B:
If you are not using price negotiations, then the concept of a nominal price does not apply to you. The WebSphere Commerce code however assumes that you always have a nominal price defined, which is not true in this scenario. To fix this, contact WebSphere Commerce support and ask for an APAR.
 

Document Information

Current web document: http://www.ibm.com/support/docview.wss?uid=swg21285939