TRAY 6.04 Combined Release Notes
6.04.x Hotfix Release Notes
Note: These release notes cover TRAY 5.15-6.04 Combined Release Notes in their entirety. To better understand features included in each individual release, please reference TRAY 5.18 Release Notes and TRAY 6.02 Release Notes.
Key Highlights:
- Enterprise Push Functionality Expansion: Extended push capabilities now include pricing schedules, services, menus, receipt templates, and product groups, streamlining management across multiple sites.
- Enhanced Price Management: Improved handling of price schedules and added future price effectivity enhancements.
- Enterprise Managed Product Groups & Reporting: New functionality to manage product groups at the enterprise level with dedicated reporting, facilitating better product performance analysis.
- Expanded Gratuity Options and Reporting: Introduction of additional gratuity handling capabilities and related reporting features to enhance tip management.
- Integration Expansion: Broadened integration capabilities with systems like Taxila, Punchh, Olo, Paytronix, and Urban Piper.
- Menu Functionality & UI Enhancements: Updates to menu management and user interface improvements to enhance usability and efficiency at the POS and TRAY HQ
- Multilingual Support [POS]: Expanded language support at POS to include Arabic and Canadian French, improving accessibility.
- Continued Optimization in System Performance: Enhancements across the system including HQ reports (Server Checkout, Financial Management, Gift Cards, Menu Mix, By Category, POS Activity) and operational efficiencies at POS and KDS.
New Features & Enhancements
Client Enhancements (POS, KDS, Kiosk)
POS
Replace the 'TransferItem' Permission with: 'TransferGuestItems' and 'TransferCheckItems'
STR-5730
Description
We have replaced the 'TransferItem' Permission with two more granular permissions:
- TransferGuestItems: Transfer items from one guest to another within same check
- TransferCheckItems: Transfer items between two checks
The 'TransferItems' Permission will still be functional but now can be replaced by the more granular permissions listed above to enhance safeguards around transfer functionality. We do not recommend using all three permissions at the same time - please ensure that if you are using the new permissions you have first removed the TransferItem permission from the environment.
Open Discount Functionality Enhancements
STR-5614
Description
We have made the following changes to our open discount functionality:
- Single Item Selection:
- New Price Reduction Control: When a server selects a single item and applies a new price, they will now be required to set a new price that is lower than or equal to the original price of the item. This will prevent a user from adding a price greater than the actual price of the item, which leads to discrepancies across reports.
- Multiple Items Selection:
- Percentage-Based Discounts: When multiple items are selected, the system will now only offer the option to apply a custom percentage discount. This streamlines the discounting process for bulk adjustments.
- Open Discount Modal Enhancements:
- The current price of the selected item(s) will be displayed at the top of the modal.
- Dynamic Discount Field: Just below the current price, you'll find a dynamic 'Discount Amount' field showing the dollar amount being deducted, which updates based on the user input.
- Final Price Visibility: Below the discount amount, the 'Final Price' field dynamically updates to show what the final price of the item will be after the discount is applied.
- Simplified Application: The “Set Price” button has been updated to a green “Apply” button.
- Single Item Discount Flexibility:
- Multiple Options: For a single item, you can choose from three options: New Price, Discount Percent, or Discount Amount.
- Field Interaction: Once a value is entered into any of these fields, the other two fields will become disabled to prevent confusion, unless the entry in the active field is cleared.
Gratuity Permission to Add/Edit/Remove Gratuity
STR-5610
Description
We have introduced a new permission aimed at enhancing control over the management of additional gratuity. This update ensures that only users with the appropriate permission can add, edit, or remove additional gratuity amounts on the transaction level.
New Permission:
- Gratuity: The new "Gratuity" permission allows designated staff to add, edit, or remove additional gratuity on transactions.
Change to Sending Check Details for Punchh
STR-6008
Description
We have refined our integration with Punchh to address an important security concern regarding loyalty points accumulation. This update ensures the integrity of the points system by preventing repeated scans of the same receipt barcode.
- Consistent Date on Receipt Reprints: When printing or reprinting a check with Punchh enabled, TRAY will now send a consistent receipt_datetime for each check based on the date the check was first opened.
- Prevent Duplicate Point Accumulation: By sending the same receipt_datetime for each instance of the receipt, we eliminate the possibility of users scanning the same barcode multiple times to gain additional points. This maintains a fair and secure environment for loyalty rewards.
- Uniform Receipt Datetime: Regardless of how many times a receipt is reprinted, the receipt_datetime field will always reflect the original date the check was opened. This consistency ensures that the barcode cannot be reactivated by changes in the receipt datetime, thereby preventing misuse.
POS Multilingual Support
INFRAP-3416
Description
This feature overviews the introduction of multilingual support for Arabic and French Canadian across the TRAY Point of Sale systems. This update includes support for:
- Text Translations: All hard coded texts within the system have been translated into Arabic and French Canadian, ensuring a seamless experience for users fluent in these languages.
- Right to Left Language Alignment: To accommodate the right-to-left script of Arabic, the TRAY POS interface now correctly aligns text for optimal readability and user engagement.
- Receipt Printing: Receipts can now be printed in Arabic and French Canadian, allowing for a more tailored and professional customer interaction.
POS Permission for MANUAL <> AUTO Offline Dashboard
STR-5337
Description
As part of continued enhancements to Auto Offline Mode functionality, we have introduced a new permission: ‘OfflineManualAuto’, aimed at enhancing control over which users are able to make changes to the Manual <> Auto Offline Mode Dashboard settings on the POS.
New Permission:
- OfflineManualAuto: allows selected users to toggle between Manual and Automatic Offline Modes directly from the POS Offline Mode Dashboard.
Dependency on Existing Permissions: To utilize the ‘OfflineManualAuto’ permission, users must also have the ‘OfflineMode’ permission assigned
Note- users will not be granted this permission by default. Automatic Offline Mode configurations should be set and maintained at the HQ Level.
Add 'Manual Entry' Button to Gift Card Activation Modal
STR-5939
Description
A new 'Manual Entry' button has been added to the Gift Card Activation Modal on the POS. This update allows users to manually enter a Gift Card number for activation, providing an alternative to the traditional swipe method.
- Manual Entry Option: Users can now input the Gift Card number manually if the card swiper is malfunctioning or if the card cannot be read properly.
- Enhanced Flexibility: This feature ensures that gift card activation can proceed smoothly, even in cases where physical card scanning issues arise.
This addition aims to streamline the process of activating gift cards by offering more versatility in how cards can be activated, ensuring efficient operations regardless of hardware issues.
Please note - manual entry will not work if your reader selection is set to ‘none’. This is a known issue that will be addressed in a future sprint.
Remove Revenue Center, Location & Staff from Transferred Check
STR-5092
Description
We have updated the transfer functionality to streamline user interactions and reduce redundancy. With this improvement, when transferring attributes such as tables or guest assignments, the system will now only display available options that are different from the current selection.
Simplified Choice Display: When a user initiates a transfer, the list of options will exclude the currently assigned value.
- Example 1 - if a check is currently at table 54, the option to transfer it to table 54 will not be shown.
- Example 2 - if a check is currently assigned to ‘Eat In’ as the Revenue Center, when attempting to transfer the check to another revenue center, ‘Eat In’ will not be an option.
- Example 3 - if a user is attempting to transfer staff, the current owner of the check will not appear on the transfer staff list.
Remove ‘All Guests’ and Default Items to ‘Guest 1’
STR-5094
Description
Going forward, when creating a new check in a Site that has the ‘Minimum Guest Count’ configuration enabled at the service level, all items will be assigned automatically under Guest 1 when starting a new check. The check screen will no longer display the ‘All Guests’ option when guest count is enforced.
Note - This will only be applicable when a site has 'Minimum Guest Count' enabled for a particular Revenue Center.
Prevent Comping for Gift Cards
STR-5269
Description
On the POS, we have removed the option to be able to comp a gift card item. Going forward, when the staff selects a gift card item in the cart, the comp button will not be visible. Similarly, if the staff has multiple items selected and one of those items is a gift card, the comp button will not be visible.
Please note: discounts can still be configured to apply to gift card items when necessary.
Change Comp Button Behavior for Gift Cards
STR-5742
Description
Going forward, the comp button will be visible and accessible for users with corresponding permissions, but if the user has gift card items selected they will be prompted with a pop up that says “Please deselect Gift Card items. Gift Cards can not be comped.”
Support for Failover Printing of Payment Receipts
STR-5372
Description
We have expanded our failover printing functionality to cover all types of payment receipts, including Authorization, Charge, and Cash receipts. This enhancement ensures that payment receipts continue to print seamlessly, even in the event of a primary printer failure.
- Comprehensive Failover Support: With the new configuration, any site that has configured failover printer assignments can expect uninterrupted printing across all payment receipt types. This applies when the primary printer is unavailable, ensuring that business operations remain unaffected.
Gift Card Tip Alert - Depleted Value of Card
STR-5412
Description
This enhancement will improve how tips are handled when using gift cards. This change ensures a smoother transaction process when the remaining gift card balance is insufficient to cover the proposed tip amount.
- Partial Tip Application: If a gift card's balance has been fully depleted and the tendered tip amount exceeds the available balance, the remaining balance of the card will automatically be applied as the tip.
- User Notification: Upon attempting to apply a tip that exceeds the gift card's balance, the user will receive an alert informing them that the full amount could not be applied due to insufficient funds. The alert will also specify how much of the tip was successfully applied.
Total Line Added to Authorization & Capture Receipts when Additional Gratuity is Added
STR-5624
Description
This update is designed to enhance transparency for customers by providing a complete and accurate display of total charges, including any additional gratuity, directly on their printed authorization and capture receipts.
- Enhanced Total Display: Whenever additional gratuity is enabled at a site and an amount is added to a check, the 'total' line on the printed authorization receipt will now reflect this added amount. This ensures that customers have a clear understanding of the total amount they are responsible for paying.
Modifier Group Quantity: Ability to Set Quantity of a Single Modifier in a Modifier Group
STR-5846
Description
This feature will allow the POS user to adjust the quantity of the individual modifier added to an order. This will allow POS operators to customize orders with the desired quantity of related modifiers (i.e. additional hot sauce, additional toppings, etc.)
This functionality will be feature flagged and managed by TRAY. Once enabled, Users with the ‘Edit Modifier’ permission will be able to navigate to the ‘Edit Modifier Group’ or ‘Edit Modifier’ Modal and configure ‘Multiple Quantity’:
Once selected, the user will then be able to adjust the Default Quantity, Max Additions and Minimum Additions allowed for the respective site:
These configurations can be set at the Modifier Group or individual Modifier level.
HQ Reports
On the TRAY HQ Order, Menu Mix and Check Reports, the respective quantities for modifiers that have been added to the order will be displayed.
TRAY Receipts
Similarly, on printed POS receipts, we will indicate the number of modifiers added to any respective item by displaying the modifier item number next to the corresponding modifier name (i.e. 1x, 2x, etc.)
Taxila Receipt Support
STR-6355
Description
This enhancement aims to improve the consistency and clarity of information on printed receipts, reducing operational confusion and enhancing the overall user experience by integrating Taxila QR codes directly into the standard printing process.
- Taxila QR Code Inclusion: The 'Print Receipt' button, which previously printed receipts without payment information, will now automatically include the Taxila QR code. This applies to all types of payments, ensuring that the QR code is provided on every receipt without requiring cashiers to select different printing options.
- Handling Multiple Payments: In scenarios involving multiple payments, the receipt will feature the Taxila QR code associated with the first payment. This procedure aligns with our invoice generation process, which currently operates at the payment level. We plan to refine this by shifting invoice generation logic to the check level in an upcoming phase.
- Refunds: For refunds, the Taxila QR code for the refunded amount will be printed on the receipt to ensure transparent and accurate documentation is provided to guests.
Make the Sort Order of the Guest Consistent in All Places
STR-3299
Description
When you place an order on the POS or view the order on the KDS, the guests numbers display in order, as show below:
- All Guests
- Guest 01
- Guest 02
- Guest 03
- Guest 04
Going forward, all related receipts (i.e. order chit, impact printer order chit, and guest receipt) will show the guest order in the same order it is displayed across Client Devices.
Remove Printer Selection from Check In Modal when User has Multiple Staff Roles if Device has One Assigned Printer
STR-6165
Description
We have updated the printer selection process on the POS to streamline user interactions and eliminate unnecessary choices, enhancing efficiency.
Improved Selection Logic:
- Single Printer Setup: When a POS device is configured with only one receipt printer, and that printer is eligible for use by the staff member:
- No dropdown for printer selection will appear.
- The single, eligible printer will automatically be assigned upon check-in.
- Multiple Printers Setup: If the POS device has more than one eligible receipt printer:
- A dropdown menu will appear, allowing the staff member to select from the available printers.
- No Eligible Printers: If the POS device does not have any eligible receipt printers:
- A dropdown will display all printers the staff is eligible to use, allowing for manual selection if necessary.
- Ineligible Single Printer: If there is only one receipt printer connected to the device but it is not eligible for the staff:
- No dropdown will appear.
- The system will maintain existing functionality, using the default printer settings.
Indicate that an Order Chit is a Failover Print
STR-6384
Description
This update is designed to improve kitchen operations by clearly indicating that one of the order printers is offline by printing the name of the primary printer on the chits that print from the configured failover printer.
- Single Failover: If an order chit experiences a failover and is printed on an alternate printer, the top of the receipt will now clearly indicate this by displaying FAILOVER - (PRINTER NAME) directly beneath the printer name that handled the print.
- Double Failover: In cases where a double failover occurs (i.e., Printer 1 and Printer 2 both fail, and the order chit is printed on Printer 3), the receipt will reference the name of the first failover printer (i.e., Printer 1). This ensures that the failover sequence is documented and clear, providing transparency about which devices are handling prints during failovers.
[Punchh] Send Check details when Using Send Pay & Print Button
STR-6645
Description
This update aims to eliminate discrepancies in how check details are sent to Punchh, ensuring that customers receive their loyalty points as expected, regardless of the method used to finalize and print the check.
Going forward, when the "Send Pay & Print'' button is used after placing an order, TRAY will send check details to Punchh in the same way we do when the "Print Receipt" button is selected on the Payments screen. This ensures that all loyalty activities are properly recorded and rewarded.
Multi-Role Permission Usage [Phase 2]: Restrict Quick Code Usage for Users not Clocked In
STR-6726
Description
As part of Multi-Role Permission Usage Phase 2, we are closing a gap that previously allowed users to operationalize a quick code for a role when they are not already clocked in as that role assignment. This enhancement ensures that a staff quick code cannot be used to authorize permissions for other users unless that staff is currently clocked in and operating in that capacity.
- Scenario: User A, who has roles as both a Server and a Manager (with Admin permission), is clocked in as a "Server." User B attempts to use User A's quick code to authorize "Admin" permission.
- Expected Behavior: User B will receive an authorization denied toast message
New Taxation: Support for Tax Inclusive Items
STR-6727
Description
We have made important updates to our tax handling processes, specifically addressing the treatment of tax inclusive items under the new taxation framework:
- Consistent Treatment of Tax Inclusive Items: In the updated framework, when a product is marked as tax inclusive and a site is utilizing the new tax framework, the tax for the item will now be calculated based on the total cost of the item. This ensures that the tax is accurately reflected in the total price displayed to the customer.
- Support for Mixed Transactions: Both tax inclusive and tax exclusive products can now be included in a single transaction. This allows for greater flexibility in how items are sold and how taxes are applied during checkout.
Double Time Calculations - POS Labor Percentage
STR-4027
Description
We have updated our handling of specific overtime regulations, especially applicable in California, including detailed calculations for overtime, double time, and premium pay. These changes ensure compliance with state labor laws and provide accurate payroll calculations for employees working under varying conditions.
- Overtime Calculations: In California, overtime is calculated not only based on the total hours worked weekly over 40 hours but also daily after 8 hours, and on the seventh consecutive day of work in a week. For example, if an employee works 13 hours in a day, they will receive compensation for 8 regular hours, 4 overtime hours, and 1 double time hour.
- Double Time Configuration: We have introduced a new setting for double time, which triggers after 12 hours worked in a single day. This is in addition to the existing configurations for maximum hours per week and per day.
- Premium Pay for Split Shifts: Employees working split shifts, defined as shifts with a break of more than one hour between clocks in, will receive an additional hour of pay as premium pay. This compensates for the split shift inconvenience.
Payroll API and Reporting Updates:
- API Integration: These calculation changes have been integrated into our payroll API, making them available for third-party systems to consume, ensuring that all system users have access to the latest payroll calculations.
- Updated Reports: The Labor, Labor Summary, Staff Summary, and Role Summary reports have been updated to reflect these changes. They now include sections for double time hours and wages based on the new configurations.
Restricting Transfering Items from Tax Exempt Check to Non-Tax Exempt Check
STR-4039
Description
To enhance transaction clarity and prevent miscalculations, restrictions will now be applied to the transfer of items between tax exempt and non-tax exempt checks:
- Transfers between two tax exempt checks will be allowed.
- Transfers from a tax exempt check to a non-tax exempt check will not be allowed.
- Transfers from a non-tax exempt check to a tax exempt check will not be allowed.
- Transfers between non-tax exempt checks will continue to be allowed.
These restrictions ensure that each transaction remains consistent with its original tax status, maintaining accuracy in financial reporting and compliance.
Change Payment Balance UI
STR-6323
Description
We have made changes to the Payment Balance UI. Previously, the Balance Toggle UI displayed ‘No Auths’ and ‘Balance’. Going forward, the Balance Toggle will now display ‘Total’ and ‘Remaining’ to allow the user to seamlessly switch between viewing the total balance or remaining amount for the check.
Ensure All Orders on a Check are Marked as Tax Exempt if Tax Exemption is Applied
STR-6572
Description
Currently, when tax exemption is applied to a check that has both fired and unfired items, only the unfired items are exempted. This results in partial application of tax exemptions, causing discrepancies in tax reports and the check's tax status.
New Process:
- For checks with unfired items: If a check contains both fired and unfired items, and tax exemption is attempted, the system will prompt the user with the message: "Please fire all items before applying tax exemption." This ensures that tax status is uniformly applied only when all items on the check are in a state to be adjusted.
- For checks without fired items: Tax exemption can be applied as usual without any restrictions.
These changes ensure a consistent application of tax exemptions and accurate reporting on the Tax Summary Report.
[Offline Mode] Support Failover Printing
STR-6575
Description
We are enhancing our printing capabilities to include failover printing support for authorization receipts and payment receipts when a device is operating in offline mode. This update ensures critical receipt printing continuity during network disruptions.
Please note that the ability to print order chits in offline mode is planned for future development and will be addressed in a subsequent phase.
“BACK” Button UX Enhancement - Adding Item to Check
STR-6623
Description
We are updating the behavior of the “BACK” button on the POS when adding items to a check. Previously, pressing the "BACK" button after adding an item to the cart would return the user to the menu page without requiring the selection of appropriate modifiers, when applicable.
The new back behavior will automatically remove any added items that are not configured with required items from the cart if the user navigates back out of the check screen, so as to not have items persist with missing required modifiers.
Additionally, a new POS JSON element (‘menubackbuttonbehavior’) will be introduced, enabling users to choose between the existing behavior and the updated UX of removing all items in the cart that do not have the appropriate modifier selections added.
KDS
Configuration to Display ‘Check Name’ in Header of KDS Cell
STR-5298
Description
A new option will be implemented in the KDS settings to customize the display of the cell header. A setting named "Cell Header Name" will be added with two options: "Staff" and "Guest."
- Staff: This is the default setting. The header will continue to display the Staff Name, maintaining the current functionality.
- Guest: Selecting this option will replace the Staff Name with the Check Name in the header of the KDS expo cell. If there is no Check Name available, the header will be left blank.
Seiko Printer Support
STR-5059
Description
Support has been introduced for the Seiko printer built into the Sunmi T2 terminal. This support encompasses the use of 80mm paper and compatibility with associated cash drawers.
Optimize Print Command Push Notifications
STR-1046
Description
We have improved the efficiency of print command processing on the TRAY KDS. Previously, KDS devices would receive print commands from the server without first verifying if a printer was assigned to the device.
Going forward, the system will first check if a printer is connected to the KDS before requesting print data. This update ensures that only KDS devices with assigned printers will receive print-related push notifications. This change reduces unnecessary network traffic and speeds up the overall printing process for local and failover printing scenarios.
Server Enhancements (HQ, API, DataAPI, Optimizations)
HQ
Tax Collected by Third Party [Market Place Facilitator - MPF]
STR-5440
Description
To address the specific needs of states where taxes on orders placed via a Market Place Facilitator (MPF) are collected by the MPF and not the franchisee, we have introduced enhancements in TRAY HQ to tracking and reporting around these taxes.
This enhancement will allow franchisees to track these taxes parallelly to ensure consistency between the amounts received from the MPF and the sales reported in TRAY. This update helps in ensuring accurate tax accountability across all sales.
Key Updates:
- Tender Flag for MPF Tax Collection: In TRAY HQ, tenders can now be flagged to indicate whether the tax for that tender is collected by an MPF. When this flag is checked, the tax for these transactions will not be included in the total tax calculation across TRAY reports, except in specified cases within the DSR and Financial Management (FM) reports.
- Daily Sales Report (DSR): The DSR will feature a new section displaying net sales and tax details for transactions processed through MPF-flagged tenders. This section will be located below the 'Tax Exempt' line and above 'Total Discounts', visible only when applicable.
- Financial Management Report: Similar to the DSR, the FM report will also break down the net sales and taxes collected for orders processed via MPF-flagged tenders.
Additional Notes:
- Taxes from MPF-flagged tender transactions will be excluded from tax reporting in all reports except the DSR and FM Report, akin to the 'Tax Exempt' status behavior.
- Transactions made with MPF-flagged tenders will show zero tax on the POS screen, printed receipts, and any related POS reports, whether viewing closed checks or reopening existing checks where tax was collected by the MPF.
Permission to Toggle Show/Hide Quick Code
STR-5757
Description
Currently, quick codes are visible to anyone with access to the staff page. This causes a security risk when all staff codes are visible to any user with access to the HQ staff page. As a result, we have created a permission that will give the assigned user the ability to see, via a show/hide widget, the staff quick code within the ‘Staff Configuration’ modal.
- View Quick Code - Permission to View the Quick Code of a Staff
Menu Publish Record Consolidation - HQ Activity Report
ENT-335
Description
Currently, when the menu is published, the HQ 'Activity' Report displays an individual record for each menu that is published. Going forward, there will only be records in the 'Activity Report to reflect the start and finish of a Menu Publish.
Site Setting Changes Logged in HQ Activity
ENT-1756
Description
This feature will allow a user access to the HQ Activity Report to see the changes done at the Site Settings Tab so that they can confirm who, when and what changes were made to the applicable Site Settings.
As a part of this enhancement, we have made changes to:
- General, Financial, and Operations logging on the TRAY HQ Activity Report
- Any modification to any of the fields for these three sub-settings to be captured in the HQ Activity Report under “Site_Settings“ (already present).
- General - The General Settings changes have already been logged to HQ Activity. However, there are a few new fields that were not covered in the current logging. These fields include: Nutritional Advisory, Wifi Name, and Passcode.
When changes are made to the above highlighted Site Settings areas, the “See Details“ link will open a Dialog similar to what is shown below.
General - As this change was regarding the General Settings, a ‘General’ header will display at the top of the table.
Financial - The changes for any field under the Finance Tab will be logged in TRAY HQ Activity Report. The ‘See Details’ link will open a dialog as shown below:
Operations - The changes for any field under the Operations tab will also be logged in the TRAY HQ Activity Report. The ‘See Details’ link will open a dialog as shown below:
Optimize Reports by Limiting Initial Filter Selection
ENT-2135, ENT-3065
Description
This feature enhances the filtering capabilities across TRAY Reports by enabling additional filters only after the user has first selected a specific site or sites. When accessing reports, users will initially find these filters present but disabled until site selection has been made. Once the user makes a site selection, the relevant site filters are dynamically activated, allowing for precise and optimized data retrieval.
Please note that the user can select a timeframe prior to selecting a site, but must make a site selection in order to initiate the report.
Enterprise Push Enhancement - Pricing Schedules
ENT-2171
Description
Previously, there was a restriction to how many sites a user was able to push a pricing schedule to from the Node at one time. As a part of this story we are enhancing two key areas of the Enterprise Pricing Schedule Push functionality: the ‘Push Schedule’ Button and the scalability of the Pricing Schedules Push.
Push Schedules Button
We have added the “Push Schedules“ button next to the “Add Schedules“ button. To use this functionality, navigate to Node > Menus > Pricing Schedules > Push Schedules
When the user selects ‘Push Schedules’ they will be prompted to ‘Select Venue’ and will be able to select individual sites, multiple sites, the entire Node or multiple Nodes.
Once a push is performed, all of the fields contained within the selected pricing schedule will be pushed to the selected venue. The ‘Select Schedule’ drop-down will have an “All“ option to select/deselect all the available pricing schedules available at the Node Level. By default, all pricing schedules will be selected.
Please note, during a re-push, no fields except ‘Name’ and ‘EID’ will be overwritten/re-pushed to the selected venue.
Scalability of Pricing Schedule Push
Going forward, users will be able to push a minimum of 20 Schedules to at least 2000 locations at one time within 10 seconds. Once the user clicks on the ‘Apply’ button after selecting the list of pricing schedules to be pushed to the respective stores, a pop-up notifying the user that the push has started will be displayed:
HQ activity will show the information of starting (Pricing Schedule push has started) and ending time (Pricing Schedule push has ended) (within a new category - Push_PricngSchedule) along with the time elapsed for the completion of this activity as shown below:
Clicking on the ‘See Details’ Link will show the user additional information about which pricing schedule(s) were pushed to which site(s)/Node(s), as shown below:
Enterprise Push Enhancement - Services
ENT-2172
Description
Previously, there was a restriction to how many sites a user is able to push services to from the Node. As a part of this story we are enhancing two key areas of the Enterprise Services Push functionality: the ‘Push Services’ Button and the scalability of the Services Push.
Push Services Button
We have replaced the existing Push Dialog with the updated ‘Push Services’ Dialog displayed below:
The Select Service drop-down will have an “All“ option to select/deselect all the listed services at once - by default no services will be initially selected. Please note, once a push/re-push is performed, all the selected services will be pushed/re-pushed to the indicated site(s)/Node(s).
Scalability of Services Push
Going forward, a user will now have the ability to push a minimum of 50 Services to at least 2000 locations at one time. Once the user clicks on the ‘Apply’ button after selecting the list of services to be pushed to the respective stores, a pop-up will display:
HQ activity will show the information of starting (Services Push has started) and ending time (Service Push has ended) (within a new category - Push_Services) along with the time elapsed for the completion of this activity as shown below:
Creation of Product Group at the Node Level
ENT-2825
Description
Product Groups are a new categorization method within TRAY HQ that falls outside of the typical menu category hierarchy. Since menu categories are currently tied to things like order routing and taxation, it can become difficult to properly group items together for reporting purposes. Product groups can be created at the Node level only and pushed down to stores. From here we will be developing a new report that will be able to display the grouped products.
Node > Menus > Categories > Product Groups > Add Product Group
When the user selects ‘Add Product Group’ they will be prompted with the following Product Group Modal:
These Product Group assignments will only be available at the Product level, accessible by navigating to:
Menus > Products > Select Product > Naming > Product Group > Select Product Group
Please note, there can only be one Product Group assigned to an individual Product. We will not be displaying the Product Group configuration at the Site Level, however a user will be able to see a Product’s associated Product Group at the Site Level if they have applicable permissions.
The creation, modification, and deletion of a Product Group will be logged in the HQ Activity Report under the “Product Group'' category.
Additionally, the assignment of a Product Group to an individual item will be logged in HQ Activity under the “Products” category:
Users must have the appropriate permissions to be able to assign a Product Group to an individual Product. We have created two new permissions for Product Group management:
- Create Product Group
- Edit/Delete Product Group
As part of this feature, we have also added the ability to push the product group assigned to a product along with other fields of a product during a menu or product push. If the Product Group is updated for a product at the Node Level in the future, a re-push of this product will overwrite the Product Group for this product at the Sub-Node and Site Level.
Please note:
- The assigned 'Product Group' for a product will only be viewable (not editable) at the Site Level
- A cross-site import of the menu will also import the assigned ‘Product Group' from the source site for the product in the picture. A re-import will overwrite the product group in case the 'Product Group’ was updated at the source store.
- An import from a site to a node will also import the assigned 'Product Group' from the source site for the product in the picture. A re-import will overwrite the product group in case the 'Product Group’ was updated at the source store.
Optimized Menu Push/Import - Product Group Overwrite
ENT-2598
Description
This update enables the inclusion of the 'Product Group' assigned to a product during menu or product pushes across sites and nodes. If the 'Product Group' is updated at the node level, any subsequent re-push will overwrite the existing 'Product Group' settings at the site. At the store level, the 'Product Group' associated with a product will be visible but not editable, irrespective of permissions.
Additionally, during a cross-site menu import, the 'Product Group' from the source site will be imported for each product. If the 'Product Group' at the source site is updated, a re-import will overwrite the 'Product Group' at the destination site. Similarly, importing from a site to a node will carry over the 'Product Group' from the source site, with any subsequent updates to the 'Product Group' being overwritten on re-import if changes have been made at the source site.
Additional Product & Modifier Field Configurations at the Node Level
ENT-2682
Description
We have added two existing fields - 'Allergens' and 'Dependent Products' - that can now be utilized as part of enterprise menu management. Similarly, we have added configurable ‘Allergens’ at the modifier level. These fields are accessible to users with menu editing permissions by navigating to: Node Settings > Menus > Products > Select Product to Edit
To edit the ‘Allergens’ field at the Modifier Level, navigate to: Node Settings > Menus > Modifier Groups > Select ‘All Modifiers’ > Select a Modifier
When the user navigates to Reports > HQ Activity Report and filter by category ‘Modifier’ (for Modifier changes) or ‘Product’ (for Product changes), they will see record of what changes were made and the date associated with the change, as well as record of who made the changes:
When the user selects the corresponding ‘See Details’ Link, they will see the Activity Details Modal appear as shown below:
[Product Activity Details]
[Modifier Activity Details]
Alphabetical Sorting for POS/KDS Device List, Printers/Drawers List & Device Settings on HQ & KDS
ENT-2955
Description
As part of this feature, we will now sort all POS/KDS device lists, printers/drawer lists and device settings alphabetically (i.e. Numeric > Special Characters > Alphabet).
We have also removed the ‘Service Type’ filter and replaced this functionality with a ‘Device Type'’ filter which will allow you to filter for the eligible device types if configured:
Filter:
Incorporate Alternate PLU for Modifiers at Node UI Changes
ENT-3105
Description
Previously, the modifier (inside a modifier group) did not have the existing site level option to add an alternate PLU. As part of this story, we have added the ability for menu managers to configure an alternate PLU for modifiers (inside modifier groups) at the Node level as shown below.
If an alternate PLU is not assigned, the modifier/item will continue to inherit the base modifier PLU from 'All Modifiers' list and price changes should be based on what is applicable to that same modifier/item.
Otherwise, when menus or modifier groups are pushed from the Node > Site level, a user will not have to manually adjust the alternate modifier PLU from HQ if the alternate PLU has already been added at the Node Level.
Remove Extraneous Default Categories for Site & Node Creation
ENT-3169
Description
Going forward, when new sites or parent nodes are created, we will no longer be adding extraneous categories to the non-deletable 'Default' category. This will eliminate the automatic generation of categories such as 'Beer,' 'Cocktails,' 'Food,' 'Non-alcoholic,' and 'Wine.' This streamlined approach applies to sites initiated through the 'Add Site' function, copied sites, and those established under a node or the 'Default' category.
Add Comped Item to HQ Comps Report Detail View
INFRAP-3340
Description
Going forward, we will display a record of any item that was comped in the TRAY HQ Comps Report ‘Detail View’ as shown below:
Add Discounted Item Record to the Discounts Report ‘Detail’ View
INFRAP-3441
Description
Going forward, we will display a record of the item that was discounted in the TRAY HQ Discounts Report ‘Detail View’ as shown below:
Sort the ‘Labor’ Report by Employee Last Name
STR-5282
Description
Going forward, the TRAY HQ 'Labor' Report will be sorted by last name instead of first name.
As part of this update, we have changed the rendering of the 'Labor' Report to:
- Split the Staff Name into two columns, with Last Name and First Name in that order
- Sort 'Labor' Report by Last Name, First Name and Role (all ascending)
Note: All the exports (CSV, PDF or Excel) will adopt the new format with columns and sorting.
Enterprise Push - Receipt Template
ENT-3527
Description
This enhancement will significantly reduce the time required to manage receipt template updates across multiple sites, fostering greater efficiency and consistency in customer-facing receipt elements at the enterprise level.
As a part of this feature, we will:
- Introduce a 'Push Receipt Template' button on the top right of the interface to initiate the push process.
- Implement an optimized codebase to expedite the push process, aiming to complete the push to up to 2000 sites within 60 seconds.
- Upon clicking the 'Push Receipt Template' button, a modal will appear offering filter options such as ‘Select All', ‘Select All Nodes’, and 'Select All Sites’. The 'Select Receipt Template' drop-down will automatically default to 'Custom Receipt Template' due to current limitations on available options.
- A progress modal will display during the push process, providing real-time feedback on the progress.
- HQ Activity logs will record both the start and end times of the push activity, detailing the duration of the push and providing a 'See Details' link for further insights. This link will give detailed feedback in cases of both successful and unsuccessful pushes, under a new category labeled 'Push_ReceiptTemplate'.
Change HQ Activity Logs for Printer Failover to Display Printer Name
ENT-2880
Description
Going forward, we will be implementing a change to HQ Activity Logs for editing printer failover configurations to display the name of the printer that was configured or edited, instead of what is currently populated [Failover Database ID].
Menu UI Enhancements - Modifier Groups Contents from Product & Modifier/Modifier Group List
INFRAP-4352
Description
The enhancements to the ‘Edit Product’ UI will make it easier for menu managers and builders to be able to access the contents of a modifier group directly when editing a product, so that the user does not have to navigate to a separate tab to make desired changes. To view these changes, select a product and navigate to the ‘Modifiers’ subtab:
Selecting the Blue Modifier Group Contents Hyperlink will lead to Modifier Group Contents subtab, where the user can ‘Add Existing Modifier’, ‘Create New Modifier’ or ‘Bulk Add’ Modifiers to the selected Modifier Group:
Selecting ‘Bulk Add’ Will allow the user to add modifiers in bulk, as shown below:
Selecting the Gear Icon will lead to Modifier Group Settings Subtab, where the user can view the Modifier Group Settings:
On the Modifier Groups UI, we have also introduced new enhancements to the data organization and display:
Selecting the ‘Contents’ number will bring the user to a view of the contents within that Modifier Group:
Selecting the corresponding ‘Uses’ Hyperlink will bring the user to a view of all of the products and modifiers within that modifier group:
Finally, selecting the Action Gear will bring the user to the Edit Modifier Group page, where they will be able to view the settings for that respective group or modifier:
Bulk Edit - Add ‘Only Available if Already Purchased’ Field
ENT-880
Description
This update will streamline the process of setting purchase conditions for products, making it more efficient for administrators to manage product availability settings at scale. We will enhance the bulk editing capabilities for products by including the 'Only Available if Already Purchased' option, which is currently unavailable to be changed when editing multiple products at the same time.
Current State: When editing products in bulk, the 'Only Available if Already Purchased' option is visible but disabled, preventing its application across multiple products simultaneously.
As part of this feature, we will introduce the following enhancements:
- Introduce the 'Available to order if already purchased' field to the Bulk Edit options, accessible both at node and store levels. This new field will allow administrators to apply the setting to all selected products in one bulk action.
- Ensure that the validation rules that apply when setting this option for individual products will also apply in bulk operations, maintaining consistency and integrity in product settings across the platform.
Addition of "Total" Line for the Discounts Report Summary View
STR-5333
Description
This enhancement will include a new “Total” line for the detail and summary view on the TRAY HQ Discounts Report, which will be consistent with similar TRAY HQ Reports.
Going forward, the discount % will be based on the all report totals.
Move OLO Tenders & Tips on DSR
STR-4780
Description
Currently, OLO tender types and tips are not being included in the “Total Tenders” calculation on the DSR. This is confusing to the end user as it is not plainly obvious that “Total Tenders” is incomplete.
As part of this task, the OLO tenders should be moved to the Total Tenders line, and the OLO tips should be moved to the middle section of the DSR Reporting Framework.
Summary of Changes Made:
- Remove OLO tenders from left side of DSR
- Add OLO Gift Card tips and OLO Credit Card Tips to middle section of DSR
- Add OLO tenders to Right side of DSR
- OLO Tenders should include the tip amount, but the tips in the middle will just be displayed separately.
The DSR tenders will now be organized in the following way:
- Credit Cards
- Cash
- Gift Cards
- OLO Tenders
- Custom Tenders( External Tenders, then Internal Tenders)
= Total Tenders - +Carryover
- -Outstanding
- = Total Tender Summary
Please note - OLO tenders field will include tips (i.e. Olo SVS and Olo Gift Card Tips).
Enhancements to HQ Activity Report: Tender Type Addition & Modification
ENT-3129
Description
Going forward, we will provide additional activity logging anytime a tender type is created or changed on the TRAY HQ Activity Report. This will allow Admin Users to audit changes made to tender types at store and node level.
Fiscal Service Library for Taxila Integration
INFRAP-4120
Description
As part of continued support for the Taxilia Integration, we will now:
- Create a method in the Taxila library for clients to download Check and Invoice details.
- Use a dynamic s3 bucket name to upload/download the data for Taxila.
Additional Gratuity Report [Phase 1]
STR-5710
Description
In parallel with the functionality to support Additional Gratuity on the POS, we have also introduced the TRAY HQ Additional Gratuity Report, aimed at expanding reporting for gratuity types broken down by site, day and gratuity type.
This new report will allow the site to better understand the usage of gratuity types by store, for the respective time frame selected.
Attributes Summary:
- Business Date: Trading date when the transaction occurred. The date format is mm/dd/yyyy.
- Gratuity: The gratuity that was applied
- Staff Name: Staff Name: name of the staff who applied the custom gratuity
- Granted by: name of the staff that granted the custom gratuity, if the staff did not have the appropriate permission. This field will be empty if the staff who applied the gratuity had the necessary permissions.
- Check ID: this ID of the check which will have a hyperlink to the check details which will be done in Phase 2
- If the entire check was voided or refund we will put a star next to that check
- Check Date/Time: Date and time when the check was opened
Please note - only checks that have been closed will display on the Additional Gratuity Report.
Metrics Summary:
- Base: sales before tax, discount, tip, gratuity, fees/service charges
- Tax Collected: total tax collected for the corresponding check
- Discount: discount applied to the corresponding check
- Tip: tip added to the corresponding check
- Added Gratuity: Custom Gratuity added to the corresponding check
- Fees/Service Charge: Fee or service charge applied to the corresponding check
- Check Total: Base + Tax Collected + Discount + Tip + Additional Tip + Fees/Service Charge
- Note - all numbers displayed will be to two decimal places
Totals Summary:
We will have a total for each section of the report:
- Total for the site
- Total for the business date
- Total gratuity
Sort Order Summary:
The report will sort in the following order:
- Site Name
- Business Date
- Gratuity
- Staff Name
- Check Date/Time
Enterprise Managed Product Groups
ENT-2596
Description
This capability is aimed at enhancing reporting and operational clarity, especially for locations with co-branding scenarios, by allowing the creation of Product Groups at the Node. This will allow the user to associate multiple product groups with one item, allowing broader tracking and reporting capabilities.
As part of this enhancement, we will introduce:
- Product Group Creation at Node Level:
- Implement the functionality to create and manage product groups at the node level. This will allow users to categorize items systematically according to different product menus within the same store or across multiple stores.
- Ensure that each item can be associated with multiple product groups to accommodate diverse categorization needs, which is critical for accurate reporting and inventory management in co-branding environments.
- Enhancements to Product Groups Report:
- Product Groups Report will include these new categories. This will allow for differentiated reporting on menus from the same brands, enhancing the clarity of sales and performance metrics across different product lines.
- User Interface Adjustments:
- Update the user interface to support the creation and assignment of new product categories. This includes intuitive controls for assigning multiple product groups to a single item.
- Provide visual indicators or filters in the reporting tools to distinguish between different product groups under the same brand, aiding users in quickly understanding the distribution of sales among various categories.
Node Level
For product category assignments at the item level, we have introduced:
- 'Product Category' section under the 'Name' tab in the item configuration interface. This section will feature a dropdown menu where users can view, search, and select from a list of product categories previously created at the node level.
- Validation to prevent the deletion of a product category if it is currently assigned to any items. An error message stating, “Cannot delete as there are items assigned to this Product Category,” should be displayed to inform the user about the dependency.
- Integration with HQ Activity Logging:
- Enhancements to existing logging to include actions related to the creation, editing, and deletion of product categories under a new “Product Category” within HQ Activity logs.
- Log the addition of a product category to a product as part of the product modification records in HQ Activity
- Permissions and Controls:
- Two new permissions:
- Create Product Group - Permission to create a New Product group
- Edit/Delete Product Group - Permission to Edit/Delete a Product Group
- Two new permissions:
- Feature Activation Control:
- Product categories will be enabled by a feature flag to allow easier Enterprise Management.
Enterprise Push Enhancement - Push Product & Assigned Product Groups
ENT-2441
Description
Centralizing control over product groups at the node level allows enterprise managers to define and adjust product categorizations that are critical for inventory management, reporting, and marketing strategies across multiple locations. By managing these settings from a single point, coupled with the ability to push those product groups to sites within the Node, the process becomes more efficient and reduces the likelihood of inconsistencies across Product Groups.
As part of this feature we have introduced:
- Node-Level Product Group Management:
- Ensure that when a product group is updated at the node level, subsequent pushes of the product information will automatically update the product group across all child nodes and stores, maintaining consistency across the enterprise.
- Restriction on Editability at the Store Level:
- Set the product group attribute to be view-only at the store level. Store-level users will not have the permission to edit the product group, ensuring that the categorization set at the node level remains consistent and unaltered.
- Menu Import and Re-Import Mechanisms:
- Facilitate the inclusion of the assigned 'Product Group' during the cross-site import processes. When a menu is imported from another site, the 'Product Group' associated with each product will be carried over.
- Implement a re-import mechanism that updates the 'Product Group' if there have been any changes at the source site since the last import. This ensures that any modifications are accurately reflected across all nodes and related sites.
Product Group Report
ENT-2441
Description
As detailed above, we have created the ability to configure a product group and associate it to a related product. Going forward, users will be able to use that new grouping dimension across different reports, starting with the Product Group Report.
Report Options:
- Summary - Filter restriction will be 1 site, 36 days. Data shown will be aggregated into one single record with date as start date for the selected duration.
- Detailed - Filter restriction will be 1 site, 7 days. Data shown will be 1 record for each day.
Sort Options:
- PLU - will sort the report by PLU
- Item - will sort the report by Item
Similarly, the user can sort by product group, item name or service.
This functionality will be managed by a Feature Flag for Product Groups, which will be Enterprised Managed.
- If the feature flag is disabled,
- The 'Product Groups' tab under the Categories tab will not be visible.
- The option to assign a 'Product Group' in the Product Modal will not be available at the Enterprise Node.
- Once enabled,
- The 'Product Groups' tab under the Categories tab will be visible.
- The option to assign a 'Product Group' in the Product Modal will be available at the Enterprise Node. Any previously assigned value should be retained.
Enhancement to Staff Summary Report Date Range Filter
STR-6331
Description
This feature will allow users with access to TRAY HQ Staff Summary report to run the report for a bi-monthly date range (i.e. 1st-15th or 16th- end of month). Additionally, the user will have the ability to set a custom date range.
API
Send Item Tags in getMenus response payload.
INFRAP-4344
Description
We have updated the getMenus API to include tags for each item. This improvement builds on our existing system, which allows the creation and persistence of tags for items within HQ. Now, these tags can be accessed directly through the API, enhancing integration possibilities with third-party data aggregators.
- Tag Exposure in API: Tags associated with each item are now included in the getMenus API response under item objects. This allows external systems, such as third-party data aggregators, to utilize this metadata for more detailed data analysis and service enhancements.
Update Tax Amount in venue_tab_taxes as Part of VOID Functionality
INFRAP-3306
Description
Currently, in the new taxation rule when we’re voiding an item its tax amount is not getting updated properly in venue_tab_taxes table. Hence we’re getting incorrect tax amounts in checkTaxes API (data-api).
Example:
For check #101 we’re below items -
Item | Base | Tax
Item-1| 10 | 2
Item-2| 20 | 4
Here, checkTaxes API is returning the correct tax amount as $6.
When we void Item-2 -
Item | Base | Tax
Item-1| 10 | 2
Item-2| 20 | 4
In this case, checkTaxes API is returning $6 for checkId #101 which is incorrect.
When we’re voiding an item, we need to update venue_tab_taxes table with the correct value.
Flag to Identify Split Time Entries
INFRAP-3458
Description
As a user of the time entries API
I want a flag to identify split time entries
So that I will know when to expect multiple records for one time entry
As an enhancement to CONSR-2148, we will need a way to identify which records are ending at the end of the trading day and records that cross over to the following trading day.
In the v3/timeEntries endpoint, a new field called ‘splitTimeEntry’ will be added. This field is a boolean that represents whether or not a time entry will cross the trading day time and thus be split into 2 records.
Example below is a time entry to crosses over the trading day:
{
"id": 1,
"employeeId": 1234,
"jobId": 111,
"jobEid": 4,
"timeIn": "2023-07-27 20:00:00",
"timeOut": "2023-07-28 04:00:00",
"baseRate": 12,
"actualRate": 12,
"tips": 15,
"netSales": 25
“splitTimeEntry”: true
}
For Swagger: splitTimeEntry boolean - determines if the time entry crosses the trading day and is split into multiple records
Add taxCollectedByThirdParties flag to v3/checks
INFRAP-3509
Description
As part of STR-5440, we will need a way to identify tax collected by MPF in the API. Given that checks for online orders have one payment, if the tender type is marked as Tax correct by third parties, then the record for that check should return true for taxCollectedByThirdParties.
In the new v3/checks endpoint, a new boolean field called taxCollectedByThirdParties should be added. If any tender type for that check is marked as tax collected by third parties, then this field will return true. If none of them are marked then return false.
Swagger
taxCollectedByThirdParties (boolean)
Returns true if any tender type for the check is marked as tax collected by third party marketplaces. Generally, this represents online orders where the tax is collected by the marketplace facilitator.
Add Product Groups Category to Products API
INFRAP-3713
Description
With the new addition of family groups, integrators will need a way to access which products are a part of which groups. This feature will add a way to see which group is assigned for a given product.
As part of this story, we have added the following endpoints:
- Add new v3/products endpoint
- productGroupName: product group name
- productGroupEID: Enterprise ID of the product group
- productGroupID: Unique ID of the product group
Persist Tax Information from Third Party Orders
STR-5436
Description
Capture and persist the amount of tax collected for orders paid via a tender that has Tax Collected by Third Parties in the new database table dedicated to Tax Collected by Third Parties.
Add Staff ID to Data API Employee End Point
INFRAP-4121
Description
As part of this enhancement, we are adding the Staff ID to the Data API Employee Endpoint, as shown below:
{
"employees": [
{
"id": 0,
"staffId": 0, //Staff ID as seen in HQ (id + 100)
"ssn": "string",
"firstName": "string",
"lastName": "string",
"jobs": [
{
"jobId": 0,
"jobEid": 0,
"baseRate": 0,
"overTimeWage": 0,
"payClassId": 0,
"isPrimaryJob": true
}
],
"status": "string",
"terminatedDate": "2024-01-24T06:00:36.396Z",
"hireDate": "2022-04-29",
"hireStatus": "string",
"email": "abc@tray.com",
"dateOfBirth": "2022-04-29",
"orignalHireDate": "1994-04-25",
"employeeId": 0,
"gender": "string",
"ethnicity": "string",
"maritalStatus": "string",
"payPeriod": "string",
"isTipable": true,
"phoneNumber": "string",
"address": "string"
}
]
}
Ability to Set Quantity of a Single Modifier in a Modifier Group - API Changes
STR-6394
Description
API support for changes made as part of new functionality to be able to adjust the quantity of a single modifier on the POS.
Following API changes covered -
-
/tray/order/placeOrder : Persist data for “quantity” for options that client sends to server when placing order.
Endpoint : POST(/tray/order/placeOrder)
Key : quantity
type : int
-
/tray/v1/checks : Persist data for “quantity” for options that client sends to for void, comp and discount.
Endpoint : PUT(/tray/v2/checks/$checkId)
Key : quantity
type : int
Default value : 1 -
/tray/v2/checks/$checkId : Send “quantity” for each modifier in optimized getTabDetails API.
Endpoint : GET(/tray/v2/checks/$checkId)
Key : quantity
type : int
Place Order POS Check Details Call Optimization
STR-1326
Description
On POS placeOrder checkDetails API (v2/checks) is being called multiple times (to be precise 3 times) from the device which does placeOrder.
Reason:
1st v2/checks call -> Immediately after placeOrder device calls this api to fetch details
2nd and 3rd v2/checks call -> on placeOrder server sends tabUpdated PN to all POS which includes self device as well. On tabUpdated PN, POS again calls v2/checks once (if device offline mode support is off) and twice (if offline mode support is on).
As part of this change, we will remove unnecessary 3rd v2/checks call from client devices.
Send Item Tags in getMenus response payload.
INFRAP-4344
Description
With current design, we have the ability to create tags for each item on HQ along with the persistence support which allows other items in the same store to use the available tags.
We need to expose these tags in getMenus API under item object, so these can be leveraged by third parties.
Rename Marketing to Translation in Edit Product dialog > Naming tab
INFRAP-4346
Description
Following changes to support translated names to be sent in getMenus API for Integrators like Urban Piper for international support.
- Rename Marketing to Translation
- Move this field below Name field
- Ensure the code does a "rollback". If the Translation name does not exist, it should use the default name.
Creating this story to provide a solution without schema change and leveraging existing fields to support both English and foreign language.
Support Order Level Instructions in v0/orders API
INFRAP-4365
Description
We currently have Order level instruction support in placeOrder API but not v0/orders API which is used by TRAY Integrators.
In order to support their request, we have made changes in v0/orders API to expose the same parameter as placeOrder API to accept order level instruction and persist those instructions in the database.
Since the client functionality is already supported for this object, the instructions will then print on the applicable receipt and show on the KDS without making any client change.
Optimizations
Optimize HQ ‘By Category’ Report
INFRAP-3236
Description
Integrate Optimized HQ ‘By Category’ Report Queries
Before
- 1 second
After
- 0.57 seconds
Optimize POS Activity Report
INFRAP-3314
Description
Integrate Optimized POS Activity Report Queries by reducing the number of rows scanned.
Before
- 216k Rows Scanned (avg)
After
- 173 Rows Scanned (avg)
Optimize Menu Mix Report
INFRAP-3367
Description
Integrate optimized Menu Mix Report Queries
Before
- 1175 Avg(ms)
After
- 572 ms Avg(s)
Optimize Gift Cards Report
INFRAP-3367
Description
Integrate Optimized Gift Card Report Queries
Before
- 1.857 Avg(s)
After
- 300 Avg(ms)
Integrate Optimized KDS Server Checkout Report Queries
INFRAP-3344
Description
Integrated optimized KDS Server checkout report queries
Before
- 15238.43 Avg(ms)
After
- 4865.51 Avg(ms)
Optimize Financial Management Report
INFRAP-3140
Before
- 1mins:34secs:881 Avg(min)
After
- 28 secs:964 Avg(s)
Menu UI Optimizations
INFRAP-4111
Description
We have optimized the menu loading process, leading to a better and faster in-store user experience.
40 Column Report Optimizations
INFRAP-3508
Description
As part of continued efforts to optimize the 40 Column Report, we have enhanced the discount and cash payment queries, leading to faster data aggregation and enhanced performance.
[Data-API] Optimize v1/giftCards API
INFRAP-4374
Before
- 43 Avg(ms)
After
- 14 Avg(ms)
[Data-API] Optimize v1/revenueCenters API
INFRAP-4465
Before
- 28.3 Avg(s)
After
- 19 Avg(ms)
Integrate optimized HQ Server Checkout Report query
INFRAP-4481
Before
- 9 mins:0 secs:64ms Avg(min)
After
- 2mins:1secs:885ms Avg(min)
Optimize printStatus API Changes to Send Push Notifications in Separate Thread
INFRAP-4464
Description
Currently, we’re sending PNs for printStatus API in the main thread. Going forward, we will spin a new thread to send push notifications to mirror push notification handling in /v1/orders/status API.
Bug Fixes
Adding Staff and Adding/Deleting Secondary Roles Causes Staff Creation Error
ENT-3680
Symptoms
When navigating to ‘Add Staff’, if the user adds and then subsequently deletes a secondary role as part of staff creation, creating the staff record returns an error when saving and when the user attempts to edit the role, the role dropdown no longer populates with existing roles.
Resolution
Going forward, when a user adds a secondary role and subsequently deletes the secondary role, TRAY will no longer return an error message when saving the staff role and the user will be able to continue editing the existing role without having to delete and re-add the staff record.
POS Cannot Support Multiple Order Printers
STR-5745
Symptoms
When a site only has two terminals available but simultaneously want to drive three order printers, some order chits will not print appropriately.
Resolution
Going forward, when a site has two terminals but want to drive three order printers, the order printers will function as expected
Discount Discrepancy Across Daily Sales Report and Financial Management Report
INFRAP-3575
Symptoms
This issue is due to inputting a higher item price than actual item price while applying an item-level open discount. which was addressed by STR-5614 which changes the Open Discount functionality restrictions
Resolution
Going forward, item level open discounts will only be allowed if the price indicated is not greater than the price of the item.
Check was Marked as 'Tax Exempt' but Order was Not Exempted
STR-5564
Symptoms
A check was marked as 'tax exempt' but the exemption status was not applied appropriately.
Resolution
Going forward, if a check is marked as 'tax exempt' after the user has initiated 'Send & Pay' then we will update the 'tax exempt' status accordingly.
Emojis in Special Instructions will not Break Reports
INFRAP-3397
Symptoms
Certain TRAY Reports fail to load when emojis are included in the ‘special instructions’ field.
Resolution
We have restricted the use of emojis in the special_instruction field of order_items table which will prevent this behavior from occurring.
POS Cannot Support Multiple Order Printers
STR-5745
Symptoms
When a site only has two terminals available but simultaneously want to drive three order printers, some order chits will not print appropriately.
Resolution
Going forward, when a site has two terminals but want to drive three order printers, the order printers will function as expected
Discount Discrepancy Across Daily Sales Report and Financial Management Report
INFRAP-3575
Symptoms
This issue is due to inputting a higher item price than actual item price while applying an item-level open discount. which was addressed by STR-5614 which changes the Open Discount functionality restrictions
Resolution
Going forward, item level open discounts will only be allowed if the price indicated is not greater than the price of the item.
Check was Marked as 'Tax Exempt' but Order was Not Exempted
STR-5564
Symptoms
A check was marked as 'tax exempt' but the exemption status was not applied appropriately.
Resolution
Going forward, if a check is marked as 'tax exempt' after the user has initiated 'Send & Pay' then we will update the 'tax exempt' status accordingly.
Emojis in Special Instructions will not Break Reports
INFRAP-3397
Symptoms
Certain TRAY Reports fail to load when emojis are included in the ‘special instructions’ field.
Resolution
We have restricted the use of emojis in the special_instruction field of order_items table which will prevent this behavior from occurring.
Package Details not displayed in Orders Report After Signing Waiver
STR-6587
Symptoms
When a loyalty user logs in, signs a waiver, and selects a package, an issue occurs after the user completes an order payment. The order details, expected to appear in the 'Order Reports', are missing. Please note, this occurs after signing a waiver.
Resolution
Carryover functionality was not implemented to include tax inclusive items initially. Going forward, package details will show across reports when carryover is enabled.
PrintCheckoutReport and PrintCheckoutReportWithOpenChecks not Logging in POS Activity Unless Authorized
STR-6422
Symptoms
PrintCheckoutReport and PrintCheckoutReportWithOpenChecks permissions only appear in the HQ Activity report if authorized by another user.
Resolution
Going forward, we will generate a record on the POS Activity Report anytime the above mentioned permissions are used.
Test Staff showing in v3/items
INFRAP-4559
Symptoms
v1/items and other endpoints in the Data API automatically exclude test staff, however v3/items still includes data for them.
Resolution
Going forward, excluding test staff will stay consistent throughout the API and will apply to v3/items
System Tender Applying to Paid Checks
INFRAP-4429
Symptoms
System tenders were applied to paid checks due to an offline check created on one day but synced after TDT (04 AM).
Resolution
Going forward, if a user has applied a payment to the check, the system will not add any system tender.
6.04.x Hotfix Release Notes
TRAY 6.04.x Hotfix Release Notes
Version Overview
TRAY Product | Version |
HQ | 6.04.2 |
Data API | 6.04.1 |
POS | 6.04.6 |
KDS | 6.04.5 |
TRAY 6.04.x Test Summary
HQ
Support Google/Apple Pay Payments for Olo
INFRAP-4696
Description
To enhance reporting capabilities for Google Pay and Apple Pay transactions, we will now report these transactions separately (i.e. broken out on their own individual line) on the TRAY HQ Daily Sales and Financial Management Reports. This improvement will help to facilitate more precise payment reconciliation.
Apple Pay
- The format shall be OLO AP-"Credit Card Type":
- OLO AP-MC
- OLO AP-DS
- OLO AP-VS
- OLO AP-AX
Google Pay
- The format shall be OLO GP-"Credit Card Type":
- OLO GP-MC
- OLO GP-DS
- OLO GP-VS
- OLO GP-AX
*Abbreviation Note: MC for Mastercard, VS for Visa, AX for American Express, DS for Discover
Acceptance Criteria
The following acceptance criteria will be followed as part of this feature:
- Google Pay will have its own line item on the DSR Report
- Google Pay will have its own line item on the FM Report
- Apple Pay will have its own line item on the DSR Report
- Apple Pay will have its own line item on the FM Report
- Google Pay will be separate from OLO Visa CC; OLO MC CC; etc. transaction(s)
- Apple Pay will be separate from OLO Visa CC; OLO MC CC; etc. transaction(s)
- No change across regular Credit Card transactions
Test Cases
Prerequisite | Action | Expected Result |
User has access to HQ Reporting [DSR & FM Report] | Initiate an Google Pay transaction through Olo | Verify that this transaction has its own line in the DSR and FM Report and is categorized correctly according to payment type |
User has access to HQ Reporting [DSR & FM Report] | Initiate an Apple Pay transaction through Olo | Verify that this transaction has its own line in the DSR and FM Report and is categorized correctly according to payment type |
User has access to HQ Reporting [DSR & FM Report] | Initiate additional credit card payments for that same day | Validate that there is no change in payment reporting data on FM or DSR report on days when ApplePay/GooglePay transactions have been initiated |
Send Tax Amount when Validating Olo Order
INFRAP-4981
Description
As part of tax collected by third parties, TRAY will need to send the tax amount when Olo is validating the order in order for the user to be charged tax. When the order is submitted to TRAY (which will include the tax that we sent), TRAY will need to exclude the tax from both the order and payment. Instead, the tax will be recorded separately which will show up in the necessary reports.
Note that directly comparing the order between TRAY and Olo will show a difference since Olo’s order will show tax while TRAY’s order will not.
Acceptance Criteria
When an Olo order comes in and given that the tender type is marked as Tax collected by Third Party
- TRAY should send Olo the correct tax amount when validating the order
- When TRAY receives the order, the tax should not be recorded with the order or payment
- Tax should instead be recorded as collected by a third party and displayed in the appropriate reports
Test Cases
Prerequisite | Action | Expected Result |
Ability to send/receive Olo Orders | Initiate Olo Order | TRAY should send Olo the correct tax amount when validating the order |
Ability to send/receive Olo Orders | Navigate to TRAY HQ > Reports and validate the order payment data | When validating the Olo Order Payment, tax should be recorded as collected by third party and displayed as such across the appropriate reports |
Unable to Close Check with Full Payment - Fastab
INFRAP-5003
Summary
Checks with specific balance amounts (i.e. $10.29) were not automatically closed due to a rounding issue in the logic, requiring sites to manually close checks displaying $0.00 unpaid balances.
Resolution
We have addressed the rounding logic error so that checks will now automatically close when the check balance is fully paid.
Modifier Item is Removed from Cart after Applying Discount
STR-7562
Description
Server component of discount issue - please see STR-7562 outlined below.
DataAPI
Issue with v3/timeEntries Break Event Type
[Merged into 6.04.1 - Please see 5.14.9 Hotfix Release Notes]
Test Staff Split Time Entries in v3/timeEntries
INFRAP-5059
Summary
Whenever a staff marked with the test staff flag is clocked in across two trading days, a split time entry record will be created for that staff in v3/timeEntries API.
Resolution
Going forward, the dataAPI will exclude all test staff time entries regardless of whether or not the time entry crosses the trading day time.
POS
Gift Card Operation Failed for SVS
ENT-3716
Description
When issuing an SVS gift card, the user is seeing the following error message: ‘Gift Card Operation Failed. Problem in Issuing Card, Please Try Again’.
Tax Inclusive Item Displaying 0.01 Discrepancy in Total Calculation
STR-7116
Summary
Items marked as ‘tax inclusive’ were showing a 0.01 discrepancy in total calculation when added to the check, as shown below:
Resolution
We have fixed the rounding logic applied for tax inclusive items so that going forward, the item will reflect the correct base price of the menu item displayed on the menu when it is added to the check and calculated in the check total.
Unselected Modifiers Displaying on Payment Receipt
STR-7263
Summary
Unselected modifiers were printed on drive-through orders, specifically on the re-printed guest and payment receipts, for select products.
Resolution
Going forward, only the modifiers that were selected when making the order will print across all TRAY receipts, including re-printed guest receipts and payment receipts.
Implement New Qualtrics Code & Feature Flag
INFRAP-4872
Description
In the Admin Settings of HQ [TRAY controlled], there will be a multi-select dropdown called “Enable Updated Guest Survey Code” that will contain a list of all sites in Production. When enabled for a given site, the Qualtrics Guest Survey Code will use the new formula described below. If the checkbox is not enabled for a site, we will default to the old Qualtrics formula for that site.
New Qualtrics Formula:
{
"id": "coupon_code",
"printType": "RECEIPT",
"section": "GENERIC",
"position": 49,
"sequence": 1,
"margin": "0,0,0,0",
"padding": "0,0,0,0",
"alignment": "center",
"fieldName": "coupon_code",
"fieldType": "label",
"color": "#ff000000",
"size": 40,
"style": "",
"visibility": false,
"defaultValues": "{{storeNumber}}",
"format": "",
"backgroundColor": "",
"height": "WRAP",
"width": "WRAP"
}
Acceptance Criteria
- A new Qualtrics CSI code is printed on the guest check according to the specification above when enabled from the Global Settings > Feature Flag
- Guests should be able to rate their experience and take a Qualtrics survey from the confirmation page of their Dining experience using the code printed on their receipt
Test Cases
Prerequisite | Action | Expected Result |
Qualtrics Feature Flag > Disabled for Site | Print Guest Receipt | Guest receipt should print with the old version of the Qualtrics Survey Code [current state] and the code should be functional |
Qualtrics Feature Flag > Enable for Site | Print Guest Receipt | Guest receipt should print with the new version of the Qualtrics Survey Code [according to specifications noted above] and the code should be functional |
Ticket Wizard not Applying Tax
STR-7371
Summary
When ringing up items normally, tax is applied to the cart, however when the site uses the Ticketing Wizard, tax is not included in the cart.
Resolution
Previously, we were calculating taxes as per old taxation, Because of that it was not respecting the new taxes configuration.
Check Closed with Payments and No Orders
STR-7369
Summary
When a check with a full payment has been closed, if the user reopens the check and voids an item (displaying a negative balance), the ‘close check’ button disappears as it is designed to do. However, after the staff refreshes the check, the close check button appears and the user is able to close the check with a negative balance.
Resolution
Going forward, when an item is voided after the check has been closed, the close check button will no longer be available even if the staff member refreshes the check screen.
Orders and Checks Report Mismatch
STR-7392
Summary
There was a discrepancy across the HQ Orders and Checks Reports where additional item counts were appearing for a check on the Orders Report than what was displayed on the Checks Report (i.e. four items showed on a check on the orders report vs. two items displayed on the checks report).
This scenario was occurring when a user would:
- Add items to a check and send the items
- Click on the discounts button
- Cancel the discounts dialog without applying any discount
- Transfer the check to an eligible staff member
Resolution
Going forward, we will only assign the substatus of an item as discounted when the discount has been fully applied to the check. In the case above, when the user cancels the discount dialog without applying a discount and then proceeds to transfer the check to another user, the ‘transfer from’ substatus will persist correctly and the Checks and Orders Report will be balanced.
Price Effective Date for Modifiers with Custom PLUs
STR-7457
Summary
Modifiers with custom PLUs were not respecting price effective dates, resulting in the incorrect price displaying on the POS when price effectiveness schedules were in effect for those custom PLU items.
Resolution
Going forward, the POS will display the correct price for any modifier with a custom PLU when the price effective date takes effect.
"Authorize Use Outside Clock-In Hours" OFF allows user's TransferGuestItems Permission when clocked out but gives erroneous "denial" message
STR-7306
Summary
When ”Authorize Use Outside Clock-In Hours” is unchecked within HQ, the feature is allowing the TransferGuestItems permission in POS when using codes for clocked out employees but with an error message that reads, "Authorization denied, ClockMeInPlease is not authorized to grant this permission”
Similarly, the user is able to bypass the validation check with use of the Tablet’s Hardware back button and PC terminals' soft touch back.
Resolution
Going forward, during authorization if quick code entered is not clocked in (when staff does not have the no clock in required permission), the drop down for guest selection should disappear. Similarly, the user will no longer be able to bypass the validation check with the use of the Tablet’s ‘back’ button, as the initial authorization denial will prevent a user from bypassing the transfer authorization by backing out of the screen and initiating the transfer.
Modifier Item is Removed from Cart after Applying Discount
STR-7562
Description
When discounts are configured for the parent item only, and the attached modifiers are not eligible for discounts, we are seeing issues when the discount is applied to the parent modifier. In this scenario, the modifiers for the initial parent item are being removed from the cart.
Resolution
Going forward, if discounts are only eligible for the parent item, and that parent item has related modifiers that are ineligible for discount, we will no longer remove the non-discounted modifiers from the cart.
Issue with 5.14.x Menus Loading on Client 6.04 Versions
STR-7563
Description
The POS code was incorrectly expecting a particular schema element to be present in the menu JSON, which was not introduced until 5.18. When the POS read the menu data that existed post-upgrade, it was unable to process and effectively errored out. This issue would have started after the 6.04 POS/KDS build was installed for stores that did not have a menu published that day from Beta-1 servers.
Resolution
We have addressed the backwards compatibility issue so that going forward, if client builds are on a 6.04.x version, the system will ignore the expected schema element and will continue to display menus published from a 6.04.x server, allowing the menu to load as expected without the user having to republish the menu.
TaxExemptStatus Crash
STR-7339
Description
It was observed that clicking on the ‘Tax Exempt Button’ when simultaneously on the table map screen (i.e. outside of the checks screen) was resulting in a POS crash. Based on the stack trace we observed, this was due the timing of applying the tax exempt button and clearing of the active tab happening simultaneously, resulting in the observed crash.
Resolution
Going forward, applying the tax exempt button will no longer clear the active tab simultaneously, meaning that selecting the tax exempt button outside of the checks screen will no longer result in a crash across the POS Application.
Non-Default Modifiers Added Automatically to Items
STR-7612
Description
This problem occurs specifically when the same modifier groups are assigned to different products with different default select modifier settings across the assignment. When a modifier group is repeated exactly, the system refers to configuration of the previously saved modifier group appropriately. However, if there is any slight change in the configuration of the modifiers (i.e. change in name, change in order), the system treats this change in configuration as a different modifier group. An error in this logic led to the system adding default modifiers to certain items, even when they were not set as default or selected as part of an order, as it was not treating this modifier group as unique. Please note - this does not happen in every situation where a modifier group has been assigned to multiple products.
Resolution
Going forward, the system will respect the configured parent item <> modifier group default preferences for each parent item, even if that modifier group is assigned to different products that require varying default modifier configurations across the menu.
For example, if a modifier group is assigned to two different products, one which requires default modifiers and one that does not, the system will respect the configured default behavior set in HQ and will no longer add modifier items to the cart erroneously.
KDS
Auto-Offline Trigger Change
INFRAP-4945
Description
We are implementing a change to configure current auto offline mode triggers to account for network blips and intermittent short failures so that sites are not going offline preemptively. In order to achieve this we have made the heartbeat failure count configurable, meaning that if the heartbeat failure count fails X times (configurable), the store will go into offline mode.
Please Note: this will not have any impact to auto-online functionality for the time being
Additional Context
- The heartbeat check is performed approximately every 25 seconds on each application.
- The current default setting is 3 failures
- Heartbeat check can be configured in the device settings portion on the hardware tab of the site in HQ > KDS Settings > Additional Settings and POS Settings > Additional Settings. It is turned on by default regardless of whether or not this property is added and the default is controlled by the current auto-offline configuration tool.
Acceptance Criteria
- Heartbeat failure count should be configurable by site
- Sites should not go into offline mode for a temporary internet outage or server event should the heartbeat count failure rate be less than the configured failure threshold
Test Cases
Prerequisite | Action | Expected Result |
in the extraSettings in the POS and KDS config a device group has been configured to have the property of “heartbeatFailureCount” set to 1. | a device that is connected to the network with other devices and is disconnected from the internet or there is a TRAY outage. | the venue should go into offline mode at about the same speed at the previous auto offline mode implementation. |
in the extraSettings in the POS and KDS config a device group has been configured to have the property of “heartbeatFailureCount” set to 3. | a device that is connected to the network with other devices and is disconnected from the internet or there is a TRAY outage | the venue should go into offline mode slower than the previous iterations of offline mode. |
n the extraSettings in the POS and KDS config a device group has been configured to have the property of “heartbeatFailureCount” set to 20 | a device that is connected to the network with other devices and is disconnected from the internet for 1-2 minutes or there is a TRAY outage for only 1-2 minutes. | the venue should not go into offline mode |
Brand Guest Survey Code Back to New Formula
INFRAP-4872
Summary
Please see details outlined in HQ Overview.
Comments
0 comments
Article is closed for comments.