The discount library allows flexible and centralized control over commercial discounts directly from the catalog. It provides a structured way to define, organize, and apply multiple discount levels across families, series, articles, or variants. This enables users to manage complex discount policies consistently across users, markets, and commercial price lists — while maintaining a single, reliable reference structure in the catalog.
By linking discounts to commercial price lists, users can easily adapt promotional strategies, combine discounts and price increases, manage temporary or customer-specific discounts, and ensure accurate calculation during the price determination process. See the article The multi pricelist manager for addional information.
Key benefits
Precision and control: Define detailed discount structures with up to five levels, ensuring accurate application by product family, article, or variant.
Dynamic configuration: Easily associate multiple discounts with each commercial price list and set priorities for application.
Consistency across channels: Centralized management guarantees that discounts are applied uniformly across stores, markets, and users.
Flexibility for promotions: Quickly create and activate temporary or customer-specific discount campaigns without altering the base catalog.
Simplified maintenance: Manage all discount rules in one interface, reducing duplication and potential errors.
Compatibility with multi-pricelist architecture: Fully integrated with commercial price lists, allowing seamless calculation of prices and discounts together.
Architecture and database
Key architectural principles:
discounts are defined in a centralized library
commercial lists reference discounts through association table (AssocCommercialListDiscount)
Tables involved
CommercialLists: Commercial pricelist management and configuration. See the article The multi pricelist manager for addional information.
DiscountLibrary: Discount library and structure.
AssocCommercialListDiscount: Association between price lists and discounts; manages application priority.
DiscountLibrary table structure
Manages the discount library, allowing you to define specific discounts for product families, items, series, or variants/options.
Discounts can be composed on multiple levels (Disc1, Disc2, …, Disc5), enabling incremental discount management.
Cod: Discount identifier code.
-
DiscType: Discount type:
Effective: Effective discount applied.
MaxDiscount: Maximum discount threshold applicable. Learn more more about it here.
-
Application criteria:
-
Family: Product merchandise category (field
CATMERin the Articles table).Note! You need to register your product categories in LayEdit > Layer 3 > Prices > Product Categories
to make the Family visible in the Supervisor. Model: Technical model (field
MODELLOin the Articles table).Article: Item code (field
CODin the Articles table).Variant/options: Variant code and options (e.g.,
VAR1=OPZ1,VAR2=OPZ2, etc.).
Note: If multiple concatenated options are present in the variant, the validation criterion follows the AND logic: all conditions must be met for the discount to be applied.
-
ValidityDate: Discount validity date. The format must be YYYYMMDD (e.g.,
19990101for January 1, 1999).
Disc1–Disc5: Up to 5 numerical discount levels, applied sequentially (e.g., first discount 10%, second 5%, etc.). Discounts are incremental.
AssocCommercialListDiscount table structure
Linking table between commercial price lists (CommercialLists) and discounts (DiscountLibrary). Allows associating one or more discounts with each pricelist and defining their application priority within that list.
codClist: Commercial pricelist code – corresponds to
CommercialLists.cod.codDiscount: Discount code – corresponds to
DiscountLibrary.cod.priority: Integer determining the order in which the discount is applied within the multi price list. Priority is between discount and list, not between the internal criteria of the discount.
Typical use: Manages which discounts and in which order are applied to each commercial price list, enabling flexible configuration of discount strategies on a list basis.
Configuration of Discounts Library in the interface
The configuration of the Discounts Library is accessible through the Supervisor tool in 3CAD Next:
Path: Supervisor → Catalog → Discounts Library
This section allows you to manage all discount rules applicable to the price lists.
Note: You must select the reference catalog (via the top menu) to view, filter, and configure the discounts related to that specific catalog. This is essential in environments with more than one catalog available.
Click here to view full screen.
Note: The discount creation form has been enhanced by utilizing a generic currency symbol (¤) in place of the Euro sign (€). More details are available here.
Price calculation (focus on discounts)
To enable the calculation, the new newPriceEngine2025 flag must be set in web.config.
Note: To set it, you need to submit a request to the R&D department.
Simplified calculation algorithm
Determine the base price:
Base prices are taken from the ARTLIST, ARTIMAGG, and ARTICOLI tables or, if available, replaced by external prices.
Select the applicable commercial price list:
The system identifies the commercial price list associated with the user, shop, or country. If multiple lists are available, the user can select the one to use.
Retrieve associated discounts:
The selected commercial price list is linked to one or more discounts defined in the DiscountLibrary. The system retrieves these based on the associations in the AssocCommercialListDiscount table.
-
Apply discount hierarchy and priorities:
Discounts are applied sequentially according to their defined priority in the linking table. Within each discount, the levels Disc1–Disc5 are applied incrementally, resulting in a compounded discount effect.Example:
Discount 1: 10%
Discount 2: 5%
Resulting total discount ≠ 15%, but 14.5% (calculated incrementally).
Validate discount criteria:
Each discount is applied only if its application conditions are met — for example, by Family, Series, Article, or Variant (based on the DiscountLibrary configuration).
If a variant has multiple concatenated options, all must match (AND logic) for the discount to apply.
Combine with pricelist coefficient (if present):
Once all discounts have been applied, the system may also adjust the final price using the coefficient (PriceListRatio) defined in the commercial price list.
The resulting amount reflects all applicable discounts and list ratios, ensuring that promotional or customer-specific conditions are fully considered in the final calculation.