- 16 Oct 2024
- 17 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
Customer & Member
- Updated on 16 Oct 2024
- 17 Minutes to read
- Contributors
- Print
- DarkLight
- PDF
CustomerService
31 Jul 2024
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.
It is 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.
30 Jun 2024
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. |
30 Nov 2023
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. |
31 Oct 2023
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 |
31 Aug 2023
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
31 Jul 2023
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 |
30 Jun 2023
Loyalty program list view
(RTL-5408)
A simple view showing a list of loyalty programs have been added to the loyalty module.
31 May 2023
A simple view for customer groups
(RTL-5804)
A simple view showing a list of customer groups have been added to the customer module.
Joint view for private and business customers
(RTL-5810)
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, |
30 Apr 2023
Member statistics dashboard: Loyalty program access support
(RTL-5840)
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. |
31 Mar 2023
Member statistics dashboard: Loyalty program support
(RTL-5776)
Support for loyalty programs has been added to the Dashboard.
For the time being all users with access to the dashboard has access to all loyalty programs
Member card view
(RTL-5731)
A new view for displaying member cards has been added to the Loyalty module.
Member statistics dashboard: Rework of the Subscriptions section
(RTL-5722)
A third graph was added to improve readability. Percentage of member total was also added to all three graphs
Member statistics dashboard: Detailed comparison in period section
(RTL-4518)
The "detailed comparison in period" section of the Member Statistics Dashboard has been added.
Member statistics dashboard: Average age section
(RTL-4515)
The "average age" section of the Member Statistics Dashboard has been added.
Export of Private customer
(RTL-5753)
CustomerService exports private customers in a separate blob type instead of exporting it together with members. The contract for Members and Customers are the same for both import and export, but they will arrive in different blobs so that external systems (like EG POS) can listen to customer changes without receiving members at the same time.
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. |
28 Feb 2023
Member statistics dashboard: Age groups section
(RTL-4516)
The "age groups" section of the Member Statistics Dashboard has been added.
Member statistics dashboard: Sales overview in period section
(RTL-4514)
The "sales overview in period" section of the Member Statistics Dashboard has been added.
Member statistics dashboard: Subscriptions section
(RTL-4511)
The "subscriptons" section of the Member Statistics Dashboard has been added.
Business customer view
(RTL-5210)
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. |
31 Jan 2023
Member statistics dashboard: Members
(RTL-4510)
The "members" section of the Member Statistics Dashboard has been added.
Member statistics dashboard: Time period for graphs
(RTL-4512)
The "time period for graphs" section of the Member Statistics Dashboard has been added.
CustomerService API New features and improvements
(RTL-118)
We are excited to announce a new release for our Customer service API. This update includes a number of improvements and new features to enhance your experience with our API.
Changes to the API:
The following changes was done to the API. Backwards compatibility is kept so that the old API endpoints still work:
API/Association -> API/Associations
API/BusinessCustomer -> API/BusinessCustomers
API/MemberIdentity -> API/Identities
API/Membership -> API/Memberships
Added personal customer relationships to identity (import & export) - You can import and export personal customer relationships to the API, making it easier for you to manage your customer data. Details about the changes can be found in Swagger
Slight refactoring of business customer - We have made some changes to our business customer functionality for consistency. The CustomerNo field has been replaced by CustomerNumber, and the storage for CustomerRemarks has been simplified and is stored as a JSON object in a single field on the customer.
Identity API improvements - The Identity API provides the same functionality as before, but in a more RESTful manner, also able to return multiple results for email/mobile query, which might be the case when introducing customer relationships.
Customer groups - import/export and rest API functionalities for customer groups, making it easy for you to manage and organize your customer data.
Loyalty program sharding - better support for loyalty program sharding for business customers and customer groups.
Configuration:
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. |
31 Dec 2022
Icon for Loyalty menu
(RTL-4948)
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. |
30 Nov 2022
Introduce Organization Membership Type with Owners
(RTL-4650)
The new membership type 'Organization' was introduced, and it is possible to add this new type to a specific MemberIdentity and set its owner.
Member Identities view
(RTL-3734)
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. |
31 Oct 2022
Support adding associations without uploading logo
(RTL-4482)
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.
30 Sep 2022
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. |
14 Mar 2022
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.
22 Dec 2021
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.
26 Nov 2021
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.
05 Oct 2021
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.
30 Jul 2021
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.
29 Jun 2021
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.
It is possible to set the deactivation mode in the LIP configuration - Delete to delete deactivated members and OnlyPublish - deactivated identities are not deleted or modified.
In both modes identities with status deleted are deleted.
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)
31 May 2021
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.
It is possible to set the deactivation mode in the LIP configuration - Delete to delete deactivated members and OnlyPublish - deactivated identities are not deleted or modified.
In both modes identities with status deleted are deleted.
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.
30 Apr 2021
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:
MemberNumberAsIdentity - Identity number be set to MemberId and Membership number is set to HouseholdId.
SocialSecurityNumberAsIdentity - Identity number is set to SocialId if it is defined otherwise to MemberId, and Membership number is be set to MemberId.
After creating a certain member through ChainWeb or API, it gets the appropriate identifier, is correctly onboarded in AccountService and loaded as a user after finishing registration in AccountService
|
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.
29 Mar 2021
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.
The following LIP jobs have been added: |
28 Feb 2021
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.
28 Jan 2021
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.