![Deprecated feature](../../base/images/deprecated.png)
Mandato de tarea CalculateOrderCmd
El mandato de tarea CalculateOrderCmd maneja los regalos gratuitos e implementa la lógica base de cálculo.
Mandato de tarea
com.ibm.commerce.order.commands.CalculateOrderCmd
Clase de implementación
com.ibm.commerce.order.commands.CalculateOrderCmdImpl
Mandatos llamados
DoInventoryActionCmd
OrderItemUpdateCmd
OrderItemAddCmd
OrderItemDeleteCmd
Posibles llamantes
OrderCalculateCmdImpl
PrepareOrderCmdImpl
OrderProcessingHelper
Comportamiento
Si doFreeGift es true:
- Llamar a PromotionEngine para obtener una lista de entradas de catálogo para añadir al pedido.
- Eliminar esa entrada de catálogo de la lista
- Añadir el identificador de entrada de catálogo a la lista outOfInventoryCatalogEntryId
- Para cada artículo de pedido que se va a añadir o actualizar, compararlo con la lista de regalos gratuitos obtenida por PromotionEngine:
- Si el CatentryId es el mismo pero la cantidad es diferente:
- Añadirlo a la lista de actualización
- Si no se encuentra el CatentryId en una entrada de catálogo existente:
- Añadirlo a la lista de adición
- Si los regalos gratuitos que se han almacenado antes en memoria caché no están incluidos en la nueva lista devuelta:
- Añadirlo a la lista de supresión
- Si el CatentryId es el mismo pero la cantidad es diferente:
Eliminar los regalos gratuitos incluidos en la lista de supresión
Actualizar las cantidades de los regalos gratuitos incluidos en la lista de actualización
Añadir los nuevos regalos gratuitos incluidos en la lista de adición
Calcular el total de productos del pedido
Inicializar los usos de cálculo (CalculationUsages) especificados que están habilitados
Aplicar los CalculationUsages especificados que están habilitados
Actualizar los subpedidos del pedido a menos que esa característica esté inhabilitada
Resumir los CalculationUsages especificados que están habilitados