3.14.12

Release Date: 2024-10-04

Software Version

The document refers to the following applications and corresponding software versions:

Application Version
Promotion Calculation Engine 3.14.12

What's New

Issue Key Release Notes Note
PPCE-7401

PCE - validation of negative discount values

Validation of negative values was added for rebate and Mix&Match rules. The rebate rule will be rejected if a negative value is present for the specified price modification method. The Mix&Match rule will be rejected if all values for the specified reduction methods in all matching items are negative.

PPCE-7354

Log-related security findings

Potentially insecure log entries have been corrected.

PPCE-7310

NullPointerException during verification if fully priced condition should be applied.

No Null Pointer Exception is thrown when an invalid eligibilityID is used for getting a promotion from the map during verification if a fully priced condition should be applied.

PPCE-7210

Javadoc warnings and errors

Javadoc warnings and errors in modules delivered to SAP have been fixed.

PPCE-7140

Adjustments for Java 17 / Spring 6

The PCE core source code is now fully compatible with Java 17 and Spring 6 including almost all junit tests. There are only a few GK-specific integration tests which cannot be executed because Java 17 and Spring 6 is still not supported by all GK applications.

Resolved Issues

Issue Key Release Notes Note
PPCE-7394

Sales vs. Returns: Wrong Behavior when using RegularSalesPrice

When FixedPriceFlag = true and RegularSalesPrice is provided in the ClientAPI request, the positive RegularSalesPrice for returned items was mapped directly to the internal PCE data model which led to incorrect calculations. The bug has been fixed and now the RegularSalesPrice is negated for the returned items.

PPCE-7363

Discount tx-related proration calculates wrong result for SALES_MINUS_RETURNS and new price

Transaction-related monetary discount promotion with SaleReturnCode = SALES_RETURNS/"00", calculationBase = CALCBASE_01/"01" and PriceModificationMethodCode = NewPrice could not prorate the benefit correctly in case a mixture of sold and returned items was present in a transaction. This bug has been fixed.

PPCE-7322

Bonus points tx-related proration is not working for SALES_MINUS_RETURNS

Bonus points transaction-related promotion with SaleReturnCode = SALES_RETURNS/"00" and calculationBase = CALCBASE_01/"01" could not prorate the benefit correctly in case a mixture of sold and returned items was present in a transaction. This bug has been fixed.

PPCE-7302

Amount value of an external RPM on a return line item is processed incorrectly

Mapping of a RPM on a return line item from the ClientAPI request to the internal PCE data model and back to the ClientAPI response was fixed. Now, all appropriate values (Amount, ExtendedAmountBeforeModification, ExtendedAmountAfterModification, ExtraAmount and CalculationBaseAmount) are inverted correctly.

PPCE-7271

Customer points not calculated for some item combinations

Under a very specific set of conditions, including a certain number of normalized line items, a certain number of colliding but not conflicting line item-related promotions and a presence of a custom RebatableItemFilterPlugin which rejects a certain subset of normalized line items as triggers, the remaining normalized line items might not be available at all for other line item-related promotions with a sequence and a calculationBaseSequence value equal to or higher than the sequence of the previously applied colliding promotions. This bug in the product PCE code has been corrected.

PPCE-7257

Coupons are consumed by promotions with CONSUMPTION_02

If a coupon promotion with CONSUMPTION_02 was applied, the coupon was consumed for any further promotion with CONSUMPTION_01 or 00 preventing such a promotion to be applied. This bug has been fixed.

PPCE-7218

NullPointerException in case logging unknown rule type

No Null Pointer Exception is thrown when logging an unknown promotion price derivation rule type.

PPCE-7217

Incorrect ExtendedAmountBefore and AfterModification on the normalized item level

Correction of value-computation for fields (ExtendedAmountBeforeModification and ExtendedAmountAfterModification) on the normalized item level in case line item-related and transaction-related promotions are applied at once.

PPCE-7173

Different scaling of frequentShopperPointsEarnedAmount

Removed trailing zeros from the frequentShopperPointsModifier's property pointsAwardedAmount in the ClientAPI response.

As a result, the expectation for the pointsAwardedAmount value of the following JBehave test had to be corrected:

  • cha_incentive_points_18.story
PPCE-7167

Duplicating identifiers in ad-hoc promotions

PCE now checks generated promotions, conditions, and rule IDs for ad-hoc promotions for possible duplicity and re-generates such IDs, if necessary.

PPCE-7160

RetailTransactionPromotionPriceDerivationRule is missing with calculation mode LINE_ITEM

Splitting an original request transaction in the calculation mode LINE_ITEM and summarizing single transactions back into one response transaction has been corrected. The response transaction now contains all elements which were previously missing, such as promotion price derivation rules, price modification line items, loyalty reward line items or additional bonus discount line items.

PPCE-7152

Duplications of the merchandiseSetGroupFilters sent to SDC

PCE code contained a bug which led to multiple identical MerchandiseSetGroupFilterSO objects created when a transaction contained multiple line items with the same identifiers and the same generic attribute(s). These merchandiseSetGroupFilters were sent to the SDC module to load triggered merchandise set eligibilities and resulted in a suboptimal calculation time. This PCE bug has been corrected.

PPCE-6933

NullPointerException in case rule with unknown rule type is loaded

No Null Pointer Exception is thrown while loading a promotion price derivation with an unknown rule type.