Codes de remise
Une remise est une réduction de prix offerte aux clients pour promouvoir un achat. Un code de remise est un code de calcul dont l'utilisation de calcul est "remise". Il est utilisé pour calculer les ajustements de l'article de commande. Chaque ligne de la table CALCODE représente un CalculationCode. CalculationCodes représentent des moyens de déterminer les montants monétaires associés à OrderItems. Ils sont utilisés pour calculer les remises, les frais d'expédition, la taxe de vente et la taxe d'expédition. Un CalculationCode joint peut être limité à des TradingAgreements spécifiques.
Deux dimensions sont impliquées dans le fait de joindre un code de réduction à un produit ou à un groupe de produits. D'abord, la remise peut être associée à une ou plusieurs entrées de catalogue et à des groupes de 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.
Ensuite, les articles de commande sont regroupés pour le calcul d'après l'une des quatre approches suivantes : par accord commercial, par produit, par offre ou par adresse de livraison. Ceci est spécifié par l'attribut groupBy. Un calcul distinct est effectué pour chaque groupe d'objets OrderItem. Si aucun regroupement n'est spécifié, tous les OrderItems associés à un objet CalculationCode particulier sont utilisés pour effectuer un seul calcul. Voici les attributs utilisés pour calculer différents types de remises :
- Remises calculées par accord commercial
- L'attribut perTradingAgreement signifie que tous les articles de commande d'un groupe doivent avoir le même accord commercial pour que le code de calcul soit appliqué.
- Remises calculées par produit
- L'attribut perProduct signifie que tous les articles de commande d'un groupe doivent être associés au même produit pour que le code de calcul soit appliqué. (Le produit peut être soit l'entrée de catalogue mère de l'article de catalogue, selon le type de relation PRODUCT_ITEM dans la table de base de données CATRELTYPE (s'il y en a un), soit simplement l'article de catalogue lui-même.)
- Remises calculées par offre
- Le regroupement d'attributs perOffer convient aux codes de calcul de taxe.
- Remises calculées par adresse de livraison
- Bien que normalement utilisé pour le calcul des frais de port, l'attribut perShippingAddress groupBy peut également être utilisé pour regrouper les articles de commande pour les codes de remises en fonction de leurs adresses de livraison.
Les produits peuvent bénéficier de plus d'une remise. De même, les groupes de membres peuvent avoir droit à plus d'une remise. Lorsque plusieurs codes de calcul de remise s'appliquent à un objet Order, les calculs de remise sont effectués par ordre croissant des attributs de séquence de leur objet CalculationCode. Cela limite un code de calcul à une utilisation par certains groupes de membres uniquement, tel que défini dans la table CALCODEMGP. Comme pour tous les codes de calcul, plusieurs codes de remise peuvent être associés à chaque produit et les codes de remise peuvent être limités à une utilisation par certains groupes de membres uniquement.