Coming next release
Module | Description |
---|---|
Import | ExternalStoreNo and storeNo in 3rd party import (RTC-32637) If at least one of the 'storeNo' and 'externalStoreNo' is correctly specified when importing the store and the other is null, the null value is ignored.
StagingImport job does not fail when one imported file contains over 4000 of JSON rows.
There is a validation while importing Excel file with stores: External store number must be unique within a company. If there are two or more shops with the same company and the same external store number in the file then only the first record from the file will be added. |
Store | Global location number is unique (RTC-33526) Global location number of store is globally unique value. Validation occurs when value is already used, when creating or updating store. In case of existing duplicates, global location number is set only for the first store, for the remaining null is assigned. In import from BackOffice, duplicates are saved with null value. In import from 3rd party, row with duplicate is validated and not imported. In import of Excel, validation in user interface happens if duplicate exists in database, and row is ignored if there are duplicates in one file (to be handled with warning notification in future).
Global location number (GLN) translation to Norwegian and Swedish is changed. |
System | Database compatibility level (RTC-32039) Compatibility level on databases is set to 150. |
Release 25.07.2023
Module | Description |
---|---|
System | External store number (RTC-30648) Empty value is always saved as null in the database for ExternalNumber instead of empty string. Upgrade to LibBackEnd 5.4.0 (RTC-33212) LibBackEnd updated in order to support notifications and Azure SignalR. Migration to .NET 6 (RTC-28896) Store Service module is migrated to .NET 6. |
Release 15.06.2023
Module | Description |
---|---|
Import | Export/Import External store number (POS system) from Excel (RTC-32531) 'Ext. store number (POS system)' column is added to store export to Excel. Value can be updated through Excel import. Existing values can be cleared by importing "NULL" in cell. |
Release 21.04.2023
Module | Description |
---|---|
Stores | External store number validation and import (RTC-30766) External store number must be unique across the company (organization number and country). This is validated in user interface and 3rd party import (Excel validation in another story). When Chain Web on-premise is master of stores:
|
Release 07.03.2023
Module | Description |
---|---|
Export | Opening hours (RTC-29164) Store opening hours and special dates are exported as described in Swagger documentation. |
Store details | Franchise store flag (RTC-12179) A store can be marked as 'Franchise store' using checkbox in 'Store details' section on new store/edit store details page. Value is exported to blob as 'isFranchise'. |
Store Service | Opening hours in Store export contract (RTC-28717) Opening hours are added to export documentation in Swagger as 'storeHours' field. Export is not yet extended. |
Release 01.02.2023
Module | Description |
---|---|
Import | Import companies from Excel (RTC-26694) Companies can be imported from Excel file using 'Import' button in the 'Companies' view. Required columns are "Company code", "Company name", "Country", "Organization no.". Exported file with companies should be used as import file template. Import can be used to create new and update existing companies. Companies are identified by "Country" and "Organization no." pair ("Organization no" unique within "Country". "Company code" and "Ext. company no." must be unique. Companies can be deactivated using file when all stores within company are inactive. "VAT no." column is ignored in Norway and Sweden - value is generated as in user interface. Existing values can be cleared by importing "NULL" in cell. When an import is finished, the user gets a notification. |
Import from Chain Web | Remove obsolete validation when importing stores from OnPrem (RTC-25000) Stores are imported properly when: post code is empty, city is empty, close date is before opening date, local store number is 0, phone is not valid for given country code. |
Release 05.01.2022
Define opening hours per store
There is a 'Manage opening hours' button in store details page. It is visible regardless of 'Use opening hours schedule' checkbox state.
Button opens page with two tabs: 'Opening hours' and 'Special dates' with same design and rules as in register. Values are displayed in store details. 'Opening hours' can be set only when the store does not have 'Opening hours schedule' from register assigned.
When 'Special date' is set both in store and register, value from store is displayed in store details.
Improvements
Module | Description |
---|---|
Export | Export companies to Excel (RTC-27807)
|
Release 15.12.2022
Module | Description |
---|---|
Export | Store groups country (RTC-27849) Country of store group is exported as CountryCode for each store group assigned to store. Store groups without country are exported with null value. Re-export of stores is triggered when country of assigned store group is edited. |
Release 22.11.2022
Module | Description |
---|---|
Opening hours | Special dates (RTC-25596) There is a 'Special days' section in the 'Opening hours' page. It shows all days from the current year when store is not open as defined in standard opening hours. After pressing 'edit special days' button, another page is opened, where special days can be set. New special day can be added by a panel at the top of the page and existing special days are visible in the grid below. Future days from the grid can be edited by clicking a pencil button in the row. Then 'edit' modal shows up where changes can be entered. Future days can be also removed by clicking a bin button in the row. Then 'delete' modal shows up where confirmation of deleting is needed. If selected day has breaks, there is a question in the modal whether remove all breaks from this day or only currently selected break. Working special day can contain maximum 4 time breaks and must contain date, open time and close time. If special day is set as not working day, there is no possibility to set time or breaks. In order to view and edit special dates following common roles are needed:
Assign store to opening hours register (RTC-25784) On store details page there is a section for 'Opening hours', which contains 'Use opening hours schedule' checkbox. By default, stores are not using any opening hours register. Once checkbox is checked, dropdown appears, where user can choose one of active opening hours schedules from the register. When a schedule is selected, its data is displayed below dropdown: opening hours for each weekday and special dates in current year (same as in opening hours register details page). |
Release 30.09.2022
Store migrations
There is a tab in 'Teams' view named 'Store migration'. It contains grid with store migrations within price zones. The user is able to add store migration for a specific day using the panel on the top. A store can be moved to a new price zone only within store's profile and there is no possibility to add two migrations for the same store in one day. After migration, the row in the grid is set to 'Done' but if the store was already in target price zone, the row in the grid is deleted. Done migrations are hidden by default. The user is able to remove not done migrations. Creating a new store with price zone or editing store's price zone results in new 'Done' rows in the 'Store migration' grid (in both cases - using user interface or by import).
Improvement
Module | Description |
---|---|
Import/Export | Rename date fields (RTC-25815) UTC postfix is added at the end of date fields in contract: 'openDateUTC' and 'closeDateUTC'. 3rd party must use those names in import of stores. Export of store to JSON contains date in UTC both with old and new name of field (fields without postfix are marked in contract as deprecated). |
Release 22.09.2022
Country
Profiles and teams have a country value. Existing store groups have no country. This value is required for new profiles, and optional for teams. Teams marked as price zones have same country as assigned profile. Country can be selected when creating profile or team, and edited using modal in three dots menu on store group details page.
When editing store, only store groups from correct country can be selected.
If there is difference in country in existing stores and store groups, there is a warning at the top of store group details page. It is also displayed after country of store group is changed (stores remain in country of company).
Country column is added to profiles, teams grids and list of stores in store group details.
When store group is created via import of excel or through API, country of store group is the same as company country. Store groups imported from Chain Web do not have country.
Improvements
Module | Description |
---|---|
Postal codes | Store and company details views (RTC-22548) Postal code dropdown returns postal codes for all countries when country is not selected in the dropdown. |
Price zone | Fix select/unselect all buttons (RTC-25277) When editing stores selection in price zone, 'Select all' and 'Unselect all' buttons affect only stores in grid which are possible to select (does not select stores that are already part of other price zone, and does not unselect inactive stores). |
Stores | Use default profile and team (RTC-24774) Default profile and price zone are auto-selected when creating new store. When there is no default value, no value is selected. Country of store group is not yet supported (validation message appears on save when country don't match). |
System | Showing date and time in grids (RTC-25450) Time (in grey font) is visible in every date column in every grid in Store Management. Filtering in these columns is at the date level. |
Teams | Link in the "Name" column (RTC-25588) Team view has link in the "Name" column instead of arrow on the right. "Name" column is not possible to hide from the grid. |
Release 09.09.2022
Opening hours
There is an 'Opening hours' view in side menu which contains grid with hours schedules
New schedule can be created by pressing a button at the bottom of the page. Schedule has code, name and description. Code and name are required, and code must be unique.
Existing schedules can be opened by clicking on the link in the 'Name' column. In the schedule view, there are details of schedule which can be edited using modal window. There is also a 'Standard opening hours' section.
'Edit standard opening hours' button opens view, where setting working days, hours and breaks is possible. There can be maximum four breaks per day.
There is also a possibility to activate/deactivate existing schedule from 'Opening hours' view. If schedule is inactive it still can be edited but in the details view there is a message that this schedule won't be available in the system.
In User Management two permissions have been added as common roles:
- View opening hours: required to view 'Opening hours' page and details of a schedule.
- Edit opening hours: required to create, edit and activate/deactivate schedules. This role cannot be selected without view permission.
Export of all stores
There is an 'Export all stores' view in side menu which contains button to export all stores to blob. There is also a grid with export history and information about last export. At the top, there is an information about how many active and inactive stores that will be exported.
After clicking the 'Export' button, loading bar shows up and StoreExport integration job is started. When export is done, loading bar disappears, new row in 'History' grid is visible and data about last export is updated.
In User Management a permission has been added as common role:
- Export all stores: required to view 'Export all stores' page.
Improvements
Module | Description |
---|---|
Store details | Central Warehouse flag (RTC-25257) A store can be marked as 'Central warehouse' using checkbox in 'General' section on new store/edit store details page. Value is exported to blob as 'IsCentralWarehouse'. |
Release 01.09.2022
Profile groups
There is 'Profile groups' page in side menu. This page contains grid with list of profile groups. Profile group has code, external code, name and description. Code and name are required. Code and external code must be unique. New profile group can be created using panel above grid. Profile group can be opened using link in 'Name' column. In profile group view, there are details of profile group which can be edited using modal. Profiles assigned to profile group are displayed.
'Edit' button opens view where profiles can be assigned to profile group. Profile group is not required for profile. Profile can be assigned only to one profile group. Profile can be moved to another profile group by selecting profile from another group. Only active profiles can be assigned and removed from profile group. Profile in inactive profile group cannot be activated. Profile group can be deactivated only if all profiles assigned to it are inactive. Profile selection in inactive profile group cannot be changed.
Profile group of profile are displayed in profile details view and store details view (below profile dropdown).
In User Management there are two new permissions on common role:
- View profile groups: required to view profile groups.
- Edit profile groups: required to create, edit, and assign profiles to profile groups. This role cannot be selected without view permission.
Improvements
Module | Description |
---|---|
Import | Import of country (RTC-25042) Country of company imported in Excel or JSON file is saved properly as country of company, company address, company invoice address and store address. |
Postal codes | Import Excel with duplicated rows (RTC-25056) Postal codes are imported properly from Excel file with duplicated rows. |
Profiles | Fix for profiles without profile group (RTC-25538) When a profile has no profile group, it is always possible to activate it. |
Store groups | Set store group as default (RTC-24702) Profile, region and team can be set as default using button in three dots menu in store group details view. It is not required to have default store group. Only one store group of each type can be set as default. If there already is another default store group, it will be unset if another store group is set. Default store group cannot be deactivated. Inactive store group cannot be set as default. Price zone cannot be set as default team. Status of default store group is visible in grid with store groups. |
System | Assign stores without or with unsupported country to Norway (RTC-24380) When store imported from Chain Web on-premise has no country or country that is not supported in cloud modules, it is assigned to company in Norway with matching organization number (or new company in Norway is created). Existing stores and companies in cloud which had no country are assigned to Norway as well. Re-export stores after (de)activating store group (RTC-25078) Stores assigned to store group are re-exported after store group is activated/deactivated. |
Team | Store search when filtering by profile (RTC-24808) When managing stores in team, value entered in store search is still applied to grid after profile filter is changed. |
Release 10.08.2022
Import of stores from API
Stores can be created and updated 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). Stores must have store number or external store number. These two are also used when updating existing store (store number has higher priority than external store number). When store is created with only external number, its number will be set to lowest available number.
When file does not contain profile identifier, store will be assigned to default profile. If such profile does not exist, new one is created and marked as default.
When imported store has identifier of store group that does not exist in Store Service, new store group is created with name in format "<store group type> # <store group number>".
External store number is a unique value. Existing duplicates are updated with "-Duplicate" suffix. Field uniqueness is validated when editing store in user interface and in Excel import.
Improvements
Module | Description |
---|---|
API documentation | Store Service API documentation (RTC-24234) Swagger documentation for import has been added. |
Export to Excel | Inactive stores filter in Excel (RTC-24696) Filter on 'Inactive' column in Stores grid is applied properly to 'Is active' column in exported Excel file. |
Stores | Store number validation (RTC-24720) Store number must be a positive, whole number. Value is validated properly when creating new store through user interface, Excel import and blob import. |
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. Re-export of updated stores (RTC-24111) Re-export of updated stores is triggered in database in the same way as in other modules. When updating store group, correct user name is displayed in store audit columns. |
Release 22.07.2022
Module | Description |
---|---|
Stores | Hide inactive stores by default (RTC-23778) Stores grid has a default filter on 'Inactive' column, which shows only active stores. |
Teams | Filtering store selection by a profile (RTC-22913) There is a possibility to filter stores by a selected profile when adding stores to the team. New, multi-select field named 'Profile' has been added to the view. "Select all" and "Unselect all" buttons allow selection of all stores currently filtered by profiles. Store search works only for stores filtered by profiles. Also, new column with profile assigned to store has been added to the grid. |
Release 11.07.2022
Module | Description |
---|---|
Import | Import stores from Excel (RTC-23021) Stores can be imported from Excel file using 'Import' button in the 'Stores' view. Required columns are 'Store no.', 'Store name', 'Opening date', 'Profile no.', 'Country', 'Company'. Exported file with stores should be used as import file template. Import can be used to create new stores and update active stores. Stores can be deactivated using file, but inactive stores cannot be activated or edited. Stores cannot be assigned to inactive organization, profile, region, price zone. Above is validated with message in modal. When store group from file does not exist, it is created. When no name for store group name is provided, it is autofilled in following pattern "{entityName} # {code}". When an import is finished, the user gets a notification. |
System | File export notifications (RTC-23488) Notification disappears after pressing 'Download file' button. |
Release 21.06.2022
Module | Description |
---|---|
Store groups | Better information about store groups (RTC-23043) Correct store group name ('Team', 'Profile', 'Region') is used in add store group panel, edit store group modal, message displayed in inactive store group and blocked 'Deactivate' button when store group contains active stores. |
Release 06.06.2022
Module | Description |
---|---|
Export | Export stores to Excel (RTC-23002) There is a button 'Export to Excel' in the 'Stores' view. It exports all stores visible in the grid to the Excel file. User can narrow results in the grid by applying filters in columns. Exported fields are:
|
Release 25.05.2022
Module | Description |
---|---|
Store details | Webshop flag (RTC-22189) Stores can be defined as 'Use as webshop'. This flag in Store details is independent of 'inventory' flag and is included in the file (blob) export. |
Stores | Stock lookup (RTC-22190) Users are able to manage related stores in 'Stock lookup' section in Stores view, and for an active store via additional view after clicking 'edit' button. Only active stores can be added to stock lookup. If store from stock lookup becomes inactive, proper information is displayed for the user. Inactive stores can be removed from stock lookup. Related stores are included in the file (blob) export. |
Release 11.05.2022
Module | Description |
---|---|
Import | Import postal codes from Excel file (RTC-21244) In postal codes register there is a button which opens modal, in which Excel file can be selected and imported. File must contain Code, City and Country code (same file template as in export). Import can be used to create new postal codes or update existing ones. Postal code will be updated only if code-country pair exists in register - city name will be updated. When code-city pair exists, but country doesn't match - validation error appears. In other cases, postal code is updated. |
System | API for postal codes (RTC-21377) There is an API endpoint in StoreService, which allows developers of other modules to use data from postal codes register. Icon (RTC-22445) Green EG logo is added as icon for Store Management. It is displayed on top of browser and on bookmarks list. |
Release 05.05.2022
Module | Description |
---|---|
Export | Postal codes register (RTC-21237) Postal codes register can be exported to Excel file using button on bottom of page. Exported file contains columns: 'Code', 'City' and 'Country'. Export is affected by filters set in register grid. |
Postal codes | 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. |
Store | Fix for wrong validation when creating new store (RTC-22664) When creating new store, validation works properly. It is possible to save new store when required fields have correct values. |
Release 26.04.2022
Module | Description |
---|---|
Postal codes | Use values from register when editing address (RTC-21378) When editing postal code in address section, dropdown list appears. It displays pairs of code and city from postal codes register. When company's country is selected, only codes from this country are displayed. Inactive codes from register are ignored. It is possible to search for code by entering code or city. After selecting code from the list, postal code and city fields are updated. It is also possible to manually enter code and city that does not exist in the register. |
Store details | Marketing name (RTC-22191) 'Store details' section has been split into 'Store details' and 'General'. 'Store details' contains 'Global location number' and new field named 'Marketing name'. Column with marketing name has been added to stores grid and it's hidden by default. Export of stores has been extended by marketing name. |
Release 05.04.2022
Postal codes register
Postal codes register can be accessed from menu in "Setup" section. Postal code register contains fields: "Code", "City" and "Country". Postal codes can be added, edited and set as inactive. Pair of "Code" and "City" values must be unique. "Code and "City" are alphanumeric input fields, and "Country" is selected from dropdown.
There are two permissions in User Management: "View postal codes" and "Edit postal codes", placed in Store - Postal codes section. These are required to view and edit postal codes register.
Improvements
Module | Description |
---|---|
Company | Manage stores (RTC-20675)
|
Export | Edit company (RTC-21032 After editing a company, stores assigned to it are re-exported with new values of the company. This happens only when edited company detail field is included in store export ("Company code", "Company name", "Country", "Organization number"). |
Store groups | Active' flag for stores and store groups (RTC-21068)
|
Release 22.03.2022
Module | Description |
---|---|
System | Companies for imported stores (RTC-20437)) During import of stores from Chain Web on-premise to cloud, when new company is created, its name is in format "Company - [store name]", organization number is set to same value as in Chain Web, and company code is a random, 3-digit number. |
Release 15.03.2022
Module | Description |
---|---|
Export | Export of Company code (RTC-19524) Export of store to JSON file is extended with 'Prefix' value of company ('Company code' in Company details view). |
System | Change tracking on columns (RTC-21188) Change tracking on columns in dbo.store table is disabled. Database maitenance job (RTC-21190) There is a 'StoreServiceJanitor' job in StoreServiceintegration package. By default, in runs once every night. If there were any changes in stores, it rebuilds index on dbo.Store table in StoreService database. This results in a reduction of the StoreService database size. |
Release 02.03.2022
Module | Description |
---|---|
Company | Company details (RTC-20488)
|
Export | Export of store groups (RTC-18805) When 'External code' of profile/team/region is empty, 'ExternalStoreGroupNo' field is exported to blob with 'null' value. |
Release 17.02.2022
Module | Description |
---|---|
Company details | VAT number (RTC-19762) When creating or editing company, there is a 'VAT number' field. When selected 'Country' is Norway, VAT number is generated in format "NO<Organization number>MVA". In Sweden, VAT number is "SE<Organization number>01". When other country is selected, user can enter VAT number manually. It is a text field with maximum length of 50 signs. |
Store | Inventory flag (RTC-18146) There is a section in store details named 'Inventory' which contains checkbox field 'Inventory management in use'. Status of this field is exported from cloud to blob. It can also be imported from Chain Web On-Prem to Store Management. |
Release 08.02.2022
Edit companies permission
"Edit companies" permission is required to edit companies. It is also required to create a new company. Permission cannot be granted without "View companies" permission.
Company details
(RTC-9435)
New company can be created by clicking on 'New company' button in "Companies" view. By clicking on company name in grid, we can open company details. In this view we can edit details of the company. Changes are saved using 'Save' button, or canceled using "Cancel". In the grid at the bottom of this page, we can see a list of stores within the company. Clicking on store name opens store details view. Using "Add new store" we can create a new store with company pre-selected.
In company details, "Organization number" is validated based on selected "Country". This value must be 9 digits long in Norway, 10 digits in Sweden and at least one digit in other countries.
Improvements
Module | Description |
---|---|
System | Use of breadcrumbs in user interface (RTC-19764) In store, team, profile, region and company details view, we show breadcrumbs in "<unique id> - <name>" format. When opening store details from the grid in team, profile, region or company details view, breadcrumbs show the correct store group, from which we navigated to this page. Change tracking (RTC-19983) Change tracking is retained for 2 days. |
Release 30.12.2021
Export of stores
(RTC-18806)
Store export from StoreService is extended with fields that are required by Chain Web. These fields are:
- Ext. store number (POS system)
- Global location number
- Opening date
- Closing date
- Email address
- Phone number
- Address 1
- Address 2
Modification of any field in store details view will trigger re-export of store.
Audit columns
After creating new team, profile or region, in 'Created by' and 'Modified by' columns there is an e-mail address of the user who created it.
Price zones
A team can be created as a price zone. Each price zone must be assigned to one profile. After creating a new price zone, its parameters cannot be changed. Price zones can contain only stores that are part of the selected profile. Stores can be a part of only one price zone at once. Stores can be assigned to a price zone in price zone details view or in store details view. Information about price zone assigned to store is exported to JSON file immediately after changes.
Price zone
Price zone can be selected when creating new store. Only price zones within selected profile can be chosen.
Release 01.10.2021
Teams register grid
(RTC-7815)
The lists of available teams, profiles and regions visible for user only with required permissions were added in Store Service.
Translations to Swedish and Norwegian language were added to above mentioned new elements.
Store Group Register - Add Store Group
(RTC-9711)
The Add panel required for adding new store groups of teams, profiles and regions type has been implemented and is available at the top of each store groups grid. That means, it is possible to add new store group of particular type (teams, region, profile) . The notification after adding one group is displayed at the bottom of a screen and informs about successfully performed action. What is more, newly added store groups are visible within dedicated store group grid. Swedish and Norwegian translations are provided correctly.
Store Group Edit Stores
(RTC-9714)
It is possible to manage stores inside Team, Profile or Region store group by searching and then adding or removing particular stores as well as selecting and unselecting all of them.
Store Group Edit Details
(RTC-9437)
The UI for editing store groups has been implemented. It is possible to manage store groups for Teams, Profiles and Region, edit its basic details, display stores that belong to particular store group as well as activate and deactivate them. What is more, correct Norwegian and Swedish translations have been provided.
Date:
Export Teams/Profiles from StoreService
(RTC-701)
StoreExport job from StoreServiceIntegration now exports also store groups linked to the store.
StoreExport job is exporting updates in stores and also can export when store group is modified (all stores from store group) and on store-store group link change.
Import Teams/Profiles to StoreService
(RTC-960)
New job StoreGroupMerger has been implemented - it is possible to process flatjsons with store groups imported by GenericImport job.
GenericImport job has been updated to import StoreGroupUpdated events from blob storage - which were exported from on-premise by StoreGroup2 job from BackOfficeBatchGenerator.
Export Teams/Profiles from BackOfficeBatchGenerator
(RTC-3899)
StoreGroup2 job has been implemented. Now it is possible to export store groups which are stored in the [Lindbak Retail].[Chain].[StoreGroup] table and put them into the BatchToProcess blob container.
Date:
Store Register
(RTC-775)
The beginning of store management in Cloud. The menu entry leads to the list of stores that reveals several store details in a grid. It enables the user to manage stores existing in the company, select concrete stores' displayed in the grid, filter by preferred values and create new stores.
Extend data model with additional fields
(RTC-8081)
The export of store data from StoreService is extended. StoreExport job includes following store attributes:
- Address - city, post code and country code (the same as company country code).
- Company - organization name, organization number and country code.
Store Details
(RTC-8328)
When clicking on a store in the store grid, the user can find the store information. From this view it is possible to activate, deactivate and edit the store details. The requirements needed for creating stores are marked by an asterisk.