The Upcharge Library introduces a structured way to manage markups, upcharges, and surcharges in 3CAD Next. It is designed as a parallel feature to the discount Library, using the same core concepts and interaction model while keeping discounts and upcharges clearly separated. This approach provides clearer pricing logic, supports additional business scenarios, and ensures future extensibility without impacting existing discount behavior.
By linking price adjustments to commercial price lists, users can easily adapt sale strategies, combine discounts and price increases, and ensure accurate calculation during the price determination process. See the article The multi pricelist manager for addional information.
Key benefits
Clear pricing semantics: Manage markups, upcharges, and surcharges in a dedicated library, separate from discounts, ensuring transparent and easy-to-understand pricing logic for both users and downstream systems.
Precision and control: Define price increases as percentages or absolute values and apply them at different levels, such as item, model, family, variant, or ERP parent item, to accurately reflect complex pricing rules.
Flexible calculation base: Choose whether each upcharge is calculated on the gross price or on the discounted price, allowing precise control over how markups impact the final price.
Consistent behavior across contexts: Apply upcharges reliably in both ERP and BOP pricing scenarios, ensuring uniform results regardless of the pricing source.
UI consistency with the Discount Library: Work in an interface that mirrors the Discount Library structure, reducing training effort and minimizing configuration errors.
Simplified maintenance and evolution: Centralize all price increase rules in one library, making it easier to maintain, extend, and adapt pricing logic without affecting existing discount configurations.
Architecture and database
The Upcharge Library is implemented as a dedicated structure, modeled on the Discount Library but stored and managed independently.
Key architectural principles:
upcharges are defined in a centralized library
commercial lists reference upcharges through association table (AssocCommercialListUpcharges)
Tables involved
UpchargeLibrary: Upcharge library and structure.
CommercialLists: Commercial pricelist management and configuration. See the article The multi pricelist manager for addional information.
AssocCommercialListUpcharges: Association between price lists and price increases; manages application priority.
UpchargeLibrary table structure
The UpchargeLibrary table stores all defined price increase rules. Each record represents a single adjustment definition.
The table includes
Cod—Price increase identifier code.
-
Type—Increase type:
Percentage (non-incremental).
Absolute value.
Description
-
Calculation mode—A flag that defines the price base:
Sales price
Discounted price
-
Application criteria:
Model—Technical model (field
MODELLOin the Articles table).Family—Product merchandise category (field
CATMERin the Articles table).Variant/options: Variant code and options .
Article: Item code (field
CODin the Articles table).
Upcharge value—price increase numerical value.
Validity Date—Discount validity date. The format must be YYYYMMDD (e.g.,
19990101for January 1, 1999).
This structure mirrors the Discount Library logic while preserving distinct semantics for markups, upcharges, and surcharges.
AssocCommercialListUpcharges table structure
The AssocCommercialListUpcharges table links commercial lists to upcharge definitions. Its purpose is to associate one or more price increases with a specific commercial list and to control which upcharges are active in a given pricing context. It also supports priority handling and conflict resolution, ensuring that pricing behavior remains consistent and predictable when multiple upcharges apply at the same time.
codClist: Commercial pricelist code – corresponds to
CommercialLists.cod.codUpcharge: Upcharge code – corresponds to
UpchargeLibrary.cod.priority: Integer determining the order in which the discount is applied within the multi price list.
Typical use: Manages which price increase and in which order are applied to each commercial price list, enabling flexible configuration of price strategies on a list basis.
Configuration of the upcharge library in the interface
The configuration of the Upcharge Library is accessible through the Supervisor tool in 3CAD Next:
Path: Supervisor → Catalog → Upcharge Library
This section allows you to manage all price increase rules applicable to the price lists.
Note: You must select the reference catalog (via the top menu) to view, filter, and configure the price increases related to that specific catalog. This is essential in environments with more than one catalog available.
Click here to view full screen.
Price calculation (focus on upcharges)
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.
Key calculation principles:
the calculation mode defines whether the price increse is:
UpchargeType = 0 percentage calculated on base price with index
UpchargeType = 1 absolute value
-
the calculation mode defines whether the upcharge is applied to:
the gross price (unit price × quantity)
the discounted price (discounted sales price × quantity)
each upcharge generates a dedicated BOP row with its own row type:
public const string new_upcharges_percentage = "50";
public const string new_upcharges_absolute = "51";
priority rules determine which upcharges are applied when multiple rules match
This ensures predictable and consistent pricing results, aligned with existing discount logic.
Notes on compatibility and alignment
The Upcharge Library:
does not modify or extend the Discount Library directly
reuses the same conceptual model and UI patterns
is designed to evolve independently as pricing needs grow
For users already familiar with the Discount Library, the Upcharge Library follows the same mental model, with clear semantics dedicated to markups, upcharges, and surcharges.