Chain Web 2.10.401
Released 10 September 2025
Version requirements can be found in this Jira: (RTC-52743)!
Hide item transaction reason codes (RTC-46595)
The "IsItemTransactionCodesManagedInCW" system parameter is added. If set to False, the item transaction treatment and reason codes will not be available in the reason codes view. The default value is True.
Open New PLU List button in POS Configuration (RTP-41970)
The Open New PLU List button is available again in Button Configuration under POS Configuration. This ensures that users can manage PLU lists directly from the configuration screen.
Chain Web 2.10.400
Released 9 September 2025
Version requirements can be found in this Jira: (RTC-51967)!
Deleting items from item customer groups times out (RTC-50308)
The deletion of discounts from a customer group does not time out.
For store discounts, removing approximately 100,000 discounts takes about 15 seconds.
For common discounts, deleting around 35,000 discounts takes about 2 minutes.
Customer groups should not contain more than 35,000 common discounts.
If there are more than 35,000 common discounts, the deletion process may fail.
Customer - EHF invoices (RTC-52231)
The button "Check if customer can use electronic invoice" in the invoice tab in customer details view has been replaced with text "Remember to check with the local registers whether the recipient is registered for receiving EHF invoices".
Chain Web: Problems with creating invoices (RTC-51307)
The InvoiceCreated and InvoiceResend events now include only the invoiceId and the PDF file name, instead of the entire invoice data payload.
As a result, the invoice details required for EHF file generation by the ElectronicInvoiceJob are now retrieved directly from the database using the provided invoiceId.
This change reduces the size of event messages and improves system efficiency, while ensuring that all necessary invoice information is still available for downstream processing.
External login user creation cannot be completed in some cases (RTC-34100)
Incomplete temporary users are now displayed in Chain Web users grid. When UserInComplete property is true, then there is a warning message displayed. Even after exiting the edit user profile view it is possible to finish the registration process later.
(This is backported to Chain Web 2.10.373)
Picking order export deadlock (RTC-51932)
Picking order export uses improved transaction isolation level, which should provide better reliability.
(This is backported to Chain Web 2.10.373)
PickingOrderProcessor handles Create before update (RTC-51618)
The PickingOrderProcessor job processes multiple actions for the same customer order. It runs these actions in the order of their IDs but ensures that any Create operation always runs before an Update. This makes sure that an order exists before it is updated, and helps avoid errors during processing.
(This is backported to Chain Web 2.10.373)
Send SMS using SendDigitalReceipt endpoint (RTC-41893)
This feature enables POS API to send digital receipts via SMS using SendDigitalReceipt endpoint.
Message sending of receipt for Pay and Collect orders (RTC-51317)
Correct receipt PDF is send when picking for P&C order is finished.
End shift improvements (RTC-51731)
Shifts, which were already closed or had balance created, can no longer be ended using "StartEndShift" method from Balance service.
Changes in Receipt buttons in Self-service (RTP-40658)
Some needed changes is done in the receipt dialog in Self-service, to make it easier for the customer to select receipt options.
New parameter that does not allow external approval of items (RTP-40283)
“NoExternalItemGroupsApproval” parameter allows to define item groups that cannot be approved by a cashier using the Monitor app or Surveillance. Items from these groups will require the cashier to physically approach the customer at the self-service and approve the item directly at the checkout terminal.
POS Configuration
New parameter:
NoExternalItemGroupsApproval - Default value: blank.
Specifies item groups not allowed for external approval (Monitor App or Surveillance). Approval is only possible upon scanning a cashier card at the SCO.
Confirmation before deleting rows or columns on the PLU Board (RTP-37259)
When removing a row or column on the PLU Board, a confirmation message appears before the deletion. If the action is canceled, nothing is deleted. If confirmed, the selected row or column is removed. This prevents accidental changes and helps users keep control of the board layout.
POS Configuration for resending member registration (RTP-30020)
A button can be configured in the POS to resend the member registration SMS. Use the “RESEND_MEMBER_REGISTRATION_SMS” function in the ButtonConfig parameter to enable this. This helps staff quickly resend registration messages when needed.
Finance payment support for carwash and voucher sales (RTP-35574)
The “AllowCreditForFuelAndCarwash” POS configuration controls whether finance payment methods can be used for eSale items like carwash and vouchers.
Default value: True.
Custom sorting for PLU List categories in POS Configuration (RTP-40305)
PLU Lists in Simple setup can be reordered by dragging tiles into the preferred order. POS follows the same sorting as defined in Chain Web, making it easier to organize and control how categories appear during selection.
Choose view type for Open new PLU List button in POS Configuration (RTP-40234)
The “Open new PLU list” button in ButtonConfig POS Configuration includes a new Appearance setting. This allows selection between Grid view (default) and Category view when opening the PLU selection dialog.
POS Configuration for images and color settings in Category view for ShopAndGo (RTP-40306)
The SngPluListWithCategoriesImage POS Configuration adds images to the PLU search view in ShopAndGo when using PLU List in ** Category view. A new “PluListBackgroundColor” option is added to “SngOverriddenColors”, allowing background color changes for the PLU list.
All arguments in “SngOverriddenColors” are sorted alphabetically.
Chain Web 2.10.391
Released 8 August 2025
Version requirements can be found in this Jira: (RTC-52055)!
POS Configuration for resending member registration (RTP-30020)
A button can be configured in the POS to resend the member registration SMS. Use the RESEND_MEMBER_REGISTRATION_SMS function in the ButtonConfig parameter to enable this. This helps staff quickly resend registration messages when needed.
Chain Web 2.10.390
Released 30 June 2025
Version requirements can be found in this Jira (RTC-50697)!
Member campaign start time set to midnight by default (RTC-50667)
When setting or updating the start date on a member campaign, the time automatically defaults to 00:00:00. This avoids campaigns starting too early and helps prevent potential financial loss from unintended activations.
PickingOrderCollectLocked export (RTC-49836)
A new job PickingOrderLocked has been added. It runs every 10 minutes and exports a new blob type PickingOrderCollectLocked when PreferredDateTime is reached based on store-specific settings.
Export PickingOrderCollectionLocked blob (RTC-49835)
New Picking blob type PickingOrderCollectLocked is exported when PickingOrder export job will handle export event of type PickingOrderLockedBatchExportEvent.
Picking order processor only handles recent scheduled executions (RTC-49039)
The Picking Order Processor handles scheduled executions from the last 30 days. It does not pick up new or unscheduled orders outside this period. This helps limit processing to relevant and timely data.
Click & Collect orders failing (RTC-49055)
Schedule executions for Click & Collect orders with status ShippingProgress = SendToStore are marked as processed.
Click & Collect orders show correct status after cancelation (RTC-50356)
When a Click & Collect order is canceled in the POS, the order status in Chain Web correctly updates to "Canceled." This prevents the order from being reactivated after cancelation and ensures consistent status across systems.
(This improvement is backported to Chain Web 2.10.373)
Message sending waits for receipt generation (RTC-49595)
Messages are sent only after the correct receipt is created. If the receipt is not yet available, the system retries up to 10 times. If no valid receipt is found after these attempts, the message is not sent.
Receipt tracking for fully paid orders (RTC-49595)
The FullyPaidNowInReceiptId column in the CustomerOrder.Order table stores the receipt ID for orders that are fully paid. This makes it easier to track and confirm payment status.
SMS notifications for order pickup in PAC (RTC-49129)
It is possible to send SMS messages only when an order is ready for pickup. A new setting in AppSettings controls this for the GenerateMessage job.
When the setting ‘Only send SMS on ready for pickup’ is set to True, SMS messages are sent only when the order reaches pickup status. If set to False, SMS messages are sent at each step in the order process.
The setting is hidden by default and does not affect existing configurations unless changed.
Update AppName parameter's default value (RTP-39501)
'EG POS' better represents the application's name. Updating the default value prevents the outdated application's name from being used.
Balance receipts are included in SAF-T export (RTP-38732)
Receipts of type "Balance" are included when exporting SAF-T files from the receipts journal in Chain Web. This ensures all relevant receipt types are part of the export
Move jobs from BackOffice Web to BackOfficeIntegrationSubscriber LIP package (RTC-49193)
NotificationSubscriberJob, KitchenNotificationJob and FullTextReindexingNotification have been moved to separate integration package.
Required configuration changes: Job's disabled by default - see the technical release notes!
Chain Web 2.10.382
Released 3 September 2025
Version requirements can be found in this Jira: (RTC-52645)
Support for new coupon provider "iCoupon" in POS and PosCouponService
(RTP-36235)
The new coupon provider "iCoupon" is now supported in POS and PosCouponService. Three different coupon types are supported:
Subtotal discount coupons
Tender value coupons
Multi value tender coupons
The subtotal discount coupons are, just like the name suggest, coupons that award a subtotal discount on the receipt. The other two coupon types are tender coupons and the difference between them is that the multi value coupon can be redeemed in portions and the other can only be redeemed one time (in total).
All coupons are fetched to POS from iCoupon via the PosCouponService by scanning a QR code inn POS using the new function SEARCH_AND_SELECT_ICOUPON_COUPONS. This function should be set up on a button that the cashier press before scanning the coupon QR code. If the coupon QR code include one coupon it will be automatically selected but if the code contain several coupons the cashier will have to select what coupons should be activated.
POS Configuration
New parameter:
'CouponLocationId' - This value is used to identify the location of the cash register when fetching coupons. This can be an airport code (OSL, TRD or similar) or another code. If this is left empty. The value from parameter "Airportcode" is used.
Existing parameters:
'CouponProvider' - must be set to 'PosCouponService'
'PosCouponServiceUrl' - must be set to point to the Url to the PosCouponService.
'CloudAccessServiceUrl' - must be set to the service in PosServices to service for getting Access token to POSCouponService in
'ButtonConfig' - Add a menu or button that will call function SEARCH_AND_SELECT_ICOUPON_COUPONS.
'LoyaltyProgramID' - should match the value of LoyaltyProgramNumber in POSCouponService config in Tenant admin.
'CouponAcceptTooHighValue' should be enabled (true) to be able to reduce the amount of the redemption when a tender value voucher amount is higher than the receipt total.
Chain Web 2.10.380
Released 7th of May 2025
Version requirements can be found in this Jira: (RTC-49512!
Cancelation of draft (RTC-41183)
There is a lip job that cancels old credit sales that are in draft/started state. Started credit sales that are older than value set are automatically cancelled. ReceiptsCanceler job is related to CleanStartedOlderThanDays POSWCF parameter. ReceiptsCanceler's parameter is supposed to be set to a higher value than POSWCF parameter. By default, credit sales that are 14 days old are canceled and the lip job that is responsible for cancellation is run everyday at 5 a.m.
Customer - Adding a new CustomerAddTask and handling in the BackOffice service (RTC-48084)
A new task "NewCustomer" has been added to the POSLogProcessingWorker. It is created when the poslog being processed contains a Customer section with an Information action. For other actions, POSLogProcessingWorker works as before and creates the "Customer" task.
If the customer contained in the task "NewCustomer" does not exist in the Retail database, then a new customer is created with the task data when processing this task. If the customer contained in the task "NewCustomer" exists in the Retail database, then task processing is skipped.
The “NewCustomer” task should only be used when there are synchronisation problems - when customers created in POS have not been correctly synchronised with the Retail database.
Get QuantityAvailable from DispatchService for PAC orders (RTC-46753)
Fetched QuantityAvailable is saved to picking order line in [CustomerOrder].[PickingOrderLine] table. When processing new PAC orders, DispatchService is called for stock availability.
Extend contracts and export "Quantity available" for all relevant PickingOrderBlob (RTC-46754)
QuantityAvailable is exported in PickingOrderExport blob.
Swagger documentation has been updated.
Chain Web 2.10.373
Released 4 September 2025
Version requirements can be found in this Jira: (RTC-52601)
Click & Collect orders show correct status after cancelation (RTC-50356)
When a Click & Collect order is canceled in the POS, the order status in Chain Web correctly updates to "Canceled." This prevents the order from being reactivated after cancelation and ensures consistent status across systems.
Picking order export deadlock (RTC-51932)
Picking order export uses improved transaction isolation level, which should provide better reliability.
PickingOrderProcessor handles Create before update (RTC-51618)
The PickingOrderProcessor job processes multiple actions for the same customer order. It runs these actions in the order of their IDs but ensures that any Create operation always runs before an Update. This makes sure that an order exists before it is updated, and helps avoid errors during processing.
External login user creation cannot be completed in some cases (RTC-34100)
Incomplete temporary users are now displayed in Chain Web users grid. When UserInComplete property is true, then there is a warning message displayed. Even after exiting the edit user profile view it is possible to finish the registration process later.
Chain Web 2.10.371
Released 3 June 2025
Version requirements can be found in this Jira: (RTC-49841)!
SMS Notifications for Order Pickup in PAC (RTC-49129)
It is possible to send SMS messages only when an order is ready for pickup. A new setting in AppSettings controls this for the GenerateMessage job.
When the setting ‘Only send SMS on ready for pickup’ is set to True, SMS messages are sent only when the order reaches pickup status. If set to False, SMS messages are sent at each step in the order process.
The setting is hidden by default and does not affect existing configurations unless changed.
Message sending waits for receipt generation (RTC-49595)
Messages are sent only after the correct receipt is created. If the receipt is not yet available, the system retries up to 10 times. If no valid receipt is found after these attempts, the message is not sent.
Receipt tracking for fully paid orders (RTC-49595)
The FullyPaidNowInReceiptId column in the CustomerOrder.Order table stores the receipt ID for orders that are fully paid. This makes it easier to track and confirm payment status.
Picking Order Processor only handles recent scheduled executions (RTC-49039)
The Picking Order Processor handles scheduled executions from the last 30 days. It does not pick up new or unscheduled orders outside this period. This helps limit processing to relevant and timely data.
Click & Collect orders failing (RTC-49804)
Schedule executions for Click & Collect orders with status ShippingProgress = SendToStore are marked as processed.
Chain Web 2.10.370
Released 10th of April 2025
Version requirements can be found in this Jira: (RTC-48651)!
New POS Configuration added for improved customer order flow
When the CustomerOrderFinishedOnPayment setting is True (default value is False), cashiers can update orders directly without entering ‘Edit mode’. POS automatically removes any items that were ordered but not paid for. After payment, the order is set to status “Completed”. This supports a faster and more intuitive Click & Collect flow.
POS Master v. 3.0.0.210 is required.
PickingOrderCompleted export counter (RTC-48305)
Picking order completed export contract is extended with "PickingOrderExportCount"
PickingOrderCompletedExportCount Counter is updated every time PickingOrderCompleted is generated for given picking order.
PickingOrderProcessor should skip orders based on order number - store number combination (RTC-48174)
PickingOrderProcessor job are using combination of order number and store number when handling processing of orders.
Attach receipt from receiptService to OrderDispatch mail (RTC-47872)
Receipt PDF attached to mail (sent to customer) is fetched from ReceiptService and represents a legally valid receipt.
Stocktaking results (RTC-46810)
The view follows the marker when counting items in stocktaking results view.
Chain Web 2.10.360
Released 4th of March 2025
Version requirements can be found in this Jira: (RTC-47644)!
Improvements
CustomerService integration - Customers import (RTC-47209)
External customer number is saved both as customer number and external customer number during import.
Accounts Receivable - Invoices (RTC-46397)
Invoices will feature the Bank account number that needs to be configured at the store level.
Web order is locking during return (if locking functionality is enabled) (RTC-30373)
Orders are no longer locking during returns/refunds.
Sales analysis report (RTC-48031)
Fix in report for Sales analysis (0759_SalesAnalysisWithComparisonAndDrilldown) to make sure excluded groups are excluded from report.
Gift card balance (RTC-46758)
Improvements in report for Gift card / Credit note balance to take into account gift card and credit notes with the same number.
Changes in report 0806.
Sales per hour (RTC-46094)
Improvements in report making i possible to have more than one item group in parameter "pExcludeGroups".
Changed report: 0758_SalesPerHour
Deadlock on order update (RTC-46399)
PickingOrderProcessor job does not fault randomly on deadlock when updating customer orders.
PickingOrderProcessor: Error handling for CartIsCancelledFault (RTC-46373)
New error handling for CartIsCancelledFault was properly implemented. From now ScheduledExecution with CartIsCancelledFault is retried before deleted for max of 24h, the delay and retry count depends on settings in LIP, by default it is number of retries (10) and delay (5min) which participate in counting the delay.
Export new field: "StructuredNotes", in all picking order export blobs (RTC-46308)
Structured notes field is properly fetched from POSLog to database and then to exported PickingOrder file. Moreover Swagger documentation for all PickingOrder export contracts was properly updated with the "StructuredNotes" field.
Process and save new POSLog field: "StructuredNotes" (RTC-46307)
When POSLog of customer order contains StructuredNotes_PosLog field then it is fetched and saved into new CustomerOrder.OrderStructuredNote table in the LindbakRetail database.
Export CarrierReference (RTC-45655)
Customer order POSLog fields CarrierReference and TimeSlotToken are exported with picking order export. Swagger documentation has been updated.
Support refund (RTC-45632)
When PAC/PAC.CW orders have the status: "delivered to customer", it is possible to do a return and/or refund.
CarrierReference (RTC-45458)
CarrierReference and TimeSlotToken from POSLog delivery info are saved into LindbakRetail (OrderDeliveryDetails table).
Chain Web. 2.10.352
Released on January 29th 2025
Version requirements can be found in the Release notes tab in this Jira: RTC-46827
Version requirements can be found in this Jira: (RTC-46827)
Support cancelling web orders form POS (RTC-46026)
Dispatch orders cancelled in POS are also cancelled in CW including picking orders. Cancelled dispatch orders are exported by BackOfficeBatchGenerator.
Invoicing customer suggestions (RTC-45783)
Customers without ready invoices in currently selected store are no longer suggested in invoicing wizard.
Faulty deviation value in the stocktaking (RTC-44484)
Deviation values in the stocktaking view are now displayed correctly after refreshing stock level.
Chain Web v. 2.10.351
Released on January 10th 2025
Version requirements can be found in this Jira: (RTC-46519)
Improvements
Gift cards view improvements (RTC-45471)
The performance of gift cards grid is significantly improved. The default filter for the gift card number column is changed to "Starts with". The receipt ID column presents correct data.
PickingOrderProcessor: Deadlock on order update (RTC-46399)
PickingOrderProcessor job does not fault randomly on deadlock when updating customer orders.
Support refund/return of PAC and PAC.CW orders in Chain Web (RTC-45632)
When PAC/PAC.CW orders have the status: "delivered to customer", it is possible to do a return and/or refund.
Configuration for naming card payments (RTP-34374)
CardNameMapping parameter is added in POS Configuration, which can be used to map Card Issuer ID and Card Name. When configured, this will be used by POS to show the Card Name in the printed receipt when it is used for payment.
Required - Retail DB 2.10.103
Chain Web v. 2.10.350
Released on January 10th 2025
Version requirements can be found in this Jira: (RTC-45658)
Deactivate reason codes
Reason codes can be deactivated and activated, by double clicking on a reason code from the "more" button.
Deactivated reason codes are not available in POS.
The name and accounting number of an active reason can be edited, by double clicking on the reason code row and saving the changes.
Improvements
Balance permissions (RTC-45009)
Store users without "Administer balance" permission are able to create balance for cash registers (BalanceTransactionType = Workstation).
Modifying shift settlement without submitting settlement, resets settlement (RTC-44386)
Values displayed in the shift balance edit view are always fetched from previously submitted settlement and editing the settlement without submit does not longer affect displayed values.
Issues with creation of new customer when no IsDefaultSuggestedGroup CustomerGroup is defined (RTC-44309)
Error is no longer occurring and customer is correctly created, even if default group is not defined.
Pickup code and Picking status in Customer order (RTC-45147)
A "Pickup code" column is present in the Customer orders grid, where the pickup code for the order can bee seen.
The "Picking status" shows information about the order's picking status.
Block allocating order number on-prem (system parameter) (RTC-43242)
Order number allocation through BackOfficeService can be blocked, by setting CustomerOrderNumberAllocationMovedToCloud parameter to True. A message with information that allocation should be done via cloud service is then returned in the BackOfficeService logs.
Payment method missing/incorrect in Email templates (RTC-44436)
Payment methods used for particular order are properly displayed in the email templates:
Payment methods with amount less or equal to 0 are not displayed in templates and receipt Pdf's.
Payment methods are properly fetched from database tables.
Order paid with multiple payment methods contains all methods in all templates displaying payment method (e.g., Payment method: Klarna, Gift card).
There is no difference in how payment method is displayed on the email templates for orders created in Web shop and orders created in Physical store.
Redirect for Gift card in Cloud or Chain Web (RTC-44967)
The system parameter RedirectToGiftCardManagement defines if the user should be sent to Gift cards in Chain Web or Gift card management in Cloud.
If the parameter is set to True, and the "CloudChainUrl" parameter is not empty, the user will be redirected to GiftCard management in Cloud from the navigation menu.
If the parameter is set to False, the user will always be directed to Gift Cards view in Chain Web.
Discount in EHF (RTC-41628)
Discounts are added to the EHF invoices. They are present on Price level, which is part of the InvoiceLine/CreditNoteLine area.
Support pre-dispatched orders (RTC-44524)
It is possible to assign orders to stores before creating orders in EG OMS. It is possible to configure an environment to not call DispatchService when creating new orders. A new PickingOrdersPreDispatchedEnabled parameter has been added to identify if support for pre-shipped orders is enabled.
PoslogProcessing: Add support for picking store (RTC-44850)
During pre-dispatching, the picking store from POSLog is used as the source for picking stores assignment.
Extend PickingorderExport (all) with Orderdate, customer number and member number (RTC-44845)
All PickingOrderExport contracts were properly extended with the fields:
OrderDate
CustomerNumber - is included in the ContactInfo
MemberNumber
Also Swagger documentation was properly updated.
Export pickingOrderJson for all order types (PAC, Shipment deliveries and RIS) (RTC-44825)
PickingOrders for PAC, PAC.CW and ShipmentDeliveries are exported in the same manner as RIS orders.
Extend pickingOrderDelivered and pickingOrderCompleted contracts (RTC-44822)
Completed and Delivered PickingOrderExports are properly extended with more information of the order. There were added two additional fields to the export contracts:
ShipmentNumber,
PackageNumber
Moreover, when order has multiple packages then all PackageNumbers are listed in the export also Swagger documentation was properly updated with mentioned improvements.
Enable PickingOrderExport for all stores (RTC-41653)
Existing PickingOrderExport parameter in the System Parameters in Chain Web was properly extended with the new functionality - from now it is possible to set export to all existing stores without obligation to set them separately, but as it was previously this option is still available.
Enable Pre-disaptched picking orders (RTC-44523)
New parameter 'PickingOrdersPreDispatchedEnabled' allows to enable picking orders creation for pre-dispatched orders based on picking store number in PosLog. Picking orders will not be created based on dispatch suggestions from dispatch service.
Trigger export of PickingOrderExport blob type: DeliveredToCustomer (RTC-44519)
PickingOrderExport BlobType: "DeliveredToCustomer" is properly exported by PickingOrder job when status in deliveryJson (POSAPi) is for click and collect orders.
Trigger export of PickingOrderExport blob type: DeliveredToCustomer (RTC-44516)
Trigger of new DeliveredToCustomer BlobType for PAC and PAC.CW orders.
PickingOrderProcessor deadlock issue (RTC-44308)
When PickingOrderProcessor process two events (create and update) related to certain order in one run then there is no deadlock registered. Both PickingOrderProcessor and PickingOrder jobs finished with completed status regarding the order.
System info view (RTP-34984)
Flight Data Service can be configured in System Info - Services status view.
POS Configuration: ServicesToShowInSystemPanel - Services to be shown in System Panel. New possible value to configure there - "FlightDataServiceGatewayUri".
Fix: Origin flag not synced on Myhrvold and Strongpoint labels (RTC-44017)
Changes in 'Origin' flag values trigger creating labels for items with scale labels in Item Service. Labels are imported in on-premise server and converted to XML and atte.dat files with correct values of Origin flag. In Myhrvold labels value is located in weight Information section in weightOrigin field, when in Strongpoint it is the last digit of first row - 1 means origin is true, 0 origin is False.
Best before on scale labels (RTC-43542)
It is possible to differentiate 'shelf life' and 'best before' in files containing scale labels. There are three cases that vary in display of value:
Shelf life is not empty and Best before flag is True.
Shelf life is not empty and Best before flag is False.
Shelf life is empty.
In first case, Myhrvold XML file in 'ShelfLife' field has value of Shelf life from item. In second, value is 'Shelf life+900'. And when shelf life is empty, field has value 0.
Strongpoint atte.dat files have different placements of Shelf life value from item depending on Best before flag. If it is True, ‘ShelfLife’ is written in 24th to 26th positions in file. When False, in 27th to 29th are filled with values. Zeros in 24th to 29th position mean that there is no Shelf life on item.
Values of Shelf life and Best before are taken from common fields or from store local attributes if set.
Create users with special characters (RTC-44999)
In user management, users can be created with "/", "\" and space in the username.
Note that in some cases, the user might not be exported to Chain correctly.
Team users and cashiers (RTC-44432)
Team users with correct permissions are allowed to assign/create cashiers for other users.
In addition, an issue where team users could not see cashiers in Cashier management, has been fixed.