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 18, 2025 release notes

Highlights

Commerce

Product Redirect for Discontinued Items

With this release, Kodaris now supports automatic redirects from discontinued product pages to their replacement products. This feature utilizes "supersede" cross references (Type P), which indicates when an old product code has been deactivated and replaced with a new version.

The implementation is straightforward through the Search Tuning page. Simply navigate to the Product Redirect tab and add a new entry with the pattern "supercedesOrReplacement" and the Action Data value "P". Once configured, customers searching for discontinued product codes will automatically land on the replacement product's detail page, eliminating confusion and ensuring a seamless shopping experience.

The product redirect feature is available now in the latest system update. For a visual walkthrough of the configuration process, please refer to our implementation video.

https://youtu.be/d1j4c2ggvPQ

Tickets

  1. KOD-20802: Quotes Template for Kodaris
  2. KOD-24524: Cache User Preferences
  3. KOD-24759: PIM - Missing host code restrictions on new products
  4. KOD-26407: Setup lockbox EDI 820 file
  5. KOD-26628: Model Lookup API
  6. KOD-26674: Create product redirect for discontinued products with supercede cross reference
    • Regression Tests
    • Case 1
      • Go to the operations portal → /operations/search-tuning/product-redirect.
      • Add some rules for the product.
      • Go to the operations portal again → /operations/cross-references.
      • Add some cross references for testing product redirects.
      • Go to Kodaris website, and use the search field to search your product. Ensure product redirect function is working.
  7. KOD-26764: Request Quote Button #2
  8. KOD-26914: Kodaris - Scope creating a FAQ page and interface for creation
    • Regression Tests
    • Case 1
      • Go to CMS → FAQs and create a FAQ item.
      • Go to CMS → Pages. Try to find a FAQ entity in the table by using a search field. Input The question text in it.
      • See that there’s no FAQ item in the table.
    • Case 2
      • Go to CMS → FAQs and create a FAQ item.
      • Go to CMS → Pages → Data tab.
      • Turn on the Subtype column.
      • Type “FAQ” in the column search input.
      • See that there’s no entity with type “FAQ”.
    • Tests
    • Case 1
      • Open CMS -> FAQs page.
      • Try to create a new FAQ item, set random data to it.
      • Go back to the FAQs search page, see that the new item was created.
      • Go to the Data tab. Try to change data of any FAQ item.
      • Go back to the Search tab, reload content and see the updates.
    • Case 2
      • Open CMS -> FAQs page.
      • Try to use filters/sorting functionality for all cells and check the result.
  9. KOD-26934: Kodaris - Add Active field to Commissions screen - UX
    • Tests
    • Case 1
      • Navigate to the Commissions page in the operations portal.
      • Verify that the "Active" column is displayed in the data grid.
      • Locate any commission record in the list.
      • Click on the Active field value (Yes/No) for that record.
      • Verify that a dropdown appears with "Yes" and "No" options.
      • Select the opposite value (if it was "Yes", select "No" and vice versa).
      • Verify that the value updates in the grid and the change is persisted.
    • Case 2
      • Navigate to the Commissions page.
      • Locate the Active column header.
      • Click on the filter icon.
      • In the filter panel, select the "Equals" option and test it with “Yes” and “No”.
      • Verify the filter works.
      • For filters different from “Yes” or “No” the filter should be ignored.
      • In the filter panel, select the "Doesn’t equal" option and test it with “Yes”, “No” and any other value.
      • Verify the filter works.
      • Clear the filter by clicking on “Clear”.
      • Verify all records appear.
    • Case 3
      • Navigate to the Commissions page.
      • Click on any commission record to open the details screen.
      • Locate the "Active" field.
      • Note the current value of the Active field.
      • Click on the Active dropdown and select the opposite value.
      • Verify that the Active value was changed.
  10. KOD-26962: Integration
  11. KOD-26989: No Inventory Online but inventory in CSD
  12. KOD-27053: Banner Content on SERP pages
    • Regression Tests
    • Case 1
      • Check if the search page is working correctly.
    • Case 2
      • Check if other pages like the category page are working correctly.
    • Case 3
      • Check if regular customers and not logged in employees without ‘superuser’ roles are not able to see “Manage Slider“ button.
  13. KOD-27100: Update to product images on details page
    • Tests
    • Case 1
      • Open test product (desktop).
      • Navigate to a product page with more than 4 images.
      • Verify swiper functionality.
      • View the images using the swiper.
      • Verify single-image product (desktop).
      • Verify zoom functionality (desktop).
      • Repeat checks on mobile.
      • Open the same products on a mobile device.
      • Expected result: Images are displayed correctly, swiper works for multiple images, and zoom functionality is available.
  14. KOD-27163: Payment type issue
  15. KOD-27201: Don't send retail price if logged out user
    • Regression Tests
    • Case 1
      • When you click into a product, make sure when you log out, you see no prices and when you log in, you see the cost as well as the retail price.
    • Case 2
      • When you are logged in and on a product details page, right click on the page to view the source, then search on data-retail-price and notice that the retail price is still being passed through.
    • Tests
    • Case 1
      • When you are logged out and on a product details page, right click on the page to view the source, then search on data-retail-price and notice that there is no value in there.
  16. KOD-27248: Automation From Ticket 31541
  17. KOD-27289: Customization for Level 3 Data
  18. KOD-27355: Managed retails not displaying when in customer view Created From Ticket 31990
    • Regression Tests
    • Case 1
      • Make sure when you are on store view, and viewing a product, nothing has changed.
      • If the product is part of the retail price catalog, you should see the cost, retail price and your retail price.
      • If the product is not part of the retail price catalog, you should see cost and retail price.
      • And in both options, you can update the retail pricing.
    • Case 2
      • Make sure for a product that does not have a price, in store view you still see a call for pricing.
      • For customer view, you shouldn’t see any info about pricing.
    • Tests
    • Case 1
      • When you are viewing a product on customer view, if the product is part of the retail price catalog, you should see “Retail Price:” displaying the price of what your retail price is on the store view.
    • Case 2
      • If the product is not part of the retail price catalog, on customer view, you should see the retail price with the retail price on the store view.
    • Case 3
      • Updating the retail price on both the store and customer view should update the retail price you see when on customer view.
  19. KOD-27382: Sync Shipping Methods and Instructions Field
  20. KOD-27396: Prevent parent companies from placing orders
  21. KOD-27435: Units of Measure "Stock Price" is displayed
    • Regression Tests
    • Case 1
      • Open the website.
      • Log in.
      • Verify unit display for logged-in users.
      • Open a product configured with both unit sell and unit stock.
      • Expected result: Only unit sell values are displayed; unit stock is not shown.
      • Verify dropdown for single unit sell
      • Open a product that has only one unit sell available.
      • Expected result: Dropdown is not displayed;
      • Verify product without units
      • Expected result: No unit selector is displayed on the product page.
    • Tests
    • Case 1
      • Open the website.
      • Open a product with unit sell and unit stock.
      • Verify unit display.
      • Expected result: Only unit sell values are displayed; unit stock is not shown.
      • Verify dropdown for single unit sell.
      • Check a product that has only one unit sell available.
      • Expected result: Dropdown is not displayed.
  22. KOD-27452: Online Order update, re-authorized amount not show in CSD
  23. KOD-27461: ERP User Credentials
  24. KOD-27470: Invoice Parser
  25. KOD-27472: Parser
  26. KOD-27480: API Connector - PIM Connector
  27. KOD-27484: Payment Methods
  28. KOD-27506: Department not filled in on ticket screen
  29. KOD-27508: Kitbuilder - Project
  30. KOD-27519: Approval Process
    • Regression Tests
    • Case 1
      • Validate that when releasing a Cash Quote this is marked as WON.
    • Case 2
      • Validate that when changing Quote status details to Quote Lost, Quote Expired or Quote Won from operations platform screen settings quoteLost, quoteExpired or quoteWon are properly added and the value must be the current date.
    • Tests
    • Case 1
      • When a customer accepts a quote via the new endpoint /api/account/order/{orderID}/acceptQuote and the order is Cash Quote which is Pending and new setting enableCustomerToAcceptCashQuote is enabled, then:
      • This Cash Quote’s statusDetails and employee status must be set to Status Quote Won.
      • Cash Quote’s setting quoteWon must appear and its value must be the current date.
      • The Cash Quote’s status must be Initialized and this must have been added to the customer cart so they can complete the purchase by any payment method.
    • Case 2
      • When a customer accepts a quote via the new endpoint /api/account/order/{orderID}/acceptQuote and the order is Cash Quote which is not Pending and new setting enableCustomerToAcceptCashQuote is enabled, then a 400 response is returned with an error message indicating invalid status.
    • Case 3
      • When a customer accepts a quote via the new endpoint /api/account/order/{orderID}/acceptQuote and the order is not Cash Quote and new setting enableCustomerToAcceptCashQuote is enabled, then a 400 response is returned with an error message indicating invalid type.
    • Case 4
      • When a customer accepts a quote via the new endpoint /api/account/order/{orderID}/acceptQuote and the order is not Cash Quote and new setting enableCustomerToAcceptCashQuote is disabled, then a 401 response is returned with an error message indicating an unauthorized error.
    • Case 5
      • When a customer accepts a quote via the new endpoint /api/account/order/orderID}/acceptQuote and the order is Cash Quote and customer does not have access to the order, then a 404 response is returned with an error message indicating that the order was not found .
  31. KOD-27586: Rollout upgraded flow
  32. KOD-27600: Return statuses
  33. KOD-27616: Add purchase history tab to product detail page Created From Ticket 33499
    • Regression Tests
    • Case 1
      • Go to any product page and check that existing tabs Product Details and Resources still work. Click between them to make sure nothing is broken.
    • Case 2
      • Test the page on all breakpoints (on different screen sizes). Make sure the layout looks good and nothing is broken on different screen sizes.
    • Case 3
      • Try the product page without logging in. The Purchase History tab shouldn't be rendered, everything else should work normally.
    • Tests
    • Case 1
      • Log in and go to a product you've bought before. Click the Purchase History tab and verify it shows your past orders in a table with correct dates , quantities , and prices .
    • Case 2
      • Log in and go to a product you've never bought before. Click the Purchase History tab and check it says "You have no purchase history for this product yet. "
  34. KOD-27629: Page URLs and items opening in new window
  35. KOD-27647: Add system events to the cash quotes & contract quotes screen for troubleshooting
    • Tests
    • Case 1
      • For this case, we will navigate to the Cash Quotes screen - Select a Cash Quote.
      • Now, you should see a System Events option in the Top Menu Bar. We will click on it.
      • You should see a grid with the System Events related to that Cash Quote (by orderID). You can see that the list endpoint is pointing to api/system/event/list and the orderID in the payload to filter by it.
      • Make sure you are able to Preview, Download and go to the Details of every item.
      • When you go to the Details screen, make sure you are able to edit the available fields and that the changes are reflected correctly.
      • While in the System Event Details screen, test the breadcrumbs and make sure they redirect you to the correct screens.
      • Let’s also test the Custom Fields and Development tabs.
      • Make sure they load correctly and that you can edit/add items correctly.
    • Case 2
      • For this test, we will repeat the steps of case 1 but for Contract Quotes.
  36. KOD-27648: Overdue Report Created From Ticket 34088
  37. KOD-27672: Display Tariffs on product details page
    • Regression Tests
    • Case 1
      • Open the website.
      • Open product without discount.
      • Expected result: The product detail page is displayed, and no “+ Tariff” text is shown.
    • Tests
    • Case 1
      • Log in to the website.
      • Open product with “-tariff” discount code.
      • Verify text on product detail page (desktop).
      • Check the product detail page.
      • Expected result: The “+ Tariff” text is near the price displayed correctly.
      • Verify mobile version.
  38. KOD-27684: Auto generate OpenSearch Mappings and updates
  39. KOD-27683: Invoice Email Sending configuration for company addresses- Platform
  40. KOD-27687: Zooming on product images, it's using medium-sized images which appear fuzzy
  41. KOD-27688: Review URLs
  42. KOD-27691: Mapping Freight Lines
  43. KOD-27692: Substitute parts/supersedes parts
  44. KOD-27694: Update username to email on login screen
  45. KOD-27699: Indicator and Error Messaging for Mandatory Fields
  46. KOD-27710: Remove "Subscribe to Updates" form on blog post layout
    • Tests
    • Case 1
      • Check if pages that use blog-post layout don't contain “Subscribe to Updates" form.
      • Check if the layout is responsive.
  47. KOD-27713: Kitbuilder mobile responsiveness
  48. KOD-27719: KITS Serial Numbers
  49. KOD-27725: Add entityType and entityID fields to Tickets Search tab in the Operations Portal
    • Regression Tests
    • Case 1
      • Open the tickets page. Ensure that there are “Entity Type” and “Entity ID” fields in the fields select box.
      • Try to select these fields and do search/sorting.
  50. KOD-27731: Import Gift Cards
  51. KOD-27733: Flat rate shipping
  52. KOD-27738: Unhandled error page when accessing credit application as a not logged in customer
    • Regression Tests
    • Case 1
      • Validate when trying to access credit-application screen from the customer portal while logged in and the company status is “Applying For Credit”, the credit-application screen must be rendered.
    • Tests
    • Case 1
      • Validate when trying to access /credit-application screen from the customer portal while logged out , error screen must be rendered with the message “Unauthorized”.
    • Case 2
      • Validate when trying to access credit-application screen from the customer portal while logged in and the company status is not “Applying For Credit”, error page with message “Access allowed only for companies that are applying for credit“.
  53. KOD-27747: Ensure we are syncing the "Quantity Break Type" Field to the ERP
    • Regression Tests
    • Case 1
      • Make sure you can still add/change a product price.
    • Tests
    • Case 1
      • On the pricing page in the operations portal, click into a price.
      • Make sure the quantity break type is filled in.
      • Click save to the ERP button.
      • Go to the events or system events screen and look for CSDProductPrice_ResponseProductPrice (will either have Add or Change after Price) → click to preview and notice the qtybreakty is now being sent.
  54. KOD-27750: Updates to rules
  55. KOD-27762: Fix issues with shipping option selection
    • Regression Tests
    • Case 1
      • Confirm that the checkout page loads without issues, we can switch between the tabs, and we see the shipping options and totals.
    • Case 2
      • Confirm that we cannot place an order until a shipping option is selected.
    • Tests
    • Case 1
      • Once a shipping option is selected, the totals are updated. If we go back to the first tab, change the item quantity, then move to the third tab, the shipping option price is different. When clicking on the same shipping option again, the totals update accordingly, and we are then able to place the order.
  56. KOD-27764: parser line number fix for Ticket 34997
  57. KOD-27763: Sales Territory Assignment - UX to Mass Manage Sales Rep Assignment
    • Regression Tests
    • Case 1
      • Open the operations portal → Employees page.
      • Scroll to the right to see that the “Sales Territory” column does exist.
      • Go to the Data tab.
      • Scroll the table to the right, find the same “Sales Territory” column.
      • Try to edit fields in some employee rows.
      • Reload the page to see if the data was saved.
  58. KOD-27767: System
  59. KOD-27769: Install Applications
  60. KOD-27776: Invoice PO Number Not Read Created From Ticket 35050
  61. KOD-27781: Contact page showing wrong page on customer site
  62. KOD-27782: Order Items screen Product Line filter update
    • 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
      • Make sure the new Product Line filter is clickable and the filter text appears correctly on the page.
  63. KOD-27783: Update the behavior of Add Item Suggester in Purchase Orders
    • Regression Tests
    • Case 1
      • Check that the filter button is working.
      • Check that the console displays no errors when interacting with the items grid on the purchase order items pages.
      • Check that the layout on the Purchase Order > Items pages is intact.
    • Tests
    • Case 1
      • Check that the filter button on the page - purchase order items - works correctly and is similar to, for example, cash quotes items.
      • Check that the correct endpoint is called - the elements in the tooltip are displayed correctly.
  64. KOD-27785: Custom Home Page
  65. KOD-27788: Fix overlapping text in alert component
  66. KOD-27795: Product Display - Part Numbers in Description
    • Regression Tests
    • Case 1
      • Check that category screen still looks good (list/grid/catalog).
    • Case 2
      • Check that the product details page still looks good.
    • Case 3
      • Check that the first step of checkout still looks good.
    • Tests
    • Case 1
      • Navigate to the product details page.
      • If a product contains ‘C-’ at the begging of product code, you will still see part on page and no part under name.
      • If product doesn’t contain at the beginning of product code, you will still see part label and code will be with name but without the first three symbols of code.
  67. KOD-27796: Returns Functionality
  68. KOD-27801: Minimum Match Option Breaks AI Search
  69. KOD-27806: Auto-Assign Order Type (Counter Sale vs Stock Order) Based on Pickup/Delivery
  70. KOD-27807: parser from Ticket 35132
  71. KOD-27812: Parser From Ticket 35244
  72. KOD-27826: 401 error when installing Application via bitbucket repository using Atlassian API token
    • Regression Tests
    • Case 1
      • Go to the applications screen in the operations portal.
      • Click the Install > V2 option.
      • Everything should load fine without issues.
    • Case 2
      • Go to the Hosts screen and click Add Host.
      • Everything should load fine without issues.
    • Tests
    • Case 1
      • In both previous modals, there should be a new dropdown ‘authentication type’
      • It should contain two options, Repository Access Token and User API Key.
      • If you select the repo access token, it should display a single field below the dropdown for the API key.
      • If you select the User API Key, it should display two different inputs.
      • One for User Email and one for User API Token
  73. KOD-27808: Migrate to new Jira APIs
  74. KOD-27837: 500 Status Error happens when user tries to add a second kit to the cart
  75. KOD-27851: OA: Incorrect Subtotal and Missing "Placed By" on Email-Generated Order Confirmations
  76. KOD-27869: Parser Fix From Ticket 35244