Echelles de calcul et fourchettes de calcul
De nombreux calculs dans HCL Commerce impliquent la recherche d'une valeur dans une table. Par exemple, un magasin a des frais de port en fonction du nombre d'articles expédiés dans une commande.
Le tableau des frais de port ressemble à ceci :
| Nombre d'articles dans la commande | Frais de port (devise locale) |
|---|---|
| < 5 | 3,00 |
| 5 - 10 | 10,00 |
| 11 - 15 | 22.00 |
| > 15 | 50.00 |
Pour calculer les frais de port, un assistant compte le nombre d'articles dans la commande et utilise le nombre total d'articles pour trouver les frais de port dans le tableau.
HCL Commerce fournit une fonction similaire dans la structure de calcul, sous la forme de calculation scales . Considérez les échelles de calcul comme des tableaux à deux colonnes, où les valeurs de la première colonne sont comparées à une valeur connue pour trouver une ligne dans le tableau. La valeur de la deuxième colonne est ensuite appliquée à un calcul associé à la valeur connue d'origine.
Le processus de recherche de la valeur à partir du tableau est appelé un scale look-up. L'échelle de calcul se compose d'une liste de calculation ranges et de look-up results associés. La valeur connue qui est comparée aux fourchettes de calcul est appelée un look-up number. Par exemple, lors du calcul des frais de port en se référant à la rubrique Exemple de tableau utilisé pour déterminer les frais de port pour une commande contenant huit articles, le numéro de recherche est 8, la fourchette de calcul à laquelle le numéro de recherche correspond est 5 - 10, et le résultat de recherche est 10.00.
Une échelle de calcul peut être utilisée pour calculer les montants monétaires, un pour chaque article de la commande dans une liste. L'implémentation par défaut de la méthode de calcul CalculationRuleCalculate utilise des échelles de calcul. Les montants calculés sont déterminés par les fourchettes de calcul et les plages de valeurs de l'échelle de calcul et par les méthodes de calcul qu'elles utilisent. Les échelles de calcul sont associées soit à une méthode de calcul MonetaryCalculationScaleLookup ou à une méthode de calcul QuantityCalculationScaleLookup. Les fourchettes de calcul sont associées à une méthode de calcul CalculationRange.
Propriétés des échelles de calcul
Les échelles de calcul ont des propriétés associées qui ont un impact lorsqu'une échelle de calcul est appliquée et que les montants monétaires sont calculés à l'aide d'une échelle de calcul. Une échelle de calcul peut avoir les propriétés suivantes :
- Devise
- Une échelle de calcul peut être associée à une devise spécifique. L'association d'une échelle de calcul à une devise implique que toutes les fourchettes de calcul de l'échelle sont dans cette devise. Une échelle de calcul associée à une devise s'applique aux articles de la commande si l'échelle répond à l'une des conditions suivantes :
- L'échelle de calcul et les articles de la commande ont la même devise.
- Les devises des articles peuvent être converties en devise de l'échelle de calcul et il n'existe aucune échelle de calcul avec la même devise que l'article. Si plusieurs échelles de calcul pour la même utilisation de calcul avec différentes devises peuvent être appliquées, les résultats des échelles sont convertis en devise de l'article de la commande. L'échelle produisant le montant monétaire le plus bas dans la devise de l'article de la commande est appliquée.
Une échelle de calcul ne peut être associée qu'à une devise, à une unité de mesure seulement ou à aucune de deux. Une échelle de calcul ne peut pas être associée à la fois à une devise et à une unité de mesure.
- Unité de mesure :
- Une échelle de calcul peut être associée à une unité de mesure spécifique. L'association d'une échelle de calcul à une unité de mesure implique que toutes les fourchettes de calcul de l'échelle sont dans cette unité de mesure.
Un article de commande peut avoir une unité de mesure associée à sa quantité ou à son poids. Les différentes méthodes de calcul CalculationScaleLookup utilisent la quantité ou le poids de l'article pour déterminer les valeurs de recherche. Les valeurs de recherche sont comparées aux valeurs de démarrage de la fourchette de calcul pour déterminer les méthodes de calcul à appeler.
Pour les méthodes de calcul CalculationScaleLookup qui utilisent la valeur de quantité d'un article, l'unité de mesure de la quantité doit pouvoir être convertie en l'unité de mesure de l'échelle de calcul. Pour les méthodes de calcul CalculationScaleLookup qui utilisent la valeur de poids d'un article, l'unité de mesure du poids doit pouvoir être convertie en l'unité de mesure de l'échelle de calcul. Les unités de mesure de la quantité et du poids des articles de la commande sont spécifiées dans la table de base de données CATENTSHIP, référencée par la colonne CATENTRY_ID de l'OrderItem.
Une unité de mesure est convertible en une autre unité de mesure si elle est la même, ou s'il y a des conversions définies dans la table de base de données QTYCONVERT qui permettraient une conversion de l'une à l'autre.
Une échelle de calcul ne peut être associée qu'à une devise, à une unité de mesure seulement ou à aucune de deux. Une échelle de calcul ne peut pas être associée à la fois à une devise et à une unité de mesure.
- Utilisation du calcul
- Une utilisation de calcul définit le type de calcul auquel l'échelle de calcul s'applique. Voir Utilisations de calculs.
WebSphere Commerce exige que chaque échelle de calcul ait une utilisation de calcul.
En plus de ces propriétés, les échelles de calcul sont classées par la méthode de calcul CalculationScaleLookup associée à l'échelle de calcul :
- Echelle de calcul monétaire
- Une échelle de calcul monétaire est une échelle de calcul associée à MonetaryCalculationScaleLookup.
- Echelle de calcul de quantité
- Une échelle de calcul de quantité est une échelle de calcul associée à QuantityCalculationScaleLookup.
Propriétés de la fourchette de calcul
Les fourchettes de calcul ont des propriétés qui affectent la façon dont les valeurs sont utilisées dans les règles de calcul. Une fourchette de calcul peut avoir la propriété suivante :
- Valeurs cumulatives
- Si les fourchettes de calcul d'une échelle de calcul sont cumulatives, le montant monétaire total résultant pour l'échelle de calcul est calculé à l'aide des résultats de recherche pour toutes les fourchettes de calcul égales ou inférieures au numéro de recherche. Le montant monétaire résultant dépend de la méthode de calcul CalculationRange utilisée par la fourchette de calcul.
En outre, le numéro de recherche utilisé pour calculer le montant monétaire de chaque fourchette de calcul change pour chaque fourchette de calcul. Ce numéro de recherche modifié est appelé la partie applicable du numéro de recherche.
Par exemple, considérez l'échelle de calcul basée sur le poids ci-dessous :
Tableau 1. Échelle de calcul basée sur le poids Poids à l'expédition Frais supérieur ou égal à 0 kg 2,00 frais fixes supérieur ou égal à 5 kg 0,25 par kg supérieur ou égal à 10 kg 0,10 par kg supérieur ou égal à 100 kg 0,01 par kg Les frais de port totaux pour un package de 20 kg, en supposant des plages de calcul cumulatives, seront déterminés à l'aide d'un certain nombre de fourchettes de calcul. Le numéro de recherche est 20, mais la partie applicable du numéro de recherche changera au fur et à mesure que le total des frais de port sera calculé. La partie applicable du numéro de recherche est calculée à l'aide de la formule suivante :
min(lookupNumber, rangeEnd) - rangeStartLe tableau suivant illustre les parties applicables du numéro de recherche utilisé :
Tableau 2. Parties applicables des numéros de recherche Numéro de recherche Valeur de départ de la fourchette Valeur de fin de la fourchette Partie applicable du numéro de recherche 20 0 5 5 20 5 10 5 20 10 100 10 Les parties applicables du numéro de recherche sont utilisées pour déterminer le total des frais de port comme suit :
- Le nombre de recherche (20) correspond à la première fourchette. Le résultat monétaire est le résultat de recherche s'appliquant à la partie applicable du numéro de recherche (5). Le total des frais de port est de 2.
- Le numéro de recherche (20) correspond à la deuxième fourchette. Le résultat monétaire (0,25) est le résultat de recherche s'appliquant à la partie applicable du numéro de recherche (5). Les frais de port qui en résultent sont de 1,25. Etant donné que la fourchette de calcul est cumulative, ce montant est ajouté aux frais de port existants. Le total des frais de port est maintenant de 3,25.
- Le numéro de recherche (20) correspond à la troisième fourchette. Le résultat monétaire (0,10) est le résultat de recherche s'appliquant à la partie applicable du numéro de recherche (10). Les frais de port qui en résultent sont de 1,00. Etant donné que la fourchette de calcul est cumulative, ce montant est ajouté aux frais de port existants. Le total des frais de port est maintenant de 4,25.
- Le numéro de recherche (20) ne correspond pas à la quatrième fourchette. Le calcul est terminé. Le total des frais de port est de 4,25.
Si les plages de calcul ne sont pas cumulatives, la partie applicable du numéro de recherche et le numéro de recherche sont identiques. Les frais de port seraient déterminés comme suit :
- Le nombre de recherche (20) correspond à la première fourchette. Le résultat monétaire est le résultat de recherche s'appliquant à la partie applicable du numéro de recherche (20). Le total des frais de port est 2.
- Le numéro de recherche (20) correspond à la deuxième fourchette. Le résultat monétaire (0,25) est le résultat de recherche s'appliquant à la partie applicable du numéro de recherche (20). Les frais de port qui en résultent sont de 5,00. Étant donné que la fourchette de calcul n'est pas cumulative, ce montant remplace les frais de port existants. Le total des frais de port est maintenant de 5,00.
- Le numéro de recherche (20) correspond à la troisième fourchette. Le résultat monétaire (0,10) est le résultat de recherche s'appliquant à la partie applicable du numéro de recherche (20). Les frais de port qui en résultent sont de 2,00. Étant donné que la fourchette de calcul n'est pas cumulative, ce montant remplace les frais de port existants. Le total des frais de port est maintenant de 2,00.
- Le numéro de recherche (20) ne correspond pas à la quatrième fourchette. Le calcul est terminé. Le total des frais de port est 2.
Tableaux de base de données pour les échelles de calcul et les fourchettes de calcul
Les informations relatives à une échelle de calcul et aux fourchettes de calcul qui composent l'échelle sont séparées en différentes tables. Les tables de base de données HCL Commerce ci-dessous définissent les échelles de calcul et les fourchettes de calcul :
- CALSCALE
- Définit les échelles de calcul.
- CALSCALEDS
- Contient des descriptions de langue nationale d'une échelle de calcul. Cela permet à une échelle de calcul d'avoir des descriptions dans plusieurs langues.
- CRULESCALE
- Relie une échelle de calcul à une règle de calcul. Une règle de calcul peut avoir plusieurs échelles de calcul et une échelle de calcul peut être utilisée par plusieurs règles de calcul.
- CALRANGE
- Définit les fourchettes de calcul qui composent une échelle de calcul.
- CALRLOOKUP
- Contient les résultats de recherche pour des fourchettes de calcul. Les devises des résultats de recherche, des attributs facultatifs, sont également spécifiées dans cette table de base de données.
Diagramme de modèles d'échelles de calcul et de fourchettes de calcul
Le diagramme de modèles de données suivant illustre les relations entre les tables de base de données pour définir les échelles de calcul et les fourchettes de calcul.
Méthodes de calcul pour les échelles de calcul
Trois sous-classes de méthodes de calcul sont associées aux échelles de calcul :
- MonetaryCalculationScaleLookup
- QuantityCalculationScaleLookup
- CalculRange
Une QuantityCalculationScaleLookup s'applique aux échelles de calcul de la quantité, tandis qu'une MonetaryCalculationScaleLookup s'applique aux échelles de calcul monétaire.
Méthodes de calcul CalculationScaleLookup
Les méthodes de calcul MonetaryCalculationScaleLookup et QuantityCalculationScaleLookup déterminent un certain nombre de valeurs requises pour effectuer une recherche de fourchette et calculent les montants monétaires à l'aide du résultat de recherche. Les méthodes de calcul utilisent un ensemble d'articles de commande, une règle de calcul et une échelle de calcul transmis par la méthode de calcul CalculationRuleCalculate pour déterminer les éléments suivants :
- Valeur monétaire de base
- Montant que la méthode de calcul CalculationRange peut utiliser pour calculer un montant monétaire.
- Numéro de recherche
- Valeur comparée aux fourchettes de l'échelle de calcul pour trouver un résultat de recherche.
- Poids mathématiques
- Les poids mathématiques sont des valeurs qui sont utilisées pour répartir le montant monétaire total calculé à l'aide d'une échelle de calcul sur chacun des articles de la commande dans l'ensemble qui est transmis à la méthode de calcul CalculationScaleLookup . La méthode de calcul CalculationScaleLookup renvoie un poids mathématique pour chaque article de l'ensemble.
Le montant monétaire total est réparti en fonction du pourcentage du poids mathématique total que représente le poids mathématique d'un article de la commande. Si le poids mathématique d'un article de la commande représente 23 % du poids mathématique total des articles traités, le montant monétaire de l'article équivaut à 23 % du montant monétaire total déterminé pour l'échelle de calcul.
Par exemple, supposons que les montants monétaires de trois OrderItems (ItemA, ItemB et ItemC) sont en cours de détermination et que le montant monétaire total déterminé pour l'échelle de calcul est de 156 $. Le tableau suivant montre comment les poids mathématiques répartissent le montant monétaire total sur les OrderItems :
Tableau 3. Exemple de répartition du montant monétaire total à l'aide de poids mathématiques Article de commande Poids mathématique Pourcentage du total des poids mathématiques Calcul Montant monétaire de l'OrderItem ItemA 9 18% 156 $*0,18 28,08 $ ItemB 25 50% 156 $*0,50 78 $ ItemC 16 32 % $156*0,32 $49,92 - Multiplicateur de résultat
- Le multiplicateur de résultat précise la valeur par laquelle la valeur monétaire résultante doit être multipliée pour calculer un montant monétaire pour l'ensemble d'OrderItems.
Les méthodes de calcul MonetaryCalculationScaleLookup et QuantityCalculationScaleLookup renvoient la valeur monétaire de base, le numéro de recherche, l'ensemble des poids mathématiques et l'ensemble de multiplicateurs de résultat à la méthode de calcul CalculationRuleCalculate. CalculRuleCalculate trouve ensuite le résultat de recherche de la fourchette de calcul correspondant à la valeur de recherche et transmet la partie applicable du résultat de recherche à CalculationRange. La partie applicable du résultat de recherche dépend du fait que la fourchette de calcul est cumulative ou non. CalculationRange renvoie un montant monétaire. Le montant monétaire renvoyé est ensuite réparti au sein de l'ensemble d'OrderItems en fonction des poids mathématiques calculés pour chaque article de la commande.
Pour plus d'informations, voir Méthode de calcul CalculationRange.
La section suivante traite des méthodes de calcul CalculationScaleLookup et CalculationRange ainsi que des implémentations par défaut fournies avec HCL Commerce. Vous trouverez des informations supplémentaires sur les interfaces et les commandes qui implémentent les sous-classes des méthodes de calcul dans la documentation API disponible en ligne.
Méthodes de calcul MonetaryCalculationScaleLookup
Pour les méthodes de calcul MonetaryCalculationScaleLookup, le numéro de recherche et les valeurs monétaires de base qui sont déterminées par la méthode sont tous deux des montants monétaires. Les montants pour déterminer le numéro de recherche et les valeurs monétaires de base sont différents selon la mise en œuvre de la méthode de recherche pour l'échelle de calcul monétaire. Voici quelques valeurs couramment utilisées dans la structure de calcul :
- Prix net
- La valeur du prix net est le prix unitaire de l'article de la commande (ORDERITEMS.PRICE) multiplié par la quantité (ORDERITEMS.QUANTITY) plus la somme de tous les ajustements associés à l'article.
- Prix hors remise
- La valeur pour le prix hors remise est le prix unitaire de l'article de la commande (ORDERITEMS.PRICE) multiplié par la quantité (ORDERITEMS.PRICE).
- Prix net assujetti à la taxe
- La valeur du prix net assujetti à la taxe utilisée pour une catégorie de taxe particulière est le prix hors remise plus la somme de tous les ajustements des articles de la commande soumis à la taxe pour la catégorie. La valeur du prix net assujetti à la taxe peut être différente pour chaque catégorie de taxe puisque des articles et des ajustements différents peuvent être sujets à des catégories différentes.
- Prix unitaire assujetti à la taxe
- La valeur du prix unitaire assujetti à la taxe utilisée pour une catégorie de taxe particulière est le prix net assujetti à la taxe de l'article de la commande divisé par la quantité (ORDERITEMS.QUANTITY). L'ajustement assujetti à la taxe par unité est le total de tous les ajustements des articles de la commande soumis à la taxe pour la catégorie de taxe et divisé par la quantité (ORDERITEMS.QUANTITY).
- Prix unitaire
- La valeur du prix unitaire est le prix unitaire d'un OrderItem (ORDERITEMS.PRICE) plus l'ajustement par unité pour l'OrderItem. L'ajustement par unité est le total de tous les ajustements des articles de la commande divisé par la quantité (ORDERITEMS.QUANTITY).
Les méthodes de calcul MonetaryCalculationScaleLookup doivent étendre l'interface CalculationScaleLookupCmd. Pour plus d'informations, voir l'interface CalculationScaleLookupCmd.
Les méthodes de calcul MonetaryCalculationScaleLookup suivantes sont fournies avec HCL Commerce :
- NetPriceCalculationScaleLookupCmdImpl
- NetPriceWithQuantityAsResultMultiplierCalculationScaleLookupCmdImpl
- NetShippingCalculationScaleLookupCmdImpl
- NonDiscountedPriceCalculationScaleLookupCmdImpl
- TaxableNetPriceCalculationScaleLookupCmdImpl
- TaxableNetPriceTaxOnTaxCalculationScaleLookupCmdImpl
- TaxableNetPricePlusNetShippingCalculationScaleLookupCmdImpl
- TaxableUnitPriceCalculationScaleLookupCmdImpl
- TaxableUnitPricePlusUnitShippingCalculationScaleLookupCmdImpl
- UnitPriceCalculationScaleLookupCmdImpl
- UnitShippingCalculationScaleLookupCmdImpl
NetPriceCalculationScaleLookupCmdImpl
Cette commande convient au calcul des remises ou des barèmes de frais de port en fonction d'un tarif réduit.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- La somme des prix nets des OrderItems
- Poids mathématiques
- Le prix net de chaque OrderItem
- Multiplicateur de résultat
- Un
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
NetShippingCalculationScaleLookupCmdImpl
Cette commande convient pour le calcul des barèmes de taxe sur les frais de port.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme de tous les frais de port pour les OrderItems (ORDERITEMS.SHIPCHARGE)
- Numéro de recherche
- La somme de tous les frais de port pour les OrderItems (ORDERITEMS.SHIPCHARGE)
- Poids mathématiques
- Les frais de port pour chaque OrderItem
- Multiplicateur de résultat
- Un
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
NonDiscountedPriceCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes de frais de port et certains types de remises. Par exemple, si une remise en pourcentage est basée sur le prix hors remise d'un article, deux remises successives de 10 % donneraient au client une remise totale de 20 %. Si la remise est basée sur le prix net d'un article, deux remises successives de 10 % donneraient au client une remise totale de 19 %, car la deuxième remise est basée sur le prix de l'article moins la première remise (ou 90 % du prix original hors remise).
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix hors remise des OrderItems
- Numéro de recherche
- La somme des prix hors remise des OrderItems
- Poids mathématiques
- Le prix hors remise de chaque OrderItem
- Multiplicateur de résultat
- Un
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
TaxableNetPriceCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes de la taxe sur les ventes.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets assujettis à la taxe des OrderItems
- Numéro de recherche
- La somme des prix nets assujettis à la taxe des OrderItems
- Poids mathématiques
- Le prix net assujetti à la taxe de chaque OrderItem
- Multiplicateur de résultat
- Un
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
TaxableNetPriceTaxOnTaxCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes de la taxe sur les ventes.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets assujettis à la taxe des OrderItems, plus les montants de taxes déjà appliqués aux OrderItems.
- Numéro de recherche
- La somme des prix nets assujettis à la taxe des OrderItems.
- Poids mathématiques
- Le prix net assujetti à la taxe de chaque OrderItem.
- Multiplicateur de résultat
- Un
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
TaxableNetPricePlusNetShippingCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes combinés de la taxe sur les ventes et de la taxe afférente aux frais de port.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets assujettis à la taxe plus la somme de tous les frais de port pour les OrderItems (ORDERITEMS.SHIPCHARGE)
- Numéro de recherche
- La somme des prix nets assujettis à la taxe plus la somme de tous les frais de port pour les OrderItems (ORDERITEMS.SHIPCHARGE)
- Poids mathématiques
- Le prix net assujetti à la taxe pour chaque OrderItem plus les frais de port pour chaque OrderItem divisé par la quantité d'OrderItem (ORDERITEMS.QUANTITY)
- Multiplicateur de résultat
- Un
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
TaxableUnitPriceCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes de la taxe sur les ventes par article, en particulier lorsqu'une taxe maximale par article est spécifiée. Vous ne devez utiliser cette commande que lorsque les articles de la commande sont regroupés par offre. Le regroupement est déterminé par l'attribut de méthode de regroupement du code de calcul.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets assujettis à la taxe divisée par la somme des quantités d'OrderItem
- Numéro de recherche
- La somme des prix nets assujettis à la taxe divisée par la somme des quantités d'OrderItem
- Poids mathématiques
- Le prix unitaire assujetti à la taxe pour chaque OrderItem
- Multiplicateur de résultat
- La somme des quantités d'OrderItem
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
TaxableUnitPricePlusUnitShippingCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes combinés de la taxe sur les ventes et de la taxe afférente aux frais de port par article, en particulier lorsqu'une taxe maximale par article est spécifiée. Vous ne devez utiliser cette commande que lorsque les articles de la commande sont regroupés par offre. Le regroupement est déterminé par l'attribut de méthode de regroupement du code de calcul.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets assujettis à la taxe plus la somme de tous les frais de port pour les OrderItems, divisée par la somme des quantités d'OrderItem
- Numéro de recherche
- La somme des prix nets assujettis à la taxe pour les OrderItems, divisée par la somme des quantités d'OrderItem
- Poids mathématiques
- Les prix nets assujettis à la taxe plus les frais, divisés par la quantité d'OrderItem (ORDERITEMS.QUANTITY), pour chaque OrderItem
- Multiplicateur de résultat
- La somme des quantités d'OrderItem
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
UnitPriceCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes des remises et des frais de port qui spécifient des frais fixes ou maximum par article en fonction du prix unitaire de chaque article. Utilisez cette commande uniquement lorsque les articles sont regroupés par offre. Le regroupement est déterminé par l'attribut de méthode de regroupement du code de calcul.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets divisée par la somme des quantités d'OrderItem
- Numéro de recherche
- La somme des prix nets divisée par la somme des quantités d'OrderItem
- Poids mathématiques
- Le prix net divisé par la quantité d'OrderItem (ORDERITEMS.QUANTITY), pour chaque OrderItem
- Multiplicateur de résultat
- La somme des quantités d'OrderItem
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
UnitShippingCalculationScaleLookupCmdImpl
Cette commande est appropriée pour les barèmes de la taxe afférente aux frais de port par article, en particulier lorsqu'une taxe maximale par article peut être spécifiée.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des frais de port pour les OrderItems divisée par la somme des quantités d'OrderItem
- Numéro de recherche
- La somme des frais de port pour les OrderItems divisée par la somme des quantités d'OrderItem
- Poids mathématiques
- Les frais de port divisés par la quantité d'OrderItem (ORDERITEMS.QUANTITY), pour chaque OrderItem
- Multiplicateur de résultat
- La somme des quantités d'OrderItem
Le numéro de recherche est converti en devise de l'échelle de calcul. Si aucune conversion n'est possible, cette méthode de calcul renvoie la valeur null.
Pour que le numéro de recherche soit converti en devise de l'échelle de calcul, la conversion de la devise de l'échelle de calcul à la devise de commande doit être définie dans HCL Commerce.
Méthodes de calcul QuantityCalculationScaleLookup
Pour les méthodes de calcul QuantityCalculationScaleLookup , le numéro de recherche est une valeur qui peut ou non avoir une unité de mesure associée. Voici quelques valeurs communes qui sont utilisées dans la structure de calcul :
- Quantité réelle
- La quantité réelle d'un OrderItem est la quantité de l'OrderItem (ORDERITEMS.QUANTITY) multipliée par la quantité nominale de l'article (CATENTSHIP.NOMINALQUANTITY).
- Prix net
- La valeur du prix net est le prix unitaire de l'OrderItem (ORDERITEMS.PRICE) multipliée par la quantité de l'OrderItem (ORDERITEMS.QUANTITY) plus la somme de tous les ajustements associés à l'OrderItem.
Les méthodes de calcul QuantityCalculationScaleLookup sont fournies avec HCL Commerce
- QuantityCalculationScaleLookupCmdImpl
- QuantitySpreadByNetPriceCalculationScaleLookupCmdImpl
- WeightCalculationScaleLookupCmdImpl
- WeightSpreadByNetPriceCalculationScaleLookupCmdImpl
QuantityCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes des frais de port.
Si l'échelle de calcul comporte une unité de mesure qui lui est associée, les valeurs calculées sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- La somme des quantités réelles des OrderItems, converties dans l'unité de mesure de l'échelle de calcul
Si aucune conversion n'est possible, l'échelle de calcul n'est pas utilisée par la règle de calcul d'appel.
- Poids mathématiques
- La quantité réelle de chaque OrderItem
- Multiplicateur de résultat
- Un seul
Si l'échelle de calcul n'est pas associée à une unité de mesure, les valeurs calculées sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- Somme des quantités d'OrderItem (ORDERITEMS.QUANTITY)
- Poids mathématiques
- La quantité d'OrderItem (ORDERITEMS.QUANTITY) de chaque OrderItem
- Multiplicateur de résultat
- Un seul
QuantitySpreadByNetPriceCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes de remise ou de frais de port.
Si l'échelle de calcul comporte une unité de mesure qui lui est associée, les valeurs calculées sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- Somme des quantités réelles des OrderItems, converties en unité de mesure de l'échelle de calcul.
Si aucune conversion n'est possible, l'échelle de calcul n'est pas utilisée par la règle de calcul d'appel.
- Poids mathématiques
- Le prix net de chaque OrderItem
- Multiplicateur de résultat
- Un seul
Si l'échelle de calcul n'est pas associée à une unité de mesure, les valeurs calculées sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- La somme des quantités d'OrderItem (ORDERITEMS.QUANTITY)
- Poids mathématiques
- Le prix net de chaque OrderItem
- Multiplicateur de résultat
- Un seul
WeightCalculationScaleLookupCmdImpl
Cette commande convient pour les barèmes de remise ou de frais de port.
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- La somme des poids à l'expédition (CATENTSHIP.WEIGHT) multipliée par la quantité (ORDERITEMS.QUANTITY) des OrderItems. Le total est converti dans l'unité de mesure de l'échelle de calcul.
- Poids mathématiques
- Le poids à l'expédition (CATENTSHIP.WEIGHT) multiplié par la quantité (ORDERITEMS.QUANTITY) de chaque OrderItem
- Multiplicateur de résultat
- Un seul
WeightSpreadByNetPriceCalculationScaleLookupCmdImpl
Les valeurs calculées par cette commande sont les suivantes :
- Valeur monétaire de base
- La somme des prix nets des OrderItems
- Numéro de recherche
- La somme du poids à l'expédition (CATENTSHIP.WEIGHT) multipliée par la quantité (ORDERITEMS.QUANTITY) des OrderItems
- Poids mathématiques
- Le prix net de chaque article
- Multiplicateur de résultat
- Un seul
Méthode de calcul CalculationRange
La méthode de calcul CalculationRange calcule un montant monétaire pour une fourchette de calcul particulière. La méthode de calcul CalculationRuleCalculate appelle la méthode de calcul CalculationRange et lui transmet les paramètres suivants :
- Devise
- C'est la devise de commande. Le montant monétaire renvoyé sera dans cette devise.
- Résultat de recherche de la fourchette de calcul
- Il s'agit de la valeur obtenue à partir de la table de base de données CALRLOOKUP à l'aide du numéro de recherche.
- Partie applicable du numéro de recherche
- Ce nombre est basé sur le numéro de recherche déterminé par la méthode de calcul CalculationScaleLookup. La partie applicable du numéro de recherche peut être déterminée comme suit :
- Fourchettes de calcul non cumulatives :
- La partie applicable du numéro de recherche est la même que le numéro de recherche.
- Fourchettes de calcul cumulatives :
- La partie applicable du numéro de recherche est déterminée par la formule suivante :
Où :min(lookupNumber, rangeEnd) - rangeStart- lookupNumber
- Numéro de recherche déterminé par la méthode de calcul CalculationScaleLookup.
- rangeEnd
- Attribut rangeStart (CALRANGE.RANGESTART) de la plage de calcul suivante dans la liste des fourchettes de calcul à traiter. S'il n'y a plus de fourchettes de calcul à traiter, rangeEnd est l'infini.
- rangeStart
- Attribut rangeStart (CALRANGE.RANGESTART) de la fourchette de calcul en cours de traitement.
- Valeur monétaire de base applicable
- Ce nombre est basé sur la valeur monétaire de base déterminée par la méthode de calcul CalculationScaleLookup. La valeur monétaire de base applicable est déterminée comme suit :
- Fourchettes de calcul non cumulatives :
- La valeur monétaire de base applicable est la même que la valeur monétaire de base.
- Fourchettes de calcul cumulatives :
- La valeur monétaire de base applicable est déterminée selon la formule suivante :
Où :min(baseMonetaryValue, rangeEnd*unitValue) - rangeStart*unitValue- baseMonetaryValue
- Valeur monétaire de base déterminée par la méthode de calcul CalculationScaleLookup.
- rangeEnd
-
Attribut rangeStart (CALRANGE.RANGESTART) de la plage de calcul suivante dans la liste des fourchettes de calcul à traiter. S'il n'y a plus de fourchettes de calcul à traiter, rangeEnd est l'infini.
- rangeStart
-
Attribut rangeStart (CALRANGE.RANGESTART) de la fourchette de calcul en cours de traitement.
- unitValue
-
Valeur monétaire de base divisée par le numéro de recherche. La valeur monétaire de base et le numéro de recherche sont déterminés par la méthode de calcul CalculationScaleLookup.
PercentageCalculationRangeCmdImpl
Cette commande s'attend à ce que le résultat de recherche de la fourchette de calcul ne soit pas un montant monétaire. Si le résultat de recherche de la fourchette de calcul a une devise, la devise est ignorée. Cette méthode de calcul CalculationRange calcule un montant monétaire en divisant le résultat de recherche de la fourchette de calcul par 100 et en multipliant le résultat par la valeur monétaire de base applicable.
PerUnitAmountCalculationRangeCmdImpl
Cette commande s'attend à ce que le résultat de recherche de la fourchette de calcul soit un montant monétaire. Si le montant monétaire n'est pas dans la devise spécifiée, cette commande convertit le résultat de recherche dans la devise spécifiée (si la conversion de devise est définie). Dans le cas contraire, cette méthode de fourchette de calcul calcule un montant monétaire en multipliant le résultat de recherche de fourchette par la partie applicable du numéro de recherche.
FixedAmountCalculationRangeCmdImpl
Cette commande s'attend à ce que le résultat de recherche de la fourchette de calcul soit un montant monétaire. Si le montant monétaire n'est pas dans la devise spécifiée, cette commande convertit le résultat de recherche dans la devise spécifiée (si la conversion de devise est définie). Le résultat de recherche de la fourchette est renvoyé en tant que montant monétaire et aucun autre calcul n'est effectué par cette commande.
Utilisation des échelles de calcul et des fourchettes de calcul
Les échelles de calcul et les fourchettes de calcul sont utilisées par les méthodes de CalculationRuleCalculate pour déterminer un montant monétaire pour chaque article de la commande dans une liste. L'implémentation par défaut de CalculationRuleCalculate effectue les étapes suivantes pour obtenir des montants monétaires à l'aide des échelles de calcul et des règles de calcul :
- Définit les montants monétaires calculés pour chaque OrderItem à zéro.
- Définit le montant monétaire total de l'échelle de calcul à zéro.
- Transmet la liste des OrderItems à la méthode de calcul CalculationScaleLookup. La méthode de calcul CalculationScaleLookup renvoie les valeurs suivantes :
- Un numéro de recherche
- Une valeur monétaire de base
- Un multiplicateur de résultat
- Un ensemble de poids mathématiques, un pour chaque OrderItem
- Recherche des fourchettes de calcul qui correspondent au numéro de recherche. La méthode de calcul CalculationRuleCalculate détermine les échelles de calcul utilisées pour déterminer les fourchettes de calcul.
Une fourchette de calcul correspond à un numéro de recherche supérieur ou égal à la valeur de départ de la fourchette (CALRANGE.RANGESTART). Si la valeur de départ d'une fourchette de calcul n'est pas définie, la fourchette de calcul correspond toujours au numéro de recherche.
Les fourchettes de calcul sont trouvées à l'aide du numéro de recherche pour localiser les fourchettes dans la table de base de données CALRANGE. Les ID des fourchettes de calcul sont utilisés ultérieurement pour trouver des résultats de recherche.
- Trie les fourchettes de calcul dans un ordre croissant, en commençant par la valeur de départ des fourchettes.
- Traite chaque fourchette de calcul en effectuant les étapes suivantes :
- Obtient des résultats de recherche de la fourchette de calcul pour la fourchette de calcul si le numéro de recherche est supérieur ou égal à la valeur de départ de la fourchette de calcul en cours de traitement et si l'une des conditions suivantes est remplie :
- Il s'agit de la dernière fourchette de calcul en cours de traitement.
- Le numéro de recherche est inférieur à la valeur de départ de la fourchette de calcul suivante à traiter.
- La fourchette de calcul est cumulative.
Les résultats de recherche de fourchette de calcul sont obtenus à l'aide de l'ID de la fourchette de calcul pour localiser les résultats de recherche dans la table de base de données CALRLOOKUP.
Tous les résultats de recherche de fourchette de calcul doivent être associés ou non à une devise. Le comportement lorsque certains résultats de recherche de fourchette de calcul sont associés à une devise et que certains ne le sont pas est n'est pas défini. De telles configurations sont déconseillées.
- Obtient un montant monétaire pour les résultats de recherche pour les fourchettes de calcul en procédant de l'une des manières suivantes :
- Traite les résultats de recherche associés aux devises. Voir Traitement des résultats de recherche associés aux devises.
- Traite les résultats de recherche non associés aux devises. Voir Traitement des résultats de recherche non associés aux devises.
- Multiplie le montant monétaire obtenu par le multiplicateur de résultat et fait l'une des choses suivantes avec la valeur résultante :
- Fourchettes de calcul non cumulatives :
- Remplace le montant monétaire total actuel de l'échelle de calcul par la valeur résultante.
- Fourchettes de calcul cumulatives :
- Ajoute la valeur résultante au montant monétaire total de l'échelle de calcul.
- Obtient des résultats de recherche de la fourchette de calcul pour la fourchette de calcul si le numéro de recherche est supérieur ou égal à la valeur de départ de la fourchette de calcul en cours de traitement et si l'une des conditions suivantes est remplie :
- Répartit le montant monétaire total de l'échelle de calcul sur les articles de la commande proportionnellement au poids mathématique attribué à chaque article.
Traitement des résultats de recherche associés aux devises
Lorsqu'une fourchette de calcul a plusieurs résultats de recherche dans plusieurs devises, il existe deux situations possibles :
- La liste des devises du résultat contient la devise de la commande.
- La liste des devises du résultat ne contient pas la devise de la commande.
Les devises du résultat de recherche contiennent la devise de commande
Il ne devrait y avoir qu'un seul résultat de recherche de fourchette de calcul avec une devise qui correspond à la devise de la commande. Si plusieurs résultats de recherche de fourchette de calcul partagent la devise de la commande, une exception est générée.
Le résultat de recherche de fourchette de calcul est traité en appelant une méthode de calcul CalculationRange pour obtenir un montant monétaire. Pour plus d'informations, voir Appel d'une méthode de calcul CalculationRange.
Les devises du résultat de recherche ne contiennent pas la devise de commande
Si aucune des devises des résultats de recherche ne correspond à la devise de la commande, les montants monétaires pour les résultats de recherche sont obtenus en effectuant les étapes suivantes :
- Convertissez les résultats de recherche dans la devise de la commande. Si la conversion de la devise de résultat de recherche à la devise de la commande n'est pas définie dans WebSphere Commerce, le résultat de recherche est supprimé de la liste des résultats de recherche à traiter.
- Pour chacun des résultats de recherche convertis, une méthode de calcul CalculationRange est appelée pour obtenir un montant monétaire pour chacun des résultats de recherche convertis. Pour plus d'informations, voir Appeler un méthode de calcul CalculationRange.
- Comparez les montants monétaires pour chacun des résultats de recherche. La valeur la plus basse est considérée comme le montant monétaire valide.
Traitement des résultats de recherche non associés aux devises
Si les résultats de recherche de fourchette de calcul ne sont pas associés à une devise, un seul résultat de recherche doit être trouvé. Si plusieurs résultats de recherche non associés à des devises sont trouvés, une exception est générée.
Le résultat de recherche de fourchette de calcul est traité en appelant une méthode de calcul CalculationRange pour obtenir un montant monétaire. Pour plus d'informations, voir Appeler un méthode de calcul CalculationRange.
Appel d'une méthode de calcul CalculationRange
Pour obtenir un montant monétaire à partir d'une méthode de calcul CalculationRange, appelez une méthode de calcul CalculationRange, en lui transmettant les paramètres suivants :
- Une devise de commande
- Un résultat de recherche de fourchette de calcul
- La partie applicable du numéro de recherche
- La valeur monétaire de base applicable
La valeur du montant monétaire dépend de la méthode de calcul CalculationRange appelée. Pour plus d'informations sur les différentes méthodes de calcul de CalculationRangee fournies par HCL Commerce et les définitions des paramètres requis par les méthodes de calcul CalculationRange, voir Méthode de calcul CalculationRange.