All Releases
September 25, 2025 September 18, 2025 September 11, 2025 September 4, 2025 August 28, 2025 August 21, 2025 August 14, 2025 August 7, 2025 July 31, 2025 July 24, 2025 July 17, 2025 July 10, 2025 July 3, 2025 June 26, 2025 June 19, 2025 June 12, 2025 June 5, 2025 May 29, 2025 May 22, 2025 May 15, 2025 May 8, 2025 May 1, 2025 April 24, 2025 April 17, 2025 April 10, 2025 April 3, 2025 March 27, 2025 March 20, 2025 March 13, 2025 March 6, 2025 February 27, 2025 February 20, 2025 February 13, 2025 February 6, 2025 January 30, 2025 January 23, 2025 January 16, 2025 January 9, 2025 January 2, 2025 December 26, 2024 December 19, 2024 December 12, 2024 November 28, 2024 November 21, 2024 November 14, 2024 November 7, 2024 October 31, 2024 October 24, 2024 October 17, 2024 October 10, 2024 October 3, 2024 September 26, 2024 September 19, 2024 September 12, 2024 September 5, 2024 August 29, 2024 August 22, 2024 August 15, 2024 August 8, 2024 August 1, 2024 July 25, 2024 July 18, 2024 July 11, 2024 June 27, 2024 June 20, 2024 June 13, 2024 June 6, 2024 May 30, 2024 May 23, 2024 May 16, 2024 May 9, 2024 May 2, 2024 April 25, 2024 April 18, 2024 April 11, 2024 April 4, 2024 March 28, 2024 March 21, 2024 March 14, 2024 March 7, 2024 February 29, 2024 February 22, 2024 February 15, 2024 February 8, 2024 February 1, 2024 January 25, 2024 January 18, 2024 January 11, 2024 January 4, 2024 December 21, 2023 December 14, 2023 December 7, 2023 November 30, 2023 November 16, 2023 November 9, 2023 November 2, 2023 October 26, 2023 October 19, 2023 October 12, 2023 October 5, 2023 September 28, 2023 September 21, 2023 September 14, 2023 September 7, 2023 August 31, 2023 August 24, 2023 August 17, 2023 August 10, 2023 August 3, 2023 July 27, 2023 July 20, 2023 July 13, 2023 July 6, 2023 June 29, 2023 June 22, 2023 June 15, 2023 June 8, 2023 June 1, 2023 May 25, 2023 May 18, 2023 May 11, 2023 May 4, 2023 April 27, 2023 April 20, 2023 April 13, 2023 April 6, 2023 March 30, 2023 March 23, 2023 March 16, 2023 March 9, 2023 March 2, 2023 February 23, 2023 February 16, 2023 February 9, 2023 February 2, 2023 January, 2023 December, 2022 November, 2022 October, 2022 September, 2022 August, 2022 July, 2022 June, 2022 May, 2022 April, 2022 March, 2022 February, 2022 January, 2022 December, 2021 November, 2021 October, 2021 September, 2021 August, 2021 July, 2021 June, 2021 May, 2021 April, 2021 March, 2021 February, 2021 January, 2021 December, 2020
View all releases

September 11, 2025 release notes

Highlights

Operations Portal

New Product Line Filter Added to Item Suggester

We've added a new Product Line filter option to the Add Item Suggester in the Operations Portal.

The Product Line filter allows you to quickly find and add specific products to your orders. To use this feature, navigate to the Orders screen, open any order, and click on the Item Suggester dropdown at the bottom of the Items tab. You'll see the new Product Line option alongside existing filters like All, Code, Legacy, and Vendor.

When you select the Product Line filter and click on the Add Item field, you can either choose from suggested products or search for a specific product line. Selected products are automatically added to the grid when you press Enter, streamlining your workflow across multiple areas of the platform.

The Product Line filter is now available in the Operations Portal across multiple sections including Orders, Cash Quotes, and Quotes. For a detailed walkthrough of this feature, please refer to our demonstration video.

https://youtu.be/5JGnVOnzdPA

Tickets

  1. KOD-20299: Tracking PDFs Printed & Downloaded
  2. KOD-24615: Support autoSavedCartToken
    • Regression Tests
    • Case 1
      • Test adding items to cart for a guest user.
    • Case 2
      • Test login WITHOUT existing guest cart.
    • Case 3
      • Test login WITH existing guest cart.
    • Tests
    • Case 1
      • Turn on setting enableGuestSavedCarts.
      • Create a guest cart by adding items to it.
      • Close browser then open again your browser with a site page (like cart/default home page).
      • You should see your cart in place, items still should be in your cart (do NOT use incognito browser mode).
    • Case 2
      • Turn on setting enableGuestSavedCarts.
      • Create a guest cart by adding items to it.
      • Go to Users screen in the operations portal, find your guest session and change expiration date to yesterday’s date - so your session will be expired.
      • Reload page and verify that your new session contains a cart with your items in it.
    • Case 3
      • Turn on setting enableGuestSavedCarts.
      • Create a guest cart by adding items to it.
      • Try to login and verify that your guest cart was migrated as your customer cart (contains the same cart items). It should work the same way for customers with existing/non-existing carts, guest cart should take precedence.
  3. KOD-24664: Implementation - Integration
  4. KOD-25753: Tie Return Line Item Back to Original Invoice in CSD
  5. KOD-26167: AI Search Tuning
  6. KOD-26407: Setup lockbox EDI 820 file
  7. KOD-26554: Lock box file failed delivery notification
  8. KOD-26569: Parser issue Created From Ticket 26310
  9. KOD-26612: Immediate email confirmation not displaying Customer Pickup method
  10. KOD-26621: Automated order identification and placed from and by settings
  11. KOD-26670: Saved Cards in CSD
  12. KOD-26701: parser From Ticket 28483
  13. KOD-26711: Unit Conversion Created From Ticket 28589
    • Regression Tests
    • Case 1
      • Check that the grid on the Vendor Invoices -> Items page looks correct.
      • Check that there are no errors in the console.
      • Check that the layout of the Vendor Invoices page looks good, namely in the items tab.
    • Tests
    • Case 1
      • Check that the button (three dots) has been added to the Vendor Invoices -> Items grid.
      • Check that if the Item has no Vendor Code, a modal with the text - This item doesn't have a valid vendor code is shown.
      • Check that if the Item has a Vendor Code, a modal with the creation of - Create Cross Reference is shown.
      • Create Cross Reference and make sure that it has been created in Cross References.
      • Make sure that the code is built according to the example - {altProductCode}web${companyCode}.
      • Check that if the Item has a Vendor Code and has been created, Cross Reference is shown - the Update Cross Reference modal opens.
      • Make sure that the value is updated in the Cross Reference tab.
  14. KOD-26745: User field available at the ticket / product lists / items level
    • Regression Tests
    • Case 1
      • Confirm the following:
      • The product list page is available at:
      • company/productlists/items
      • customer/productlist/items
      • ticket/productlist/items
      • We can see the list of products on that screen, and the page loads without errors.
      • At the bottom of the page, there is:
      • An input field where the user can add products.
      • A select dropdown to choose the filter type for the input.
    • Tests
    • Case 1
      • Please confirm that on these pages we can add the extra2 column and fill it in for our products.
      • And that after refreshing the page, this field will remain the same as we set it.
      • Also, on the products page, the value of extra2 will not match the extra2 on the pages where we modified it.
  15. KOD-26786: AP: Exception: There's no subtotal Created From Ticket 26995
  16. KOD-27012: Salesforce - New set of requested data fields
  17. KOD-27121: Adding to the cart functionality
  18. KOD-27157: Implementation - Email Sending Configuration
  19. KOD-27193: Kit builder Design
  20. KOD-27197: Search Debug Actions Not Working
    • Regression Tests
    • Case 1
      • Make sure you have the searchDebug role.
      • Sign into the operations portal then go to the commerce site.
      • Search for a product and make sure you still see the search score and inspect on each item → click the inspect and make sure the inspector opens properly.
    • Tests
    • Case 1
      • Click the inspect button → then on the inspector, click the actions button → you should see 2 options - ‘open product in operations portal’ and ‘open search tools’.
      • When you click on ‘open product in the operations portal’, it should open that product up in the operations portal.
      • When you click on ‘open search tools', it should take you to the product search rules section on the search tuning page.
  21. KOD-27242: Web order release settings Created From Ticket 31307
  22. KOD-27248: Parser From Ticket 31541
  23. KOD-27300: Update fields for surfacing shipping dates on Order and Order Item in the operations portal
    • Regression Tests
    • Case 1
      • Employee side
        • Update any fields on order details tab.
        • Open order details screen.
        • Search orders tab.
        • List orders tab.
        • Read order items.
        • List order items.
        • Update item.
      • Customer side
        • Create, update, delete in the customer side/cart.
        • List/search orders in customer portal.
        • List order items.
    • Tests
    • Case 1
      • Access operations portal → Scripts… and find this one: mapping-basicOrderUpload.
      • Update content to the sample mapping-basicOrderUpload.
      • Also, check the value of "postProcessingScript".
      • Next, open this script or create if needed: mappingscript-post-sxOrder.
      • Update content to the sample mappingscript-post-sxOrder.
      • Then, go to Orders screen → data and Import a CSV with order data.
      • This CSV should have an order line with promisedt and a valid value for it, example: “2025-08-21" (to create a new order).
      • Then, run FiveMinuteBulkJobsJob.
      • You should receive an email about the import.
      • Go to the order screen and find the new order, go to Customer Fields. Ensure you have fields with code promisedt and promiseDate with the value you provided in CSV.
    • Case 2
      • Use this payload to patch/update Order/OrderItem records:
        • {
        • "deliveryDate": "2025-08-14"
        • }
      • For customer side, remember to set this setting customerEditableOrderFields -> 1
      • For every test, you should find deliveryDate filled and not find requestedDeliveryDate.
      • Also, only for ORDER (not OrderItem) tests, you should verify for GET and LIST methods (except PATCH), if promiseDate is shown.
      • Order
      • Employee side
        • update added fields  : PATCH /api/system/order/{orderID}
        • Read order with details  : GET /api/system/order/readDetails/{orderID}
        • Read order document : GET /api/system/order/search/{orderID}
        • Search orders: POST api/system/order/search
        • List orders: POST api/system/order/list
      • Customer side
        • Patch customer order : PATCH /api/account/order/{orderID} (update *deliveryDate*)
        • Read order by id - GET /api/account/order/{orderID}
        • Read order by externalOrderNumber - GET /api/account/order/externalOrderNumber/{externalOrderNumber}
        • List orders : POST /api/account/order/list
        • Search order : POST /api/account/order/search
      • OrderItem:
        • Employee side:
        • Read order item GET api/system/order/{orderID}/orderItem/{orderItemID}
        • List order items POST api/system/order/{orderID}/items
        • Update item PATCH /api/system/order/{orderID}/updateItem/{orderItemID}
        • Get order items GET api/system/order/{orderID}/orderItems
        • Update order item PATCH api/system/order/{orderID}/orderItem/{orderItemID}
        • Update in a bulk PATCH api/system/order/{orderID}/orderItem/bulk
  24. KOD-27306: Check Order Type Orders are Tagged With
  25. KOD-27318: Import Companies-Status Field Not Displaying
  26. KOD-27387: Parser From Ticket 32194
  27. KOD-27443: Homepage Updates
  28. KOD-27447: Display Different Ship Vias Dependent on Customer Warehouse
    • Regression Tests
    • Case 1
      • Make sure you can still submit an order.
    • Tests
    • Case 1
      • Make sure both enableShippingWarehouseSelection and enablePickupWarehouseSelection on the company settings are added/turned to 0.
      • On checkout, on the delivery and payment section, you should see the Ship and Pick up option as the shipping options.
      • You also should not see any dropdown there.
      • Submit an order and push to the ERP. Make sure the ship via is sent correctly (either SHIP or P/U - in the response from the ERP, the shipvia will look different but still show something resembling either ship or pickup).
    • Case 2
      • Make sure enableShippingWarehouseSelection= 0 and enablePickupWarehouseSelection= 1 on the company settings.
      • On checkout, on the delivery and payment section, you should see the Ship and Pick up option as the shipping options.
      • If you select pick up, you should see a dropdown appear. This dropdown should only have Montreal and St Bruno as warehouse options.
      • When you click Ship, the dropdown should not be displayed.
      • Select pick up and select a warehouse then submit the order and push to the ERP. Make sure the ship via is sent correctly (P/U - in the response from the ERP, the shipvia will look different but still show something resembling either ship or pickup) and the warehouse is set to whichever one you selected.
    • Case 3
      • Make sure enableShippingWarehouseSelection= 1 and enablePickupWarehouseSelection= 1 on the company settings.
      • On checkout, on the delivery and payment section, you should see the Ship and Pick up option as the shipping options.
      • If you select pick up, you should see a dropdown appear. This dropdown should only have Montreal and St Bruno as warehouse options.
      • When you click Ship, you should still see the dropdown and this time it will have all warehouses.
      • This time you can select a ship and select a warehouse then submit the order and push to the ERP. Make sure the ship via is sent correctly (SHIP - in the response from the ERP, the shipvia will look different but still show something resembling either ship or pickup) and the warehouse is set to whichever one you selected.
  29. KOD-27490: Update configuration for Invoice & Statement delivery to look at new fields
  30. KOD-27513: Pushing ticket data to data lake
  31. KOD-27518: Punch-out
  32. KOD-27523: Total miscalculation after item change
  33. KOD-27525: Create PDSC Records: Created From Ticket 19387
    • Regression Tests
    • Case 1
      • Import a CSV file with startDate and endDate column in format MM/DD/YY, the records must be successfully imported and the payload sent to CSD must have startdt in format. YYYY-MM-DD and enddt in format MM/DD/YYYY, this must be the same for created and updated records.
    • Tests
    • Case 1
      • Import a CSV file with startDate and endDate column in format MM/DD/YYYY, the records must be successfully imported and the payload sent to CSD must have startdt in format. YYYY-MM-DD and enddt in format MM/DD/YYYY, this must be the same for created and updated records.
  34. KOD-27542: FiAccount Import and Export - Consumer Accounts and Gift Cards
  35. KOD-27544: Add Product Line filter to Add Item Suggester Created From Ticket 33484
    • Regression Tests
    • Case 1
      • Check that the grids on the Cash Quotes, Quotes, Orders, Purchase Orders pages look correct, the filters work.
      • Check that there are no errors in the console.
      • Check that the layout of the Cash Quotes, Quotes, Orders, Purchase Orders pages looks good, namely in the items tab.
    • Tests
    • Case 1
      • Check that a new filter has appeared - product line, that it is clickable and not the same as the default filter - "all".
      • Check in the developer console that the correct endpoints and filters for them are used, and that the correct answer is received in the response tab that the product type is product line.
  36. KOD-27549: Customer Cards To CSD from Kodaris
  37. KOD-27568: Kodaris - Punch out order requests failed reason
  38. KOD-27574: Update Order Templates to include Payment Method Type
    • Tests
    • Case 1
      • For this test, we will look for an order that has a payment and one that doesn’t.
      • We will generate a PDF using the Order PDF template.
      • If the order has a payment, you should see the payment information of that order in the PDF in a box next to the Instructions. Card Type and Card Number should be visible.
      • Now, we will do the same but for emails. Use the Order Email template to generate the email. Make sure it looks good in the preview and in your actual inbox for both types of orders (with and without payments).
      • Finally, we will do the same for the HTML of the order. For that we will go to the customer portal and look at the order details screen for both orders.
    • Case 2
      • For the final test, we will place an order on the commerce site, for one order we will make a CC payment.
      • Similarly to last cases, you should see the Payment Method information box in the template.
      • Now, place the order by using PO or any method apart from paying with a credit card. The instructions box should take the entire row and no payment information box should be displayed. You should see no errors.
  39. KOD-27591: Convert to Terminal Flow
  40. KOD-27597: Returns customer portal updates
    • Regression Tests
    • Case 1
      • Make sure that the consumer returns flow still works, all data for consumer returns is displayed correctly.
    • Tests
    • Case 1
      • The location should now be displayed for consumer returns. Also there is now the ability to select/ unselect all items, we should test if the correct items are submitted.
  41. KOD-27601: Scope adding new isEmailSendingFromJob update for timed out emails to base to roll out to all customers
  42. KOD-27608: Check sending Orders from Employee Mobile App
    • Tests
    • Case 1
      • Test the new updated process of email-generation on android.
      • Open Companies.
      • Open any company.
      • Go to the orders tab.
      • Open any order.
      • Press on the email icon on the top.
      • Select customer PDF.
      • Click configure.
      • Share PDF.
  43. KOD-27612: Kodaris - Add a customer cash quote setting to the configuration endpoint
  44. KOD-27615: Kodaris - Add a customer cash quote setting to the customer portal configuration
    • Regression Tests
    • Case 1
      • Check if you are able to display a cash-quote view when the setting: customerCashQuotesEnabled is turned on.
      • Check if list endpoint on the “Quotes“ screen with Cash-Quotes (you can verify that by URL) displaying cash quotes on that screen
      • Note: You can verify this using the operation portal data by setting the company filter to match your customer’s company on the Cash Quotes screen
      • Check if the search bar on the top right corner is searching within cash quotes only.
    • Case 2
      • Check if setting “customerCashQuotesEnabled” exists in the operations portal.
      • Turn this setting on - set “1” instead of “0” (if it’s disabled).
      • Check in the customer portal if the “Quotes” screen is available on the left side bar.
      • Check if Cash Quotes are displayed on that screen.
      • Confirm Search bar is working for the cash quotes.
    • Tests
    • Case 1
      • Turn off the setting “customerCashQuotesEnabled”.
      • Check if the “Quotes“ screen on the left side bar is not showing.
  45. KOD-27627: Ability to schedule CMS content to be launched Created From Ticket 32525
    • Regression Tests
    • Case 1
      • Confirm that blog pages and blog post pages load without any issues, and that the blog posts will appear on the blog page.
    • Tests
    • Case 1
      • Confirm that if we create a blog page (a page using the blog template) and a child blog post page (a page using the blog-post template with a parent category pointing to our blog), the content will display correctly. On the blog page, we will be able to see our child page, navigate to it, and view the content.
      • However, if we change the startDate to tomorrow or the endDate to yesterday, the blog post page will not appear in the blog, and the page itself will not open unless we are logged in to the Operations portal.
  46. KOD-27633: Set up APIs and Infor for customer site
  47. KOD-27643: PIM - Product Exports
  48. KOD-27645: Map Address IDs for Punchout
  49. KOD-27653: Detect when Kodaris invoice does not match pdf document and display exception
  50. KOD-27655: Sales Reps can't remove lines from order in Employee App Quick Order Created From Ticket 34109
    • Tests
    • Case 1
      • Go to quick order.
      • Start a quick order or open an existing one.
      • Add items to the cart if it is empty.
      • Try to remove added items.
      • Removing added items should work correctly with any of next permissions:
      • 'administrator', 'superuser', 'orderEdit', 'dispatch', 'crmCompanyOrderEdit'
  51. KOD-27665: Not picking up line item
  52. KOD-27666: Inconsistent Line Item Recalculation in Vendor Invoice Created From Ticket 34409
  53. KOD-27670: Failed Email Sending
  54. KOD-27679: Mobile App - Language drop-down option missing
    • Regression Tests
    • Case 1
      • Confirm that the top bar on the desktop looks correct for both logged-in users and guests: guests should see the language button, while logged-in users should see the buttons for changing language, company, and address.
    • Tests
    • Case 1
      • Confirm that we can change the site language on mobile.
    • Case 2
      • Confirm that on mobile or tablet, the top bar with the language option is still visible for all users, but the company and address buttons are not.
  55. KOD-27680: Registration/Sign In page missing when clicking into "Saved Lists" and "Order History & Status"
    • Regression Tests
    • Case 1
      • Confirm that the login page loads without any issues.
    • Case 2
      • Confirm that when clicking on Saved Lists, it redirects to the login page, and after logging in, it redirects to the Saved Lists page.
  56. KOD-27685: Rollout addon mapping updates to all sites
  57. KOD-27686: Error Page on Customer Portal When Logged into Operations Portal
  58. KOD-27689: Add EJS Highlighting to User Scripts
  59. KOD-27690:Update "Taken by" field for web orders
  60. KOD-27693: Kodaris.com – Footer Update
  61. KOD-27694: Update username to email on login screen
    • Regression Tests
    • Case 1
      • Please test next pages that they still looks good:
      • /spcu/account-activation
      • /spcu/account-retrieval
      • /spcu/login
    • Case 2
      • Please test that header and login popup still looks good.
    • Case 3
      • Verify that the login process is still working fine.
    • Case 4
      • Verify that the lost password process is still working fine.
    • Tests
    • Case 1
      • On the login popup in the header check that instead of the username you see email.
    • Case 2
      • On next pages:
      • /spcu/account-activation
      • /spcu/account-retrieval
      • /spcu/login
      • Check that instead of username you see email.
  62. KOD-27695: Product SellMult Issues (rounding rules)
  63. KOD-27700: Out of Stock Product Verbiage Created From Ticket 34634
    • Regression Tests
    • Case 1
      • Make sure products that are in stock still show warehouse with the amount available on the product list view and detail view.
    • Tests
    • Case 1
      • On a product that does not have inventory but is not discontinued will now show ‘Temporarily out of stock’ under Stock on both the product list and details view.
  64. KOD-27706: Catalog Product Naming and Description Issue and CAT prefix
  65. KOD-27707: Sync Images to IDM
  66. KOD-27712: Pricing screen is not displaying properly dates with format mm/dd/yyyy for some columns
    • Regression Tests
    • Case 1
      • Open the Operations Portal.
      • Go to the Pricing screen.
      • Add or update a price record.
      • Create or update a record with the fields startDate, endDate, and priceEffectiveDate set in the formats MM/DD/YY and MM/DD/YYYY.
      • The record is saved successfully.
      • Verify date display.
      • Check the displayed values in the columns startDate, endDate, and priceEffectiveDate.
      • The dates are displayed correctly in both MM/DD/YY and MM/DD/YYYY formats without truncation or errors.
    • Tests
    • Case 1
      • Open the Operations Portal.
      • Go to the Pricing screen.
      • Add or update a price record.
      • Create or update a record with the startDate field set in the format MM/DD/YYYY (e.g., "08/14/2025").
      • Verify date display in the startDate column.
      • Check the displayed value in the startDate column.
      • The date should appear correctly in the MM/DD/YY format (e.g., "08/14/25"), not truncated (e.g., "08/14/20").
  67. KOD-27718: Custom Parser Created From Ticket 34642
  68. KOD-27723: Add the extra fields to display compliance status information
    • Tests
    • Case 1
      • Open the Operations Portal.
      • Navigate to the Tickets screen.
      • Select a ticket.
      • Choose any available ticket.
      • Open Product Lists.
      • Click on the "Product Lists" tab.
      • Show Extra1–5 columns.
      • Click on "Show Columns."
      • Select Extra1, Extra2, Extra3, Extra4, and Extra5.
      • Hide Extra1–5 columns.
      • Deselect Extra1–5 columns from the "Show Columns" menu.
  69. KOD-27727: Add the extra fields to display compliance status information - Platform
    • Regression Tests
    • Case 1
      • Access Tickets screen in the operations portal → Product Lists. Ensure you can add and edit lists.
    • Tests
    • Case 1
      • Access the same screen from the image in the ticket description (Ticket → Product Lists).
      • Then, use the Network tab in developer tools from your navigator, and check if fields extra1 to extra5 are shown (even null if not filled) for your list. You need at least 1 list or nothing will be shown.
  70. KOD-27737: Remove supplier part numbers
    • Tests
    • Case 1
      • Navigate to the product details page on the web.
      • For testing we need to update the following fields: manufacturerCode and manufacturerProductCode.
      • Basically we have few cases:
      • When manufacturerCode and manufacturerProductCode are empty. In this case you won’t see SUPPLIER and SUPPLIER PART #.
      • When manufacturerCode is populated and manufacturerProductCode is empty. In this case you’ll see SUPPLIER and not SUPPLIER PART #.
      • When manufacturerCode is empty and manufacturerProductCode is populated. In this case you’ll not see SUPPLIER and will SUPPLIER PART #.
      • When manufacturerCode and manufacturerProductCode are populated. In this case you’ll see SUPPLIER and SUPPLIER PART #.
  71. KOD-27740: OA: Cross References Created From Ticket 34632
  72. KOD-27741: Platform - Detect when Kodaris invoice does not match pdf document and display exception
  73. KOD-27745: Update Pricing Data Tab to Support Filtering and Sorting
    • Regression Tests
    • Case 1
      • Go to the Pricing page and check if the “Needs Syncing to ERP” works well.
  74. KOD-27756: Customer Issue
  75. KOD-27757: Fix Parser
  76. KOD-27759: Remove "companyAdmin" role from required role on the endpoint