Beginning in 16.5 Major of CET, a new pricing model has been introduced for Parts (cm.core.part). This new system
replaces the old single-value listPrice approach by separating a part's base price from its option-based pricing, allowing more flexibility with pricing configurations.
This change was driven by two main goals: supporting the new Specials system and improving compatibility with external order systems.
1. Support for the New Specials System The new Specials system in CET allows users to modify pricing at both the product and option levels, which required a more predictable pricing structure. By separating a part’s base price from its option-based pricing, we can handle those adjustments more cleanly and consistently.
2. Alignment with External Order Systems Many order entry systems now expect pricing data in a base price + upcharges format. Moving away from the single list price value brings CET in line with that standard and makes data exports more reliable.
Overall, this update gives us a more flexible, modern foundation for how pricing works across CET and its integrations.
16.5: Opt-in (Migration)
basePrice, optionPriceSum, calculatedListPrice). listPrice and upcharge APIs remain fully supported.17.0: Opt-out (Default On)
DsPart. 17.5: Full Adoption (Legacy Removal)
basePrice + optionPriceSum approach and the updated pricing API methods.listPrice parameter with basePrice and optionPriceSumuseNewPricing() to determine which pricing system a part is usingbasePrice() – defines the part’s inherent costoptionPriceSum() – dynamically computes option-related costscalculatedListPrice() – returns combined list price (basePrice + optionPriceSum)customListPrice() and upcharge() are deprecated and scheduled for removallistPrice() automatically delegates to the new pricing system when useNewPricing is enabledcm.core.partcm.abstract.partcm.abstract.datasymbol