LS Express version 27.5.x
New Features
New Back Office Read-Only Permission Set
- Added a new LSE BACKOFFICE READ permission set that grants read-only access to LS Express tables for back-office Business Central users who work in BC pages extended by LS Express but do not operate the POS. This resolves the permission errors these users previously saw when opening the Item Card and Item List. The LSE BASIC permission set's caption was also renamed to BC Basic Permissions to better reflect that it contains standard Business Central objects (existing role assignments are unaffected).
Bug Fixes
POS Not Closing After Sale Is Posted
- Fixed an issue where the POS did not close the sale after a transaction was posted, in both the classic and the new POS UI.
North America Text Stays in English Under French (Canada)
- Fixed LS Express North America captions remaining in English when the user language was set to French (Canada). The French (Canada) translation is now correctly applied.
Blank Store on Sales Documents
- Fixed Sales documents (such as sales invoices and credit memos) showing a blank Store on environments upgraded from older versions. An upgrade routine now repoints the legacy blank store reference to the DEFAULT store, without overwriting any existing store configuration.
VAT Mismatch on Close-Out with Prior-Period Account Payment
- Fixed a VAT mismatch in the close-out / cash point closing that occurred when an invoice was paid to a customer account in a prior period. VAT amounts in the closing now reconcile correctly.
New Features
Show Last Added Item Image on POS
- Added a new Show Last Added Item Image on POS toggle on the LSE Administration page. When the toggle is off, the POS no longer displays the picture of the most recently added item, letting retailers turn off the last-added-item image without having to remove pictures from item cards.
Updated Features
Reverse Sales / Return Item
- Streamlined the reverse sale flow so the credit memo posts directly without the payment-method input prompt. Residual amounts from price and discount re-validation are now balanced automatically onto the first payment line, and stale reservation entries left by interrupted posting attempts no longer cause errors when opening Item Tracking Lines.
Bug Fixes
Cash Register Captions Wrongfully Translated
- Fixed an issue where the cash register type value MASTER was incorrectly translated to MEISTER in the German user interface. The value is a technical identifier and is now preserved as MASTER.
POS Stuck in Error Loop on Missing Item Picture
- Fixed an issue where the POS could get trapped in an error loop when loading an item picture whose underlying media record was missing. The system now exits cleanly and continues operating.
Bug Fixes
POS Return Issue – Multi-Lot Handling
- Fixed multi-lot POS returns producing incorrect item tracking entries due to iterator corruption and missing item entry application when matching lot and serial numbers against the original invoice. Also fixed payment amounts being posted with the wrong sign on credit memos and added posting result notifications to the POS Sales History list and card after a reverse-sale action.
Pay to Customer Account – Customer Does Not Exist
- Fixed a crash when using "Pay to Customer Account" on a store that has no default customer configured — the system now safely skips the customer and location code assignment instead of raising an error.
New Features
Rounding on Cash Payment Method
- Added rounding configuration fields to the Payment Method setup, carried through to payment lines and posted payment lines. All localized POS slip report layouts (AT, DE, NA, NO, SE) were updated to reflect rounding amounts.
Updated Features
Customer Item Sales Performance
- Improved page load performance on Customer Item Sales by applying a customer filter at page load, eliminating an unfiltered table scan that caused slow open times.
POS New UI Improvements and Devtools
- Improved stability and developer tooling support in the POS New UI. Fixed color theme values, corrected Vue template class binding syntax, fixed an invalid CSS media query, and added devtools access support for the Vue-based POS.
Bug Fixes
Closing Summary Counted Issue
- Fixed incorrect payment totals in the Close Out Summary where the iteration loop was inadvertently moving the page's current record pointer.
Issue on Item Return
- Fixed a failure during item returns caused by modifying a reservation entry in-place while iterating it.
Return Issue – Multi-Lot Handling
- Fixed item tracking entry transfer for multi-lot returns by copying each reservation entry to a separate record variable before modifying it.
Fiskaly Cash Point Closing / Stuck ACTIVE Transactions
- Fixed zero-sum POS transactions (e.g. 100% discounts) not being fiscalized through Fiskaly SIGN DE. Also fixed the "pay to customer account" scenario where paying an invoice the next day caused the same Fiskaly transaction to appear in two cash point closings.
License Activation Fix
- Fixed license activation failures by adding a procedure that retrieves the server computer name and database name to correctly populate the instance identifier in the activation request.
LSBarcode Field Not Showing Until Refresh
- Fixed the LS Barcode field on the Item List page not rendering until the page was refreshed, by retrying initialization after 1 second if the control add-in's acknowledgment is not received.
New Events
OnBeforeEmailLastSale, OnAfterEmailLastSale
- Added two integration events allowing subscribers to intercept or extend the "Email Last Sale" POS action for all transaction types (invoice, credit memo, payment, refund).
OnAfterFilterPOSItem
- Added an integration event to the POS item filtering pipeline, enabling partners to post-process or augment the resulting items JSON array after the standard filter completes.
Updated Events
OnAfterCopyToVATAmountLine
- Updated the event subscriber to bind to
ServiceInvoiceLineinstead ofVATAmountLine, correcting the source table the subscriber was listening on.