Direct links to fixes
APAR status
Closed as program error.
Error description
When adding a product to the shopping cart with DOM inventory enabled, if the quantity of the product exceeds the available inventory, the shopper fails to place the order at the end of the shopping flow with the following error message: "There is insufficient inventory to purchase the requested product". The shopper must restart the "add to cart" process for only available items to complete the order. Unlike ATP inventory, the customer has no control over inventory reservation in the checkout flow.
Local fix
Problem summary
USERS AFFECTED: WebSphere Commerce users on version 7 who are using the DOM inventory system. PROBLEM ABSTRACT: Partial reservations are not allowed, and cannot control when to reserve for DOM inventory. BUSINESS IMPACT: This solution of the problem improves the user experience. RECOMMENDATION:
Problem conclusion
In this fix, the following functionality is provided: 1. Provide a way to support partial reservation. With this feature, when there is not enough inventory for a product, the inventory system reserves the available quantities of the product and the order system splits the order line to be 2: Allocated and Unallocated. Shoppers can remove the Unallocated order line and finish the order. By default, partial reservations are disabled. Customer must perform the following update to enable partial reservation: In the xml/config/com.ibm.commerce.order-fep/wc-admin-component.xml file, Modify <_config:property name="AllowPartialReservation" value="N"/> to <_config:property name="AllowPartialReservation" value="Y"/> 2. Provide a flag to control whether to reserve inventory during order preparation. The flag name is "inventoryReservation". By default, the value of this flag is 'true'. When customers want to disable inventory reservation during order preparation, they must set inventoryReservation=false into the request properties when invoking the order preparation command. 3. Provide a generic way to call inventory reservation. It can be called from customized code whenever there is a need to do inventory reservation. The following is a sample code to do inventory reservation when running the DoInventoryActionCmd command. The code marked in Blue indicates that it will call inventory reservation: DoInventoryActionCmd updateFFM = (DoInventoryActionCmd) CommandFactory.createCommand(DoInventoryActionCmd.NAME, getStoreId()); updateFFM.setAction(DoInventoryActionCmd.UPDATE_FULFILLMENTCENTE R); updateFFM.setOrderId(orderId); updateFFM.setCallerCommandName(DoInventoryActionCmd.GENERIC_CALL ER_CMD); updateFFM.setFlushNeeded(iNewQuantity); updateFFM.setUniqueOrderitemIdList(iUniqueOrderitemIdList); updateFFM.setATPParms(iATPParms); updateFFM.setContinue(getContinue()); updateFFM.execute(); 4. Provide a flag to avoid cancellation before reservation. In WebSphere Commerce by default: before an attempt to do inventory reservation, it always first cancels the previous reservation. With this APAR, the caller can explicitly ask WebSphere Commerce not to do the cancellation, and instead a reservation request with a delta reservation flag is sent to Sterling. The purpose of this is to improve performance. The flag name is "cancelReservation". By default, the value of the flag is true. Note: The flag only works when calling inventory reservation using the customized code in the preceding step. The following is a sample code to call inventory reservation without cancellation. The code marked in Blue indicates that it will not cancel the reservation. DoInventoryActionCmd updateFFM = (DoInventoryActionCmd) CommandFactory.createCommand(DoInventoryActionCmd.NAME, getStoreId()); updateFFM.setAction(DoInventoryActionCmd.UPDATE_FULFILLMENTCENTE R); updateFFM.setOrderId(orderId); updateFFM.setCallerCommandName(DoInventoryActionCmd.GENERIC_CALL ER_CMD); updateFFM.setFlushNeeded(iNewQuantity); updateFFM.setUniqueOrderitemIdList(iUniqueOrderitemIdList); updateFFM.setATPParms(iATPParms); updateFFM.setContinue(getContinue()); getCommandContext().getRequestProperties().put(OrderConstants.IN VENTORY_RESERVATION_CANCEL, "false"); updateFFM.setCommandContext(getCommandContext()); updateFFM.execute(); ------------------------------------------------------------- The latest available maintenance information can be obtained from the Recommended Fixes for WebSphere Commerce technote: http://www.ibm.com/support/docview.wss?rs=3046&uid=swg21261296
Temporary fix
Comments
APAR Information
APAR number
JR47397
Reported component name
WC BUS EDITION
Reported component ID
5724I3800
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
YesSpecatt / New Function
Submitted date
2013-08-01
Closed date
2013-12-02
Last modified date
2013-12-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WC BUS EDITION
Fixed component ID
5724I3800
Applicable component levels
R700 PSY
UP
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYSYL","label":"WebSphere Commerce Enterprise"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
02 December 2013