3.9.20
Release Date: 2025-02-05
Software Version
The document refers to the following applications and corresponding software versions:
| Application | Version |
|---|---|
| Promotion Calculation Engine | 3.9.20 |
What's New
| Issue Key | Release Notes | Notes |
|---|---|---|
| PPCE-8143 |
ContextUtils.getSaleReturnTypeCodesForTransaction The method has been renamed and is now getAllSaleReturnTypeCodesSet. The method returns all sale return type codes which are present in the configuration regardless of a transaction content. Therefore, PCE always loads all eligibilities which are related to both sales and returns. |
|
| PPCE-8045 |
Transaction-related non-monetary benefit proration improved The virtual discount and loyalty points share proration of transaction-related promotions have been improved.
If all virtual discount or loyalty points shares are considered invalid, the corresponding promotion is not applied. As a result, expectations for the following JBehave stories had to be corrected:
|
|
| PPCE-8007 |
Compatibility with Spring 6.1.x and SpringBoot 3.3.x From now on, PCE is compatible with Spring 6.1.x and SpringBoot 3.3.x. Minor compatibility issues have been fixed. |
|
| PPCE-7936 |
Improved transaction-related promotion rounding calculation The calculation of the discount share rounding amounts for transaction-related promotion price derivation rules has been corrected. The rounding amount is the difference between the calculated, unrounded discount share and the finally assigned, rounded discount share value. In case the total discount amount cannot be assigned to the line items (due to rounding or invalid discount shares), the remaining unassigned amount is added to the rounding amount of the last item(s). |
|
| PPCE-7890 |
Accept the TriggerSequenceAddend for externally applied manual promotions The TriggerSequenceAddend is now considered for externally applied manual promotions. This means that the next promotion that could be applied internally must have a sequence that is greater than the sum of the sequences from an externally applied promotion and the TriggerSequenceAddend. |
|
| PPCE-7864 |
Transaction-related discount proration improved The discount share proration of transaction-related monetary discounts has been improved. Previously, if the adjustment amount to be assigned to the last item was found to be invalid by the validation logic, then the proration failed all together. After the adjustments, the remaining amount is assigned to the rest of the proration items or if it not possible for a remaining amount to be assigned to any item, it will be accounted for in the shared rounding amount. |
|
| PPCE-7767 |
Change logging level to WARNING in case an invalid value is to be used for a system parameter but default value is used instead Logging level has been changed from ERROR to WARNING in case an invalid value is to be used for the system parameter but the default value is used instead. Unified logging in case null value was used. Redundant logging has been removed. |
Resolved Issues
| Issue Key | Release Notes | Notes |
|---|---|---|
| PPCE-8157 |
Added missing org.quartz-scheduler:quartz dependency to PCE The previously optional org.quartz-scheduler:quartz dependency was changed to not optional to ensure availability of the required library with the PCE delivery. |
|
| PPCE-8137 |
Incorrect handling of a Mix and Match promotion with OR combined threshold eligibilities Processing of a promotion with a Mix and Match rule and several logically OR combined threshold-related eligibilities has been corrected. Previously, the Mix and Match rule was skipped and not applied at all if all those eligibilities were successfully triggered but only some of them were actually fulfilled. After the bug fix, the Mix and Match rule is always calculated even if only a subset of triggered threshold-related eligibilities is fulfilled. |
|
| PPCE-7966 |
Triggering line items without benefit do not get modifier references when the total price modification method is used As long as the promotion is successfully applied, all triggering items get a modifier reference, even if they do not get any benefit due to price increase, zero discounts or for any other reason. |
|
| PPCE-7953 |
M&M does not grant zero virtual discount when allowZeroRebate is set to false Zero virtual discount (virtual discount types are: GIFT_CERTIFICATE("01"), TENDER("02"), COUPON("04"), MANUFACTURER_COUPON_TENDER("99")) must always be applied regardless of the rule type and allowZeroRebate flag state. This bug has been fixed. |
|
| PPCE-7856 |
ExclusiveConditionDiscountablePositionHandler performance issue A bug that caused significant performance degradation when a transaction-related promotion was applied on top of a line item-related promotion has been fixed. In addition, the ExclusiveConditionDiscountablePositionHandler also considers FrequentShopperPointsModifiers and externally applied modifiers from now on. |
|
| PPCE-7812 |
RPM for applied transaction-related promotion is missing in the transaction If a single transaction-related manual promotion was applied multiple times due to several manual triggers registered in a transaction with different trigger sequence numbers, and if that manual promotion conflicted with some other promotion(s) and the Brute Force conflict resolution algorithm was used to resolve the conflicts, then some retail price modifiers or frequent shopper points modifiers for successfully applied promotions might be missing in the result transaction. This bug has been fixed. |