Codes de calcul pour les commandes
Les codes de calcul représentent des moyens de déterminer les montants monétaires associés aux OrderItems. L'objet CalculationCode et ses objets CalculationMethod associés définissent comment calculer des montants tels que les ajustements de prix (coupons et remises), les frais de livraison et les taxes.
Les instructions OrderCalculate et OrderPrepare déterminent quels types de calculs doivent être effectués en inspectant la table STENCALUSG. OrderCalculate acceptera le paramètre "calculationUsageId", qui déterminera les types de frais calculés dans OrderCalculate. (Vous pouvez définir d'autres types de calculs à effectuer et fournir ou étendre la logique commerciale associée à chaque type de calcul.)
Les objets CalculationMethod par défaut déterminent quels objets CalculationCode s'appliquent aux articles d'une commande en recherchant des relations d'association dans les tables CATENCALCD, CATGPCALCD, ORDCALCD et ORDICALCD. Ils calculent leurs quantités et, en plus des attributs quantitatifs du produit tels que le poids, la quantité et le prix, ils tiennent compte des attributs suivants :
- Code de calcul
- Appartenance à un groupe de membres
- Echelles de calcul
- Dates de début et de fin
- Séquence dans laquelle les calculs doivent être effectués
Les responsables produit peuvent définir des objets CalculationCode et les attacher à des entrées ou des groupes de catalogues dans leurs catalogues. L'association d'un code de calcul à un groupe de catalogue a le même effet que lorsqu'on associe directement ce code de calcul à toutes les entrées de catalogue du groupe de catalogue. Plus d'un code de calcul de remise ou de frais de port peut être joint à une entrée de catalogue. Les montants seront calculés pour chaque code de calcul. Toutefois, si plus d'un code de calcul de taxe d'un type de taxe particulier est joint à une entrée de catalogue, le calcul n'utilise que celui qui présente l'attribut de séquence le plus élevé. Vous pouvez également limiter un CalculationCode joint à des TradingAgreement spécifiques. Les codes de calcul joints aux entrées et groupes de catalogues sont considérés comme étant indirectement joints aux objets OrderItem qui font référence à ces entrées de catalogue.
Les représentants du service clientèle du magasin peuvent directement joindre des objets CalculationCode à des objets Order ou OrderItem spécifiques, afin d'écraser les remises et les frais de port qui seraient autrement calculés par des codes de calcul indirectement joints. Les objets Calculationcode directement joints à une commande sont considérés comme directement joints à tous les OrderItems de cette commande.
Les codes de calcul peuvent être limités à une utilisation par les clients admissibles. Lorsque l'attribut CalculationCode spécifie le bit "restreint", la CalculationCodeQualify CalculationMethod est appelée. L'implémentation par défaut de cette méthode permet d'utiliser le code de calcul uniquement si le client apparaît dans l'un des objets du groupe de membres répertoriés dans la table CALCODEMGP, et uniquement si le groupe de membres apparaît également dans la table STOREMBRGP pour le magasin.
Si la commande contient une promotion sur les frais de port arrivée à expiration, elle est retirée de la commande lors de l'exécution d'OrderCalculate ou d'OrderPrepare.
La table de base de données PX_PROMOARG contient les informations sur toutes les promotions appliquées à une commande.