We've added a new Budgets feature to the Customer Portal, giving users a way to track spending against defined budget periods, available directly from the main navigation menu under "Lists" for users with the appropriate permissions.
Setting up a budget is straightforward: users define a Budget Name, a Start Date, an End Date, and a Budget Amount, then save it to see it appear immediately on the Budgets screen. To make it easier to manage consecutive periods, the Start Date for each new budget is automatically set to the day following the previous budget's End Date, so periods stay organized without manual date entry. Each budget has a details view showing Total Spend alongside the Budget Amount, Start Date, and End Date, with Total Spend displayed in red when it exceeds the budget or in green when it's within range, giving users a quick visual check on where they stand. Budgets can be edited or deleted at any time, and the Budget Amount itself can be adjusted directly from the details screen.
Budgets can also be managed at the location level. From a location's detail page, users will find dedicated "Total Spend" and "Budgets" tabs, where they can create location-specific budgets and add individual Budget Items by selecting a product, unit, and expected budget amount. This allows spending to be tracked both at a general level and broken down by specific locations and products, depending on what level of detail is needed.
This feature is now available in the Customer Portal for users with budget permissions. For a full walkthrough of creating, viewing, editing, and deleting budgets, including how it works at the location level, see the accompanying video tutorial.
https://youtu.be/BMzKud7VAic
Tickets
KOD-23367: Fix pricesbycodes call on product list pages
Regression Tests
Case 1
For this test, we will go to the following screens and make sure everything loads properly:
Product List page, product details page and Cart screen.
Also make sure you are able to change between Pick Up and Delivery on the select fields.
Add to the cart a product using both options and make sure the changes are reflected.
Finally, we will place an order of different products and fulfillment options selected.
Make sure the order has the correct information.
Tests
Case 1
For this test, we will go to the Product List screen. Try this with categories that have 6 products or less and also with more than 6 products.
If the list has six products or less, only one API call should be made using the pricesByCodes endpoint.
If you have more than 6 products, a maximum of two calls should be made.
The fulfillment field should be displayed on the product card until after the second call is made.
KOD-27221: Check Parent Link on Order Hierarchy when Parent is a Quote
ENG-76893: ACH authorization - Add dropdown for customers who collect physical documents
88232: Investigate Deleted Automated Orders Remaining on Search Screen
88355: Implementation - Order / Invoice Documents
89657: Dynamic Truck Run Selection
ENG-96141: Enhanced Budgeting Functions Phase 2
ENG-99843: Save pricebook as internal Files when running from employee side
100106: Configure - Update Emailed Payment
101200: Update integration to be host compatible
102698: Tickets/Details/Misc - Request to move parentID to employee details
105399: Implementation
ENG-106392: Order Forms & Templates
107380: UX for Order Approval Visibility Setting
108726: Add recaptcha to the checkout - UX
110724: Include Dropdown to Select Email on Notification Emails
110920: Web# Investigate why no IP address on order
111166: Tax Exemption Flows
ENG-111770: Add 4 Logos to Account Activation Email & Sign In Page
112273: Update Mapping from user24 Field
112497: Multiple Location Selection
ENG-112760: Add row pointer as Alternative Lookup Field for ARSS (Company Addresses) Mappings
112781: Include Option for Items Feature on Order Details View
ENG-113069: Checkout Allows Order Placement Before Shipping Options Fully Load (Bypasses Shipping Method Selection)
113134: In Stock In Store doesn't persist when paging
113160: UOM not filled in when selecting a product via Quick Order tab
113180: Implementation - Spin Up System
113222: Display child items in the cart for KIT products
113288: Product Tags update
ENG-113467: Enrich payment record
113527: Configure - Accept Payment Method Request
113589: Make quote-accepted confirmation message more visible & include Order Number
ENG-113735: App Store Content for App Go Live
113811: Printed barcode labels don't fit on the labels.
114054: Sign-up form: Remove default account-setup selection + PDP specs: French labels for Length/Width/Height/Weight
114114: Include Customer Catalog Migration when Moving Customer To a Different Company
114594: Add parentTicketCode to the /api/system/ticket/{ticketID} API
114601: Add more filters to price check inventory table
114602: Logo Product Icon
114617: Add ability to download all selected invoice files into one PDF - Make host compatible
114711: Be able to Set Region on Locations
114736: New parser for our take-off provider
114945: Punchout User Set up
115392: Include Returns & ERP Quotes under Orders View
115394: Add Notifications Around Quote Acceptance
ENG-115585: Reorder DailyIntervalJob Execution — Run Rule Engine Before dailyIntervalJob.js Interceptor