CalculateOrderCmd task command
The CalculateOrderCmd task command handles free gifts and implements the core logic of calculation.
Task command
com.ibm.commerce.order.commands.CalculateOrderCmd
Implementation class
com.ibm.commerce.order.commands.CalculateOrderCmdImpl
Commands called
DoInventoryActionCmd
OrderItemUpdateCmd
OrderItemAddCmd
OrderItemDeleteCmd
Possible callers
OrderCalculateCmdImpl
PrepareOrderCmdImpl
OrderProcessingHelper
Behavior
If doFreeGift is true:
- Call the PromotionEngine to obtain a list of CatalogEntries to add to the Order
- Remove that CatalogEntry from the list
- Add the CatalogEntry identifier to the outOfInventoryCatalogEntryId list
- For each order item to be added or updated, compare it with the
free gift list obtained by PromotionEngine:
- If the CatentryId is the same but Quantity is different:
- Add it to the updating list
- If the CatentryId is not found within an existing CatalogEntry:
- Add it to the adding list
- If the free gifts which are cached before are not contained in
the new returned list:
- Add it to the deleting list
- If the CatentryId is the same but Quantity is different:
Remove free gifts listed in the deleting list
Update the quantities of free gifts listed in the updating list
Add the new free gifts listed in the adding list
Calculate the product total of the order
Initialize the specified CalculationUsages that are enabled
Apply the specified CalculationUsages that are enabled
Update the SubOrders for the Order unless that feature is disabled
Summarize the specified CalculationUsages that are enabled