Info | ||
---|---|---|
| ||
Release notes for CustomerService |
...
Member Statistic Dashboard
Remove the '%' Sign for Gross Profit Amount in Detailed Comparison in Period Section
The Gross Profit Amount is displayed without the '%' sign in the Detailed Comparison in Period section in the Member Statistic Dashboard.
System Parameter UI for Bonus Service
The system parameter section that allows the users/chains to configure the service as they need to was added. The new system parameter 'Validation' that governs if BonusService should try to validate member data against CustomerService or not was added:
- The parameter is default false, possible values ar True or False
- The two new user roles are available in user management:
- If the user has the "View system parameters" role, the "edit" button is not available in the UI, and it is not possible to change the value of the parameter
- If the user has the "Edit system parameters" role, the "edit" button is available.
- Clicking the Edit button changes the state of the UI to edit mode, and it is possible to: Edit the parameter, save or cancel the changes
Add Missing Index on SSN
The missing index was added on SocialSecurityNumber - Identy.Person table preventing SSN lookup timeout when a lot of rows are present.
Update BusinessCustomer Import Contract in Customer Service
The BusinessCustomer.Import contract in Swagger has:
- all fields that are mandatory are marked as such in
- information about max and min length for all fields that are burdened with max and min length criteria
Customer View is Filtering out Valid Customers
All valid customer relationships are shown in the customer grid.
System Parameter UI for Bonus Service
The system parameter section that allows the users/chains to configure the service as they need to was added. The new system parameter 'Validation' that governs if BonusService should try to validate member data against CustomerService or not was added:
- The parameter is default false, possible values ar True or False
- The two new user roles are available in user management:
- If the user has the "View system parameters" role, the "edit" button is not available in the UI, and it is not possible to change the value of the parameter
- If the user has the "Edit system parameters" role, the "edit" button is available.
- Clicking the Edit button changes the state of the UI to edit mode, and it is possible to: Edit the parameter, save or cancel the changes
Fallback occurs for more cases than it should
Invalid registration data (e.g. too low age of member) will be handled with correct status 400.
Loyalty Program Details View in Customer Service
Loyalty Program Details View with view role was created. The view role gives access to a view where the fields are not editable and the buttons at the lower right corner are not visible.
Add Confirmed field for Social Security Number
...
has been moved here: Customer & Member (egretail.cloud) |
Create customer group and customer group details in CW
Customer groups can be created in CW by clicking the button "New customer group" inside the customer group list view.
Its also possible to view customer group details by clicking on the name of the customer group.
Member segmentation
(RTL-7669)
The first version of member segmentation is available in CW and can be found by opening the Loyalty menu and clicking on "Member segmentation" sub menu.
Clicking the "new segment" button starts the flow of creating a new segment. After segment is created it is possible to view and edit details by clicking on the name of the segment.
Improvements
Header | Description |
---|---|
500 error when PUT identity member (RTL-7252) | When trying to update a member card with a number that already exist on another member, response code 400 is returned with a message describing what went wrong. |
Deadlock on PUT api/Identites (RTL-7552) | Resolved an issue with deadlocks happening in certain situations when using the PUT api/identities endpoint. |
Currency support in loyalty programs
(RTL-6861)
When creating a new loyalty program it is mandatory to set the currency that should be used within this program. Once the currency is set it is no longer possible to change it.
The currency will be used in other modules t.ex Bonus Service to determine currency for issued bonus checks.
Supported currencies:
- DKK
- EUR
- NOK
- SEK
Improvements
Header | Description |
---|---|
Support delete of customer relationships (RTL-6596) | Customer relationships are deleted if the customer is deactivated. Orphaned data is deleted based on removal policy. |
Issue new bonus check from member details UI
(RTL-5998)
A new button has been added to the lower right corner of the member details UI which allows for issuing new bonus checks.
For this button to be visible the user must have the user role "Issue new bonus checks" which can be found under "Bonus management".
Improvements
Header | Description |
---|---|
Customer groups UI: Change status column from drop-down to check box (RTL-6115) | The status column inside the customer groups UI has been changed from a drop-down to a check box to better fit the existing UI patterns in other grids. |
Improved documentation of the Identity.Import contract in swagger (RTL-6622) | The "PersonalIdentifiers" field is no longer marked as mandatory in the swagger documentation |
Member details UI
(RTL-5894)
The first version of the member details UI has been introduced and can be found by clicking on the member Id number in the member UI
This version do not support multiple memberships meaning we only show membership data for the first membership created. We will support multiple memberships in a future version.
Loyalty program: Create new
(RTL-6210)
It is possible to create new loyalty program by going to the list view and clicking "Create new loyalty program".
After filling out the necessary fields and clicking "create" you are redirected to the loyalty program details view, and the status of the loyalty program is "Inactive"
Loyalty program: Edit stores
(RTL-5436)
It is possible to edit the stores that are connected to a loyalty program by clicking the button "Edit stores". It takes you to a new page where stores can be added or removed.
Loyalty program: Edit details
(RTL-6384)
The role for editing loyalty programs has been added, making it possible to edit loyalty program details, activate and deactivate and edit stores
Confirmed field for social security number
(RTL-4927)
A new field has been added to Identity, making it possible to set confirmed on a members social security number.
The new field can be set through the Identity methods in CustomerService API
Loyalty programs: Details view
(RTL-5406)
The details view for loyalty programs has been added, together with a user role giving read access only.
Improvements
Header | Description |
---|---|
Customer view filtering out valid customers (RTL-6263) | All valid customers are now shown in the customer view |
Business customer import contract in Swagger (RTL-6269) | All mandatory fields are marked as such. Min and max length of fields burdened by that is also updated |
Member statistics dashboard (RTL-6360) | The '%' sign behind gross profit, in the "Detailed comparison in period" section was removed. This row shows gross profit in amount, not in percentage |
Loyalty program list view
...
The business customer view has been extended to include private customers, and the name of the menu entry has changed from "Business customers" to "Customers".
Improvements
Header | Description |
---|---|
Member cards: Change status row from drop down to checkbox (RTL-5959) | The status row in the member cards view has been changed from a drop down to a check box to fit the overall pattern in cloud. The name of the row has changed from "status" to "Inactive" |
Extend private customer with credit fields (RTL-6090) | The private customer data schema has been extended to also support credit and balance, |
...
The drop down list in the filter section is only visible if the user has access to multiple loyalty programs.
If the drop down list is visible it only contains the loyalty programs the user has access too. Loyalty program access is based on store access in User management.
Improvements
Header | Description |
---|---|
Member identities: Remove the status field (RTL-5960) | The status column is removed from the Member Identities grid. Only active members are shown in the grid. |
...
Also a new Import contract was added and the old one was removed from Swagger. We will still support the old contract, but it was renamed from MemberIdentity to Identity.Import since it includes both members and customers.
Improvements
Header | Description |
---|---|
Member identities view times out (RTL-5244) | Performance has been improved |
Deleted Association in CW (on-premise) does not sync to Cloud (RTL-5560) | Deleted associations are correctly removed from member identity in customer service. |
Values in LinkedAssociationsID in MemberService are deleted on update from CustomerService (RTL-5357) | Updates from CustomerService no longer delete Associations that shouldn't be deleted |
Merge timeouts causes Integration Platform to abort and stop the jobs (RTL-5762) | Merging exception of BusinessCustomerMerger and CustomerGroupMerger does not abort job but is handled gracefully with failed batch and error message in staging. Failed merging batches are retried when caused by timeout. |
...
There was added a new view in Chain Web where business customers are listed.
Improvements
Header | Description |
---|---|
Member identities is not scrollable for mobile screen (RTL-5535) | The Member Identities view is scrollable in mobile mode, and the fields in the grid are evenly spaced. |
...
Tenant config for MemberInfoServer: The IdentityDataProvider parameter determines which provider to use for getting and setting identity/member/customer data in the API. The default provider is "Hybrid," which uses the MemberService as the master for members and stores a copy of members in the database. The provider "Standalone" fetches and stores everything in the database.
Improvements
Header | Description |
---|---|
Missing association name from MemberService(on-prem)(RTL-5440) | When returning identity from MemberService ExternalNumber is passed as default association name. |
Remove loyaltyprogram from membership (RTL-5320) | LoyaltyProgramNumber was removed from MemberIdentity. |
...
The new Loyalty icon has been implemented and applied for the loyalty main menu entry and the old loyalty icon is applied for the customer main menu entry.
Improvements
Header | Description |
---|---|
Remove dependence to Organization number (RTL-5112) | An organization number is not required when creating a member in MemberInfoService. It is possible to have no value in this field: NULL. |
Member Identities View Missing Members (RTL-5042) | All members are displayed in the member grid, and it is possible to filter on them. |
...
There was added a new view in Chain Web where member identities are listed.
Improvements
Header | Description |
---|---|
Fetching LpMember with no existing loyalty program (RTL-4525) | Loyalty program number is validated when calling MIS API GetMemberIdentity.
|
Timeout do not cause FlatBatchJson to retry (RTL-4851) | Upon page validation exception batch lines are marked as failed (and ready for retry), and not as processed ok. |
...
It is possible to add an association without an uploaded logo.
Thus associations without ImageURL are synchronized correctly to the cloud and are available on the webshop without a logo.
Improvements
Header | Description |
---|---|
MemberIdentityMerger aborted as a deadlock victim (RTL-4262) | Deadlock during merging of data does not abort MemberIdentityMerger. Deadlocked merging data is marked as faulted and retried on another run |
Release date:
IdentifierUpdate Generated for Deleted Members
(RTL-3032)
MemberInfoService do not generate IdentifierUpdate events for deleted members. MemberInfoService is not producing 2 events (IdentityDeactivated & IdentifierUpdated) but just correct one (IdentityDeactivated) when member is deactivated/deleted. That means, the 2 events are not triggered at the same time and do not cause problem in AS.
LoyaltyParams fetch fails on cache refresh
(RTL-3033)
MemberInfoService always have loyalty parameters available. Methods using GetLoyaltyParams (GET GetMemberIdentity, POST PostMemberIdentity) do not generate errors for getting loyalty parameters.
Improve realtime index maintenance
(RTL-3188)
New janitor job's scheduled trigger, which will rebuild most fragmented indexes every 30min according to following logic:
- if fragmentation >90%, then rebuild
- if fragmentation between 50% and 90%, then reorganize
Improvement of the MemberInfoService API validation
(RTL-3209)
PersonalIdentifiers are validated when creating MemberIdentity in MemberInfoService API and an appropriate error is returned.
Exception on Duplicate Identity Delete
(RTL-3354)
The issue with the handling of a batch containing duplicated identity was resolved. That means, now in such cases the MemberIdentityMerger is logged with status 'Completed' and the appropriate message about duplicated identity is logged in the database.
Release date:
Fill in WebUserId when updating LpMember
(RTL-2004)
WebUserId field is filled when member data is updated in MemberService from MemberInfoService or new member is created
Handling of member deletion
(RTL-1608)
When member is anonymized in 3rd part system, then appropriate member is removed from Account Service and the records in Service Bus Explorer are correctly displayed.
Release date:
Changing Household Issue
(RTL-2332)
Moving members from household A (containing more than 2 members) to separate household B when the MemberIdentifierMode is set to MemberNumberAsIdentityNumber cause LpMemberMerger to successfully update member data in MemberInfoService. What is more, validation for LpMemberMerger and MemberIdentityMerger has been changed and from now on member card number is unique for person, not for personal membership as before.
Improve Application Insights Logging
(RTL-2682)
Clarity of logs was improved. That means, from now on GET AddressLookup, GET MemberIdentity and GET Membership operations resulting in 404 response are marked as successfully performed ones.
...
Release date:
Validation of member information
(RTL-2086)
First name, surname, mobile number and email is validated when updating the member in MemberInfoService. Invalid data is removed preventing incorrect data that might cause other system failures. For example an invalid mobile number or e-mail will be set as blank (NULL). Members without name will not be updated.
Separate Identities by Loyaltyprogram
(RTL-2141)
MemberIdentities are now separated by loyalty program, which allows to create members using same identifiers in different loyalty programs. Loyalty program is now an attribute of MemberIdentity, not Membership. It is possible to register in AccountService multiple accounts each in different loyalty programs using the same identifier like email or mobile number.
Filtering of loyalty programs
(RTL-2201)
It is possible to add filters for individual Loyalty programs that are used in filtering of members that are going to be imported.
Provide SSN format compatible with Bisnode lookup
(RTL-2475)
When using Bisnode as member address lookup provider, upon registration members with SSN will have their address auto-filled.
...
Release date:
Fix nulls in jsons exported from MemberInfo Service
(RTL-181)
It is possible to create MemberIdentity with null (Membership)Associations,MembershipStores, MembershipAgreements, PersonalAddresses, PersonalAttributes or MemberCards.
Improve Performance of LpMember merger
(RTL-2118)
The performance of the LpMemberMerger job has been improved and more than 1 million members are imported from on premis and processed in less than 4 hours.
LIP Package Improvement
(RTL-2125)
The AssociationImportJob from the MemberInfoIntegration package does not have an empty AppSettings space anymore. The AppSettings part was removed.
BEFORE: NOW:
Handle delete of membercard
(RTL-2209)
In order to not be able to identify deleted members in POS, personal member cards are deactivated in MemberService when member is deleted.
...
Release date:
Support for deactivating members
(RTL-1992)
New MemberIdentity status has been introduced - Deleted, which results in hard deletion of identity from MemberInfoService regardless of other settings. Note: Identities are not deleted immediately but within 10 minutes.
...
Identities with status Deleted are always deleted.
Specify fixes for red daily report & alerts
(RTL-2084)
Now, after calling MemberInfoService API once, API keeps alive connection to member service by calling it every minute.
MemberInfoService API
(RTL-2165)
Members, despite having invalid mobile number in Chain Web, will be able to register in MyPage. Previously, this was not the case.
IdentityIdentifierUpdated triggered when no change
(RTL-2178)
MemberInfoService integration does not trigger IdentityIdentifierUpdated event from MemberServiceEventHandler job if only letter capitalization has been changed in email address (for example abc@domain.com changed to ABC@DOMAIN.com)
...
Release date:
Add social security number in registration process
(RTL-61)
Social security number is implemented in member registration process. In AccountService webapp after confirming an email address, the user have to add social security number, which allow to fetch personal information, such as name and address which will later on be added to the member.
Merge failure when more than one PersonalAttribute on member
(RTL-204)
It is possible to update members, who have more than one personal attribute.
Fix relate to clients using MemberIdentity format.
Anonymizing members in MemberInfoService
(RTL-1805)
When using MyPage together with AccountService v.2 and MemberInfoService, it is possible for user to deactivate (anonymize) member (identity) from MyPage which results in deactivation of member data in MemberInfoService and MemberService on premise. The member will be deleted in MemberInfoService, but anonymized in MemberService.
Add fallback scenario to GetMemberIdentity request
(RTL-1906)
If looked up member is missing in MemberInfoService database, then service will do additional call to MemberService to search for it there.
Associations in MemberInfoService
(RTL-1951)
LpMemberMerger imports associations (connection to member and association number) to the MemberInfoService database. User can see and check linked association within the MyPage profile in the Member Info tab.
Support for deactivating members
(RTL-1992)
New MemberIdentity status has been introduced - Deleted, which results in hard deletion of identity from MemberInfoService regardless of other settings. Note: Identities are not deleted immediately but within 10 minutes.
...
Identities with status Deleted are always deleted.
LpMemberMerger member's cards lookup for MemberNumberAsIdentity
(RTL-2043)
It is possible to update members, who have member cards attached.
Improvement related to clients using MemberNumber as identity (all clients using AccountService2)
Fix LpMemberMerger conversion of the member's from the same household, but different stores
(RTL-2044)
Importing multiple members from the same household, with different stores, will be executed correctly into MemberInfoService database.
...
Release date:
Add support for changing member email
(RTL-1508)
When member's email is changed in Chain Web, then it is properly updated in account service in both MemberOnboard and User tables.
Support for blank emails has been added. When member's email is changed in Chain Web to a blank one, then in account service it is saved as a hash.
LPMembers-Configuration of identifiers.
(RTL-1551)
MemberNumberAsIdentity identifier was added to MemberInfoService and AccountService to map identity and membership from on-premise to cloud correctly.
Now to modes of mapping are possible:
...
Expand | ||
---|---|---|
| ||
|
Add default store number for LoyaltyProgram
(RTL-1569)
Loyalty program table has been extended by DefaultStoreNumber column. By default the store, from the newest membership in each loyalty program is assigned to the DefaultStoreNumber.
New members created in member info service are assigned to the default store number for the selected loyalty program.
Support in MemberInfoService for updates from Mypage
(RTL-1590)
As a step towards supporting AccountService v.2 together with MyPage, changes made by members in in MyPage are updated in MemberInfoService, which in turn will update MemberService on premise. MyPage can be configured to use MemberInfoService instead of MemberService on premise for handling member data.
Endpoint for fetching membership data was created:
GET api/membership/{number}/identities where number= number on membership
This method fetches Member Identities by Membership number and returns its collections.
Change logging of external requests
(RTL-1670)
Requests returned by Linkmobility as 404/400 (unknown phone number) failure are logged in the same way as success (200) in MemberInfoService's App insights to avoid unnecessary error messages.
...
Release date:
Republish Member events in cloud
(RTL-1516)
Cloud components cannot depend on on-premise MemberService events. When member updates are published, a new job in MemberInfoService (MemberServiceEventHandler) re-publishes them to cloud service bus using following events:
- IdentityIdentifierChanged
- IdentityProviderOnboardRequested
- IdentityDeactivated
Added deletion of memberships
(RTL-270)
Added deletion of memberships for AccountService and MemberInfoService. Deleting a member on-premise in Chain Web will export a message and delete the member in the cloud databases of AccountService and MemberInfoService.
...
Release date:
GetAssociationInfo Returns 404
(RTL-1440)
An issue was introduced on the 22nd January which causes Get Association Info method to return 404 error when trying to fetch association. This is corrected and using this method in API that exploit customer number as query parameter results in success.
Association import broken due to contract changes
(RTL-1429)
An issue with Associations (Customers) in Cloud [Lindbak Retail] was introduced on the 22nd of January, causing new associations to not be synchronized properly to Cloud, and therefore unavailable in 3rd party API.
...
Release date:
Map member terms to LpMembers
(RTL-1312)
Mapping of member terms to LpMembers has been implemented. After creating member in AccountService, it is possible to check the approval of the member terms.
Convert to Asp.Net Core 3.1
(RTL-212)
MemberInfoService was converted to target Asp.Net Core 3.1 and use latest version of LRS.MultiTenantService_packages.