Hotfixes on LS Central version 28.2.x.x
Tip: Partners can download the LS Central hotfixes directly from the LS Retail Portal (login required).
LS Central hotfixes
86952 Add OnClassifyDealLineForPriceReduction event to LSC Deal Pricing Functions
- Adds a new integration event, OnClassifyDealLineForPriceReduction, to codeunit LSC Deal Pricing Functions.
- It is raised once per deal child line during deal registration, letting partners classify a line for potential exclusion from proportional deal-price reduction in a future release.
- No behavior changes in this release - existing deal pricing is unaffected.
- Action required by partners: None.
86874 Membership upgrade/downgrade batch job upgrades members with zero points
- Membership upgrades and downgrades now count only the award points a member earns within the tier calculation period. Points earned outside that period — including points that have expired — no longer push a member into a higher tier.
- Date range filters on member statistics work correctly too, so point totals match the range you set.
- Action required by partners:
- None. Run the Upgrade/Downgrade batch job (or wait for the scheduled run) to re-evaluate members on the corrected logic.
86847 Add Events to InStore Stock Req Mgt Codeunit
- New events were added to InStore Stock Req Mgt:
- OnBeforeModifyPurchaseHeader_OnCreatePurchaseOrder
- OnBeforeInsertPurchaseLine_OnCreatePurchaseOrder
- OnBeforeModifyStockReqHeader_OnCreatePurchaseOrder
- OnBeforeModifyTransferHeader_OnCreateTransferOrder
- OnBeforeInsertTransferLine_OnCreateTransferOrder
- OnBeforeModifyStockReqHeader_OnCreateTransferOrder.
86807 PrintExtraSlip Error After Upgrade to BC/LS28
- Extra Print now works again for negative-amount lines that are not linked to a data entry, such as ordinary return items.
- After upgrading to LS Central v.28 these lines showed an error instead of printing; they now print as before.
- Voucher and gift card remaining-balance details introduced in LS Central 28 still work for the lines that have them.
86587 We need a new Event for abort neg. Quantity check
- New event was added, OnBeforeCheckNegativeQuantity_MarkSelectedLine.
86571 KDS crashes when KOT tickets are voided before Web KDS picks them up
- Web KDS order routing is now atomic and crash-resistant.
- Web KDS integration now reliably routes orders to the kitchen without sending duplicate kitchen tickets, even when order submissions overlap during high-volume service.
- Business Central claims each ticket atomically before sending it to Web KDS - if overlapping order events occur at the same time, only one push can claim a given ticket.
- If any ticket fails to send, it is automatically resubmitted on the next push attempt, so no order silently gets lost.
- Why it matters:
- A race condition in the previous push mechanism could send the same kitchen ticket multiple times when concurrent order operations happened at the same store. If the Web KDS endpoint received a duplicate ticket, it would reject the entire batch and crash the kitchen display, requiring manual database recovery. High-volume restaurants were affected most severely.
- This fix closes the concurrency window entirely.
- Action required by partners:
- None. This fix is applied automatically on upgrade and requires no configuration or setup. No schema/data changes and no breaking changes.
86566 Update and add integration event, add enum
- Added a new integration event, OnAfterAddMemberInfoToCustomerOrder, and extended two existing ones - OnBeforeSendContextOnMenuTenderTop and OnBeforeMenuTenderShow with additional parameters.
86481 Unable to Apply Store Coupon at POS When Zero-Price Item Exists in Transaction
- Tapping Total, rejected the coupon with Entered Coupons but not used and the customer paid full price.
- Coupons with Handling set to Tender, now apply when the transaction includes a line with a zero-price item.
86408 FindPromotion works very slow if there are Many Enabled offers with few items in them
- Event, OnAfterFilterPromotion was added to LSC Retail Price Utils.
85193 Member account downgraded with sufficient point balance
- Members are no longer moved to a lower scheme by the upgrade/downgrade job when their points still meet the downgrade limit. The member's scheme now stays unchanged.
84177 Scale Item is conflicting with UOM and asking for weigh when the UOM does not require it
- Details not available.
83315 Bug: POS Web Templates "brick" price ignores the UoM configured on the Retail Hierarchy node
- Details not available.
83015 Barcode not printed at receipt
- Details not available.
86325 Returning transaction based on transaction with both sales entry and income expense fails
- Returning a POS transaction that generated a Customer Order and a Sales Order, with both a sales entry and an income/expense entry no longer fails with The POS Trans. Line already exists error.
86214 Update and add integration event
- Added integration events:
- OnBeforeDelRecord (POS Trans. Lines)
- OnAfterSetVariantCode_OnItemLine (POS Transaction Events)
- and extended OnAfterTSDataEntries_TypeCreateDataEntry (POS Infocode Utility
- new ReturnValue parameter).
85603 Update access modifier and add new method
- Procedure GetConnectionLog was added in Request Handler codeunit to access ConnectionLog_g.
85373 Declare Tender as Currency
- Operators can now declare foreign-currency tenders and the keypad opens, fixing a silent failure that occurred when no currency setup rows existed for that tender type.
86121 KOT Line Qty had a different type from the table, making the KOTs route to be not routed
- Kitchen Order Tickets (KOTs) with item lines that had a decimal quantity failed to update their KOT status in LS Central. As a result, orders never reached served status and were not cleaned up from the Web KDS database. This was fixed.
85982 Subscribe to Web Service 250 character limit
- Details not available.
85732 Average Cost Issues in Recipes Due to Refund Postings
- Refunding a recipe item at the POS no longer throws off its average cost. Previously, refunding a recipe — whether to cash or to a customer account — could post the recipe and its ingredients with an inconsistent quantity, pushing the average cost calculation to an invalid value and sometimes causing a cost adjustment error.
- Refunds now post correctly, and average cost stays accurate.
- Action required by partners:
- None. This corrects postings going forward — it does not retroactively fix average cost on entries posted before upgrading; stores that hit the overflow error historically may want to review cost entries for those items.
85625 Skip "No routing" for item error message
- The POS no longer shows a routing error banner when an item is intentionally left without a kitchen route for a given sales type. You still see No Routing on the KOT and "NR" in the journal for these items, so you can confirm routing status without an interrupting popup.
- Action required by partners:
- None.
83950 [CAS-15533-Z5H7] POS SaaS - Deal Modifier Qty. per UOM Incorrect on POS Transaction Line, Sales Entries, and Item Ledger Entries
- Deal modifiers set up with a quantity per unit of measure greater than 1 now sell the full amount.
- Before, a modifier configured for example, 3 ounces of a spirit only recorded 1 unit on the receipt, so sales totals, tax, and inventory understated what was actually poured or used.
- Action required by partners:
- None. No setup change is needed after updating.
83793 CO Prepayment Invoice
- You can now reduce an item’s quantity — or remove it entirely — on a customer order at the POS when prepayment invoicing is turned on, without hitting an error. Prepayment invoices and credit memos stay in step with your change, so cancelling a whole order no longer posts a duplicate prepayment credit or invoice.
- Action required by partners:
- None. No setup or configuration changes are needed.
81440 EMAIL_C command not working
- Details not available.
79594 Store Coupon and Manufacture Coupon
- Previously, in Store Coupon and Manufacture Coupon code is not able to create new code by number series set in HO store. This was fixed.
85667 New Event-Publisher on TenderDeclaration #692
- A new integration event, OnBeforeValidateSafeAmount_OnSafePressed, is raised on the Tender Declaration when a safe amount is entered.
85577 Issue with call center
- Take an order in an offline Call Center and the selected restaurant's POS now opens, ready for you to enter items. Modifying the lines on an existing Call Center order works the same way. Previously both actions returned you to the Call Center main page without opening the POS.
- Action required by partners: None. Update to a build that includes this fix.
85528 make procedure GetSingleTableBuffersByItemDist in codeunit-i "LSC Commerce Req. Functions" publicly available.
- Made procedure GetSingleTableBuffersByItemDist in codeunit "LSC Commerce Req. Functions" publicly available.
85497 Update POS Post Utility #688
- Adds a new event that fires after the Trans. Payment Entry is inserted while writing the transaction to the database, in the POS Post Utility codeunit.
85300 Sales Type location not working in version 28
- Sales Type location is now respected when posting POS sales and refunds; returns against an original receipt still post to the store handling the return.
85150 Update access modifiers and add integration event #684
- Exposes a set of previously internal barcode, offer, coupon, POS and web-service procedures for external extensions, and adds an integration event that fires per line during POS statement posting.
84875 DIMENSION ERROR DURING RETAIL TRANSFER ORDER POST RECEIPT
- You can now post a retail transfer order receipt without a dimension error when the receiving store doesn't have its own default value for a dimension the item requires.
84710 Stores can view and modify other stores worksheets.
- A user working on a Store Inventory Journal can no longer access other stores' journals by changing or clearing filters. Also fixed an issue where duplicating the browser page, or changing the region on the My Settings page, opened a new browser window without filters.
84633 Deadlock on LSCSendSerialCoupon causes double transactions in database
- Fixed an issue where a failed serial coupon synchronization to Head Office during POS posting could cause the same receipt to be posted twice, creating duplicate transactions in the Transaction Register. Posting now rolls back cleanly on a synchronization failure, so a retry no longer creates a duplicate.
84499 Adding event on POS Transaction & Commission Entry #680
- New Events:
- OnBeforeGetBalanceInCurrencyKeyPressed, in the POS Transaction codeunit
- Several new events in Commission Entry
84176 RFID-Error message "Scanned item not found" during RFID return - the line has already been marked for refund so we should skip the message
- During an RFID return, scanning a tag whose line is already fully marked for refund no longer shows a "Scanned item not found" error. Previously, on some configurations this could also trigger a repeating error dialog that made the POS unresponsive during the return.
84014 Scheduler message text overflow
- Data Distribution scheduler jobs no longer stop with a string-length error when a source location is unreachable and the connection error message is long. Previously, when a job replicated from several source locations and one could not be reached over the network, an overly long connection error aborted the entire run before the remaining locations were processed. The error message is now shortened when it is too long to store, so the job records the failure for the affected location and continues replicating from the other locations as expected.
- Action required by partners: None.
83875 LS Central 28.0.8.3554 – Infocode Inputs Not Printed on Customer Order Receipts
- Infocode inputs now printed on Customer Order receipts. When an infocode is set to Print Input on Receipt, the value the cashier keys in now appears on the Customer Order receipt — just as it already does on a regular sales receipt.
- CustomerOrderGetV4 Web Service Updated.
83765 LSC Statement-Calculate: GetSerialLotSalesQty missing transaction Filters
- Fix on calculation of qty. on hand for lot/serial items during statement calculation / posting.
83588 Item lines not compressing on Store Inventory Journal
- Importing items into a Store Inventory Journal from a barcode file now fills in both the variant code and the unit of measure for every line, taken directly from the scanned barcode. With the variant code in place again, the compress lines function now works correctly.
- This affects only the file import path. Lines received from Inventory Mobile are not affected, including the safeguard that blocks an unwanted unit-of-measure change when changing the unit is not allowed.
80187 Scheduler job sets next check date to 2 days after running when Error Handling is set to Mark With Error and Retry
- A recurring Scheduler Job that has an Ending Time defined now schedules its next run on the correct day. Previously, a daily job with an Ending Time set and no Starting Time could push its next check date a full day too far, causing the following day to be skipped and scheduled work such as statement auto-calculation to be missed. The next check date and time are now kept within the configured run window without losing a day, and run windows that span midnight are handled correctly.
- Action required by partners: None.
Autotests hotfixes
86952 Add OnClassifyDealLineForPriceReduction event to LSC Deal Pricing Functions
- Adds a new integration event, OnClassifyDealLineForPriceReduction, to codeunit LSC Deal Pricing Functions.
- It is raised once per deal child line during deal registration, letting partners classify a line for potential exclusion from proportional deal-price reduction in a future release.
- No behavior changes in this release - existing deal pricing is unaffected.
- Action required by partners: None.
86874 Membership upgrade/downgrade batch job upgrades members with zero points
- Membership upgrades and downgrades now count only the award points a member earns within the tier calculation period. Points earned outside that period — including points that have expired — no longer push a member into a higher tier.
- Date range filters on member statistics work correctly too, so point totals match the range you set.
- Action required by partners:
- None. Run the Upgrade/Downgrade batch job (or wait for the scheduled run) to re-evaluate members on the corrected logic.
86612 Signature invalid" error on offline POS (v27) after Central upgrade to 28.2.1.3960
- This is a temporary fix.
86571 KDS crashes when KOT tickets are voided before Web KDS picks them up
- Web KDS order routing is now atomic and crash-resistant.
- Web KDS integration now reliably routes orders to the kitchen without sending duplicate kitchen tickets, even when order submissions overlap during high-volume service.
- Business Central claims each ticket atomically before sending it to Web KDS - if overlapping order events occur at the same time, only one push can claim a given ticket.
- If any ticket fails to send, it is automatically resubmitted on the next push attempt, so no order silently gets lost.
- Why it matters:
- A race condition in the previous push mechanism could send the same kitchen ticket multiple times when concurrent order operations happened at the same store. If the Web KDS endpoint received a duplicate ticket, it would reject the entire batch and crash the kitchen display, requiring manual database recovery. High-volume restaurants were affected most severely.
- This fix closes the concurrency window entirely.
- Action required by partners:
- None. This fix is applied automatically on upgrade and requires no configuration or setup. No schema/data changes and no breaking changes.
86481 Unable to Apply Store Coupon at POS When Zero-Price Item Exists in Transaction
- Tapping Total, rejected the coupon with Entered Coupons but not used and the customer paid full price.
- Coupons with Handling set to Tender, now apply when the transaction includes a line with a zero-price item.
85193 Member account downgraded with sufficient point balance
- Members are no longer moved to a lower scheme by the upgrade/downgrade job when their points still meet the downgrade limit. The member's scheme now stays unchanged.
86325 Returning transaction based on transaction with both sales entry and income expense fails
- Returning a POS transaction that generated a Customer Order and a Sales Order, with both a sales entry and an income/expense entry no longer fails with The POS Trans. Line already exists error.
86121 KOT Line Qty had a different type from the table, making the KOTs route to be not routed
- Kitchen Order Tickets (KOTs) with item lines that had a decimal quantity failed to update their KOT status in LS Central. As a result, orders never reached served status and were not cleaned up from the Web KDS database. This was fixed.
85982 Subscribe to Web Service 250 character limit
- Details not available.
85732 Average Cost Issues in Recipes Due to Refund Postings
- Refunding a recipe item at the POS no longer throws off its average cost. Previously, refunding a recipe — whether to cash or to a customer account — could post the recipe and its ingredients with an inconsistent quantity, pushing the average cost calculation to an invalid value and sometimes causing a cost adjustment error.
- Refunds now post correctly, and average cost stays accurate.
- Action required by partners:
- None. This corrects postings going forward — it does not retroactively fix average cost on entries posted before upgrading; stores that hit the overflow error historically may want to review cost entries for those items.
85625 Skip "No routing" for item error message
- The POS no longer shows a routing error banner when an item is intentionally left without a kitchen route for a given sales type. You still see No Routing on the KOT and "NR" in the journal for these items, so you can confirm routing status without an interrupting popup.
- Action required by partners:
- None.
83950 [CAS-15533-Z5H7] POS SaaS - Deal Modifier Qty. per UOM Incorrect on POS Transaction Line, Sales Entries, and Item Ledger Entries
- Deal modifiers set up with a quantity per unit of measure greater than 1 now sell the full amount.
- Before, a modifier configured for example, 3 ounces of a spirit only recorded 1 unit on the receipt, so sales totals, tax, and inventory understated what was actually poured or used.
- Action required by partners:
- None. No setup change is needed after updating.
81440 EMAIL_C command not working
- Details not available.
85577 Issue with call center
- Take an order in an offline Call Center and the selected restaurant's POS now opens, ready for you to enter items. Modifying the lines on an existing Call Center order works the same way. Previously both actions returned you to the Call Center main page without opening the POS.
- Action required by partners: None. Update to a build that includes this fix.
85300 Sales Type location not working in version 28
- Sales Type location is now respected when posting POS sales and refunds; returns against an original receipt still post to the store handling the return.
84875 DIMENSION ERROR DURING RETAIL TRANSFER ORDER POST RECEIPT
- You can now post a retail transfer order receipt without a dimension error when the receiving store doesn't have its own default value for a dimension the item requires.
84176 RFID-Error message "Scanned item not found" during RFID return - the line has already been marked for refund so we should skip the message
- During an RFID return, scanning a tag whose line is already fully marked for refund no longer shows a "Scanned item not found" error. Previously, on some configurations this could also trigger a repeating error dialog that made the POS unresponsive during the return.
83875 LS Central 28.0.8.3554 – Infocode Inputs Not Printed on Customer Order Receipts
- Infocode inputs now printed on Customer Order receipts. When an infocode is set to Print Input on Receipt, the value the cashier keys in now appears on the Customer Order receipt — just as it already does on a regular sales receipt.
- CustomerOrderGetV4 Web Service Updated.
83765 LSC Statement-Calculate: GetSerialLotSalesQty missing transaction Filters
- Fix on calculation of qty. on hand for lot/serial items during statement calculation / posting.
83588 Item lines not compressing on Store Inventory Journal
- Importing items into a Store Inventory Journal from a barcode file now fills in both the variant code and the unit of measure for every line, taken directly from the scanned barcode. With the variant code in place again, the compress lines function now works correctly.
- This affects only the file import path. Lines received from Inventory Mobile are not affected, including the safeguard that blocks an unwanted unit-of-measure change when changing the unit is not allowed.
82526 Creating a Sandbox copy from Production - error
- The active license check now skips Microsoft base tables and defers the validation to the unit/field level if needed.
80187 Scheduler job sets next check date to 2 days after running when Error Handling is set to Mark With Error and Retry
- A recurring Scheduler Job that has an Ending Time defined now schedules its next run on the correct day. Previously, a daily job with an Ending Time set and no Starting Time could push its next check date a full day too far, causing the following day to be skipped and scheduled work such as statement auto-calculation to be missed. The next check date and time are now kept within the configured run window without losing a day, and run windows that span midnight are handled correctly.
- Action required by partners: None.
SCO hotfixes
86733 SCO Databar processing functionality not demanding keys 10, 17 and 21
- Scanning a GS1 barcode at the Self-Checkout POS could raise a runtime error when the parsed GS1 data did not contain the expected key or value.
- The value is now read safely and returns blank when the data is missing, so the scan completes without an error.
Shopify BC Connector hotfixes
86077 Shopify BC connector for LS Central - Tax Sync Issues in NA Shopify Store
- Force Tax Validation was added on order lines in Shopify Shop Card.
- This is for Central NA version to send with Customer order to trigger Tax code correctly in Sales Order.
85306 Shopify is not sending Prices and Inventory tracking with items
- Fixed handling of items without variants that were missing a default option in Shopify.
System hotfixes
86612 Signature invalid" error on offline POS (v27) after Central upgrade to 28.2.1.3960
- This is a temporary fix.
85858 Add POS Tag to display the status of the RFID Device
- Tag that tracks the RFID status.
82861 SC-3946-POS Tag to Show RFID Reading is Enabled at POS or Not
- Tag that tracks the RFID status.
82526 Creating a Sandbox copy from Production - error
- The active license check now skips Microsoft base tables and defers the validation to the unit/field level if needed.