Utilisations de calcul
La structure de calcul HCL Commerce est un cadre générique pour les calculs. Lors de la mise en œuvre d'un calcul à l'aide de cette structure, vous devez d'abord définir le type de calcul à effectuer. Les types de calculs que vous pouvez effectuer sont appelés calculation usages. Les utilisations de calcul se voient attribuer un code d'utilisation de calcul.
| Utilisation du calcul | Code d'utilisation de calcul |
|---|---|
| Catégorie | -1 |
| Expédition | -2 |
| Taxe | -3 |
| Taxe afférente aux frais de port | -4 |
| Bons de réduction | -5 |
| Surfret | -6 |
| Ajustement des frais de port | -7 |
HCL Commerce effectue tous les calculs pour une utilisation de calcul à la fois. L'ordre des utilisations de calcul est stocké dans la colonne SÉQUENCE de la table de base de données STENCALUSG. Les entrées de cette table contiennent initialement des informations provenant du fichier d'amorçage indépendant de la langue : wcs.bootstrap.xml.
wcs.bootstrap.xml sont traitées dans l'ordre suivant par défaut :- Bons de réduction
- Catégorie
- Expédition
- Taxe
- Taxe afférente aux frais de port
- Surfret
- Ajustement de la livraison
Tables de base de données pour l'utilisation de calcul
- CALUSAGE
- Cette table contient un identifiant unique pour chaque utilisation de calcul et une description de l'utilisation de calcul. Les valeurs de cette table sont définies dans le fichier d'amorçage dépendant de la langue.
- STENCALUSG
- Cette table définit le comportement de haut niveau d'une utilisation de calcul pour un magasin ou un groupe de magasins. Si la mise en œuvre d'un magasin n'est pas définie, la mise en œuvre du groupe de magasins est utilisée. Si différentes mises en œuvre sont définies pour le magasin et le groupe de magasins, la mise en œuvre du magasin est utilisée. Cette table de base de données est initialement renseignée à partir du fichier d'amorçage indépendant de la langue.
Les sections suivantes traitent des attributs des utilisations de calcul clés qui sont stockés dans certaines des tables de base de données.
Diagramme du modèle de données des utilisations de calcul
Le diagramme de modèle de données suivant illustre les relations entre les tables de base de données utilisées pour définir les utilisations de calcul.
Méthodes de calcul pour les utilisations de calcul
- InitializeCalculationUsage
- Ces méthodes de calcul sont appelées par la commande OrderPrepare pour chaque utilisation de calcul que vous spécifiez dans la colonne USAGEFLAGS de la table de base de données STENCALUSG avant d'appeler la méthode de calcul ApplyCalculationUsage.
- ApplyCalculationUsage
- Ces méthodes de calcul sont appelées par la commande OrderPrepare pour chaque utilisation de calcul que vous spécifiez dans la colonne USAGEFLAGS de la table de base de données STENCALUSG. Ces méthodes peuvent également être appelées à partir de beans de données ou d'autres commandes de tâches pour calculer les montants pour les articles qui ne sont pas nécessairement dans une commande. Par exemple, l'instruction de tâche GetReturnTaxes appelle la méthode ApplyCalculationUsage pour l'utilisation de calcul de la taxe sur les ventes.
- SummarizeCalculationUsage
- Ces méthodes de calcul sont appelées par la commande OrderPrepare pour chaque utilisation de calcul que vous spécifiez dans la colonne USAGEFLAGS de la table de base de données STENCALUSG après avoir appelé les méthodes de calcul ApplyCalculationUsage. Les méthodes de calcul SummarizeCalculationUsage résument les montants calculés. Par exemple, la méthode SummarizeCalculationUsage pour l'utilisation de calcul de la taxe sur les ventes renseigne la table de base de données SUBORDTAX et les colonnes SUBORDERS.TOTALTAX. La table de base de données SUBORDTAX contient des informations sur les taxes pour les OrderItems dans une SubOrder.
- FinalizeCalculationUsage
- Ces méthodes de calcul sont appelées par l'instruction de tâche ProcessOrder pour chaque utilisation de calcul que vous spécifiez dans la colonne USAGEFLAGS de la table de base de données STENCALUSG. Par exemple, la méthode FinalizeCalculationUsage pour l'utilisation de calcul des bons de réduction marque les bons de réduction qui sont appliqués à une commande pour éviter de les appliquer à une commande différente.
La section suivante traite de ces sous-classes de méthode de calcul et des implémentations par défaut fournies avec HCL Commerce.
Méthodes de calcule InitializeCalculationUsage
Les méthodes de calcul InitializeCalculationUsage effectuent tout traitement nécessaire avant que les montants monétaires pour les OrderItems ne soient calculés. Par exemple, ils peuvent supprimer des valeurs précédemment calculées des OrderItems dans la commande.
Toutes les commandes qui seront utilisées comme sous-classe de méthode de calcul InitializeCalculationUsage doivent implémenter l'interface InitializeCalculationUsageCmd.
Les méthodes de calcul InitializeCalculationUsage suivantes sont fournies avec HCL Commerce :
- InitializeAdjustmentCmdImpl
- InitializeCouponUsageCmdImpl
- InitializeSalesTaxCmdImpl
- InitializeShippingCmdImpl
- InitializeShippingTaxCmdImpl
InitializeAdjustmentCmdImpl
Cette commande implémente l'interface InitializeAdjustmentCmd qui étend l'interface InitializeCalculationUsageCmd.
Il s'agit de la méthode courante d'initialisation de l'utilisation de calcul pour les utilisations de calcul de remise, frais additionnels et d'ajustement des frais de port.
InitializeCouponUsageCmdImpl
Cette commande implémente l'interface InitializeCouponUsageCmd qui étend l'interface InitializeCalculationUsageCmd.
Cette commande est utilisée pour les bons de réduction.
InitializeSalesTaxCmdImpl
Cette commande implémente l'interface SalesTaxCmd qui étend l'interface InitializeCalculationUsageCmd.
Cette commande initialise les valeurs pour les calculs de la taxe sur les ventes.
InitializeShippingCmdImpl
Cette commande implémente l'interface InitializeShippingCmd qui étend l'interface InitializeCalculationUsageCmd.
Cette commande initialise les valeurs pour les calculs de frais de port.
InitializeShippingTaxCmdImpl
Cette commande implémente l'interface InitializeShippingTaxCmd qui étend l'interface InitializeCalculationUsageCmd.
Cette commande initialise les valeurs pour les calculs des taxes afférentes aux frais de port.
Méthodes de calcul ApplyCalculationUsage
Les méthodes de calcul ApplyCalculationUsage sont utilisées à la fois pour le traitement des commandes et pour l'affichage des produits. Pendant le traitement des commandes, une méthode de calcul ApplyCalculationUsage est appelée par la commande OrderPrepare pour calculer les montants monétaires d'une liste des OrderItems. Un montant monétaire est appliqué à chaque OrderItem afin que le montant monétaire soit disponible pour des calculs ultérieurs.
À des fins d'affichage, les méthodes de calcul ApplyCalculationUsage sont appelées par les beans de données pour calculer les montants monétaires. Par exemple, les taxes pour un produit peuvent être affichées sur une partie de la page d'affichage du produit. Le bean de données qui appelle la méthode de calcul ApplyCalculationUsage doit effectuer toute initialisation qui serait normalement effectuée par la méthode de calcul InitializeCalculationUsage pour l'utilisation de calcul qui est traitée pour le bean de données. Le bean de données n'a pas accès aux méthodes de calcul InitializeCalculationUsage, SummarizeCalculationUsage ou FinalizeCalculationUsage.
En outre, l'instruction de tâche GetReturnTaxes appelle également la méthode ApplyCalculationUsage pour l'utilisation de calcul de la taxe sur les ventes, sans appeler les méthodes Initialize, Summarize ou Finalize.
Toutes les commandes qui seront utilisées comme sous-classe de méthode de calcul ApplyCalculationUsage doivent implémenter l'interface ApplyCalculationUsageCmd.
- ApplyCalculationUsageCmdImpl
- ApplyCalculationUsageTIKCmdImpl
- ApplyCouponUsageCmdImpl
- ApplyShippingCmdImpl
ApplyCalculationUsageCmdImpl
- Appelez la méthode de calcul CalculCodeCombine pour obtenir une liste de codes de calcul. Pour chaque CalculationCode dans la liste, CalculationCodeCombine fournit également une liste des OrderItems à inclure dans le calcul.
- Pour chaque code de calcul de la liste, ApplyCalculationUsageCmdImpl effectue les appels suivants :
- Appelez la méthode de calcul CalculationCodeCalculate, en lui transmettant la liste des OrderItems associée. La méthode de calcul CalculationCodeCalculate renvoie une liste de montants monétaires calculés pour chaque OrderItem. Les montants monétaires peuvent être classés par catégorie de taxe.
- Appelez la méthode de calcul CalculationCodeApply, en lui transmettant le code de calcul, une liste des OrderItems et le montant monétaire associé à chaque OrderItem.
ApplyCalculationUsageTIKCmdImpl
Cette commande implémente l'interface ApplyCalculationUsageTIKCmd qui étend l'interface ApplyCalculationUsageCmd.
L'interface ApplyCalculationUsageTIKCmd et la commande ApplyCalculationUsageTIKCmdImpl sont fournies à titre d'exemple pour appeler un ensemble d'interfaces fournies dans le kit de l'interface d'intégration fiscale. Si HCL Commerce a été configuré pour utiliser cette interface, la commande OrderPrepare appelle ApplyCalculationUsageTIKCmd qui, à son tour, invoque l'instruction de tâche TaxIntegrationOrderCmd fournie dans le kit d'interface d'intégration fiscale.
ApplyCouponUsageCmdImpl
Cette commande implémente l'interface ApplyCouponUsageCmd qui étend l'interface ApplyCalculationUsageCmd.
Cette commande ajoute la remise d'un bon de réduction ou d'une promotion aux ajustements dans les tables de base de données ORDERS et ORDERITEMS. La commande est invoquée lorsqu'un client demande à échanger des bons de réduction avant de préparer une commande.
Les bons de réduction à appliquer à une commande se trouvent dans la table de base de données ORCPMAP. Cette commande trouve les bons de réduction à appliquer à une commande dans la table de base de données ORCPMAP, puis supprime les bons de réduction de la table de base de données ORCPMAP et de la table de base de données CPITMAP. CheckValidityTaskCmd vérifie les bons de réduction arrivés à expiration. S'ils ne sont pas expirés, CheckApplicabilityTaskCmd vérifie s'ils sont applicables. S'ils sont applicables, CalculateDiscountAmountCmd intègre le montant de la remise dans la commande en cours.
ApplyShippingCmdImpl
Cette commande est l'implémentation par défaut de l'interface ApplyShippingCmd qui étend l'interface ApplyCalculationUsageCmd. Cette commande régit les ajustements, les promotions, la livraison et les ajustements basés sur les contrats et les ajustements réalisés par le RSC. Les promotions sont basées sur les frais de base. Les contrats sont basés sur les frais de base plus la promotion, vous devez donc les désigner comme cumulatifs ou non cumulatifs.
- Ajustements de frais de port basés sur le contrat
- promotions
- Ajustements du représentant de service clientèle
Un ajustement non cumulatif s'applique directement aux frais de base ; une remise cumulative s'applique au résultat d'un ajustement précédent. Par exemple : Une commande comporte des frais de port de base de 10 $, un ajustement contractuel de 10 % et un ajustement promotionnel de 10 %. L'application est cumulative. L'ajustement des contrats est appliqué d'abord avec un coût de 9 $ (avec une remise de 1 $), puis la promotion de 10 % est appliquée au montant réduit de 9 $ (et sera une remise de 0,90). Donc, le total serait de 8,10 $.
Dans un scénario non cumulatif, le premier ajustement sera un coût de 9 $ (avec une remise de 1 $) comme dans le premier cas, mais lorsque la promotion de 10 % est appliquée, cette fois, elle s'applique sur le montant initial de 10 $. Cet ajustement a donc une remise de 1 $. Cela porte le total de la livraison à 8 $ pour la commande.
- Contrats - non cumulative
- Promotions - non cumulative
- Représentant de service clientèle - cumulative
Il s'agit d'une version de la commande ApplyCalculationUsageCmdImpl pour la livraison.
Méthodes de calcul SummarizeCalculationUsage
Cette sous-classe de méthode de calcul résume les résultats des calculs à des fins d'affichage.
Toutes les commandes qui seront utilisées comme sous-classe de SummarizeCalculationUsage doivent implémenter l'interface SummarizeCalculationUsageCmd.
- SummarizeAdjustmentCmdImpl
- SummarizeCouponUsageCmdImpl
- SummarizeSalesTaxCmdImpl
- SummarizeShippingCmdImpl
- SummarizeShippingTaxCmdImpl
SummarizeAdjustmentCmdImpl
Cette commande implémente l'interface SummarizeAdjustmentCmd qui étend l'interface SummarizeCalculationUsageCmd.
Cette commande est utilisée pour résumer les calculs de remises. C'est également la méthode de synthèse commune pour les utilisations de calcul pour les remises, les frais additionnels et les ajustements des frais de port.
SummarizeCouponUsageCmdImpl
Cette commande implémente l'interface SummarizeCouponUsageCmd qui étend l'interface SummarizeCalculationUsageCmd.
Cette commande est utilisée pour résumer les calculs des bons de réduction.
SummarizeSalesTaxCmdImpl
Cette commande implémente l'interface SummarizeSalesTaxCmd qui étend l'interface SummarizeCalculationUsageCmd.
Cette commande est utilisée pour résumer les calculs de la taxe sur les ventes.
SummarizeShippingCmdImpl
Cette commande implémente l'interface SummarizeShippingCmd qui étend l'interface SummarizeCalculationUsageCmd.
Cette commande est utilisée pour résumer les calculs des frais de port.
SummarizeShippingTaxCmdImpl
Cette commande implémente l'interface SummarizeShippingTaxCmd qui étend l'interface SummarizeCalculationUsageCmd.
Cette commande est utilisée pour résumer les calculs de la taxe afférente aux frais de port.
Méthodes de calcul FinalizeCalculationUsage
Cette sous-classe d'utilisation de calcul est utilisée pour effectuer tout traitement requis après traitement de la commande par l'instruction de tâche ProcessOrder.
Toutes les commandes utilisées comme sous-classe de FinalizeCalculationUsage doivent implémenter l'interface FinalizeCalculationUsageCmd.
FinalizeCouponUsageCmdImpl est la seule méthode de calcul FinalizeCalcculationUsage fournie avec HCL Commerce.
FinalizeCouponUsageCmdImpl
Cette commande implémente l'interface FinalizeCouponUsageCmd qui étend l'interface FinalizeCalculationUsageCmd.
La commande FinalizeCouponUsageCmdImpl marque les bons de réduction utilisés dans la commande en cours, afin d'éviter que les bons de réduction ne soient utilisés dans d'autres commandes.
Fonctionnement des utilisations de calcul
Les utilisations de calcul sont appelées par la commande OrderPrepare. Cette commande crée une liste d'OrderItems pour lesquels les montants monétaires seront calculés. Les utilisations de calcul applicables pour le magasin ou le groupe de magasins auquel appartient la commande sont traitées en fonction de la séquence que vous définissez pour elles dans la table de base de données STENCALUSG.
- Toutes les utilisations de calcul sont initialisées à l'aide des méthodes de calcul InitializeCalculationUsage référencées dans la colonne CALMETHOD_ID_INI de la table de base de données STENCALUSG.
- Toutes les utilisations de calcul sont appliquées à l'aide des méthodes de calcul ApplyCalculationUsage référencées dans la colonne CALMETHOD_ID_APP de la table de base de données STENCALUSG. Pour plus d'informations sur la façon dont les méthodes de calcul sont appliquées, voir Application des utilisations de calcul.
- Toutes les utilisations de calcul sont résumées à l'aide des méthodes de calcul SummarizeCalculationUsage référencées dans la colonne CALMETHOD_ID_SUM de la table de base de données STENCALUSG.
Une fois la commande du contrôleur OrderPrepare terminée, la commande de contrôleur OrderProcess est appelée. La commande contrôleur OrderProcess finalise toutes les utilisations de calcul en appelant les méthodes de calcul FinalizeCalculationUsage référencées dans la colonne CALMETHOD_ID_FIN de l'entrée de la table de base de données STENCALUSG pour chaque utilisation de calcul.
Application des utilisations de calcul
- La méthode de calcul ApplyCalculationUsage appelle une méthode de calcul CalculationCodeCombine. La méthode de calcul CalculationCodeCombine renvoie une liste. Chaque élément de la liste se compose d'un code de calcul et des OrderItems dans l'ordre auquel le code de calcul s'applique.
- La méthode de calcul ApplyCalculationUsage appelle une méthode de calcul De CalculationCodeCalculate pour chaque élément de la liste qui est renvoyé par CalculationCodeCombine. CalculationCodeCalculate renvoie une liste. Chaque élément de la liste se compose de chaque OrderItem et du montant monétaire associé à l'OrderItem pour l'utilisation de calcul. Pour les méthodes de calcul de la taxe, il peut y avoir plusieurs montants monétaires pour différentes taxes qui s'appliquent à l'OrdreItem. Dans ce cas, les catégories de taxe sont également renvoyées dans le cadre de la liste.
- La méthode de calcul ApplyCalculationUsage appelle une méthode de calcul CalculationCodeApply pour chaque groupe d'OrderItems.