Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Release 13.11.2024

Area

Coming next release

Module
Description

Price rules

System

PriceLockProcessor job Performance 

Fix for mix 21/22 

(RTC-

21930

44521)

It is no longer required to always update 'Min. receipt amount of other items' field when editing price rule with Mix 21/22.

Promotion report

Show item attributes from Reporting Service (RTC-22076)

Bestsellers and sales per item shows item attributes received from Reporting API. This is also the source of data in item sales grid when there are over 5000 items in offer or offer applies to all items. In other cases, item attributes in item sales grid are displayed from promotion database.
SKU column is removed from item sales grid.

Promotion type

Activate and edit row in register (RTC-22014)

After activation/deactivation of a row in the register and editing some values without closing the modal, grid is refreshed.

System

Loading sign in grids (RTC-22411)

Loading sign is added to all grids in promotion module. It is displayed when data is being loaded to grid.

Release 21.04.2022

Items in promotion

(RTC-20587)

There are two new columns in the 'Items in promotion' grid - 'Model name' and 'Selection level'.
Modal window for overlapping promotions looks different for items/models/variants. Modal for models contains modal name and model number. Modal for variants contains model name, color and model number.

Improvements

Improved performance of PriceLockProcessor job. Fix: if a price lock is set up for a promotion from a specific store, it affects price locks from the store group to which that store belongs.


...

Release 08.11.2024

AreaDescription
Offer group items

Fix: offer group processing stuck when changing from item to model level (RTC-45198)

Offer group processor job is not stuck when offer group level changes after import. Improved performance of processing offer group on model level, when model contains a lot of items.


...

Release 31.10.2024

AreaDescription
Offer group items

Offer group items processing is retried properly (RTC-45066)

When item is missing in Promotion database, offer group items processing is properly retried by 3 executions of OfferGroupProcessor job, even when missing items are in more than one batch. After 3 retries, manage items page in UI is not stuck on loading screen and properly found items are displayed.

Remove offer group items duplicates (RTC-43718

Offer group items duplicates are removed. Database index is added to ensure there are no duplicates of offer group item.

Price lock

Export manual price locks to Excel (RTC-44292)

There is 'Export manual price locks' button in toolbar of 'Items with price lock' page. It triggers export of Excel file that can be downloaded from notification after FileExport job run. Grid filter and store group scope of 'View promotions' permission affects which rows are exported. Only manually created price locks are exported (not price locks on offer level). File has columns: 'SKU', 'GTIN', 'Item no.', 'Item text', 'Model no.', 'External model no.', 'Color text', 'Size text', 'Brand text', 'Locked from', 'Locked to', 'Manual', 'Store level', 'Store group code', 'Store group name'.

'Locked from' and 'Locked to' values are not filtered and values are not exported properly. This will be fixed as separate issue.

Promotion offers

Grid columns (RTC-44497)

In 'Promotion offers' grid, 'Offer ID' and 'Offer code' columns are hidden by default. 'External promotion no' and 'External offer no' columns are added and hidden by default. 'Offer name' column values have a clickable link that opens 'Edit offer' view.

System

Offer group processor (RTC-43443)

Long segmentation processing does not block the entire offerGroupProcessor package. Offer groups with item lists are processed before segmentations. The segmentationTimeoutInMinutes parameter is changed from an hour to 5 minutes.


...

Release 21.10.2024

AreaDescription
Export

Trigger promotion and offer items export (RTC-44254)

In promotion grid, in first column there is three dots button with 'Export promotion' button. It triggers export of selected Promotion and related PromotionOfferItem blobs to other systems.

Image Added

Button 'Export offer items' is added to three dots menu in offer details card, offer details grid and offer details modal. It triggers export of PromotionOfferItem that are part of offer groups within selected offer.

Image Added

Button is available for promotions on statuses: Planned, Active, Finished. In order to use the both buttons, user needs to have permission 'Access to system tasks and information'. Export is done in next scheduled execution of Export job.

Items in promotions

Fix: navigation (RTC-44413)

Clicking on offer name navigates to offer details view and clicking on offer group name navigates to offer group items grid view.

Image Added

Price lock

Validation (RTC-44261)

There can be only one manual price lock per item and given store or store group. If a user tries to add a new, repeating record or edit the price lock in such a way that duplicates would be created, there is message in the modal that this is not possible. Existing duplicates are deleted. Only the latest manual price lock (according to created date) is left.

Image Added

Promotion

Fix: valid date change after editing other promotion details (RTC-44853)

Valid from/to date and time are properly saved in database. Dates are not changing on its own when editing other details of promotion.

 

System

Performance of import of items from Item Service (RTC-40521)

Improved performance of ItemMerger job, which is responsible for importing ItemChanges from ItemService.


...

Release 17.10.2024

Mark offer as price locked

(RTC-41907)

It's possible to set a price lock period on offers to control price of the items before promotion starts. Default period is equal to 30 days before promotion starts, but user can provide custom dates. It is possible to add price lock only on promotion price offer.

Image Added
Image Added

Items added to price locked offer are not locked until promotion is approved. When approving promotion with previously setup price locks, warning is displayed, that lock from for price locks will be adjusted to now. Changing promotion valid from date may cause delete of price lock on offer, when promotion is valid from before the locked from date. 

Image Added

Image Added

Price locked offers are visible in 'Items with price lock' grid in read-only mode with possibility to navigate to promotion or offer.

Image Added

If an item has not been added to offer group, due to the fact that it has price lock, the information is displayed over selection of items in the offer. To see more details, user can click View items button, were exact count of items not added to offer is displayed and can be exported to Excel file.

Image Added

Improvement

AreaDescription
Adding item in promotions

Item search (RTC-43529)

User can scroll, add columns or remove them from item search. Modal contains model related columns: 'model number' and 'External model no.'

Items with price lock

Grid improvements (RTC-43198)

Store group reference' column is split into 'store group code' and 'store group name' columns. 'Item text' column is in locked section of the grid. Store related columns in locked section are smaller. Button with delete is not displayed when creating a price lock.

Image Added

Promotion API

Concurrent request (RTC-43777)

If there is an attempt by the API to modify a resource by multiple requests at the same time, 409 code is visible for the user. A description of this code is in the swagger: '409 - conflict, resource desired to update has been modified by the concurrent request. In such scenario it is advised to fetch the desired resource once again, compare it with the request data and try to update the resource once again'.

Validation for 'validTo' field (RTC-43719)

There is a validation when creating new promotion with ValidFrom to in the past. When such request is sent, ValidFrom remains unchanged and promotion is updated, 200 status code is returned.


...

Release 26.09.2024

AreaDescription
Export

Export promotion blob after item selection change (RTC-43240)

After items are added/removed from bundle offer group, promotion blob is exported as well as offer group items blob.

Item search

Item search return items that are in Promotion database (RTC-42558)

Item search result does not show items which are not yet imported to Promotion database from Item Service.

Price lock

Price lock processor job (RTC-41916)

There is new PriceLockProcessor job that adds or removes items from offer groups, based on setup in price lock register. Job triggers after manual price lock is created/edited/deleted and when valid dates of promotion are changed. Additionally job triggers every night (default 3 AM UTC) to automatically add/remove.

System

Not existing service bus topic handling in user interface (RTC-43781)

User interface requests do not completely fail when service bus topic is not found. Exception is thrown but rest of request works properly (changes saved in database). For example, when PriceLockProcessor job was not yet enabled (so job cannot be triggered), it is still possible to manage price locks and edit promotion details - changes are saved in database.


...

Release 10.09.2024

AreaDescription
Offer group items

Price with status deleted (RTC-42891)

OfferGroupProcessor job does not match deleted ordinary price when price lookup for offer group item. If item in planned promotion was added with planned price, but then price was deleted, after reprocessing of offer group, item will have new price valid in correct date, or is deleted from an offer if no active price was found.

Promotion API

Swagger documentation improvements (RTC-42769)

'Promotion Service Gateway API' section of Swagger has description of rules regarding promotions, offers, offer mix type, offer items and API limitations. Within each PUT request, there are multiple examples of request body, that cover different use cases of API. Each example is described by its custom name. Additionally there is example of responses for item upsert request, that contain error texts.

System

Item group number (RTC-38886)

Table with items has ItemGroupId instead of itemGroup-related fields. Item groups with duplicated item group numbers are removed. Item group number cannot be null. If ItemGroup is not found in the import of items, it is created.

Performance of promotion export (RTC-42899)

Improved performance of exporting promotion.


...

Release 03.09.2024

Register and new field for offer

(RTC-41683)

There is 'Offer type' register included in 'Promotion registers' tab. Offer type is described by code, name, description and can be added, edited or deactivated. The first two fields are required. Code must be unique.

Offer type is visible in the offer details and offer tile. 

There are new columns in 'Show offers in a grid' and 'Promotion offers' views: 'Offer type code' and 'Offer type name'.

Export of offers is extended with offer type. Editing name of the offer type is not triggering export of offers that are using this offer types.

Image Added
Offer type register

Image Added
Add offer type

Image Added
Offer type in the offer details view

Items with price lock grid and manual price lock

(RTC-41908)

It is possible to block the addition of an item to a promotion at the level of selected (or all) stores, teams or profiles. If price lock overlap present date or start date of promotion adding it to the offer is blocked. Price lock is supported only in offers where item lists on item level are used and only in promotion price offers. The lock time is determined by the ‘Locked from’ and ‘Locked to’ dates. 'Locked to' date must be after or the same as locked from date. In addition, past dates cannot be entered in the modal when a user creates new price lock, but they can be in the past once a user decides to edit them.

When a user tries to add a locked item to a promotion, an information is displayed about how many items have not been added due to the price lock. If the price lock period no longer applies, it is necessary to manually re-add items to the promotion by editing the item list, importing items by Excel file or importing items by third party. To be able to add, edit or delete price locks, a user needs 'manage price locks' permission which depends on 'view promotion' permission. If a user does not have permission to manage price locks but has access to the store/team/profile, locked items are visible in the grid but only in read mode. Offer group item that has not been added to the offer because of the price lock is exported to 3rd party with the status deleted.

Image Added

Image Added

Image Added

Improvements

AreaDescription
Export

Offer deleted on status planned (RTC-42666)

Export of promotions and offer items contain data from offers deleted not only on status 'Active' but also 'Planned'. In database, there is 'IsDeletedWhileApproved' flag instead 'IsDeletedWhileActive'.

Offer item price

VAT rate decimals (RTC-43453)

When item price has decimal value as a VAT rate, it is saved with no rounding on offer group item row. As a result, Margin (GP) and Promotion price WO/VAT are correct in price panel.
For existing offer group items with incorrect VAT rate, it is needed to re-add item selection to the offer (to trigger update of ordinary price used in offer group item row).

Promotion API

Fix: error message when promotion does not exist (RTC-42986)

404 status code and proper error message is returned when referencing not existing promotion in upsert promotion offer request or referencing not existing promotion or offer in upsert offer items request.


...

Release 20.08.2024 

AreaDescription
Offer items

Fix: promotion price can be set to 0 (RTC-41237)

Promotion price of offer item can be set to 0. When one of items has price set to 0, offer items grid is loaded properly. It is possible to export such offer item to Excel file.

Offline item lists

Changing the item list in the Promotion module when there is no connection to the Item Service (RTC-41204)

If the user want to edit item list through user interface but there is no connection with Item Service, the user receives a message in the red bar. The item list does not change in the promotion offer in order not to lose information about previously added items but there is an information that the selection contains 0 items/variants/models. The display will change if the selection has changed but the items do not change, e.g. the items will be displayed as models. In this case, the columns in the grid will change

If the user wants to edit the item list via an Excel file while the Item Service is not working, the result is as follows: The notification 'Items in offer could not be synced with Item Service' top right corner and message 'Manage item list is not available until offer items are synced. You will be notified once the items are synced.' at the top of the grid are visible. 'Edit item list' button is not available. Imports from 3rd parties work very similarly. The only difference is the lack of notification.

Only offer groups with processed and synced items can be copied.

It's possible to import Excel if model number is not specified but there is external model number in the file.

OfferGroupProcessor job is triggered by default every 5 minutes.

Promotion API

Put request for adding items to the offer (RTC-41208)

PUT request /promotions/[EgPromotionIdentifier]/offers/[EgOfferIdentifier]/items in Promotion Service is supported.
Request body must be as documented in Swagger. For more information and rules regarding API, please refer to description and endpoint schema in 'Promotion Service Gateway API' part of Swagger, as well as 'File-import documentation' (all the business rules of import apply to API).
Items can be imported to offers with mix type supported in 'PUT Offer' request. Maximum 500 items can be sent. Each request with items to offer group result in removing items which were in offer previously. Items and prices lookup is done only in Promotion database. Logic of all lookups is as in OfferGroupProcessor job (it means this work the same as imports and user interface actions). Items are added to offer as 'offline item list' and data is exported to POS. Then, during next scheduled OfferGroupProcessor job run (default 5 minutes cron), such new item list is synced to item service, and previous one is deleted. Offer group items cannot be updated in user interface until item list in item service is synced.
Errors regarding promotion, offer, item, price lookup and contract schema are returned as a part of request response. It also contains upsert status, count of items without price and count of not found items.

System

Fix: duplicates of ExternalModelNo (RTC-42961)

Import of items from Item Service saves item on model level with empty ExternalModelNo if received value is already used by other model in Promotion database. Additionally, release of RTC-41204 does not fail when there are ExternalModelNo duplicates in database (suffix is added to duplicate).


...

Release 05.08.2024

AreaDescription
Offers

Manage offer in grid view (RTC-41924)

In promotion details, in grid with offers, there are three dots and eye icons for each offer row.
With three dots menu, it is possible to manage offer like in cards view (edit offer, manage items, import items, copy offer, remove).
With eye icon, modal with offer details is opened (same information as in card view). From modal it is also possible to make any of listed actions. Options available in these menus are affected by same rules and permissions as in the card view.
By clicking on link in 'Offer id' column in the grid, 'Edit offer' page is opened.

Image Added

Offer

Validation of incomplete mix 31 offer (RTC-42015

When promotion is created containing price rule with mix 31 that has values editable in offer, 'incomplete' flag is set properly until user fills in the missing values. It is not possible to submit and approve promotion with incomplete mix 31 offer.

Offer items

Ordinary price column (RTC-41555)

Ordinary price column is visible in manage items grid in the offer on item/variant/model levels.

Promotion API

Put request for creating/updating offer (RTC-41207)

PUT request /promotions/[EgPromotionIdentifier]/offers in Promotion Service is supported.
Request body must contain JSON entity as documented in schema in Swagger.
For more information and rules regarding API, please refer to description and endpoint schema in 'Promotion Service Gateway API' part of Swagger, as well as 'File-import documentation' (all the business rules of import apply to API).
Mix types supported in this request are:
PromotionPrice
BuyNSelectedItemsAndGetDiscountOnTheYCheapestItems = 23
BuyNSelectedItemsForXAmount = 21
BuyOneItemFromSelectionAAndGetDiscountOnItemB = 4
DiscountOnWeightItem = 5
DiscountOnSelectedItems = 28
SubtotalDiscount = 26
PromotionDiscount = 101

Fields validation errors are returned as a message with status code 422. Code 400 with description is returned on rule violation. Correctly upserted offer is returned with code 201 (created) or 200 (updated), and response contains all the schema values of offer.

Image Added


...

Release 17.07.2024

AreaDescription
Export

Fix: order of fields in export of promotion to blob (RTC-42404)

In Promotion.Promotion.Export offers, 'mixType' is first field in 'mixDetails' entity (to ensure backwards compatibility with old package versions).

Offer

Mix 101: Use item group list (RTC-39529)

Item group list can be added to the Mix 101 (Promotion discount) offer. It's possible to create promotion with this mix from item group list view. Percentage discount can be modified for each item group in side panel which contains percentage discount. Default percentage discount is added to all item groups when adding them to the offer. If value is not specified, is equal to 0 % by default.

Image Added

Promotion API


Put request for creating/updating promotion (RTC-41206)

PUT request /promotions in Promotion Service is supported.
Request body must contain JSON entity as documented in schema in Swagger.
Fields validation errors are returned as a message with status code 422. Code 400 with description is returned on rule violation. Correctly upserted promotion is returned with code 201 (created) or 200 (updated), and response contains all the schema values of promotion. Promotion is always created as approved. Promotion is not exported until there is at least one offer in it.

Image Added

System

Fix: ignore wrapping spaces in import of items and item groups from Item Service (RTC-42246)

When there are wrapping spaces in a text type of field in ItemChanges (item) or GroupHierarchy (item group) file from Item Service, there is no validation message during import and data is saved in Promotion database without wrapping spaces.


...

Release 02.07.2024

AreaDescription 
Export

Deleted offers (RTC-39591)

Offers deleted before approving promotion are not exported. The same for offer items from such offers.

Import

Promotion and offer item, logs (RTC-39974)

No exception is thrown when importing not existing promotion with status 'deleted'. Such promotion is skipped in import. Log about failed offer item import contains information about external offer number, offer item identifier and flat batch JSON id.

Offers

Show offers as grid (RTC-40576)

The user can display offers as a list (by clicking 'Show offers in a grid') or as cards ('Show offers as cards'). The first view is a grid with the following columns: offer id, offer name, price rule, active, incomplete, coupon offer, external offer id, coupon offer id, member offer and bundle offer. Incomplete offer means that mix details are not defined correctly or offer doesn't have items. In the second view, in which user can view offers as cards, 'Active offers' filter is renamed to 'Active and complete offers'. When trying to submit or confirm promotion with incomplete offer, validation message contains identifiers of incomplete offers. When the user enters the details of the promotion, sees the offers as cards by default. Then, offer view type (grid or cards) selection is remembered in browser - after entering any promotion, page in lastly used offer view type is displayed.

Number of times the offer can be used in coupon offer (RTC-39868)

'Number of times the offer can be used' value is editable in offer or displayed as defined in price rule regardless of whether offer has coupon added or not. Removed 'Once per unique coupon' text that was previously displayed as value when offer had added coupon.

Promotion API

Get requests for promotions and offers (RTC-41205)

GET requests in Promotion Service are supported:

  • get promotion by external promotion identifier
    /promotion/?externalNo=[ExternalPromotionIdentifier]
  • get promotion by internal promotion identifier
    /promotion/[EgPromotionIdentifier]
  • get promotion offer by external offer identifier
    /promotions/[EgPromotionIdentifier]/offers/?externalNo=[ExternalOfferIdentifier]
  • get promotion offer by internal offer identifier
    /promotions/[EgPromotionIdentifier]/offers/[EgOfferIdentifier].

Authorization token is required. If promotion or offer is not found, 404 (not found) status code is returned. If no identifier is specified, 400 (bad request) status code is returned. When fetched offer belongs to another promotion than specified by promotion id, 400 (bad request) status code is returned. Incomplete offers (with missing mix details fields) are returned with default values.

Service

Promotion API documentation in Swagger (RTC-41203)

Contracts for Promotion API endpoints are documented in Swagger:

  • Put upsert promotion,
  • Get promotion by external promotion identifier,
  • Get promotion by internal promotion identifier,
  • Put upsert offer to the specified promotion,
  • Get promotion offer by external offer identifier,
  • Get promotion offer by internal offer identifier,
  • Put upsert items to the offer.
System

OfferGroupProcessor job replaces ItemSelectionItemImport job (RTC-37763)

Items are added to the offer group by OfferGroupProcessor job. Compared to ItemSelectionItemImport, item and prices lookup is done in Promotion database instead of requests to Item Service API.

When item, model or variant that is part of selection is not found in Promotion database, then job completes with warning. Processing is retried 3 times (each 10 minutes by default).
Import of items to single item offer groups (mix type 4 and 5) supports GTIN and ExternalItemNo.
When creating offers on model or variant level, the selected item from the model/variant must have an ordinary price.

Performance of promotion approval (RTC-39966)

Improved performance of approving promotion, editing approved promotion, update of promotion through 3rd party import.

Voyado offer

Fix: offer trigger code (RTC-41748)

When creating new offer with voyado coupon, offer id is saved as offer trigger.


...

Release 12.06.2024

AreaDescription 
Offer

Coupons on offers (RTC-41435)

When only one offer trigger type can be selected (for offers created by third party import) or if previously selected offer trigger type cannot be changed, radio buttons are not displayed in the offer details view.
Fix: User can change coupon offer for offer imported from third party.

Promotion API

Documentation (RTC-39713)

Mix types are visible in contract schema for promotion.

System 

Discount code (RTC-41528)

The discount code field (named offerTriggerCode in import) can have up to 30 characters.


...

Release 05.06.2024

AreaDescription 
Export

External identifiers in export to blob (RTC-24502)

ExternalPromotionNo/ExternalOfferNo are exported as ExternalPromotionNo/ExternalOfferNo in export of Promotion.Promotion.Export.

Import

Import of offers with mix 101 (RTC-39061)

Offer with mix type 'PromotionDiscount' (mix 101) can be imported from 3rd party or from Excel file. It is marked as supported in the Swagger documentation. Excel with offer items exported for mix 101 offer contains 'Promotion discount' column. When uploading Excel, promotion discount field is ignored for offers using mix other than 101. When exporting Excel for mix 100, the 'Promotion net price' column is no longer present in the file.

One item offer group validation rule (RTC-39736)

Removed SKU validation for importing items to offers with single item (no error message when import contains only GTIN or ExternalItemNo). Note that such item will still not be added to the offer (for now SKU must be defined when importing item to one item offer group in mixes 4 and 5).

Promotion import and export

Coupons on offers (RTC-38665)

ExternalCouponId is obsolete in import. If provided, works as before but OfferTriggerType and OfferTriggerCode must be null then. ExternalCouponId has value of OfferTriggerCode in export.

Possible values for OfferTriggerType:

  • 'DiscountCode' ('General coupon' in UI),
  • 'Coupon' ('3rd party integration coupon' in UI),
  • 'Standard' (no 'Coupon offer' in UI).

'Coupon' is not supported in import. 'OfferTriggerCode' must be specified when OfferTriggerType is 'DiscountCode' and must be null if OfferTriggerType is 'Standard'. If OfferTriggerType and OfferTriggerCode are not specified, we have 'Standard' offer without coupon.


...

Release 22.04.2024

AreaDescription
Import

Import of offers with mix 26 (RTC-39131)

Offer with mix type 'SubtotalDiscount' (mix 26) can be imported from 3rd party. It is marked as supported in the Swagger documentation. Offer items cannot be imported for such offers (this mix type affects all items).

Import of offers with mix 4 (RTC-39034)

Offer with mix type 'DiscountOnWeightItem' (mix 5) can be imported from 3rd party. It is marked as supported in the Swagger documentation. Only a single item can be imported to such offer (with logic as in mix 4).

Offers

Fix: validation of mix details (RTC-40017)

It is possible to save update of offer in UI when 'Number of times the offer can be used' is 'Unlimited' or when only other field was updated. Red star mark properly appears for all fields of price rule details.

System

New framework for user interface (RTC-14938)

Promotion management is upgraded to framework versions Angular 16 and Kendo 12.

Coupons on offers stored in the database (RTC-39363)

Changed naming of coupon related columns on offer in the database. Added OfferTriggerType to the offer - DiscountCode when it is 'General coupon' and 'Coupon' when it is '3rd party integration coupon' (Voyado).


...

Release 27.03.2024

AreaDescription
Import

Import of offers with mix 4 (RTC-39035)

Offer with mix type 'BuyOneItemFromSelectionAAndGetDiscountOnItemB' (mix 4) can be imported from 3rd party. It is marked as supported in the Swagger documentation. When importing PromotionOfferItem for the offer, selection to which item should be added can be specified using OfferItemType field: 'Condition' and 'Reward'.
Only a single item can be imported to 'Reward' offer group of offer using mix 4 - for each import to 'Reward' group, only 'newest' item (based on created date) is added to offer (new imported item removes previous one, and only item from last line is added if there are multiple in one file).

Import of offers with mix 28 (RTC-39033)

Offer with mix type 'discount on selected items' (mix 28) can be imported from 3rd party. It is marked as supported in the Swagger documentation.

Offer

Fix: Edit external offer without coupon (RTC-39449)

It is possible to save changes when editing an offer that was created from 3rd party, without the need to touch 'coupon' checkbox.

Choose type of coupon
(RTC-38615)

When tenant is not configured to use Voyado integration, coupon can be added as before.
When tenant is configured to use Voyado integration, user can choose type of coupon creating new or editing existing offer. When '3rd party integration coupon' chosen, offer is created in Voyado. This type of coupon cannot be changed or removed once created. '3rd party integration coupon' cannot be added for offer that was created by import from 3rd party. User can now also choose 'General coupon'. In this option, coupon can be defined by input field, same as when not configured to use Voyado. This coupon can be removed or replaced by 3rd party one.
Coupon input field now allows text, no spaces, and maximum of 10 signs. Validation is changed in import of promotions from 3rd party as well.

Price rules

Mix 101: Promotion discount (RTC-38232)

There is a general discount on whole offer which can be defined in price rule or editable in offer. In items in promotions view it's possible to adjust promotion discount per item.

Service

Export documentation (RTC-38276)

Swagger contains documentation regarding export of promotions, available mix types and examples of Promotion and PromotionOfferItem exports for various offers and offer items.

System

Import of prices (RTC-37762)

All item prices from Item Service are imported to Promotion database by new ItemPriceMerger job.

Import of item groups (RTC-38300)

All item groups are imported from Item Service to Promotion database (extended functionality of StagingMerger job).

Access control - copy offer, copy promotion (RTC-30144)

Both 'Copy promotion' and 'Copy offer' buttons are visible when user has access to manage any store or store group.

Performance of active promotions in user interface (RTC-39251)

Improved performance of approving promotion, editing and stopping active promotion in user interface (fix related to marking offer items to be exported).

Import of items (RTC-37761)

All item changes from Item Service are imported to Promotion database by new ItemMerger job. Items are saved in table that already contained items that were part of offers. When useModelItems=true, for each imported item, variant and model level rows are updated (they are used for offers on those levels). When useModelItems=false, only item rows are created.


...

Release 12.02.2024

AreaDescription
Planned promotion

Description of changes, history, info about changes exported to POS (RTC-36677)

Information for planned promotions that changes will be immediately exported to POS is visible when editing promotion or offer details and when managing items. Description of changes are required. There is a note in the history section after creating promotion, adding and copying offer, updating promotion or offer details and after managing items.

Price rules

Mix 104: Buy from group 1, get discount on group 2 (RTC-35721)

Fields to define in this mix type are:

  • Reward - Discounted price

Offer with mix type 104 has two offer groups. Rules: buy from group 1, get discount on group 2. Discounted price for group 2 can be editable in offer or defined in price rule. When creating a new offer with this mix, always two groups are created with quantity 1. Mix details for offer using mix 104 are properly exported.

Promotion API

Documentation for mix 101 'Promotion discount' (RTC-37334)

Business rules, import example and schema is added for upcoming mix type 101 - Promotion discount (mixType: PromotionDiscount in Promotion import and PercentDiscount value added in PromotionOfferItem import).
Import of this is not yet supported.

Third party and Excel import

Fix: Promotion Price update (RTC-38292)

Excel and 3rd party imports support update of Promotion Price value. Change of this value result in export of updated order line to blob.


...

Release 18.01.2024

Filter offers overview by offer status 

(RTC-30056)

It's possible to filter offers in promotion details based on their status: Active, Inactive or Incomplete. There is a picker for that in the offer panel.

Image Added

Image Added

Improvement

AreaDescription
System

Performance when adding items to the offer group (RTC-37691)

Added database index to improve performance when adding items to offer group. Size of batch that is saved to the database is set to 2000 by default and can be changed using parameter in configuration of ItemSelectionItemImport job.


...

Release 02.01.2024

AreaDescription
Export

Export only changed rows after recalculation (RTC-36798)

After item selection update (e.g. after segmentation recalculation at night), only rows with changed values are exported. This increases the promotion update performance from Promotion module to POS.

Promotion

Promotion grid side panel (RTC-37256)

Side panel in promotions grid is closed by default and its state is saved in local storage.

System

Fix: Promotion exported before PromotionOfferItems (RTC-36675)

In every blob export situation, the active/planned Promotion is exported before PromotionOfferItems.


...

Release 07.12.2023

Filter promotions by profile, team or store

(RTC-22906)

There is a side panel in the promotion grid that allows to filter the grid based on the profile, store, team that user wants to see. Only promotions that are inside the selected scope are visible to the user.

Image Added

Improvements

AreaDescription
Offer


Fix: Add segmentation to offer through 'Edit offer' page (RTC-34391)

Offer processing is started properly after user opens 'Edit offer' page, clicks 'Manage items' and creates new segmentation.

System

Fix: ItemSelectionItemImport (RTC-36697)

ItemSelectionItemImport is not stuck when processing the offer groups. This could happen before in some special cases.

Fix: Exception handling (RTC-35478)

Apart from the exception in the database and log in the Integration Platform, the execution of job is 'Completed with warnings'.


...

Release 27.11.2023

AreaDescription
Export

Fix: Missing items in export after approval of promotion (RTC-36216)

All offer items from all offer groups in promotion are included in export execution after promotion approval is finished. Before this fix, some items could be missing from export due to approval request being handled at the same time as the export job was running.

Import

Mix 40 (RTC-34083)

Offer with mix type ''Combine from groups and get collective discount" (mix 40) can be imported from 3rd party. It is marked as supported in the Swagger documentation. Import of discount on offer level is not supported.

Offer

Fix: Add segmentation to offer through 'Edit offer' page (RTC-34391)

Offer processing is started properly after user opens 'Edit offer' page, clicks 'Manage items' and creates new segmentation.

System

Fix: Segmentation recalculation in night (RTC-35260)

During night recalculation of active offers, existing segmentations are recalculated and unnecessary copy of segmentation is not created.


Parameter for ItemSelectionItemImport (RTC-35197)

There is a parameter 'Timeout per offer group (in minutes)' with default value equal to 60 min. After this time offer group with problematic segmentation is skipped but other groups are processed.


...

Release 26.10.2023

AreaDescription
Export

Performance improvement (RTC-35199)

Improved performance of export job to prevent its failure, especially in case of re-exporting all offer items to POS.

Offer items from deleted offer group (RTC-35136)

After removing offer group, items from this group are exported with status 'Deleted'.


Logs and fix of offer items export (RTC-35802)

Export job executions (Promotions and PromotionOfferItems) save logs with row versions that are exported as well as number of exported rows.
Missing rows export of offer items is fixed (bug in comparison of row versions to be exported).

Import

Deleted offer group (RTC-35136)

There is no validation message after import of promotion as JSON file with offer group which have 'Deleted' status, when this group was already deleted before.

Mix 35/41 (RTC-34082)

Offer with mix type 'combine from groups and get discount per group' (mix 35/41) can be imported from the 3rd party. It is marked as supported in the Swagger documentation. If the mix has several groups and we provide not unique identifier, there is validation.


...

Release 16.10.2023

AreaDescription
Import

Offers with mix 21 (RTC-34080)

Offer with mix type 'Import of buy N selected items and get a discount' (mix 21) can be imported from 3rd party. It is marked as supported in the Swagger documentation.

Items in promotion


Faster filtering and search (RTC-34087)

Fetching data and filtering for 'Items in promotions' page for offers (grid for item level and for item group level offers) is faster. Sorting on status, store group code, store group name, period overlaps columns in grid for offers on item level is not possible.

System

Fix: Adding hundred thousands of items to offer (RTC-35572)

Reduced page size when fetching items and prices from Item Service to avoid errors when item list or segmentation contains hundred thousands of items.


...

Release 30.09.2023

AreaDescription
Export

Export after update from 3rd party import (RTC-34351)

Promotion is exported properly after offer is added to existing promotion or updated through 3rd party import. Offer items are always exported after such import as well.


Performance of export of offer items (RTC-30142)

There is no timeout when there are many offer item changes exported (e.g. after approving promotion with 100+ thousands of items or manually re-exporting all promotions to POS with SQL script).

Import

Import file with thousands of rows (RTC-34237)

StagingImport job does not fail when one imported file contains over 4000 of JSON rows.

Promotion API

Documentation for mix 10/13/39 (RTC-34227)

Business rules and import example in Swagger are added for 'Buy N or more items and get a discount per piece' mix type.

System

Access control - filter promotions in grid (RTC-14422)

In Promotions grid user sees only those promotions for which he has access to view (e.g. promotions in this store, but also profile and team promotions of store for which he has permission and profile promotion of store from team for which he has access etc). When copying offer, list of promotions show only those to which he has manage permission.


...

Release 04.09.2023

AreaDescription
Export

Fix: Export of mixes 5, 27, 28 (RTC-33833)

Added 'MaxCountInReceipt' in export of offer and offer items with mix 28 and 5. Removed 'MaxCountInReceipt' from exports in mix 27 (value was already not visible in Promotion Management).

Offer

Fix: Blocked coupon offer ID input (RTC-33311)

Coupon offer ID input is not disabled after selecting and unselecting checkbox.

Offer details

Schedule offer period validation (RTC-33545)

'Valid from' and 'Valid to' is required when 'Schedule offer period' checkbox is selected. There is no exception in console when date input is empty.

Offer items

Fix: Margin percent calculation (RTC-32530)

Margin percent field displayed in panel in promotion price offer is calculated as ('Promotion price WO VAT'/'Promotion net price')/'Promotion price WO VAT' * 100%.

Price rules

'Price for bundle' validation in mix 100 (RTC-33448)

Focus is set on 'Price for bundle' when creating price rule or offer with mix type 100, so "This field is required." message is properly displayed.


Distribute discount on mix 23 (RTC-34392)

'Distribute discount' flag is added to Mix 23: "Buy N items and get a discount in % on the M cheapest items". Flag defines whether mix discount should be distributed on all items included in the triggered mix. Existing price rules have this flag set to 'Editable in offer', and existing offers has this flag unchecked (discount is distributed on cheapest items as before).
Field is exported in mix details on promotion offer level and on offer items as distributeDiscountOnAllItems value. Value can also be imported from 3rd party - set to False if not defined. Swagger documentation and import example is updated.

Promotion API

Documentation for upcoming mix types (RTC-34027)

Business rules and import example in Swagger are added for upcoming mix types:

  • 21/22 - Buy N selected items and get a discount (BuyNSelectedItemsForXAmountDetails)
  • 35/41 - Combine from groups and get discount per group (CombineFromGroupsAndGetDiscountOnOneGroupDetails)
  • 40 - Combine from groups and get a collective discount (CombineFromGroupsAndGetCollectiveDiscountDetails)
Promotion offer

Segmentation (RTC-31090)

If the user selects segmentation but has not yet added items to the offer, editing the offer and deleting the offer or promotion is possible.

System

Migration to .NET 6 (RTC-28895)
Promotion module is migrated to .NET 6.

Model name (RTC-33204)

Model names with up to 255 characters are correctly stored in the Promotion database.


Database compatibility level (RTC-32039)

Compatibility level on databases is set to 150.


...

Release 08.08.2023

AreaDescription
Import

Use external model number when importing offer items from 3rd party (RTC-32737)

Export of offer items to Excel on model and variant levels contain 'External model number' column.
In import of offer items from Excel on model level, models can be identified by 'External model number'.
Import of model offer items from 3rd party is possible by using modelIdentifier - modelNo or externalModelNo. Import of itemIdentifier set offer group to item level, and import of modelIdentifier set model level. When both itemIdentifier and modelIdentifier are provided, there is exception for such row.
In Excel and 3rd party import, when both 'External model number' and 'Model number' fields have value, model is identified by 'Model number'.
Import of models is not possible when tenant is configured to use non-model items.
Swagger documentation is updated.

Offer 

Fix: block coupon checkbox after save when using Voyado (RTC-30368)

For clients who use integration with Voyado, after adding coupon to offer and clicking save, checkbox is immediately blocked and cannot be unchecked.

Offer details

Fix: Cancel button (RTC-33250)

When a user is in the offer details view and clicks cancel, regardless of the status of the promotion or whether the user has made changes, he/she is taken to the promotion details view. If edits have been made but changes have not been saved, the changes are not visible. No modal appears.

Offer and price rule

Fix: Remove unnecessary "Save changes" dialog (RTC-32922)

Dirty modal does not appear if the user wants to go to the previous view and has not edited offer details / price rule. It's also not visible when leaving offer details / price rules which are in read-only mode.

System

Fix: ItemSelectionItemImport job logs (RTC-33069)

ItemSelectionItemImport logs contain number of items added to offer group and items with no prices. Example: 'Offer groups with succeeded state (offer group id (items with prices / items with no prices)): 1234 (5/1)'. At the end of each section containing information on a single segmentation/list is such message: 'Offer group processed: 0 items and 1 item without price.' Above messages are visible only for groups that were processed 10 seconds or longer and their processing was successful. If the job has status 'CompletedWithWarnings', the user sees the text 'Offer groups with failed state: 1234'.


...

Release 19.07.2023

AreaDescription
Offer

Number of times the offer can be used if 'Coupon offer' checked (RTC-28451)

When 'Coupon offer' checkbox is selected then 'Number of times the offer can be used' input is replaced with text 'Once per unique coupon'. Reuse condition is saved in database based on previous values and price rule settings. If ' Number of times the offer can be used' is editable in offer and the user does not enter a value and select 'Coupon offer' checkbox, the value 1 is saved in the Promotion database. Regardless of value in Promotion database, in POS the coupon offer is treated as 'Once per unique coupon'.

Offer items


Process manually updated offer groups before externally imported ones (RTC-32502)

ItemSelectionItemImport job (responsible for adding items into offer groups) first process changes triggered in user interface and then changes triggered by external import of JSON file. When there is ongoing import of items, and user adds items to some other offer group using user interface, this offer group is first in processing queue so user does not need to wait till import of data is finished.

System

Upgrade to LibBackEnd 5.4.0 (RTC-33205)

LibBackEnd updated in order to support notifications and Azure SignalR.


...

Release 13.07.2023

AreaDescription
Items in promotion 

External model number (RTC-32735)

'External Model Number' is added as column in the 'Items in promotions' grid in item view and in the offer group items grid. New column appears when an item list or segmentation at item, variant or model level is added to an offer group. This is visible by default only on model and variant level. Column cannot be shown when tenant is using non-model items (system parameter). 

Offer items

Fix: no duplicates of items (RTC-33160)

Fixed issue in ItemSelectionItemImport job, which caused duplicated item rows in Promotion database after adding non-model item to offer on variant level (then such duplicates were added to offers anytime when adding such SKU to offer on any level).
During release, existing duplicates are removed. Unique indexes added to prevent duplicated items in future.


...

Release 07.07.2023

Find offer ID and use it for filtering in reports

(RTC-32125)

'Offer ID' is visible in the details of an existing offer. When creating new offer this field appears after saving this new offer. If the user collapse the details of an offer, the field is still visible. There is a also column named 'OFFER ID' in 'Items in promotions' view ('Items list' and 'Item group list') and in 'Promotion offers' view.

Image Added
Offer ID in offer details

Image Added
Offer ID column in Items in Items in promotions

Image Added
Offer ID column in Promotion offers

Improvement

AreaDescription
Offer items

Performance of adding items to offer group (RTC-32248)

Improved performance of adding items to offer group. Improved performance of fetching data for 'Items in promotions' page.


...

Release 04.07.2023

AreaDescription
Export

Fix: Offer item export after update of item color (RTC-32915)

When an item is added to a promotion and then in the user changes the items color (In Item Management), the changes are correctly saved in the promotion database. The re-addition of the item in the Promotion module results in the correct export of the PromotionOfferItem (with same offerItemNo).

Import

Performance of promotion update (RTC-32353)

Improved performance of 'Valid From/To' dates update through import on promotions with thousands on items in them.

System

Improve formatting of ItemSelectionItemImport job logs (RTC-32283)

'ItemSelectionItemImport' job logs in Integration Platform Management are displayed only for groups that were processed 10 seconds or longer. Aggregated log on job completion indicating which offer groups were processed correctly and which were failed. Excel validation errors are logged as information.


...

Release 29.06.2023

AreaDescription
Export

Customer groups (RTC-29010)

Export of promotion and offer items includes CustomerGroupCode. Please see Promotion API Swagger for definition of export format.

Import

Integration job is not aborted after import timeout (RTC-32359)

Database request timeout in StagingMerger job result in 'Faulted' job execution status instead of 'Aborted'. That means import will be retried properly in next job execution.

Offer

Remember selection level when using segmentation (RTC-31990)

When the user is editing a segmentation in an offer, current level of offer group (item, variant, model) is properly preselected in modal when clicking 'Add to offer' button.


...

Release 19.06.2023

AreaDescription
Export

Customer group code in export (RTC-31630)

Export contract for offers and offer items to POS is extended with 'customerGroupCode' field. Data is not yet exported.
Value is not yet supported in promotion offer import (validation error when imported).

Offers

Customer groups (RTC-29009)

When creating or editing an offer, the user can select a 'Customer group offer' checkbox. A drop-down menu then appears. Only active customer group are visible and can be assigned to the offer.

System

No notification for offers updated by 3rd party import (RTC-32072)

When offer items are updated by 3rd party import, notification request to Shell is not done.


Database maintenance job (RTC-32287)

There is a 'PromotionServiceJanitor' job in PromotionIntegrationPackage package. By default, in runs once every night. If there were any changes in database, it rebuilds index on tables in Promotion database. This results in a reduction of the database size and improves performance of external data processing.


Integration job cancellation (RTC-32247)

Integration package has a handling for cancellation of job (e.g. during package restart).


...

Release 02.06.2023

AreaDescription
Import

Order of properties in promotion offer import (RTC-31603)

MixType is no longer required to be first property of MixDetails. Properties of imported JSON file can be at any order.

Offers

Fix: 'Number of times the offer can be used' (RTC-31810)

An offer is correctly saved in the database when creating a new promotion and price rule has 'Number of times the offer can be used' set as editable in offer. This resolves issue related to being unable to submit promotion with such offer.

Offer items

Handle items with 0 ordinary net price (RTC-32168)

When item with ordinary net price = 0 is added to offer, items are properly displayed in 'Manage offer items' grid. In price panel for such item, only 'Promotion discount' input is available (It changes promotion price without changing fields that depend on ordinary net price).

System

Import of customer groups (RTC-29008)

Customer groups are imported into the Promotion database each time an edit or new entry is made in CustomerService.


...

Release 23.05.2023

Scheduled offer activation/deactivation

(RTC-29471)

When creating or editing offer, it is possible to schedule the offer period when offer is active or inactive. This can be done using 'Schedule' section, where schedule use schedule type (active/inactive period) and date range can be selected. Date range cannot be same as promotion validity range, and 'Valid from' must be before 'Valid to'. When saving schedule, status of offer is set to match scheduled plan. 'Valid from' is day when offer changes its status, and 'Valid to' is the last day when offer has this status.

To schedule offer period for when the offer is active or inactive, you click on the Edit offer button. 

Image Added

Offer open in a new view. Tick "Schedule offer period". 

Image Added

Fields to schedule the offer period opens. You can schedule active or inactive offer period and valid from/to date. 

Image Added

Status is changed by 'OfferScheduler' integration job, which by default runs at 01:00 UTC. It starts schedule of offers with matching 'Valid from', and offers with 'Valid to' set to day before (offer scheduled to be active from 01.05.2023 to 08.05.2023 is activated on 01.05.2023 01:00 UTC and deactivated on 09.05.2023 01:00 UTC).
'Activate'/'Deactivate' button on offer is removed. It is no longer possible to manually deactivate or activate offer without setting a schedule.

Improvements

ModuleDescription
Offers

Copying offers (RTC-31729)

It is possible to directly copy an offer into the same promotion the offer is in.


Fix: Segmentation in offer on model/variant level (RTC-28577)

Offer group items are added on item, variant or model level according to what was selected in modal when adding new segmentation to offer/ editing segmentation used in offer.
When creating new offer, there is possibility to choose selection level in new modal after selecting existing segmentation from the list.

System

Item name and item group name (RTC-31164)

Item names with up to 255 characters can be stored in the Promotion and Procurement databases. The same applies to item groups stored only in the Promotion database. When the item names are too long when importing OrderDespatchAdvice or PurchaseOrder via a third party, a validation error will appear.


...

Release 15.05.2023

ModuleDescription
Offers

Item lists by variant (RTC-31636)

Item lists' 'browse by' variant is remembered and used when adding item lists to promotion.


...

Release 05.05.2023

ModuleDescription
Import

Promotion price and promotion supplier net price validation (RTC-30227)

When importing an item into an offer via an Excel file or a 3rd party, if the imported promotion price value is greater than ordinary price or imported promotion supplier net price value is greater than ordinary net price then a message is displayed in ItemSelectionItemImport job execution.

Offer

Import of items into the offer group (RTC-27053)

When importing large amount of items from ItemService into the offer group, import is done correctly, without object dispose exception.

System

Database performance (RTC-29953)

Promotion database has improved performance, to prevent any timeout when updating a lot of data.


...

Release 18.04.2023

Offers: Items in promotions on profile and price zone level

(RTC-26727)

When promotion is on profile, and item has price in price zone assigned to profile, price zone price is used.
When promotion is on price zone assigned to profile, and item has price in profile, profile price is used.

When promotion is on team level assigned to profile, and item has price in profile, profile price is used.

Improvement

ModuleDescription
Offers

Error handling in segmentation night update (RTC-30740)

When segmentation in offer group is updated, and segmentation has unexpected status, offer group is not updated and offer group items are not deleted in Promotion and not exported with deleted status to POS. Integration job log contains details of error and CompletedWithWarnings status.


...

Release 28.03.2023

Pause offer in active promotion

(RTC-29470)

Offers can be deactivated and (re-)activated when a promotion is active, using button in three dots menu on promotion details page.

Image Added       Image Added

Offers cannot be deactivated when it is incomplete. Changes are saved in promotion history. An inactive offer and its items are exported (to POS) as 'Deleted', and 'Active' when (re-)activated.

Improvements

ModuleDescription
Offers

Promotion price in bundle (RTC-30324)

'Promotion price' offers marked as 'Bundle offers' are exported as 'soldInBundle' on item level.

Promotion

Removing an offer or promotion when items are imported (RTC-30048)

Deleting and editing the offer in which an item import is in progress is not possible. The user sees message in the offer details that this offer cannot be edited when import of items is ongoing. Deleting promotions during item import is also not possible.


...

Release 13.03.2023

ModuleDescription
Import

Kickback amounts validation (RTC-28483)

In Excel and 3rd party import, when kickback amounts sum is higher than ordinary net price, kickbacks are ignored and item is added to an offer without those values. It is logged as a warning in ItemSelectionItemImport job execution.

Promotion

Offer and promotion update (RTC-29954)

There is no timeout when saving changes in offer.

Promotion API

API documentation (RTC-29106)

Promotion import contract contains 'Status' and 'Discount' explanation and available enum values in 'mixDetails'.

System

Update of offers with dynamic segments (RTC-29541)

If the scheduled job that updates the dynamic segments fails due to some underlying reason, it will automatically retry. (SegmentationScheduler job request to Item Service is retried if failed.


...

Release 24.02.2023

Creating/editing offers - NEW DESIGN

(RTC-23604)

Offers are created and edited on a page, which shows offer and price rule details.

When you select New promotion, the new promotion view opens. Add promotion name, select where the promotion should be available and the valid period. 

Image Added

By default "Promotion price" is added as price rule for offer 1. 

You can add a new offer by clicking on Add offer. Then the "Select price rule" grid opens. The grid can be expanded and show mix number and price rule description. Select wanted price rule by clicking on the price rule. 

Image Added

The selected price rule is added in the offer section of the view, displaying the name of the price rule (see example) . 

Image Added

You can remove the default price rule if you don't need it after another offer is added. Just click on the x behind the "Promotion price" price rule. Then the it is removed from the promotion. 

When adding new offer (to new or existing promotion), price rules are selected from a grid, where rows can be expanded and show mix number and price rule description.

  • 'Manage items' page can be entered both from promotion view, and offer details page.
  • Changes in offer can be discarded using Cancel button.
  • 'Description of changes' is added and required when adding new offer to active promotion.
  • When Voyado API is not available when marking offer as coupon offer, coupon is not created in Promotion database as well, which makes it possible to retry Voyado request by trying to add coupon later.

Improvements

ModuleDescription
Export

Planned offers (RTC-29990)

When promotion is planned, removed items are exported with status 'deleted'.

Offer items

Supplier model/item number (RTC-29038)

Supplier model/item numbers are displayed in the offer item grid. Supplier item number column is hidden when using model items (system parameter).

Promotion

Long offer name (RTC-29034)

Offer with long name is displayed properly on promotion details page.

System parameters

Model items parameter (RTC-26188)

When 'model items' dropdown list is expanded, current value is highlighted.


...

Release 10.02.2023

ModuleDescription
Export

External model number (RTC-29102)

'ExternalModelNo' is imported from Item Service to Promotion database when adding item to an offer. When not null, value is exported to POS as a part of 'modelIdentifier' on offer item level (when offer is created on model or variant level).


...

Release 25.01.2023

ModuleDescription
Export

Export kickback as positive value (RTC-28718)

"Kickback supplier" and "Kickback chain" percentage and amount are exported as positive value.

Import

Import API for mix type 100 (RTC-27931)

Bundle offer (with mix type 100, "CombineFromGroupsAndGetSpecifiedPrices") can be imported from blob sent by 3rd party. Contract and business rules are documented in Swagger. "PriceForBundle", "MaxCountInReceipt" can be defined. Offer groups can be created, edited and deleted by "Identifier" (number of offer group within offer), "RequiredQuantity" and "Status" fields.
Imported offer uses 'Generic 100' price rule, which is not available when manually creating new offer.
Items can be imported to offer with mix type 100. It is required to define "groupIdentifier". "BundleAddOnPrice" can be set per item.

System

Performance improvement (RTC-27395)

Database changes that can improve performance when adding item list or segmentation with hundreds of items to offer.


...

Release 13.01.2023

ModuleDescription
Excel import

Import offer prices on model/variant level (RTC-27055)

Kickbacks, 'Promotion supplier net price', 'Add-on price' (Mix 100) and 'Promotion price' (Promotion price offer) can be set during Excel import of models/variants to the offer. Same rules apply as in import of prices on item level.

Items in promotion

Fix: No timeout when searching (RTC-28452)

Database query that is used for searching items in promotions grid has improved performance, so it should not timeout on customer environment.

System

Non-model items system parameter (RTC-15637)

When non-model items are in use (system parameter value):

  • Model number, Color, Size and Supplier model number columns are removed from 'Manage items' grid (offer group).
  • Color and Size are removed from price panel.
  • Model number, Model name, Color, Size, Selection level are removed from 'Items in promotions' grid.
  • Model and Variant offer level is not available when adding item list or segmentation to offer and when importing offer items from Excel file.

Parameter must be set to same value both in Item Management and Promotion.


...

Release 05.01.2023

ModuleDescription
Excel export and import

Promotion supplier net price (RTC-28029)

Offer items/models/variants are exported to the Excel file with the 'Promotion supplier net price' value. It contains values from price panel which is 'Ordinary net price' with 'Kickback supplier' applied.
Values can be imported from Excel file. When the file does not contain this column, Kickback supplier is applied. When 'Promotion supplier net price' is lower than 'Ordinary net price' of item, it is applied and kickback is properly calculated. When value is higher than 'Ordinary price', ItemSelectionItemImport job has a warning and 'Kickback supplier' is applied.
'Promotion supplier net price' can be imported from API and is exported to blob as 'supplierNetCost' field.

Export

Export of deleted items (RTC-27351)

All items from the offer are exported after deleting an offer group or offer from an active promotion. Items which are  not in this promotion anymore, are exported with 'deleted' status.

Offers

Promotion price in bundle (RTC-27955)

'Promotion price' offers can be marked as 'Bundle offers' using 'Bundle offer' checkbox when editing offer/creating it from item list. Flag cannot be set for any other mix types. Flag value can be imported from 3rd party and is exported to POS as 'soldInBundle' on offer level (supported only in promotion price). Existing promotion price offers have this flag set to 'False', same for offers added when creating promotion, or when value is not specified in import.
When flags on offer are set to 'True', proper message is displayed in offer details: 'Offer is reserved for members', 'Offer is applied for coupons from 3rd party' and 'Offer is applied for items sold in bundles'.

System

Decimal values input (RTC-28003)

Price and weight input fields in price rules and offers are numeric (as in price panel). It is not possible to enter signs other than numerals, comma as decimal separator and 2 decimals in price or 3 decimals in weight fields (mix 5).
Result of that change is properly working decimal inputs on browsers in Norwegian and Swedish languages.


...

Release 21.12.2022

ModuleDescription
Price rules

Discount on discount on mix 40 (RTC-28277)

'Discount on discount' flag is added to Mix 40: "Combine from groups and get a collective discount". Existing price rules have this flag set to 'Editable in offer', and existing offers has this flag unchecked. Field is exported in mix details on promotion offer level.

System

Improve formatting of ItemSelectionItemImport job logs (RTC-27848)

'ItemSelectionItemImport' job logs in Integration Platform Management are displayed separately for each offer group. Log contains offer group id, time each of job steps took, total time of offer group processing and result: number of items with, and without prices.


...

Release 15.12.2022

ModuleDescription
Excel export and import

Add-on price (RTC-27290)

Items, models and variants from offers with mix type 100 are exported in the Excel file with the 'add-on price' value. Items can be also imported via Excel file with 'add-on' price. 'Add-on' cannot be smaller than 0 and greater than 999999. If 'add-on' field is empty in the Excel file, it's not updated for already added items and it's set to 0 for new items in the offer.

Item segmentation

Performance for dynamic segments (RTC-27540)

  • The method GET ItemSegmentations/GetItemsWithPrices [id] returns results faster, there's no timeouts when requesting prices (if they are, they're related to bug in Promotion that will be fixed in: RTC-27395 [Promotion] Add indexes to the views)
  • Method return top price for an item (in list)
  • The hierarchy for returning prices when making promotion is (the same):
    • When filtering by store - store price, with fallback to profile and then price zone.
    • When filtering by team - Price zone price with fallback to store.
    • When filtering by profile - Price zone price with fallback then store.
    • When no filtering (promotion on all stores)- Price zone price -> profile -> store. 


Segmentation on item hierarchy (RTC-27619)

Segmentation can be done on all item hierarchy levels: Department, Item area, Item group and Item sub group.

Promotion

Fix: Valid to in the past (RTC-26811)

'Valid to' cannot be set in the past when creating a promotion. Validation message is displayed under the 'Valid to' field.


...

Release 07.12.2022

ModuleDescription
Offers





Collapse offers in promotion details view (RTC-26944)

Each offer in promotion details view can be collapsed by clicking in offer header. Offers are not collapsed by default. When offer is collapsed, only offer name and code (if specified) are displayed.
When at least one offer is collapsed by user, default state for this user changes to all offers collapsed.
If all offers are not collapsed, default state is not collapsed.
Width of offer details in promotion details view is constant for all mix types.

Promotion

Sorting of offers (RTC-26945)

Offers' headers contain offers' names and offers are sorted by offer name in promotion view and report tab. If offer has coupon, coupon id is displayed in the offer view.


...

Release 30.11.2022

ModuleDescription
Bundle offersPromotions with bundle offers (RTC-26495)

Offers with bundles can be created (please note that import in POS is not ready yet). Price panel with ordinary price and add-on price is visible when managing items for offers with mix type 100. Ordinary price is read-only field and add-on price can be edited. It can be specified for each item in every offer group. Add-on price is also visible in the column in the grid when managing item for offer with mix type 100.

Promotion report

Numbers with separators (RTC-26367)

Numbers have thousands separators in report tab and item sales grid.


...

Release 24.11.2022

Mix 100: Buy the specified quantity for each group, and get a price for the bundle 

(RTC-26494)

Fields to define in this mix type are:

  • Conditions - Number of times the offer can be used.
  • Reward - Price for bundle.

Offer with mix type 100 can have maximum 5 groups with items.

Parameters of this mix are exported with offer to POS.

Image Added

Improvement

ModuleDescription
Promotion API

API documentation (RTC-27105)

Business rules section of import documentation contains explanation of "offerItemType enum", "Promotion type" and "Offer code".


...

Release 23.11.2022

ModuleDescription
Promotion offers

JColumns in promotion offers grid (RTC-26943)
Promotion offer grid contains following columns:

  • Available in
  • Store group code
  • Store group name
  • Mix no.
  • Coupon offer (hidden by default)
  • Discount on discount (hidden by default)
  • Member offer (hidden by default)
System

ItemSelectionItemImport job logs (RTC-26961)

Execution of 'ItemSelectionItemImport' job shows detailed logs in Integration Platform Management, what makes it easier to investigate flow of item import from Item Service to offer.


...

Release 10.11.2022

ModuleDescription
Offers

Store group price in store promotion and prices import timeout (RTC-27247)
Items with store group price, when added to promotion in store assigned to store group, will be added with store group price (removed feature is added again, as it was not cause of issue).
Timeout of request for segmentation items prices is extended due to low performance of database query (until faster solution is developed).


...

Release 04.11.2022

ModuleDescription
Export

Sales unit of an item (RTC-26987)

'Sales unit' value set on an item is imported from Item Service when item is added to offer.
PromotionOfferItem export to blob contains 'unitOfMeasureShortNameEN' field, which is 'Code (EN)' value in Unit register in Item Management.

Offers

Rollback: Store group price in store promotion (RTC-27200)
Items with store group price, when added to promotion in store assigned to store group, won't be added with store group price due to low performance. Fix will come in future.

(Changes only in item service, promotion is affected).


...

Release 24.10.2022

ModuleDescription
Promotions

Columns in the grid (RTC-26350)

Promotions grid is extended with the following columns:

  • Visible by default:
    • 'Member offers' flag
    • 'Coupon offers' flag
  • Hidden by default:
    • Promotion ID
    • Ext. promotion no
    • 'External promotion' flag
    • Promotion type code
    • Promotion type name
    • Category

Main page of Promotion Management is Promotions grid page.


...

Release 19.10.2022

ModuleDescription
Offers

Store group price in store promotion (RTC-26078)

Items with store group price, when added to promotion in store assigned to store group, will be added with store group price. Prices of an item are fetched in hierarchy: store, price zone, profile.


...

Release 18.10.2022

ModuleDescription
Offers

Update of price in offers on store group level (RTC-24361)

When an item with store price is added to an offer on store group level, and then a store group price is added and item selection is reloaded, ordinary price is updated with correct store group price. When the new price is higher than the previous, the promotion price is not updated. When the new price is lower than the previous, the promotion price is set to ordinary price.
In case of promotion on all stores or store group, when an item has prices only in stores, price in store with smallest number is used when adding price to offer (store numbers sorted as text).
In 'All stores' offers, the price is selected in hierarchy: profile, price zone, store.

Promotion Service

Documentation (RTC-24949)

DayPeriod (timeFrom and timeTo fields) is displayed properly in examples of import and export file.


Documentation (RTC-26496)

Contract of promotion and items export is extended with fields related to mix type 100 - 'Combine from groups and get a specified price' (new values in mixDetails on promotion level, and 'bundleAddOnPrice' on offer item level).


...

Release 04.10.2022

ModuleDescription
Import

Import API for mix type 23 (RTC-25940

Offer with mix type 23 ("BuyNSelectedItemsAndGetDiscountOnTheYCheapestItems") can be imported from blob sent by 3rd party. Contract and business rules are documented in Swagger. Default values of mix type parameters define "3 for 2" offer. Imported offer uses 'Generic 23' price rule, which is not available when manually creating new offer.
Items can be imported to offer with mix type 23, but sales price cannot be set.
"Number of times the offer can be used" field in relevant mix types can be set to "Unlimited" when editable in offer.


...

Release 28.09.2022

ModuleDescription
Export

Promotion and offer code in offer item export (RTC-25223)

Offer item export contains promotion code and offer code values.

Promotion details

Promotion id (RTC-25871)

'Promotion id' is visible in promotion details view and edit modal.

System parameters

Set promotion type parameter in user interface (RTC-24761)

'IsPromotionTypeRequired' parameter value is displayed on 'System parameters' page and can be updated there.


...

Release 20.09.2022

ModuleDescription

Mix 41 limitation (RTC-24796)
Mix 35/41 has an information that it supports only a few items due to complex price calculation. It's displayed in  the following places:

  • 'Promotion details' view
  • 'Manage items for offer' view
  • 'Edit offer' modal
  • 'Create offer' modal


Mix 23 (RTC-25532)

Radio buttons are independent from each other in price rule view for mix 23.


Fix for mix types 11, 23, 25 (RTC-25949)

Only 'Percent' discount is available when managing offer using mix 11, 23 or 25, when value is editable in offer.
In mix type 23, 'Number of items' value in 'Conditions' section must equal 2 or more.

System

Showing date and time in grids (RTC-25449)

Time (in grey font) is visible in every date column in every grid in Promotion Management. Filtering in these columns is at the date level.

Voyado integration

Message after creating a promotion (RTC-25533)

After creating promotion in Voyado, message with external promotion's id is shown.


...

Release 24.08.2022

ModuleDescription
Offer

Description of dynamic selection (RTC-24951)

Description of dynamic selection displayed when choosing item selection type says that this selection will be updated every night, only when promotion is planned or active.


...

Release 16.08.2022

ModuleDescription
Import

Spaces validation in blob import (RTC-24732)

Spaces at beginning and end of text in promotion/offer item import from blob are validated properly.

Promotion report

Fixes for time period (RTC-24753)

Focus is always set on the right button which can be used to specify time period.
Items in 'Bestsellers' section are cached when user goes to item sales. Therefore after coming back to report, this section looks the same and there are no loading circles.

System parameters

System parameters (RTC-15636)

'System parameters' is accessible from the menu in the left panel. In order to see that page, user needs permission called' Promotion Administrator'. On this page user decides whether to use model or not model items in the module.

Release 05.08.2022

ModuleDescription
Import

Offer items update (RTC-24656)

  • When adding, updating or removing item from an offer, offer is found by "externalOfferNo" (external unique identifier). "ExternalPromotionNo' is not supported.
  • Promotion with status 'Active' or 'Finished' cannot be deleted through blob import (status 'Deleted'). When promotion is updated with 'ValidTo' value in past, current date is used and promotion is set to 'Finished'.
Offers

Validation for mix type 5 (RTC-24009)

If there is the same value in 'min kg' and 'max kg' fields in the modal for mix type 5, validation message is shown that maximum value must be greater than minimum value.


Export offer on model/variant level (RTC-24099)

Offers on model or variant level can be exported to Excel file. File contains same identifiers as in offer grid on each level, kickbacks and prices. File can be used as a template for import on these levels (import of kickback and prices on model/variant levels are not yet supported).


External Offer Number and Offer Code (RTC-24230)

Offer Code values are separated from External Offer Number. Offer Code is an input field on offer level. If offer has offer code, it is shown in the offer's details. External offer number is 3rd party unique identifier of offer, which is used when managing promotions and offers through API. If offer has external number, it is displayed in the offer's details.
Import and export of JSON file is extended with a new 'offerCode' field. In export, both these values have value of offer code (until changes in POS are done).

Promotion

External Promotion Number and Promotion Code (RTC-24231)

Promotion Code values are separated from External Promotion Number. Promotion Code is an input field on promotion level. If promotion has promotion code, it is shown in the promotion details. External promotion number is 3rd party unique identifier of promotion, which is used when managing promotions through API. If promotion has external number, it is displayed in the promotion details.
Import and export of JSON file is extended with a new 'promotionCode' field. In export, both these values have value of promotion code (until changes in POS are done).

Promotion Service

Documentation (RTC-24233)

Swagger documentation for import has been added.

System

Fix for filter of column with date (RTC-24356)

When filter is applied on date column, after opening row and coming back to grid (using breadcrumbs or back button), date filter applied to grid is displayed properly.


...

Release 28.07.2022

ModuleDescription
Offers

Fix: Offer Code (RTC-24737)

Offer code and promotion code can be duplicated. There is possibility to open and edit promotion/offers with duplicated offer code.

Promotion blob import

Approval for imported promotions (RTC-23958)

If promotion is created by importing a blob, it is automatically created as approved in user interface and exported to blob. There is a possibility to create active promotions ('valid from' date set in the past) or planned promotions ('valid from' date set in the future). If promotion has status 'planned', changing 'valid from' date to the past makes this status active.


...

Release 22.07.2022

Import of offer items from API

(RTC-23934)

Offer items can be added, updated and removed by 3rd party using JSON file import via File Service. Promotion and offer are identified by external numbers. Item can be imported by SKU, GTIN or Item number (items and prices must exist in Item Service). Details of file content are documented in EG Cloud Swagger. Items are validated with same rules as in Excel import. Validation errors are logged in database. Items can be added only to 'Promotion price' offers on item level.

Improvements

ModuleDescription
Segmentation


Fix: Scheduled update of promotion offer (RTC-24602)

During scheduled update of segmentation in Promotion Management, there is no issue in communication between Item Service and Segmentation Service.

Voyado integration

Use offer id as coupon value (RTC-24501)

When Voyado integration is enabled, and offer is marked as coupon offer, offer id is used as coupon (without 'Promotion-' prefix). This value is sent to Voyado as external promotion code (POS external offer redemption channel value) and to blob as externalCouponId.


...

Release 14.07.2022

ModuleDescription
Offers

Use current prices if promotion valid from past - item segmentation (RTC-24480)

When 'valid from' date of promotion is in past and using item segmentation in offer, items prices in offer are updated with values active today. It means newly created items that match segmentation are added properly to old, existing offer. When 'valid from' is in future, correct future price is used as before.


...

Release 13.07.2022

ModuleDescription
Offers

Use current prices if promotion valid from past (RTC-24417)

When 'valid from' date of promotion is in past, when adding items to offer, their prices in offer are updated with values active today. That means newly created items can be added to old, existing promotion. When 'valid from' is in future, correct future price is used as before.

Promotion

Disable update of store/store group (RTC-23725)

It is not possible to change selected store/store group in existing promotion. If needed, it can be done by creating a copy of the promotion.

Promotions grid

Filter for Not finished promotions (RTC-22896)

'Status' column in Promotions grid has a 'Not finished' filter. It shows promotions with statuses other than 'Finished'. This filter is set by default when opening promotions grid.

Promotion report

Time period (RTC-22848)

There is a 'Time period' section in the 'Promotion Report' view. User is able to set 'start date' and 'end date' in order to get data only from this period. It applies to whole report view and item sales grids. At the bottom of this section there are buttons which can be used to specify time period: 'date choice' (manually defined period), 'yesterday', 'this week', 'last week', 'last month'. A progress bar in the 'Sales' section shows promotion sales from selected period and percentage of total sale.


...

Release 06.07.2022

ModuleDescription
Offers

Remove and add offer groups in mixes 34, 35/41, 40 (RTC-23609)

Offer group identifier within offer is unique, so offers are updated in POS properly after one of offer groups is deleted and new one is added (new offer group has new identifier instead of using identifier of removed group).

Price rules

Swedish translations (RTC-23832)

Swedish translations of mix types names and descriptions are updated.

Promotion report

Removed offers and items (RTC-22211)

Item search and item sales grid works for deleted offers. Items removed from the offer when promotion was active are also displayed in item search and item sales grid.


...

Release 28.06.2022

Integration with Voyado

(RTC-20632)

Promotion offers can be integrated with with Voyado system.

  • If 'useVoyado' is set to False, everything work as before.
  • If 'useVoyado' is set to True, user is able to create a promotion in Voyado through Promotion module. After creating a coupon offer, promotion in Voyado system is created. Id of promotion in Voyado is saved in the new column named 'VoyadoPromotionId' in the 'Offer' table in the database. Name and dates of promotion in Voyado match name and dates of offer in Promotion module.
    After adding a new offer in user interface, green message about creating promotion in Voyado is displayed at the bottom of the screen. It contains Voyado's promotion's id and name.
    Promotion details in Voyado such as dates and name can be updated by editing offer's name or promotion's date in Promotion module.
    There is no possibility to delete a coupon from the offer.
    When user tries to delete a coupon offer which exists also in Voyado, modal window with information that this promotion won't be deleted in Voyado is shown.
    Copying offers and promotions doesn't include copying Voyado's promotion. Promotion import through API does not send offer to the Voyado system.
    For offers without coupons, flow is the same as before.
    If a request for Voyado fails, orange error message is displayed at the bottom of the screen.

Improvement

ModuleDescription
Export

Identifier of offer group item (RTC-23558)

Export of offer items to POS contains "offerItemNo" field, which is globally unique identifier (GUID) of offer group item.

Offer

Switch between offer groups (RTC-23740)

Items/models/variants/item groups in offer view are displayed properly when switching offer group using buttons in top right corner.


...

Release 13.06.2022

Import of promotion from API

(RTC-22219)

Promotions can be created, updated and deleted by 3rd party using JSON file import via File Service. Required format of data is documented in Swagger. File content is validated before saving it (same rules as in user interface). Only 'Promotion price' offers are supported. Validation errors are saved as StagingMerger job warning or in [staging].[FlatBatchJson] table. When updating/deleting promotion/offer, external number is used. If 'Promotion type' does not exist, it is added to register.

Improvements

ModuleDescription
Promotion report

Better looking report (RTC-22847)

Sections in promotion report are grey with rounded corners and columns in the 'Bestsellers' section have titles.


...

Release 08.06.2022

Item group list in offer

(RTC-18680)

Item groups can be used to define an offer group. This means an offer will apply to all items within the item group. Item group list is available for all price rules with item selection, except 'Promotion price'. Price panel (kickbacks) is not available for item group. Default kickback values cannot be set if all offer groups within offer use item groups. These offer groups are not available in 'Import' modal in Promotion view. Data in report for offer on item group level is fully based on Reporting API response. Offer is exported to file (blob) with item group numbers.
Using a link above grid in 'Items in promotions' view, user can choose offers based on their selection level: Item or Item group. Overlapping modal for an item shows offers where this item or its item group was used. Modal for item group shows only offers where this item group was used.

Improvements 

ModuleDescription
Offers

Promotion price can equal 0 (RTC-22770)

'Promotion price' value can be set to 0 in the price panel in 'Manage items' view.


Removing offer group from the offer (RTC-23081)

There is a possibility to remove an offer group from the offer with multiple offer groups. Deleted offer group is exported to file (blob) with status 'deleted'.

Price rules

Discount on discount (RTC-23556)

It is possible to submit promotion which uses mix type without 'Discount on discount' flag.


Discount on discount (RTC-21867)

Discount on discount can be defined in the price rule or marked as editable in the offer. If a price rule is used in a promotion, 'discount on discount' field can no longer be edited in the price rule view.


...

Release 25.05.2022

Import items to the offer

(RTC-18998)

There is a possibility to choose item, model or variant level when importing items to the offer. File exported from 'manage items' view can be used as a template. For model level models are recognized by "ModelNo" field and for Variant both "ColorText" and "ModelNo" fields must be present.

Image Added

Improvements

ModuleDescription

Offers

Default kickback values (RTC-13033)

"Kickback supplier" and "Kickback chain default" values can be defined on offer level. These values are used to calculate promotion net price for an item when it is added to the offer. Values can be defined for all mixtypes except 'All items' ones. Values are not applied when items were already added to offer and when importing offer items excel file which contains kickbacks. Values are also ignored when sum of amounts is greater than net price.

Promotion report

Bestsellers section width (RTC-22748)

Bestsellers section is two times wider, so items with long name, color and size are fully displayed.


...

Release 12.05.2022

ModuleDescription

Export

Fix for incomplete offers (RTC-23031)

Export job does not fail when incomplete offer (with missing parameters) is removed from promotion before activation.

Promotion report

Show item attributes from Reporting Service (RTC-22076)

Bestsellers and sales per item shows item attributes received from Reporting API. This is also the source of data in item sales grid when there are over 5000 items in offer or offer applies to all items. In other cases, item attributes in item sales grid are displayed from promotion database.

SKU column is removed from item sales grid.

System


Loading sign in grids (RTC-22411)

Loading sign is added to all grids in promotion module. It is displayed when data is being loaded to grid.


...

Release 28.04.2022

ModuleDescription

Offer

Segmentation on variant and model level (RTC-20639)

Items can be added to the offer using item segmentation on item, model or variant level. After selecting item segmentation and clicking 'add to the offer' button, there is a modal window which asks on what level user wants to add segmentation. The default selected value is item level.

After adding items, variants or models to the offer, in the 'Manage items' view, there is a message above the table about what level is used in the item segmentation. Columns in this view match selected level.

Export to blob:

  • Items are exported with 'gtin', 'externalItemNo', 'sku' fields in the 'itemIdentifier' section.
  • Models are exported with 'modelNo' field in 'modelIdentifier' section.
  • Variants are exported with 'variantIdentifier' section which contains 'colorText' field and 'modelIdentifier' section.

Price rules

Fix for mix 21/22 (RTC-21930)

It is no longer required to always update 'Min. receipt amount of other items' field when editing price rule with Mix 21/22.

Promotion type


Activate and edit row in register (RTC-22014)

After activation/deactivation of a row in the register and editing some values without closing the modal, grid is refreshed.


...

Release 21.04.2022

Items in promotion

(RTC-20587)

There are two new columns in the 'Items in promotion' grid - 'Model name' and 'Selection level'.
Modal window for overlapping promotions looks different for items/models/variants. Modal for models contains modal name and model number. Modal for variants contains model name, color and model number.

Improvements

Segmentation on variant and model level (RTC-20639)

Items can be added to the offer using item segmentation on item, model or variant level. After selecting item segmentation and clicking 'add to the offer' button, there is a modal window which asks on what level user wants to add segmentation. The default selected value is item level.

After adding items, variants or models to the offer, in the 'Manage items' view, there is a message above the table about what level is used in the item segmentation. Columns in this view match selected level.

Export to blob:

  • Items are exported with 'gtin', 'externalItemNo', 'sku' fields in the 'itemIdentifier' section.
  • Models are exported with 'modelNo' field in 'modelIdentifier' section.
  • Variants are exported with 'variantIdentifier' section which contains 'colorText' field and 'modelIdentifier' section.
    ModuleDescription
    ModuleDescription

    Offer

    Price rules

    Define discount type in price rule, and discount rate in offer (RTC-19795)

    Discount rate and discount type are specified separately on price rule level. It is possible to create price rule with defined discount type, but discount rate editable in offer.

    Promotion report

    View item sales (RTC-20115)

    In each of the sections in 'Report tab', there is a 'View item sales' button. It opens grid with sales of items within promotion/offer. By default, it contains columns: GTIN, Item text, Quantity sold, Sales amount, Gross profit total and Brand. Grid is sorted by Sales amount by default. Other columns that can be added to grid are: SKU, Color, Size and Item group no/text.

    • When promotion/offer consists of less than 5000 items, all of them are displayed in grid, including never sold ones.
    • When promotion/offer has more than 5000 items, only 5000 items with highest number of sold amount are shown.
    • When offer applies to all items, only sold items are in the grid.
    • Report received from Reporting API is cached for one hour. It makes data load faster when re-opening page, but also means that new sales statistics may not be visible until hour passes.
    • Offers on model and variant level are not yet supported.


    Item search for offers on model/variant level (RTC-21646)

    When offer is created on model/variant level, it is possible to search for an item from this model/variant in the item search in promotion report.


    Deleted offers sections (RTC-21305)

    Section for the offer deleted from an active promotion is displayed on report tab, so it is possible to see sales statistics for all offers that were active in the past.

    System

    Labels for items in promotion on variant level (RTC-21265)

    After creating a promotion on variant level, all items from this variant are imported with prices to the table [Promotion].[OfferGroupItem]. Also these items get labels with the promotion price. Labels are always taken from the offer where price for specific item is the smallest.

    ...

    In promotion view, there is a 'Report' tab. In this tab, there is section with total sales for the promotion. Users can see number of items sold, sales amount and gross profit total. Data shown there is obtained from Reporting API. When data cannot be received, there is "Could not get sales statistics message".
    View with promotion details is moved to 'Setup' tab:

    'Report' tab:

    Improvements

    Module

    Description

    Offers


    Coupon offer ID (RTC-20395)

    "Coupon offer ID" input field is visible only when "Coupon offer" checkbox is checked. This applies to view when creating promotion from item list, adding offer to promotion or editing offer modals.


    Mix: Buy for X amount and pay Y amount per piece for N items (RTC-18593)

    Mix type number 6b, 'Buy for X amount and pay Y amount per piece for N items'.
    This mix extends Mix 6 from Chain Classic and replaces Mix 29.
    Fields to define in this mix type are:

    • Conditions - Min. receipt amount
    • Reward - Number of discounted items, New price per discounted item.

    Offer with this mix have one group of offer items. Parameters of this mix are exported with offer to POS.
    When discount of an offer is New price = 0, 'Item for free (0.00)' message is displayed in offer details. This applies to mixes 4, 5, 6b, 21/22 and 40.


    Mix 10/13/39 (RTC-19140)

    Mix type number 10/13/39, 'Buy N or more items and get a discount per piece'.
    Fields to define in this mix type are:

    • Conditions - Min. number of items
    • Reward - Discount per item (percent, amount or new price).

    Offer with this mix have one group of offer items. Parameters of this mix are exported with offer to POS.

    Price

    Store prices in promotion on store group level (RTC-20743)

    When promotion is created on team or profile level, and item has price in store that belongs to selected store group, this price will be used in offer.

    ...

    For draft, pending approval and planned promotions there is a possibility to mark offer as 'Coupon offer' and add coupon offer ID. Coupon offer ID should start with 99 and be minimum 4 digits long. When ID is present on another offer, warning appears. Coupon offer ID is exported on offer level.
    Also 'Reserved for members' field has been renamed to 'Member offer'.

    Improvements

    Module

    Description

    Export

    Incomplete offers (RTC-17458)

    Removed incomplete offers are skipped when approving promotion so export job works successfully.


    Export of offers (RTC-18854)

    When discount type of mix type 35 is percent, discount is exported as a fraction on PromotionOfferItem level.

    Price rules

    Mix 35/41 (RTC-19511)

    Mix type 30 is replaced by mix type 35/41.

    ...

    If the processing of offer group fails, the job retries to process it again. If it fails three times the offer group's flag ItemsProcessed is set to True and the user gets a notification. This offer group is not processed anymore. 

    Improvements

    Module

    Description

    Export

    Availability details export on item level (RTC-18687)

    Promotion availability details are exported to a JSON file with each item that is part of the 'Promotion price' offer. Editing details of an approved promotion triggers re-export of all offer items.

    Offer

    Manage items in offer (RTC-18448)

    When filters in the offer items view are set and there are no items in the grid as a result, the price panel shows no data.


    Single item in the offer (RTC-18144)

    When 'single item' in mix 4 and 5 is not selected there is no "clear selection" and "export to excel" buttons in toolbar.

    Offer view

    Audit columns (RTC-15500)

    In offer view, there are audit columns 'Created by', 'Created date', 'Modified by' and 'Modified date'. Columns display information about who and when added or modified item in an offer. These columns are hidden by default.

    Price rules

    Mix types (RTC-18181)

    At the end of description of mix types 21, 23, 26, 28 and 40 there are information about what mix types from Chain Classic that these mix type replaces.


    Mix type descriptions (RTC-18186)

    On 'new price rule' view, mix types descriptions wraps when there is not enough space to display text in one row. Description is displayed properly on screens of any size, including mobile devices.

    System

    Keyboard navigation in modals (RTC-18392)

    Space can be used in names and description input fields in modals. If modal is opened, keyboard navigation does not affect grid behind the modal. Applies to modals:

    • 'Import items' and 'clear selection' in the offer view
    • 'Use file' in the item list view
    • 'New segment' in the item segmentation view


    User permissions (RTC-14566)

    Access to store/store groups is limited for an user in a more performant way.

    ...

    'Available days' and 'Excluded dates' can be set for promotion. When one of these parameters is selected, promotion is marked as recurring. 'Available days' are days in a week when offer is available and 'Excluded dates' are dates when promotion is not available for the customer. This does not affect active status of promotion. Recurrence information is displayed in promotion details view. Excluded days are displayed in chronological order. Recurrence can be set when creating new promotion, editing existing one or creating a copy. Values are exported to POS when promotion is active.

    Improvement

    Module

    Description

    Offer

    Adding items to the offer (RTC-18145)

    Performance of adding items to the offer has been improved. Loading items takes a few seconds. After user gets notification, the page is refreshed.

    Promotion

    Date columns filter (RTC-17338)

    For promotions which start or end between 23:00 and 24:00, filtering on columns 'Valid to' and 'Valid from' is working correctly. These columns are located in Promotions, Promotion offers, Items in promotions views and Copy offer modals in Promotion and Promotion offers views.


    Offer view (RTC-17479)

    When applying filter to the grid in offer view, grid does not automatically scroll to the left. If price panel was closed when applying filters, it stays closed after filtering as well.

    ...

    Copy promotion dialog. Select target promotion from the list, or search promotion 

    Improvement

    Module

    Description

    Offers

    Item selection for an offer (RTC-17791)

    Keyboard can be used to navigate in offer view after adding items to new item selection or updating existing one.

    ...

    Discounted item in the offer (mix types 4 and 5) is displayed in a grid with columns and kickback, and price panel can be used for setting kickback. Kickback for discounted item is exported. Adding item without active price in the same store provide modal window with information that this item cannot be added. Clearing selection in active promotion leads to modal with description that offer without items is not available in the POS.

    Improvements

    Module

    Description

    Export 

    Export of kickback (RTC-17454)

    After updating item selection for an offer, kickback values are exported to POS properly for all items with store price.

    Offer

    Selection type for offer (RTC-17201)

    Types of item selection that can be selected for an empty offer are described on type selection view with short title above description.


    Offer view improvements (RTC-17161)

    In offer view, focused button in side panel can be triggered by clicking Enter. Margin change p.p. in items grid is displayed in percentage points. Validation errors for percentage columns are displayed properly.

    Promotion 

    Promotion grid (RTC-16897)

    In the promotions grid there are 'Store group code' and 'Store group name' columns. They show code and name of store, team or profile assigned to promotion. For promotions available in all stores, no value is shown.

    ...

    Rounding rules are applied for the promotion price in the Promotion price panel. A button appears under the price when a rounding rule can be applied. After it is clicked, the price is overwritten with the rounding values. 

    Improvements

    Module

    Description

    Price panel

    Promotion price panel (RTC-15477)

    Multiple quality of life improvements and fixes for the promotion price panel. Prices are calculated correctly and validation messages are displayed for invalid input values.