Validation rules

Renamed “Redemption by code holder” rule to “Redemption only by code holder” to more accurately describe its function.

JSON viewer

Improved how objects are shown in the dashboard. Empty objects and confusing property counts are no longer displayed, making the view clearer and easier to read.

Export

Fixed an issue where users without permission to export publication or redemption data could still see export buttons on the corresponding lists.

Loyalty

Fixed an issue where users could not put 0 to ‘Months after earning activity rule’.

Webhooks

Fixed a bug which caused VOUCHER.GIFT.TRANSACTION.CREATED and VOUCHER.LOYALTY_CARD.PENDING_POINTS.UPDATED not to appear in Project settings and in the filters in Webhook sendouts in the Audit log.

Stacking rules

We’ve added a new limit for Stackable Discounts API: Limits per category. You can now set a limit (up to 10) of stacked incentives for individual categories.

For example, if you have a three categories, Bronze, Silver, Gold, you can set up a limit of 2 for Silver, and 1 for Gold, while Bronze is limited by the Maximum count of valid promotions per category to apply in a request. This means that a maximum of 2 incentives from the Silver category and 1 from the Gold category can be validated or redeemed in one stackable API request.

Audit logs

Fixed an issue which caused incorrect filtering for the API value with the “not in” condition for Channel.

Loyalty programs

Fixed an issue that caused the loyalty balance to reset after changing the timeframe in the loyalty card.

Dynamic discount

Added support for order item quantity, price, and product metadata in the "Amount Discount: Apply the full discount to each item unit".

Loyalty programs

Fixed an issue that triggered updates to all earning rules and loyalty tiers (even when no campaign changes were made) while updating a campaign.

Bundle

Fixed an issue where creating a Bundle via API without specifying "type": "product_or_sku" caused the product not to be shown in the UI.

Discount value

Fixed an issue that caused [object Object] to be displayed as a discount value in orders.

Log in page

Fixed an issue that caused users to log in automatically after selecting the Read more button in the carousel.

New expiration type for campaigns and earning rules

We’ve added support for FIXED_DAY_OF_YEAR expiration type in Earning Rules. This new option gives you more control over loyalty point expiration, because you can set an exact month and day. This is a perfect option for seasonal promotions, loyalty program resets, or end-of-year expirations. For example, you can set an expiration date of 31 December for all loyalty points earned during the Black Friday sales.

Also, to improve clarity, expiration descriptions now display with short month names and a clearer date format.

New drawer view for distribution details

Distribution details now open in a drawer view across the app, including when accessed through a direct URL address. The drawer includes complete distribution data, tabs, status controls, and a redesigned actions menu. Access is available to users with Read Distributions and Publications permissions.

Distribution

Improved the analytic tab to look consistent with other drawers across the app.