TRAY® Product Release Notes
Version 7.12
7.12 New Features & Enhancements
Client Enhancements (POS & KDS)
POS
Update FreedomPay SDK to Version 1.60.0
STR-12452
Description
The FreedomPay SDK used by TRAY on Android FCC devices has been upgraded to version 1.60.0.
Skip Discount when Already Applied
STR-12636
Description
Discount application logic has been updated so the system no longer creates redundant discount records when the same discount is re-applied to items or orders. If an item already has a given discount, that discount still appears in the list but is visually de-emphasized, and clicking it now shows a toast message: “This discount is already applied to this item,” without generating new records:
When multiple items are selected, the discount is applied only to items that do not already have it. For order-level discounts, the same pattern applies: if all eligible items are already covered, the discount appears but cannot be re-applied and shows the same toast; if new eligible items have been added, the order-level discount recalculates correctly for those items.
Store Request/Response for Failed E-Invoice / Taxilla Orders
INFRAP-9229
Description
To improve troubleshooting for E-Invoice and Taxilla integrations, the system now stores the full request and response payloads whenever an error is returned for an E-Invoice/Taxilla order.
KDS
Support Failover for Time Entry Chits
STR-12303
Description
Time entry chits now participate in the same failover printing flow as other critical receipts. Clock-in, clock-out, break-in, and break-out slips are routed through the failover path when the primary printer is unavailable, ensuring staff still receive printed confirmations of their time punches during printer failures. This improves reliability of labor tracking workflows and reduces confusion when the primary print path is temporarily down.
Support Remote Printing and Failover for Gift Card Chits
STR-10109
Description
Remote printing and failover support have been extended to gift card chits so they behave consistently with other critical print artifacts. Gift card issue/activation, redemption, balance inquiry, void, and cash-out chits are now routed through the remote printing pipeline and participate in configured failover behavior when the primary printer or path is unavailable. This ensures gift card activity is properly documented at the printer designated for that POS, improving reliability.
Kiosk
Remove Menu Schedule Validation for Product Modifiers
STR-12129
Description
We have updated the kiosk ordering flow so that product modifiers are no longer blocked by menu schedule validation. Previously, if an item depended on product modifiers that were not included in an active menu schedule, kiosks could show an “unavailable item” error for otherwise valid menu items, impacting all kiosks at a venue and requiring manual configuration workarounds. The system now enforces menu schedules on the base items only, while allowing associated product modifiers to be used regardless of their own schedule. This removes intermittent “unavailable item” failures for product modifier-driven items and reduces the need for complex menu scheduling configurations.
Server Enhancements (HQ, API, DataAPI)
HQ
Optimized Menu Publish
ENT-7145
Description
We have introduced a new optimized menu publish flow. The menu publish pipeline for both manual and scheduled publish has been optimized to significantly reduce end-to-end build time, particularly for large venues with complex menus.
Make “Round It Up” Behavior Configurable for Open Items
ENT-6799
Description
We have updated the 'Round It Up' behavior so that products configured as 'Open Item' in TRAY HQ now respect a dedicated configuration for this feature. When a product is marked as an 'Open Item', users can now control whether 'Round It Up' is applied for that item on POS, instead of relying on a one-size-fits-all default. When 'Open Item' is selected, the user will then see the option to 'Round It Up' and can select both:
This will also ensure that the 'Round It Up' button does not appear for all 'Open Items'. When both are configured, the user will see the 'Round It Up' UI, on applicable item selections:
Disable “Tax Collected by Third Parties” for Global Tenders
STR-12204
Description
We have updated the tender configuration so the “Tax Collected by Third Parties” flag is no longer configurable for Global Tenders (Cash, Credit, Gift Card), since tax handling for these tenders does not depend on external partner data. For global tenders, the control is now disabled with a tooltip that reads: “Global Tenders are not eligible for this configuration”, and taxes always display and calculate as normal.
Exclude System Tenders by Default in Tender & Payments Reports
STR-9480
Description
Reporting behavior has been updated so system tenders are excluded by default from both the Tender Summary and Payments reports. These internal/system-generated tender rows no longer appear in standard views, keeping day-to-day financial reporting focused on operational tenders only. If users need to review system tender activity, they can explicitly include it via the report filters, which will then surface the corresponding records. This behavior now mirrors how Training Mode data is handled, improving consistency and reducing noise in financial summaries.
Enhance Check Detail Report Search Options
STR-11045
Description
The Check Detail Report now surfaces and supports searching by Offline Check ID to make it easier to locate checks created during offline scenarios. A new “Offline Check ID” column has been added to the report. The report’s search/filter now accepts both standard Check ID and Offline Check ID, and Third-Party Check ID, allowing managers and support teams to quickly find and reconcile checks regardless of whether they originated online or offline.
Product Mix Report Enhancements: EID Sorting
STR-12240
Description
The HQ Product Mix Report now includes EID sorting and labeling. A new “EID” option has been added to the ‘Sort’ dropdown so users can order results based on EID of the product group, aligning the report with upstream and downstream systems that rely on EIDs as primary identifiers.
Track and Display Only Modified Time Entry Records
STR-12257
Description
Time entry editing in TRAY HQ has been enhanced so that only modified records are treated as edited and require a reason. Previously, updating a clock-in or clock-out time could incorrectly prompt for break edit reasons and mark all associated breaks as “modified,” even when no break data changed. The system now differentiates between clock entry edits and break edits, tracking changes at the field level so that reasons are requested only for the specific entries that were updated. This results in cleaner audit history, fewer unnecessary prompts, and clearer visibility into exactly which portions of a timecard were adjusted.
Site Copy – Include Routing Rules in New Sites
INFRAP-9162
Description
The site copier tool in TRAY HQ has been enhanced to automatically copy all routing rules from the source site to the newly created site node. When operators create a new site using the copier, the destination site now inherits the same routing configuration as the original, eliminating manual re-entry and reducing setup time and configuration errors. This behavior is reflected in the site copy UI and applies whenever a new site is created through the site copier flow.
Labor Reports – Tooltip for Four-Digit Labor Hours
STR-12274
Description
Labor reporting has been updated so that overtime hours shown in the Staff Summary more transparently reflect the four-decimal precision used in backend calculations. While the grid can still display rounded values for readability, users can now access the full four-decimal overtime value by hovering over the numbers, reducing confusion when very small overtime amounts (e.g., 0.0028 hours) previously appeared as 0.00 in the UI. This change ensures that what users see in labor reports can be reconciled more easily with detailed time entry calculations and internal payroll logic.
Assigned Sites and Nodes on User Account Page
ENT-7042
Description
The user Account Settings page now displays a clear list of the user’s assigned groups/nodes and sites, making it easier to understand and manage access. When a site or group is selected from the Site/Group dropdown, it immediately appears in the Assigned Groups or Assigned Sites list with a checked checkbox, while changes are only saved once the user clicks Update. Users can also deselect items directly from the assigned list, which removes them and de-selects them in the dropdown, again requiring Update to persist. When no sites or groups are assigned, the list shows only a search box, and assigned entries are sorted alphabetically for easier scanning and maintenance.
lso logged. If a user tries to clock in and their only assigned role is inactive, POS prompts for manager reassignment. The site UI shows a warning to confirm deactivation, and roles can be filtered by status. Newly created sites inherit roles and their statuses from the immediate parent node at creation time.
Consistent Ordering of Tax Categories on Daily Sales & Tax Summary Reports
STR-12783
Description
This work standardizes the display order of Tax Categories so they appear consistently across both the DSR and Tax Summary reports. Tax categories are now rendered in a predictable order (alphabetical), eliminating mismatches between reports and reducing operator confusion when comparing totals or reconciling tax reporting across different views.
API & DataAPI
Update Integer Fields to Long in Data API
INFRAP-8220
Description
Updated several identifier fields in the Data API from integer to long to better align with server-side data types and support larger ID ranges without overflow or truncation issues. The affected fields include jobId and payclassId in the Employees API, shiftId for breaks in the Time Entries API, deviceId in the Payments v2 API, and staffId, roleId, and siteId in the Shift Schedules API. This change improves consistency across services and ensures the API can safely handle growing ID values over time while preserving existing functionality.
Optimize getUserOrders API
INFRAP-8896
Description
The getUserOrders API has been optimized to reduce heavy database scans and improve response times when looking up orders by device ID.
userCheckout API Optimization
STR-12607
Description
The userCheckout API has been reviewed and optimized to improve performance and reliability under load. As part of this work, the endpoint’s internal processing and data access patterns were analyzed and streamlined to reduce latency and unnecessary overhead during checkout.
Bug Fixes
Server
Clock Out Record Not Reflected in HQ
STR-12527
Description
We resolved an issue where a staff member could successfully clock out on POS (including receiving a clock-out chit and recorded permissions activity) but still appear as clocked in on their next shift because the clock-out record did not persist correctly to HQ. The clock-out flow and associated server-side handling have been tightened so that clock-out events are reliably written to timekeeping data and reflected in HQ and reporting, preventing orphaned “still clocked in” states after a completed clock out.
System Tenders Created for Incorrect Trading Day
INFRAP-9083
Description
Resolved an issue where system tenders generated by the end-of-day (EOD) process could be created against the previous trading day instead of the actual order date (e.g., an order from 2025-08-31 receiving a system tender dated 2025-08-30). The EOD logic has been updated to align system tender creation with the correct trading day and order date, taking into account the venue/user time context. As a result, system tenders and payments reports now consistently reflect the correct business date.
Arabic Password Flow UI Fixes
ENT-6931
Description
We have addressed multiple UI issues in the Arabic password flows in TRAY Hub. The “Success” toast header shown after sending reset instructions is now fully localized in Arabic to match the body text. On the password reset page, the placeholder text for the “New password” and “Confirm your new password” fields has been translated into Arabic, and the eye icon used to toggle password visibility has been repositioned for RTL layouts so it no longer overlaps the placeholder/input text. Together, these changes provide a consistent, readable, and properly localized experience for Arabic users across forgot-password and reset-password screens.
Client
Devices Unresponsive due to Push Notification Loop
STR-12589
Description
We resolved an issue where a site with an extreme number of active orders (>2,000) could get stuck in a push notification loop, blocking interaction with certain buttons on the POS (Void, Pay, Print). The problem was traced to a loop in the updateOrderStatus flow, which left the check in a stuck state until the node was restarted.
Offline Mode Blank Check Handling on Continue Table Screen
STR-7322
Description
We have resolved an issue in offline mode where tapping existing checks from the Continue Table screen could open a blank check. Going forward, only checks that are actually available in the device’s local storage are shown in offline mode, and users no longer encounter blank checks when selecting tables after connectivity changes.
Fix Mismatched FreedomPay/TRAY Payments
STR-11482
Description
We resolved an issue where a card payment could appear as successfully captured in TRAY reports while no corresponding transaction existed in FreedomPay. The payment integration flow has been tightened so TRAY only records a successful payment once it receives a valid success response from FreedomPay, with improved AFCC logging and error handling for edge cases. This prevents out-of-sync states between TRAY and the gateway and makes settlement and charge reconciliation more reliable.
FreedomPay 0.00 “Negative Adjustment” Transaction Handling
STR-10015
Description
Fixed an issue where certain edge-case payment flows could result in the payment gateway showing a captured transaction for 0.00 under a “Negative Adjustment” scenario while TRAY reports reflected a normal payment. The FreedomPay integration has been updated so that negative adjustments and partial reversals are handled consistently: TRAY now avoids sending zero-amount capture requests, aligns adjustment logic with the gateway’s expected patterns, and ensures that any captured or reversed amounts match what is recorded on the check and in TRAY reporting, preventing mismatched or misleading 0.00 capture records.
Auto Clockout Data Correction at Trading Day Time
STR-11996
Description
We resolved an issue where the POS client could send incorrect data when auto clocking out employees at Trading Day Time (TDT), resulting in inaccurate or inconsistent time entry records in HQ. The auto clockout flow has been updated so that the client now sends a normalized, consistent payload for clock-out events at TDT, and the server-side handling correctly records these entries without creating duplicate, overlapping, or malformed shifts. This improves reliability of auto clockout, keeps timecards accurate, and reduces the need for manual corrections in reporting.
Product-Modifier Max Additions Behavior on Kiosk
STR-12668
Description
We resolved an issue on Kiosk where product modifiers did not correctly respect the Max Additions and Multi-Select settings configured in TRAY HQ. In some cases, guests could select more choices than the configured maximum, and in others the UI showed multiple checkmarks even though only one option was actually selected, creating confusion when building combos. The kiosk modifier logic and UI state handling have been updated so that product-modifier selections now strictly enforce the configured Max Additions limit and display accurate selection states for both single- and multi-select scenarios, aligning kiosk behavior with TRAY HQ configuration.
Redundant Time Entry on Timecard Report
STR-12704
Description
We resolved an issue where a spurious time entry could appear on the Timecard Report without a corresponding underlying time entry record, resulting in “random” shifts being shown. The root cause was traced to an auto clock-out flow that could create an incorrect record in staff_time_entries. The incorrect record has been removed and the logic updated so that auto clock-out can no longer generate orphan or nearly 24-hour shifts, ensuring labor and payroll reporting remain accurate.
Comments
0 comments
Article is closed for comments.