Instruction de tâche CalculateOrderCmd
L'instruction de tâche CalculateOrderCmd gère les cadeaux gratuits et implémente la logique de calcul de base.
Instruction de tâche
com.ibm.commerce.order.commands.CalculateOrderCmd
Classe d'implémentation
com.ibm.commerce.order.commands.CalculateOrderCmdImpl
Commandes appelées
DoInventoryActionCmd
OrderItemUpdateCmd
OrderItemAddCmd
OrderItemDeleteCmd
Appelants possibles
OrderCalculateCmdImpl
PrepareOrderCmdImpl
OrderProcessingHelper
Comportement
Si doFreeGift est true :
- Appelez PromotionEngine pour obtenir une liste des entrées de catalogue à ajouter à la commande
- Supprimez cette entrée de catalogue de la liste
- Ajoutez l'identificateur CatalogEntry à la liste outOfInventoryCatalogEntryId
- Pour chaque article de commande à ajouter ou à mettre à jour, comparez-le avec la liste de cadeaux gratuits obtenue par PromotionEngine :
- Si le CatentryId est le même, mais que la quantité est différente :
- Ajoutez-le à la liste de mise à jour
- Si l'ID d'entrée de catalogue est introuvable dans une entrée de catalogue existante :
- Ajoutez-le à la liste d'ajout
- Si les cadeaux gratuits qui sont mis en cache avant ne sont pas contenus dans la nouvelle liste renvoyée :
- Ajoutez-les à la liste de suppression
- Si le CatentryId est le même, mais que la quantité est différente :
Supprimez les cadeaux gratuits répertoriés dans la liste de suppression
Mettez à jour les quantités de cadeaux gratuits répertoriées dans la liste de mise à jour
Ajoutez les nouveaux cadeaux gratuits répertoriés dans la liste d'ajout
Calculez le total des produits de la commande
Initialisez les utilisations de calcul spécifiées qui sont activées
Appliquer les utilisations de calcul spécifiées qui sont activées
Mettez à jour les sous-commandes de la commande à moins que cette fonctionnalité ne soit désactivée
Résumez les utilisations de calcul spécifiées qui sont activées