EG POS v. 4.157.1
Released 3 December 2025
Sell in Price check
A new button Sell article has been added in the Price check popup triggered by function called 'PRICE_CHECK'. It allows to add the item without exiting the Price check view.

Menu selection user interface for Extras
Additional price for Extras is being displayed in Menu selection user interface in column called 'Optional: Extras'. It is also being added to the total price calculation of the menu.
Thanks to it, it's clear how the final menu price changes after Extras have been added.

Convenience menu sales
"Remove ingredients" and "Extras" columns behavior in menu item dialog when more than 1 recipe item has non-mandatory ingredients has been changed - the names of the columns are now "Optional: Remove ingredients" and "Optional: Extras", columns are also split so that it is possible to display more than one recipe item per menu now.

Unmanned mode control in POS
A button in the Sale view opens a dialogue for controlling Manned and Unmanned mode on the POS. The user chooses to run the POS in Manned mode, in Unmanned mode, or let the mode follow the configured opening hours. A forced mode stays active until the user changes the setting back to follow the opening hours.



POS Configuration
Relevant existing parameter:
'SnGMannedOpeningHours' - configured opening hours for each day of the week
'ButtonConfig' - New function CHANGE_STORE_MODE may be programmed on a key in Sale view (only)
Age approval when in Unmanned mode
Age approval in Unmanned mode supports two methods. Age may be approved by customer scanning the QR code with the CoopKey app, or staff approves age by scanning a cashier card on the 'DayOpenAppReminder' page. Either way, the age approval sends the customer directly to the 'Payment' page to finish the purchase.
POS Configuration
Relevant existing parameter:
'SnGUnmannedModeSettings' - Manually add new valid Key 'UseCoopayToApproveAge' - Manual value 'False' will make Coopay NOT being used for age approval while in Unmanned mode.
Gift receipt view for selected item
When entering the Gift Receipt view in Self-Service, only items belonging to the item groups configured in the '“SngGiftReceiptItemGroups” parameter will be displayed.
If the items in the cart do not match any of the item groups defined in SngGiftReceiptItemGroups, the Gift receipt page will be skipped in the page flow. If the customer explicitly taps the Gift receipt button, a dialog will appear informing them that a gift receipt cannot be generated.
If SngGiftReceiptItemGroups is left empty, the existing behavior remains unchanged: all items will be shown on the Gift receipt page.
POS Configuration
New parameter:
SngGiftReceiptItemGroups - Default value: empty.
Configures which item groups appear on the gift receipt page. If unset, all items are shown.
Credit note handling on self-service during offline situations
SCO issues a printed credit note when a Vensafe item cannot be activated because the system is offline. The credit note gives the customer a direct reimbursement even when SCO cannot communicate with Vensafe or backend systems.
SCO stores the credit note information locally and sends it to the backend when the system comes online again. This ensures correct settlement and tracking of the credit note without requiring staff action.
POS Configuration
New POS parameter introduced:
OfflineCreditNoteRetryJobSchedule - Cron expression for schedule of the Offline CreditNote retry task. This is how the offline credit note is issued when POS is back online. Maximum retry count is hardcoded to 5 times. We suggest that this parameter is set to be triggered TWICE a day.
Different surveillance sound for items that cannot be approved externally
New sound file for items that cannot be approved externally should be called AgeControlNotExternal.wav. It should be located where the other sound files already are (path is defined in MediaBankCacheFolder parameter).
When an age-controlled item that can be approved externally is scanned, AgeControl.wav plays. If it has not been approved externally by the time the customer goes to payment, the age-control dialog appears and AssistanceNeeded.wav plays.
When an age-controlled item that cannot be approved externally is scanned, the new AgeControlNotExternal.wav plays. When the customer goes to payment, the age-control dialog is shown and AssistanceNeeded.wav plays.
Alfa numeric values for SpecialGroupCode
Support for alfa numeric values for Special Groups has been added to POS Import.
It allows for a wider range of names for it.
Import and support grocery attributes
Support for 'Quantity in pallet' field coming from Item Management has been added to POS Import.
It will allow to access these data in POS if needed.
Improvements POS
AeviXPay - handling unrelated errors after a successful transaction (RTP-43905)
EG POS ignores an unrelated error that may appear immediately after a successful AeviXPay payment. This ensures the receipt completes and allows customers in self-service to finish their purchase without interruption.
Relevant existing parameter in POS Configuration:
“PayTerminalType” = 'AeviXPay'
Bank - Header for administrative operations on pay terminal receipts (RTP-40666)
Receipts and journal entries generated from administrative actions towards the pay terminal, such as those done through BankAdminMenu, display the header “ADMINISTRATION.” This separates administrative transactions from pay terminal reports, which display the header “PAYTERMINAL REPORT.” The distinction makes it easier to identify and track the type of transaction in both printed receipts and the Receipt Journal.
Bonus coupons are not being applied twice (RTP-40341)
In case member with bonus coupons was added and then removed, coupons are also removed from the sale, so when member is re-added, the coupons are not applied twice.
Thanks to it the correct discount applies.
Improved display and status handling for iCoupon vouchers (RTP-43172)
POS now correctly displays all coupons and vouchers linked to an iCoupon barcode.
Redeemed and expired vouchers are clearly shown with a strikethrough and cannot be selected.
Active vouchers remain selectable and can be added to the receipt.
This ensures clear visibility of voucher status and prevents accidental redemption of invalid coupons.
Single-use coupon trigger issue fixed (RTP-40323)
The issue where single-use coupons were triggered twice - once during coupon entry and again during payment - has been fixed. Coupons now apply only once per transaction, allowing payment to complete smoothly. Member and multi-use coupons continue to work as expected.
Enhanced discount calculation for weight-based item (RTP-42036)
Discount handling for weight-based items has been improved.
Now, identical discounts applied to the same item are combined into a single calculation until the maximum limit is reached.
Other discount types and regular (non-discounted) items continue to work as expected.
This ensures accurate and consistent discount calculation on receipts.
Line discount for fixed price items (RTP-43127)
Correct amount is being displayed when giving line discount in POS for fixed price items with “AllowPromotionPriceOnFixedPriceItems” parameter configured to True. Thanks to it, it's obvious what's the correct price.
Subtotal discount view improvement (RTP-43128)
Text in subtotal discount view while trying to discount a fixed price item with no basis for discount is not capped.
It allows to access the full meaning of the text.
Mixmatch type 21/22 trigger logic (RTP-42946)
Mixmatch type 21/22 activates correctly when items are part of both fixed-price and percentage discount promotions. This ensures that all valid combinations trigger as expected, even when multiple Promotion types apply to the same items.
Convenience menu sales (RTP-43330)
Improvements in user interface for Convenience menu sales have been implemented. Thanks to it when full HD resolution is used, the view to handle menu item is correct and easy to understand.
Automatic change of fuel mode (RTP-41647)
Automatic change of fuel modes with values "Before closing time" and "After opening time" in minutes configured in “AutomaticFuelModeChangeInMinutes” parameter has been implemented.
Improvisation when email or mobile already exists on another member (RTP-41786)
This update improves how member details work in EG POS. Earlier, when adding or editing a member, the member was added to the receipt and only a message was saved in the log file. Nothing was shown on the POS screen. The POS now shows a message if the email or mobile number is already used by another member. This helps avoid duplicate members and makes it easier for staff to update the correct details.
Problems during startup of EG POS (RTP-40405)
To make sure that errors related to database being offline are not logged during startup of POS, for the first 5min after POS started, database connection timeout is increased to 10 seconds. After 5min, it's back to 2 seconds.
Dispatch orders - delivery options (RTP-43334)
Deleted articles are being filtered out when fetching delivery options in dispatch orders now. Thanks to it items deleted from web orders are no longer incorrectly sent to DispatchService.
Age approval when in Unmanned mode (RTP-43340)
Age approval on a self-service POS can be configured to work differently in Manned and Unmanned mode.
When the POS runs in Manned mode, age approval may be done through Coopay.
When the POS runs in Unmanned mode, age approval is done through the CoopKey app by scanning its QR code.
This setup ensures that age approval works smoothly in both modes and that CoopKey handles the process as intended during Unmanned operation.
POS Configuration:
New entry in existing parameter: “SnGUnmannedModeSettings” - Manually add new valid Key 'UseCoopayToApproveAge' - Manual value 'False' will make Coopay NOT being used for age approval while in Unmanned mode.
Relevant existing parameter: “UseCoopayToApproveAge” (default 'False') - If activated, age control will be performed via Coopay.
Gift receipt printing after searching for customer order receipt (RTP-42866)
This update fixes an issue that occurred when printing a gift receipt (byttelapp) after searching for a customer order receipt in POS. Earlier, the POS showed an error and stopped the process with a divide-by-zero exception, preventing the receipt from being printed. With this update, cashiers can print gift receipts successfully after retrieving receipts from customer orders. This ensures smooth handling of exchanges and avoids delays at checkout.
Overriding price of fixed price items (RTP-43129)
Promotion price is being displayed when overriding price of fixed price items with “AllowPromotionPriceOnFixedPriceItems” parameters set to True.
Thanks to it it's obvious what's the correct price.
Receipt prints despite selecting ‘No Receipt’ or ‘Digital Receipt’ (RTP-42723)
The issue where a physical receipt prints even when choosing not to print any receipt is resolved. The system now follows the selected receipt option, ensuring that receipts are only printed when explicitly chosen.
Pant placement on receipt (RTP-43208)
The receipt layout places pant item directly below the related items. This ensures that all pant values appear consistently and clearly in the correct position, making the total calculation easier to follow for both customers and staff.
Message shown when attempting to return an item already refunded in Klarna (RTP-32179)
When returning items paid with Klarna, EG POS now shows a message if the item is already refunded in the Klarna portal. This replaces the earlier behavior where the return process failed with an error in POS. The message helps the cashier understand why the return cannot be completed and prevents incorrect refund attempts.
Customer order SMS (RTP-43238)
Customer orders created in POS no longer trigger Click and Collect type of SMS being sent out to customer. It prevents customer's confusion regarding the order.
Click and Collect type of SMS are sent only for this kind of order, not others.
SafePay Cash Changer – support for API Version 2.4.0.3 (RTP-36148)
EG POS supports SafePay API version 2.4.0.3 without configuration changes. The version introduces extended communication logging between EG POS and SafePay, stored in a separate log file. The logging supports different levels from 1 to 7 and can be adjusted when detailed communication tracking is needed by the SafePay manufacturer.
New parameters in POS Configuration:
“CashChangerLogLevel” (default '1') - Different logging levels, from 1 (low) to 7 (high). Value '0' = extended logging NOT activated.
“CashChangerLogfile” (default: c:\lpos\logs\Safepay.log) - Path and filename for extended log file. Date and computer name will be part of the actual file names.
Manual return is not added to receipt after reason code dialog is cancelled (RTP-43860)
POS stops the manual return when the reason code or action code dialog is cancelled. A message appears saying “Action Code is required”, guiding the cashier to select a valid action code before the return can be added to the receipt.
Receipt handling in journal backup (RTP-36710)
The journal backup keeps the full receipt sequence even when the POS deletes an unfinished receipt during restart. This ensures that all receipts, including those containing only bank transaction lines, remain stored in the journal backup and that no sequence numbers disappear.
Third party Gift card payment in Self-service (RTP-43509)
Customers can pay with a third part gift card when purchasing items in Self-service (SCO). This allows easier use of gift cards directly at checkout without assistance.
Simplified log messages (RTP-43832)
Gift Card validation exceptions appear as a single warning line in the log. The log includes only the message, which gives a clearer and shorter log entry. Other exceptions continue to include full stack traces.
Multiple gift cards added in correct order (RTP-43904)
When activated gift cards are scanned in the sales window, they are added as payment tender, and the last scanned card appears on the page.
The following images shows how the gift card entries will be displayed in the sales window in manned and SCO respectively:


In manned POS, the cashier receives a popup for each card in the same order to enter payment amounts.
In SCO, the system deducts payment from each card one by one until the purchase is covered, and any remaining amount appears as the amount to pay.
PLU List items in Self-service (RTP-43942)
The correct items are being sold from the PLU list once the popup keyboard (that appears when searching for items) is closed by clicking outside its area. This eliminates any confusion for the customer, ensuring the correct price is always shown.
Self-service - Vensafe items (RTP-43375)
The error that occurs in Self-service after a Vensafe timeout is properly handled, preventing from unhandled errors being displayed to the client.
Self-service - fix for inactivity timeout (RTP-43604)
POS no longer crashes unexpectedly in self-service due to ‘StackOverflowException’ in inactivity timer.
Improved display of long text and prices (RTP-43573)
The customer display has been improved to handle long product descriptions more clearly.
Long text is now neatly shortened with an ellipsis (…) without covering prices or other information.
Special characters are shown correctly, and the layout remains clean and easy to read on all screen types.
Translations in Convenience menu sales (RTP-28179)
Norwegian and Swedish transitions has been added in view where menu items are edited in Convenience. Supporting it allows to use this view in English, Norwegian and Swedish.
Closing “Create new member” dialog no longer registers a member (RTP-42992)
When the “Do you want to create a new member?” dialog is closed using the X button, no member is created. The dialog now closes without triggering registration or sending an SMS. This prevents unintended member creation when a cashier dismisses the dialog instead of selecting an option.
Physical keyboard does not work when using open price item in PLU list (RTP-43795)
Focus is correctly set on the price dialog in case open price item was added through PLU List in cashier view.
Thanks to it input from physical keyboard is placed in the correct field.
Also, in self-service in case any dialog is opened, for example age control, quantity, broken barcode (with PLU List in the back), input from physical keyboard is treated as input for scanner. In the dialogs input is allowed only entered by on-screen keyboard.
New PLU List improvements (RTP-43331)
Categories images are not missing when PLU Board or List are pre-selected.
It allows to present PLU List in POS as it was set on Chain Web.
Removed redundant Voyado call to improve POS responsiveness (RTP-43524)
Enhanced POS behavior by removing a redundant Voyado call when accessing member details, coupons, sales, or change member screens. This optimization ensures smoother performance and improves overall responsiveness of member-related functions.
Automatic reconnection to Bizerba scale (RTP-41148)
When EG POS loses connection to the Bizerba scale and logs the message “General scale error: Missing ACK", the system automatically reinitializes the scale. This restores the connection without requiring a restart of EG POS, ensuring continuous operation and reducing downtime.
Text alignment when sending SMS to optional number (RTP-42991)
When selecting Send SMS to optional number and pressing Shift + Enter to move to the next line, the cursor stays aligned to the left. This keeps the text format consistent and removes the need for manual realignment.
Keyboard visibility in user interface (RTP-43178)
The text box in the POS interface adjusts to show all keyboard elements, even when filled with more content. A scroll panel appears as the text box expands, preventing the keyboard from being pushed off-screen and keeping it fully visible while typing.
Customer order processing – preventing self-reference in receipt handling (RTP-43784)
The logic for linking POS logs and receipts avoids creating a reference to the same receipt. This prevents a receipt from pointing to itself when a customer order is resumed. This supports correct processing of related POS data and improves reliability in customer order handling.
Improved scanner shutdown handling (RTP-43733)
The scanner handling during POS shutdown has been improved to prevent unnecessary errors from appearing in the logs. When closing the POS from self-service mode, the scanner is now correctly checked before any enable/disable actions are performed. This ensures a smoother shutdown process and cleaner logs, without affecting how the scanner works during normal use.
ID scanning enabled in Solid insurance dialog (RTP-33330)
This update fixes the scanning field in the Solid insurance dialog. Earlier, after scanning an item with Solid insurance, the dialog opened but the ID could not be scanned, and the cashier had to enter the information manually. The issue occurred when the parameter “EnableDisablingOfScanner” was set to True, which disabled scanning in this view.
The scanner is now enabled in the “Solid insurance” dialog, and the ID fills the field in focus. This makes it easier and faster for the cashier to register Solid insurance details.
POS successfully retrieves CPU and memory usage (RTP-43662)
Handling of CPU and memory usage has been improved for situations when performance counters are not available on the system. Thanks to it the number of error messages is lower.
Include drawer money in POSLog XML when using balanceTransactionType=Shift (RTP-34834)
The DrawerMoney parameter is included in the POSLog XML for transactions with balanceTransactionType=Shift when its value is greater than 0.
It enables support for shift-based balance registrations where the same drawer amount is used at the start of each shift.
POS text display in Danish language (RTP-41621)
All texts in POS display in Danish when the language is set to “DK”. This ensures a consistent experience for users who work in Danish.
Coupon display and Promotion retrieval in POS (RTP-42800)
Coupons in test environments display with full promotion information, ensuring discounts trigger correctly in POS. The database release includes deployment of the procedure responsible for fetching promotions, preventing missing procedure errors such as 'dbo.GetAllPromotions' in Azure. This secures consistent coupon and promotion handling during testing.
POSLog rejection during Reporting (RTC-53189)
A validation issue in the POSLog processing causes some transactions to be rejected when generating reports. The error message “Executing stored procedure sp_FactRetailTransactionArticleTV failed” appears when string values are combined incorrectly during scanning. The validation logic is adjusted to ensure correct handling of these values so that all valid transactions process successfully in Reporting.
Improvements POS Server
Correct NetCost in POSLog when campaign is not applied (RTP-42526)
When an article is part of an active campaign, but the campaign price is higher than the normal price, the NetCost in the POSLog uses the normal price instead of the campaign price. This ensures that the POSLog reflects the correct cost when a campaign exists but is not applied in the receipt.
Cashier rights set in Chain Classic does not apply in POS (RTP-42616)
Support for cashier rights from Chain Classic has been improved when importing them to POS.
Thanks to it wanted roles apply as they should.