Price Setting Package 2.4.0

his document summarizes fixes introduced in the Accelerate Price Setting Package release version.

Version

2.4.0

Release Date

Jul 2024

In this document:

Upgrade Notes

  • Return value of custom strategies has a different format. Previously it was either Map or BigDecimal. Now it can be only Map and we recommend usage of "result" key instead of "price" inside this Map. (PFPCS-7298)

  • New Advanced Configuration entry configuring behavior of Strategy Designer needs to be added. The name of entry is “strategyDesigner”. Its value:

    { "groovyLibraryName": "CustomPricingStrategiesLib", "customBlocksGroovyLibraryName": "StrategyDesignerCustomBlocks", "excludedParameters": [], "deploymentLogicName": "StrategyDesignerDeployment", "livePreviewDependencyLevel": "Global", "dependencyConfigurationTable": "DependencyConfiguration", "priceListLogicName": "IndependentPriceListLogic", "additionalParameters": { "SECONDARY_KEY": { "label": "Secondary Key", "tooltip": "Secondary Key", "type": "string" } } }

     

  • StrategyDefinition has been split into 2 different PP tables:

    • PSP_EngineCalculationConfig of JSON type

      • Type: JSON

      • Columns:

        • name (key)

        • attributeExtension___calculationEnginePath (path to calculating function)

        • attributeExtension___engineCalculationParameters (input parameters to engine passed from PSP)

      • Standard configuration:

        name,attributeExtension___calculationEnginePath,attributeExtension___engineCalculationParameters AnchorEngine,libs.CalculationEnginesLib.AttributeBasedEngine.calculatePrice,"CONSTANT_STRING(PP),CONSTANT_STRING(AnchorData),CONSTANT_STRING(Anchor),CONSTANT_STRING(SKU),CONSTANT_STRING(FactorToAnchor),SKU,FINAL_LIST_PRICE_ELEMENT_NAME,FINAL_PRICE_ELEMENT_NAME" AttributeBasedEngine,libs.CalculationEnginesLib.AttributeBasedEngine.calculatePrice,"CONSTANT_STRING(PP),CONSTANT_STRING(AnchorData),CONSTANT_STRING(Anchor),CONSTANT_STRING(SKU),CONSTANT_STRING(FactorToAnchor),SKU,FINAL_LIST_PRICE_ELEMENT_NAME,FINAL_PRICE_ELEMENT_NAME,DEPENDENCY_PROPERTIES,STRATEGY_NAME" AvgCompetitionEngine,libs.CalculationEnginesLib.CompetitionEngine.calculatePrice,"CONSTANT_STRING(),CONSTANT_STRING(),CONSTANT_BIG_DECIMAL(),CONSTANT_STRING(No),CONSTANT_STRING(50%),COMPETITOR_PRICES,MINIMUM_MARGIN_PRICE" CompetitionEngine,libs.CalculationEnginesLib.CompetitionEngine.calculatePrice,"CONSTANT_STRING(min),CONSTANT_STRING(),CONSTANT_BIG_DECIMAL(),CONSTANT_STRING(No),CONSTANT_STRING(),COMPETITOR_PRICES,MINIMUM_MARGIN_PRICE" CostPlusEngine,libs.CalculationEnginesLib.AdjustmentEngine.calculatePrice,"CONSTANT_STRING(Percentage),PRODUCT_COST,PLUS_FOR_PRODUCT_PERCENTAGE, PLUS_FOR_PRODUCT_ABSOLUTE" KitEngine,libs.CalculationEnginesLib.KitEngine.calculatePrice,"SKU,BOM_LIST,FINAL_LIST_PRICE_ELEMENT_NAME,FINAL_PRICE_ELEMENT_NAME" MaxCompetitionEngine,libs.CalculationEnginesLib.CompetitionEngine.calculatePrice,"CONSTANT_STRING(max),CONSTANT_STRING(),CONSTANT_BIG_DECIMAL(),CONSTANT_STRING(No),CONSTANT_STRING(),COMPETITOR_PRICES,MINIMUM_MARGIN_PRICE" MinCompetitionEngine,libs.CalculationEnginesLib.CompetitionEngine.calculatePrice,"CONSTANT_STRING(min),CONSTANT_STRING(),CONSTANT_BIG_DECIMAL(),CONSTANT_STRING(No),CONSTANT_STRING(),COMPETITOR_PRICES,MINIMUM_MARGIN_PRICE" NetEngine,libs.CalculationEnginesLib.NetEngine.calculatePrice,"CONSTANT_STRING(PX),CONSTANT_STRING(RecommendedRetailPrices),CONSTANT_STRING(rrp),CONSTANT_STRING(),CONSTANT_STRING(),CONSTANT_STRING(DependencyLevelName),SKU,TARGET_DATE,DISCOUNTS,DEPENDENCY_INFORMATION_VALUES" PriceIncreaseEngine,libs.CalculationEnginesLib.AdjustmentEngine.calculatePrice,"CONSTANT_STRING(Absolute),BASE_PRICE,PRICE_INCREASE_PERCENTAGE,PRICE_INCREASE_ABSOLUTE" PromotionLookupEngine,libs.CalculationEnginesLib.LookupEngine.calculatePrice,"CONSTANT_STRING(PX),CONSTANT_STRING(PromotionPrices),CONSTANT_STRING(promotionPrice),CONSTANT_STRING(validFrom),CONSTANT_STRING(validTo),CONSTANT_STRING(DependencyLevelName),SKU,TARGET_DATE,DEPENDENCY_INFORMATION_VALUES" RRPLookupEngine,libs.CalculationEnginesLib.LookupEngine.calculatePrice,"CONSTANT_STRING(PX),CONSTANT_STRING(RecommendedRetailPrices),CONSTANT_STRING(rrp),CONSTANT_STRING(),CONSTANT_STRING(),CONSTANT_STRING(DependencyLevelName),SKU,TARGET_DATE,DEPENDENCY_INFORMATION_VALUES"
    • StrategyDefinition

      • Type: Matrix2

      • Columns:

        • key1 (StrategyName)

        • key2 (Level – Independent/Dependent)

        • attribute1 (CalculationEngine – name of the record from PSP_EngineCalculationConfig)

        • attribute2 (ParentLevelOnly)

        • attribute3 (ParentLevelPriority)

        • attribute4 (Overridable)

        • attribute5 (MandatoryStrategy)

        • attribute6 and attribute7 are no longer used

      • Standard configuration:

        key1,key2,attribute1,attribute2,attribute3,attribute4,attribute5,attribute6,attribute7,attribute8,attribute9,attribute10,attribute11,attribute12,attribute13,attribute14,attribute15,attribute16,attribute17,attribute18,attribute19,attribute20,attribute21,attribute22,attribute23,attribute24,attribute25,attribute26,attribute27,attribute28,attribute29,attribute30 Anchor,Dependent,AnchorEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Anchor,Independent,AnchorEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, AvgCompetition,Dependent,AvgCompetitionEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, AvgCompetition,Independent,AvgCompetitionEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Cost+,Dependent,CostPlusEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Cost+,Independent,CostPlusEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Kit,Dependent,KitEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Kit,Independent,KitEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, MaxCompetition,Dependent,MaxCompetitionEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, MaxCompetition,Independent,MaxCompetitionEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, MinCompetition,Dependent,MinCompetitionEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, MinCompetition,Independent,MinCompetitionEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, PriceIncrease,Dependent,PriceIncreaseEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, PriceIncrease,Independent,PriceIncreaseEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, PromotionBased,Dependent,PromotionLookupEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, PromotionBased,Independent,PromotionLookupEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, RRP,Dependent,RRPLookupEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,, RRP,Independent,RRPLookupEngine,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
      • As you can see above, AdditionalEngineConfiguration inputs are no longer used in PSP engines. These have been replaced by inline engineCalculationParameters. PPs like AnchorAddit‎ionalConfig, AvgCompetitionAdditionalConfig,CostPlusAdditionalConfig ,MaxCompetitionAdditionalConfig ,MinCompetitionAdditionalConfig ,PriceIncreaseAdditionalConfig ,PromotionLookupEngineConfig ,RRPLookupEngineConfig have been removed from StandardConfiguration and are no longer used in PSP.

      • WarningConfig changes:

        • Below error codes are no longer used:

          • UNSUPPORTED_PARENT_SOURCE_TYPE

          • INVALID_PARENT_SOURCE_ID

        • Below entry has been added to StandardConfig:

          • ERROR_GETTING_PARENT_ITEM_CONFIG,*,Couldn't read config of parent PL/PG.,Verify if parent PL/PG exist.,Data,Red,Yes,Yes,,,,,,,,,,,,,,,,,,,,,,,,

      • DependencyConfiguration changes:

        • PP now has only 2 keys; key3 and key4 responsible for selecting parent PG/PL have been removed.

        • Selection of parent PG/PL will happen independently for each PG/PL now

      • Each of old PL/PG needs to be configured before recalculation:

        • There is a new input in the configurator, for selecting parent PG/PL.

        • Input for DependencyLevel has been renamed, the value needs to be re-entered.

      • Entry “Price Calculator” has been renamed to “Engine Calculator” in PriceSettingConfig PP.

New Features and Improvements

New Feature Description

ID

New Feature Description

ID

PriceCalculator behaviour has been transferred to a more universal object "EngineCalculator". As a consequence, StrategyDefinition PP has been split into two tables: StrategyDefinition (handles strategy) and PSP_EngineCalculationConfig (handles engine, i.e. executable logic).

PFPCS-7298

Strategy Designer now contains a new parameter "SECONDARY_KEY". This value is always filled in Price Setting Accelerator and passed to EngineCalculator.

PFPCS-8122

Deprecated APIs are no longer used in the Price Setting Package.

PFPCS-8124

The error message "Unresolvable engine" has been improved to: "Passed parameter is invalid: customPath [$path] passed to calculator is incorrect."

PFPCS-8125

PriceChangeEffect is now part of the Transactions module instead of Core.

PFPCS-8126

Filters did not work properly on data uploaded with the data-load PfM step. To fix this, the filters handle now both empty strings and null values.

PFPCS-8127

Custom engine path with leading or trailing whitespaces no longer causes execution errors in PSP_EngineCalculationConfig.

PFPCS-8154

In bootstrapping tables, Product Id is now displayed instead of sku.

PFPCS-8156

Currency signs have been added to column labels where needed.

PFPCS-8157

There are two new columns in Prices Matrix: the first one with used strategy, the second one with information "Is Base Strategy".

PFPCS-8160

All fields are visible by default in bootstrapped PPs.

PFPCS-8161

After deploying PSP, StrategyDesigner AP (AdvancedConfiguration) is present and deploying a new strategy from strategyDesigner updates StrategyDefinition and PSP_EngineCalculationConfig tables properly.

PFPCS-8176

To make parent price lookup more easy and flexible, it is no longer handled by static configuration in a Dependency Configuration PP table; instead there is a new configurator which dynamically fetches parent PL/PG.

PFPCS-8177

Libraries in PSP have a new return format - Map (instead of BigDecimal). The Map contains these keys: "result", "message" and "additionalInfo". 

PFPCS-8215

Only PPs with the status Active are now offered when you update their metadata based on new dimension setting.

PFPCS-8378

There is a new custom function "Optimized List Price" in Strategy Designer which can be easily used in a strategy.

PFPCS-8494

Fixed Issues

Bug Description

ID

Bug Description

ID

When the StrategyConditions module is turned on and you calculate LPG, you get an error starting with "Unhandled error: No signature of method...".

PFPCS-8555

Integration between the List Price Optimization accelerator and PSP accelerator does not work for both versions of LPO, v1.0 and v1.1. While it works with v1.0 models, v1.1 logics are currently required.

PFPCS-8616