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).
Expand All / Collapse All button:
LS Central hotfixes
88101 Remove UPDLOCK on "POS Card Entry" in Posting
- A small change was made to the way Replication Counter is updated in the POS Card Entry table, as a means to minimize table locks and deadlocks.
87217 Possibility to change Customer Balance Calculation
- New event OnAfterCalculateCBalanceOverLimit added in POS Functions.
88010 Coupon only applied to lowest cost item
- For coupons with Handling: Tender used in a transaction with two or more items, the coupon now consistently redeems for its full configured value.
- Previously, if a lower-value item happened to be evaluated before a higher-value one, the coupon could be shortchanged and redeem for less than its real value.
87703 Issue when using a Coupon as a tender in a transaction
- Coupons used as a payment tender, or scanned by their plain coupon code, now consistently redeem for the coupon's actual per-instance value instead of falling back to the coupon's default header value. This fixes payment lines and discount lines showing the wrong amount for coupons whose value is set per issued instance rather than as a single fixed amount on the coupon.
87428 LS Central Shopify Connector - Order Pull Filter, Sales Channels
- The Sales Channel filter on Shopify Order Pull now works correctly. Enter the Sales Channel Code shown on the Shopify Mapping page (populated by Get Sales Channels) to import orders from just that channel — for example, Online Store or POS.
- Action required by partners:
- If you already use the Sales Channels filter, re-run Get Sales Channels on the Shopify Mapping page, then re-enter the filter using the Sales Channel Code shown there. The filter no longer accepts a Shopify channel name typed directly, so any previous value needs to be re-entered this way.
87392 Test Connection to Web KDS Service fails with HTTP 400 - SalesType required on KOT item
- Test Connection to Web KDS Service failed with HTTP 400. This was fixed.
86169 Codeunit 10016666 "LSC CO Picking Panel" does not allow OPOS scanning, and using a replacement codeunit then does not work for manual entry of quantities!
- OPOS scanning was added to the CO Picking Panel. The CO scanning function was also fixed so it correctly searches for items when a barcode is scanned.
87089 Need ability to Skip IsBlockPurchaseCreate in Store Inventory Journal
- New Event, OnBeforeCheckBlockPurchaseCreate added in Store Inventory Line table in Item No. OnValidate.
- Note: In hotfix/latest (28.2) the ItemStatusLink parameter is a Item Status Link record. In develop this parameter is a Item Status Link 2 record and the Item Status Link table was obsoleted.
87080 LSC Retail PO Subpage (10000816) not working correctly if Item variant is connecting to item in Purchase Order
- Hook into the Variant Framework purchase order flow from your own extension. Four new publisher events let you act when LS Central creates a variant purchase line, converts a document line into a variant collection header, or validates a quantity on the Retail PO Subpage — without modifying LS Central code.
- The events cover both purchase and sales documents:
- OnBeforeInsertPurchLine — fires before the Variant Framework inserts a new purchase line for a variant.
- OnBeforeConvertSalesLineToCollectionHeader and OnBeforeConvertPurchLineToCollectionHeader — fire before a document line is converted into a variant collection header. Set IsHandled to replace that step with your own.
- OnBeforeValidateQty — fires before the quantity is validated on the Retail PO Subpage, so you can set a quantity without running validation.
- Action required by partners:
- None. Behavior is unchanged unless you subscribe to one of the events.
- If you subscribe to either collection-header event and set IsHandled, your code takes over converting the line into a collection header — zeroing the quantity, clearing the type and number, and storing the collection item number. Skip that step and LS Central adds variant lines beside a line that's still a normal item line, so the quantity is counted twice on the document.
86833 SAS Token generation issue in Sending Transaction using Storage Queue
- Expiration of SAS access tokens was fixed.
87059 Coupon with Handling::Tender cannot be used more than once in Transaction
- You can now redeem a tender coupon more than once in the same transaction, whether the eligible items sit on one line or are split across several lines. Previously, only one redemption applied unless all the eligible quantity was on a single line with a quantity greater than one.
- This fixes a regression introduced by the changes included in hotfix 28.2.4.
86777 Change in Z Report
- Z report shows denomination breakdown for every counted currency
- Work item: AB#86777 · Type: Fix · Affects version: 28.2
- Area: Backoffice — XZ Report
- The end-of-day (Z) report now prints the coin and note breakdown for every currency you count in the safe, not just one. Previously, when a register counted more than one currency (for example DKK and EUR), only the last currency's denomination breakdown appeared — the totals were correct, but the detailed breakdown for the other currencies was missing.
- Why it matters:
- Stores handling multiple currencies could not reconcile each currency's coins and notes from the Z report, making end-of-day cash counting harder to verify.
86768 Wish list items now become a customer order automatically
- When you add wish list items to a POS transaction, LS Central now marks the transaction — and the lines from that wish list — as a customer order automatically. You do not need to flag it by hand anymore.
- This removes a manual step for cashiers and closes a gap where a wish-list-driven sale could get missed as a customer order, so orders flow straight into fulfillment without extra clicks.
- Affected components: Wish List → POS transaction line creation (POS wish list add-to-basket flow)
- Integration touch points: POS transaction line and POS transaction customer-order flags; no external endpoints
- Configuration / setup changes: None
- Breaking changes / upgrade impact: None — additive behavior on the existing wish-list-to-POS flow
- Action required by partners:
- None.
85741 Exchange Function is not working on 28 Version
- Handling of Receipt Barcode was fixed.
80119 Not possible to scan GS1 barcode on POS using GS1 version 2
- Barcodes with leading zeros are now, correctly handled in GS1 barcode handling v2.
86876 Cancel item on CO with Prepayment Invoice
- Voiding a line on a fully prepaid, multi-line Customer Order now completes correctly.
- Previously, if another line on the same order was still open when a line was voided, finalizing the order could fail with There is nothing to post because the document does not contain a quantity or amount, because the system attempted to recreate a prepayment invoice for an order that was already fully invoiced.
- The Customer Order prepayment invoice logic (LSC CO Prepayment Invoice Mgt) now checks whether there is a genuine uninvoiced prepayment amount left before attempting to recreate the invoice, and skips it cleanly when there is none -- matching the credit-memo-side guard already shipped for this scenario.
- Action required by partners:
- None.
86585 Codeunit 99008906 "LSC POS Price Utility" needs corrected event "OnBeforeSelectMultibuy" in the "SelectMultibuy" function!
- Parameter ReturnValue: boolean added in OnBeforeSelectMultibuy in POS Price Utility.
86402 Changing quantity on deal including deal modifiers with added amount
- When you change the quantity of a deal that includes a deal modifier with an added amount, the price now correctly reflects that added amount at every quantity.
- Previously, increasing the quantity after choosing a paid modifier could quietly shrink or drop the added amount from the total.
- Action required by partners:
- None.
86165 SC-4636-Events needed in LS Central v25
- The OnBeforePrintLineFormatString event has new SectionID and NodeName parameters.
- New overload procedure PrintLine with SectionID and NodeName parameters.
- PrintTenderDeclSlip, PrintTenderDeclLines and PrintRemoveAddTenderLines now trigger new PrintLine overload.
- The OnBeforePrintInfoCodeLine event has new ICode and ISubCode parameters.
85285 Mobile POS replicates wrong staff permissions after full device resync (manager privileges denied)
- Staff with manager privileges can once again void transactions, process returns, and complete sales on Mobile POS. Previously, on a device that cleared its database and did a full resync, everyone in a store could be replicated with the wrong permissions — copied from a single staff record — so managers were wrongly told they don't have manager privileges. Now each staff member's own permissions replicate to the device correctly.
- Action required by partners
- Update to a build that includes this fix, then let devices replicate. Corrected permissions apply on the next sync — no manual cleanup needed.
- If a device was worked around by manually deleting rows from its local permission table, no further action is needed.
- Affected versions: 28.0 and 28.1 (also in latest).
85142 POS Return – Reason Infocode selection not triggered when returning by receipt / from transaction list
- Reason infocode now appears for receipt and transaction-list returns.
84501 Bugfix: do not use ItemUOMBuffer.Code when generating item labels
- Generating item labels through the scheduler no longer fails for items that lack the unit of measure last used during shelf label generation.
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
88010 Coupon only applied to lowest cost item
- For Coupons with Handling:Tender being used in a transaction with two or more items, it now consistently redeems for its full configured value.
- Previously, if a lower-value item happened to be evaluated before a higher-value one, the coupon could be shortchanged and redeem for less than its real value.
87703 Issue when using a Coupon as a tender in a transaction
- Coupons used as a payment tender, or scanned by their plain coupon code, now consistently redeem for the coupon's actual per-instance value instead of falling back to the coupon's default header value. This fixes payment lines and discount lines showing the wrong amount for coupons whose value is set per issued instance rather than as a single fixed amount on the coupon.
86833 SAS Token generation issue in Sending Transaction using Storage Queue
- Expiration of SAS access tokens was fixed.
87059 Coupon with Handling::Tender cannot be used more than once in Transaction
- You can now redeem a tender coupon more than once in the same transaction, whether the eligible items sit on one line or are split across several lines. Previously, only one redemption applied unless all the eligible quantity was on a single line with a quantity greater than one.
- This fixes a regression introduced by the changes included in hotfix 28.2.4.
86777 Change in Z Report
- Z report shows denomination breakdown for every counted currency
- Work item: AB#86777 · Type: Fix · Affects version: 28.2
- Area: Backoffice — XZ Report
- The end-of-day (Z) report now prints the coin and note breakdown for every currency you count in the safe, not just one. Previously, when a register counted more than one currency (for example DKK and EUR), only the last currency's denomination breakdown appeared — the totals were correct, but the detailed breakdown for the other currencies was missing.
- Why it matters:
- Stores handling multiple currencies could not reconcile each currency's coins and notes from the Z report, making end-of-day cash counting harder to verify.
85741 Exchange Function is not working on 28 Version
- Handling of Receipt Barcode was fixed.
80119 Not possible to scan GS1 barcode on POS using GS1 version 2
- Barcodes with leading zeros are now, correctly handled in GS1 barcode handling v2.
86402 Changing quantity on deal including deal modifiers with added amount
- When you change the quantity of a deal that includes a deal modifier with an added amount, the price now correctly reflects that added amount at every quantity.
- Previously, increasing the quantity after choosing a paid modifier could quietly shrink or drop the added amount from the total.
- Action required by partners:
- None.
85142 POS Return – Reason Infocode selection not triggered when returning by receipt / from transaction list
- Reason infocode now appears for receipt and transaction-list returns.
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
87056 Create Customer Orders fails with a string length error when the Shopify payment gateway name is longer than 10 characters. No Customer Order is created
- Creating a customer order from a Shopify order no longer fails when the payment gateway name, credit card company, or a shipping address field is longer than the field it maps to in LS Central.
- Previously, a gateway such as Nets Easy Checkout caused the whole batch conversion to abort with a string-length error and no customer order was created; these values are now truncated to fit instead.
- Action required by partners:
- None.
86949 Shopify: removal of collections and items in collections
- Your Shopify collection sync now correctly batches item removals and confirms each batch succeeds before marking it as complete.
- When more than 200 item memberships are removed in one sync pass, they are sent in multiple requests instead of one oversized request that Shopify rejects. If a removal batch fails, it is automatically retried on the next sync — no more stuck items.
- Action required by partners:
- None. The collection sync now operates transparently with existing configurations.
86945 Shopify Connector - Multiple Payment Lines in CO
- Customer orders created through the Shopify connector no longer pick up duplicate payment lines when Shopify sends both a pending and a successful transaction for the same payment.
- LS Central now only counts the successful transaction, so the order’s payment balance stays accurate.
- Action required by partners:
- None — the fix applies automatically after upgrading.
86796 Shopify Connector - Extend LS Retail Inventory Calculation from a single shop-store sourced figure to a per-location sourced figure
- Enable different stock figures for each Shopify location on the same shop. When you set a location filter on a Shopify shop location, the stock sync now calculates inventory from that specific store's location instead of using the shop's default store.
- This lets you set up local pickup or fulfillment scenarios where different Shopify locations show different on-hand quantities.
- Action required by partners:
- Before upgrading, review any Shopify shop that uses the LSC Retail Calculation method and has a non-blank location filter set on one or more of its Shopify locations. After the upgrade, those locations will report stock from their filtered location instead of the shop's default location — the number may change.
- Shops without location filters configured will use default store from the Store card.
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.