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 :

Si le composant PromotionsEngine est activé et que le cadeau gratuit doit être actualisé :
  • Appelez PromotionEngine pour obtenir une liste des entrées de catalogue à ajouter à la commande
Pour chaque entrée de catalogue à ajouter à la commande, si l'ATP est désactivé et qu'il n'y a pas suffisamment de stock :
  • 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

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