Tuesday, 15 April 2014


Peak shopping period preparation 

  1. Apply recommended fixes and settings
  2. Enable monitoring
  3. Caching strategy
  4. Optimize your site for your peak load
  5. Integration strategy
  6. Test functionality and performance with loads
  7. Freeze custom code
  8. Perform regular backups
  9. Perform database maintenance.
  10. Minimize problem determination time
  11. Anticipate potential roadblocks.
  12. Know your escalation points.
What changed from WCS6 to WCS7

Starter stores - The Aurora starter store replaces the Madisons starter store used in the previous release.

IBM Management Center for WebSphere Commerce - Workspaces has new capabilities and improved functionality with change history.
 

Apache Derby replaces Cloudscape database support - WebSphere Commerce Version 7 supports Apache Derby instead of Cloudscape. IBM no longer supports the Cloudscape database.
 

DB2 loop-back configuration is removed on Unix platforms 

Oracle database character set is changed from UTF8 to AL32UTF8  

Order trash can feature disabled by default - In WebSphere Commerce Version 7, the order trash can feature is disabled by default. In WebSphere Commerce Version 6, the default owner for deleted orders was -1002. In Version 7, the default owner for deleted orders is now -1006 (a guest user).

Friday, 11 April 2014



How do I disable the Promotion Engine in Websphere Commerce?
   
You can disable the Promotion Engine either at the store level or instance level.

Store level:
Not passing the calusage id -1 to OrderCalculate, which represents the calculation usage for discounts, means that the promotion engine will not be invoked.

Search JSPs and custom code for the store in which the Promotion Engine is to be disabled.

Remove references where calusage id -1 is passed to the OrderCalculate command.

In addition, the calusage must also be disabled in STENCALUSG.

Execute the following sql to disable calusage -1 from STENCALUSG:

      UPDATE stencalusg set USAGEFLAGS = 0 where storeent_id=<your_storeent_id>


Instance Level

Modify the instance xml file as follows.

The instance xml is located in <WC_install>/instances/<instance>/xml/<instance>.xml


1. Search for RLPromotionComponentConfiguration and set the enable parameter to false.
After the change the line should look as follows:
<component
 compClassName="com.ibm.commerce.tools.epromotion.RLPromotionComponentConfiguration"
enable=" false" name="Rule-based Discount Configuration">


2. Search for Discount RulesBasedDiscount="true" and set this to false.
After the change the line should look as follows:
<Discount RulesBasedDiscount="false" display="false"/>


3. Search for component enabled="true" name="RulesBasedDiscount" and disable the component.
After the change the line should look as follows:
<component enabled="false" name="RulesBasedDiscount"/>
 

Once the changes are complete, execute the UpdateEAR ant task to have the change reflected on the application server.

Thursday, 10 April 2014


Shipping Charges Implementation Using Calculation Framework
  1.             Define the jurisdiction groups and jurisdictions.
  2.             Define the shipping modes.
  3.             Define the calculation codes.
  4.             Define the calculation rules.
  5.             Define the calculation scales.
  6.             Define the calculation ranges.
  7.             Define the look-up results for the calculation ranges.
  8.             Associate the calculation scales with the calculation rules.
  9.             Attach the calculation code with the all catalog entries.
  10.             Associate the calculation rules with the fulfillment center.
  11.             (optional) Set the default shipping mode for the store.
  12.             (optional) Set the default shipping calculation code for the store. You would only complete this step if your store does not already have a default calculation code defined for shipping charges.

 Tables Used -

JURSTGROUP - This table defines jurisdiction groups.
JURST - This table defines jurisdictions.
JURSTGPREL - This table defines which jurisdictions belong to which jurisdiction groups.

CALUSAGE - This table contains a unique identifier for each calculation usage and a description of the calculation usage. Values in this table are defined in the language-dependent bootstrap file.

STENCALUSG - This table defines the high-level behavior of a calculation usage for a store or group of stores. If the implementation for a store is not defined, the implementation for the store group is used. If different implementations are defined for the store and the store group, the implementation for the store is used. This database table is initially populated from the language-independent bootstrap file.

CALRULE - Defines calculation rules.

CALSCALE -Defines calculation scales.

CALRANGE - Defines the calculation ranges that make up a calculation scale.

CALRLOOKUP - Contains the look-up results for calculation ranges. The currencies of the look-up results, optional attributes, are also specified in this database table.

CALSCALEDS - Contains national language descriptions of a calculation scale. This allows one calculation scale to have descriptions in multiple languages.

CRULESCALE -Relates a calculation scale to a calculation rule. A calculation rule can have multiple calculation scales and a calculation scale can be used by multiple calculation rules.

CALRLOOKUP -Contains the following information about calculation range look–up results
 

Wednesday, 9 April 2014

JSESSIONID information may be over-written on the client because multiple JSESSIONID cookies received with the same name and path when user navigates various nodes across the same domain.

  1. Open the administrative console.
  2. Select Servers > Application Servers > Server_Name > Server Infrastructure > Java and Process Management > Process Definition > Java Virtual Machine > Custom Properties > New.
  3. Add a new Custom Property for the JVM to reuse the sessionId:
    System Property Name: HttpSessionIdReuse
    System Property Value: true
  4. Save your changes and restart the Application Server.

Order Status



State
Value
Description
A
Payment authorization requires review
ORDER_PAYMENT_AUTH_REVIEW(A)
Payment authorization has encountered an unusual circumstance, such as an address verification warning. The payment authorization must be reviewed and accepted, or the order must be canceled, using the Order Management user interface. If the authorization is accepted, then the user interface changes the order status to 'B' or 'C' as appropriate. Status A is also supported for previous versions.
B
Backordered
ORDER_BACKORDERED(B)
Some orderitems for the order are backordered. (inventorystatus=BO).
C
Payment authorization complete
ORDER_COMPLETE(C)
Payment authorization has been completed. All order items are allocated from existing inventory.
D
Deposited
ORDER_DEPOSIT(D)
Payment has been captured.
E
CSR Edit
ORDER_EDIT(E)
A Customer Service Representative is working with the order.
F
Ready for remote fulfillment
ORDER_READY_FOR_REMOTE_FULFILLMENT(F)
The order is ready to be sent to a remote system for fulfillment. This status is used by the MQAdapter feature.
G
Pending remote fulfillment
ORDER_PENDING_REMOTE_FULFILLMENT(G)
The order has been sent to a remote system for fulfillment. This status is used by the MQAdapter feature.
H
Error in remote fulfillment
ORDER_ERROR_REMOTE_FULFILLMENT_FAILED(H)
This status is associated with these conditions:
(1) An order has been submitted for transfer and the distributor responded with a failed transfer confirmation. The failure might be due to an invalid user ID or password. The error code for the transfer is stored in the ORDSTAT table OSCODE column and the error status message is in the ORDSTAT table OSCMT column.
(2) An empty quotation order arrived due to quotation failure.
I
Submitted
ORDER_SUBMITTED(I)
This status is associated with a standing order or an order quotation. The order is copied to a new order and then submitted for processing. ( Note: a "standing order" is actually a scheduled order awaiting scheduler to pick it up for processing.)
J
Trashcan
ORDER_OR_REQUISITIONLIST_TRASHED
The deleted order item is moved to the trashcan.
L
No inventory
ORDER_INV_UPDATE_FAILED(L)
For one or more order items, no inventory is available.
M
Either a part or the total amount is approved.
ORDER_AUTH_ALLOWED(M)
The order is submitted.
N
Approval denied
ORDER_DENIED(N)
The CheckOrderApproval task command indicated that approval has been denied for some order items.
P
Pending Order
ORDER_PENDING(P)
The order is in the shopping cart. The customer can modify the order.
Q
Quick order profile
EC_ORDER_PROFILE(Q)
The order holds default order information that can be copied to quickly create new orders.
R
Released
ORDER_RELEASED(R)
Some order items have been released for fulfillment. This status is also supported for previous versions.
S
Shipped
ORDER_SHIPPED(S)
All order items have been manifested.
T
Temporary
TEMPORARY(T)
This status is used by the Order Management user interface to temporarily back up an order.
W
Pending approval
ORDER_WAITING_APPROVAL(W)
The CheckOrderApproval task command indicated that not all OrderItems are approved.
X
Canceled
ORDER_CANCELED(X)
The order has been canceled.
Y
Private requisition list
PRIVATE_REQUISITION_LIST(Y)
The order is a private requisition list.
Z
Shareable requisition list
SHAREABLE_REQUISTION_LIST(Z)
The order is a shareable requisition list.
NEW
Quote is new
QUOTE_NEW(NEW)
The quote has been started, but has not yet been completed.
RDY
Quote is ready
QUOTE_READY(RDY)
The quote has been completed, and has not yet expired.
CAN
Quote is cancelled
QUOTE_CANCELED(CAN)
The quote has been cancelled or has expired.


How Promotion Engine is called during Order flow

  • Out of the box, OrderPrepareCmd calls PrepareOrderCmd which calls OrderCalculateCmd.
  • OrderCalculateCmd is the interface and the implementation class is PromotionEngineOrderCalculateCmdImpl.
  • PromotionEngineOrderCalculateCmdImpl is the command that invokes the promotion engine to apply the applicable promotions.
  • PromotionCodeAddRemoveControllerCmd - Command use to add promocode to an order.

Mode details
 

OrderPrepareCmdImpl
 For each order specified to prepare:
  •     check whether the order is locked by others or not.
  •     check the order status is in either of P,I,E,W,N.
  •     If the order is generated from quote, check the quote's expire date. if quote is expired, reset the price flag.
  •     Call ValidateShippingAdjustmentCmd command to validate shipping adjustment.
  •     Call PrepareOrderCmd command to prepare the order.