All Releases
February 19, 2026 February 12, 2026 January 22, 2026 February 5, 2026 January 29, 2026 January 15, 2026 January 8, 2026 January 1, 2026 December 25, 2025 December 18, 2025 December 11, 2025 December 4, 2025 November 27, 2025 November 20, 2025 November 13, 2025 November 6, 2025 October 30, 2025 October 23, 2025 October 16, 2025 October 9, 2025 October 2, 2025 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

January 22, 2026 release notes

Tickets

  1. KOD-27285: Product Restrictions for Specific Customers
    • Regression Tests
    • Case 1
      • All of the previously added tags should still be displayed in correct scenarios (Clearance, New lower price, etc). Products that are not proprietary don’t have this new tag, and the price is shown for them. Non proprietary products can be added to the cart and saved lists.
    • Tests
    • Case 1
      • Proprietary products will have a mapPrice set to true. This will handle the guest logic. When the user is logged in - we check for that and also if the user does not have contract pricing for this product.
    • Case 2
      • Proprietary products should now have a tag on them. Tag should be translatable and visible on all product views (list, search, details pages as well as sliders) They can not be added to the cart and saved lists. The wording on the tag should be different for guest and logged in customers:
      • Pre-log in
      • Label Verbiage: Sign in for price.
      • Infotip Verbiage: This product is available to authorized customers only. Please sign in to view the price.
      • Post-log in (unauthorized customers).
      • Label Verbiage: Pricing unavailable
      • Infotip Verbiage: This product is available to authorized customers only. If you believe you are seeing this message in error, please contact customer service.
    • Case 3
      • We also need to test the case where the product is proprietary but the customer has contract pricing for the product, so they can add it to the cart and purchase it.
  2. KOD-28074: logic rules and actions
  3. KOD-28416: Allow pickup orders to be sourced
  4. KOD-28638: Check Supporting Messaging by Host
  5. KOD-28678: API Call for Price Issue investigation
  6. KOD-28820: Click to pay email Created From Ticket 42018
  7. KOD-28860: Add additional charges to search screen
    • Regression Tests
    • Case 1
      • Create a new order with items (no discounts). Run OpenSearchIndexerJob and check that that order is indexed. Check the search endpoints in opensearch to verify that the order and orderitem data is showing up correctly.
      • Check the order search screen to make sure everything is still populated.
    • Case 2
      • Update order item on order and check that order.lastModified was updated. do the same for adding order item to order and deleting order item from order.
    • Case 3
      • Delete order removes items from OpenSearch.
      • Index an order with items2. Verify items exist in OpenSearch3. delete order 4. Search for items by orderID.
    • Tests
    • Case 1
      • Create a new order and add discounts. Run OpenSearchIndexerJob and check that that order is indexed. Check the search endpoint in opensearch to verify that the discount data is showing up correctly.
    • Case 2
      • Update order discount on order and check that order.lastModified was updated. do the same for adding orderDiscount to order and deleting orderDiscount from order.
    • Case 3
      • Delete order removes discounts from OpenSearch.
      • Index an order with discounts2. Verify discounts exist in OpenSearch3. delete order 4. Search for discounts by orderID.
  8. KOD-28988: Kodaris Dev Examples: Additional category examples
  9. KOD-29201: Kodaris - Update Default Store Input in Customer Portal
  10. KOD-29225: PIM Enrichment Script
  11. KOD-29280: Test Site Showing Up on Google
  12. KOD-29284: Payment on Order
  13. KOD-29294: AR Lockbox update - Details
  14. KOD-29325: Create Custom Heading Block
    • Regression Tests
    • Case 1
      • Confirm that the page editor with the Custom Heading loads without any issues.
    • Case 2
      • Confirm that the page editor can be saved and Custom Heading visible on the screen for desktop, tablet, mobile with different font-size.
    • Tests
    • Case 1
      • Confirm that user can text font size on sections:
      • Style for Desktop.
      • Style for Tablet.
      • Style for Phone.
      • and this value can be saved.
  15. KOD-29342: Add UX for making the shipto default on the user level
    • Regression Tests
    • Case 1
      • Log in. In the header, check the shipping address.
      • If a shipping address was previously selected, it should be displayed; otherwise, "Default location" should be shown,
    • Case 2
      • Click on the shipping address in the header.
      • Confirm that the panel with the list of locations opens.
    • Case 3
      • Open the shipping address panel.
      • Type a valid location name in the search input.
      • Submit by clicking the search button or pressing Enter.
      • Confirm that the locations are filtered correctly.
    • Case 4
      • Open the shipping address panel.
      • Type an invalid location name in the search input and submit.
      • Confirm that "No locations found" is displayed.
    • Case 5
      • Open the shipping address panel.
      • Click Cancel.
      • Confirm that the panel is closed.
    • Tests
    • Case 1
      • Click on the shipping address in the header.
      • Confirm that for a location that is not selected, both buttons "Select Shipto" and "Set as Default" are active (filled with color).
      • For the currently selected location, confirm that the "Shipto Selected" button is inactive (only border with text).
    • Case 2
      • Click "Select Shipto" for a location.
      • Confirm that the previously selected location now has the "Select Shipto" button active, and the newly selected location has the "Shipto Selected" button inactive.
    • Case 3
      • Click "Set as Default".
      • Confirm that both "Select Shipto" and "Set as Default" buttons for this location become inactive, and the previously selected locations have both buttons active.
    • Case 4
      • Confirm that changing "Select Shipto" updates only one button for the current location, and changing "Set as Default" updates both buttons for the current location.
    • Case 5
      • Confirm that clicking any inactive button does nothing.
    • Case 6
      • Click "Select Shipto" for any location and save.
      • Confirm that the page reloads, and the selected value is updated in the header and in the panel.
    • Case 7
      • Click "Set as Default" for any location and save.
      • Confirm that the page reloads, the value is updated, and the changes are reflected in the header and the panel.
    • Case 8
      • Select another location and click Cancel. Confirm that the panel closes and no changes are made.
    • Case 9
      • Select different locations as "Selected" and as "Default", then click Save.
      • Open the shipping address panel and confirm that the changes are applied correctly for both locations.
      • Place an order, logout, and log in again.
      • Confirm that after placing the order and logging in, the same location is currently selected and set as default.
    • Case 10
      • Open DevTools, click the 'Toggle Device Toolbar' icon, and test different layout widths.
      • Confirm that the buttons are displayed in a column only on mobile layout.
  16. KOD-29366: Make uploadOrderDocumentByExternalOrderNumber API endpoint
    • Regression Tests
    • Case 1
      • Ensure pictures are properly uploaded n orders.
      • To test without mobile app, do swagger testing:
      • /api/system/customerFile/uploadOrderDocumentByExternalOrderNumber
      • Get the order (or set) with extra5 value. This is an external order number.
      • Upload any picture via endpoint with externalOrderNumber equal to extra5.
  17. KOD-29381: Create Business Event when Pushing Orders to ERP
    • Regression Tests
    • Case 1
      • Check if the order releases to ERP successfully.
  18. KOD-29383: Implementation - Next Steps
  19. KOD-29391: UPS dimensional weight and cartonization issue
    • Tests
    • Case 1
      • Add (12×6×6 in, 5 lbs each) to cart.
      • Proceed to checkout as guest/consumer.
      • Go to the logs.
      • Verify Total volume to pack: XXXXX cu.in., total weight: 250.0 lbs appears.
      • Verify Smart box selection: avg weight 5.0 lbs, max items by weight: 10 appears
      • Verify Packed 50 items into X boxes where X is around 5-7 (not 25).
      • Verify each box weight is close to 50 lbs (not 20 lbs).
  20. KOD-29432: Credit Card Customers Need to See Taxes Calculated at Checkout
    • Regression Tests
    • Case 1
      • Let’s navigate to the checkout page.
      • Customer can’t pay by card. We see just subtotal field.
      • We can switch between shipping options and can place the order without additional javascript errors.
    • Tests
    • Case 1
      • Navigate to the '/checkout' page.
      • Make sure that Customer can pay by card and we can use credit card form.
      • In this case we have additional fields on the right. (Shipping, Estimated Tax, Grand Total).
    • Case 1
      • Navigate to the '/checkout' page.
      • Make sure that the Customer can’t pay by card and we not see credit card form.
      • In this case we not see Shipping, Estimated Tax, Grand Total sections.
  21. KOD-29446: Move INFORCSD settings to be type INFOR
  22. KOD-29468: Update credit card error messaging
  23. KOD-29474: kd.productService - Attributes not in scope on catalog pages
    • Regression Tests
      • Case 1
      • Ensure that the search page is loading properly.
      • Ensure search like “*” works properly.
    • Case 2
      • Ensure that the category page is loading properly.
    • Case 3
      • Ensure that company group catalogs are loading correctly.
    • Case 4
      • Ensure category productAttributes are retrieved correctly via /api/user/category/** endpoint.
      • Since you might not have access to a mobile app, you may want to test it in different way.
      • Currently, Swagger is not working for this endpoint, so you will need to curl request in your terminal.
      • Example of curl request:
      • curl -X 'GET' \
      • '/api/user/category/accessories?includeFilters=true includeAttributes=true' \
      • -H 'accept: application/json'
      • Change host from localhost:8080 to yours host.
    • Case 5
      • Ensure wild card search still works with search tuning.
    • Tests
    • Case 1
    • For Search page:
      • Attributes should be accessible on each product within UX code.
    • Case 2
      • For Catalog page:
      • Attributes should be accessible on each product within UX code.
    • Case 3
      • For Company Group catalogs page:
      • Attributes should be accessible on each product within UX code.
      • Case 4
      • For search page with wildcard search rules applied:
      • Attributes should be accessible on each product within UX code.
      • Query used in video: ^ [A-Za-z] - [A-Za-z] $.
  24. KOD-29494: Kodaris - Digital Payment Application - Follow-up
  25. KOD-29512: Implementation - Install Applications
  26. KOD-29526: OA - Upgrade Parser
  27. KOD-29527: Dynamic Contracting / Quote parser
  28. KOD-29540: Show Totals/Not Line Item Price
    • Tests
    • Case 1
      • We’ve added two templates: WrappedOrderPDFWithoutPricing-EJS.
      • Check that on next pages emails and pdfs looks good and not showing line items price:
        • Orders
        • Quotes
  29. KOD-29552: Product Configurator - Create a short help video
  30. KOD-29554: Update repo to also allow managing company catalogs for users with "companyCatalogEdit"
  31. KOD-29557: Cookie Banner Wording Update
    • Regression Tests
    • Case 1
      • Check that the page layout appears correctly when you first log in to the site (with clear cookies).
      • Check that the cookie banner appears when you first log in on the website.
      • Check that the cookie banner does not appear when you accept/decline cookies.
      • Check that there are no errors in the console.
    • Tests
    • Case 1
      • Check that the Cookie banner text is corrected taking into account the edits in the image below.
  32. KOD-29559: Implementation - Install Applications
  33. KOD-29558: Implementation - System
  34. KOD-29562: Associated orders note not translating
    • Regression Tests
    • Case 1
      • In the customer portal, make sure the order details page still loads and if there are associated orders, make sure the banner still shows as well.
    • Tests
    • Case 1
      • Make sure the associated orders banner on the order details page is now translatable.
      • The translation is broken into 2 parts: First message is To view associated orders, please click the Associated Orders button above or click this.
  35. KOD-29571: Payment Update
  36. KOD-29573: Model lookup - Upload new data
  37. KOD-29579: Replatform - B2C orders not mapping to account
    • Regression Tests
    • Case 1
      • Confirm that when placing an order under a regular customer account and clicking the Release to ERP button, the order is successfully sent to the ERP and no consumer related logs appear in the logs.
    • Tests
    • Case 1
      • Confirm that when placing an order under a consumer account (as shown in the video on how to obtain such an account) and clicking the Release to ERP button, the order is successfully sent to the ERP and the logs indicate that this is a consumer company, with the consumer custNo matching the value configured in defaultConsumerCompanyCode (global setting or you can find in the Developer Fields under the host detail page).
    • Case 2
      • Confirm that regardless of which account is used to place the order, the customerId always starts with the configured inforCono and ends with custNo.
  38. KOD-29582: Fix Release tickets screen
  39. KOD-29585: Update Configuration
  40. KOD-29587: Add new tag 'New Lower Price'
  41. KOD-29589: Kodaris - Add Knowledge Base menu choices for customer and internal FAQs page
    • Regression Tests
    • Case 1
      • Log in to the Operations Portal.
      • Navigate to various menu groups (CMS, Marketing, Operations, System).
      • Open 3-4 different pages.
      • Perform basic actions (view lists, open detail pages, search).
      • Check browser console for errors.
      • Expected Result:
      • All existing menu groups load correctly.
      • All pages navigate successfully.
      • No New JavaScript errors in console.
    • Tests
    • Case 1
      • Log in to the Operations Portal.
      • Open navigation menu (sidebar).
      • Locate new "Customer Knowledge Base" and "Employee Knowledge Base" groups.
      • Expected Result:
      • Customer Knowledge Base exists with:
      • FAQs
      • FAQ Drafts
      • Employee Knowledge Base exists with:
      • Internal FAQs
      • Intranet
      • Shared Drive
      • Both groups are positioned after CMS in the menu.
      • All navigation links work correctly.
    • Case 2
      • Verify items moved out of CMS, Operations, and standalone groups.
      • Open the navigation menu.
      • Check CMS group.
      • Check the Operations group.
      • Scroll through the entire menu for standalone groups.
      • Expected Result:
      • CMS does NOT contain: FAQs, FAQ Drafts.
      • Operations does NOT contain: Internal FAQs.
      • A separate "Intranet" group does NOT exist.
      • A separate "Shared Drive" group does NOT exist.
  42. KOD-29595: Processing Inquiry-Shipping & Taxes
  43. KOD-29596: Marketing Tracking Code
    • Regression Tests
    • Case 1
      • Verify that website layout on all pages remains intact after adding Marketing Tracking Code.
      • Verify that we don’t have any errors in the console related to Marketing Tracking Code.
    • Tests
    • Case 1
      • Confirm that Marketing Tracking Code loads on all website pages.
      • Verify that requests to MarketingTracking are sent successfully (status 200 in Network tab).
  44. KOD-29597: Add draft page CRUD endpoints in Intranet Page
    • Regression Tests
    • Case 1
      • Check regression on intranetPage side.
      • Go to intranetPage list page: /operations/intranet-pages/data
      • Try to add a new record.
      • Try to update the existing page, select some fields and update.
      • Then try to delete the page.
    • Tests
    • Case 1
      • Check new endpoints =>
      • Intranet Page Draft CRUD →
      • GET: /api/system/intranetPage/draft/{intranetPageID} - Read draft
      • GET: /api/system/intranetPage/draft/readDetails/{intranetPageID} - Read draft with details
      • POST: /api/system/intranetPage/draft - Create draft
      • POST: /api/system/intranetPage/draft/{intranetPageID} - Create draft from existing intranet page
      • PUT: /api/system/intranetPage/draft/{intranetPageID} - Update draft
      • PATCH: /api/system/intranetPage/draft/{intranetPageID} - Patch draft
      • DELETE: /api/system/intranetPage/draft/{intranetPageID}- Delete draft
      • POST: /api/system/intranetPage/draft/publish/{intranetPageID} - Publish draft
      • POST: /api/system/intranetPage/draft/list - List drafts * Intranet Page Draft Settings →
      • POST: /api/system/intranetPage/draft/{intranetPageID}/settings - Search settings
      • GET: /api/system/intranetPage/draft/{intranetPageID}/settings - List settings
      • GET: /api/system/intranetPage/draft/{intranetPageID}/setting/{code} - Read setting
      • POST: /api/system/intranetPage/draft/{intranetPageID}/setting - Create/update setting
      • PATCH: /api/system/intranetPage/draft/{intranetPageID}/setting/{code} - Patch setting
      • DELETE: /api/system/intranetPage/draft/{intranetPageID}/setting/{code} - Delete setting
  45. KOD-29599: Replatform - Ship to: Drop down options formatting Follow-up
    • Regression Tests
    • Case 1
      • Make sure the input displays a list of available values.
      • Make sure a value can be selected and that the data is saved.
      • Make sure the selected value can be changed after selection.
    • Tests
    • Case 1
      • Make sure in the cart the shipping address input list have format: Company Name, Street Address, City except One Time Only Order option.
  46. KOD-29602: Customers selecting Pickup from one store, but order is created for different store
  47. KOD-29605: Kodaris - Update the breadcrumb back from "Lead" to "Opportunity"
    • Tests
    • Case 1
      • Ensure that the breadcrumbs have been updated from “Lead” to “Opportunity.”
  48. KOD-29626: Implementation - Showing Up on Google
  49. KOD-29635: UPS Shipping - Add update for negotiated rates to UPS scripts
    • Tests
    • Case 1
      • Place an order with UPS-eligible items (guest/consumer, has dimensions, < 50 lbs).
      • Go to the logs.
      • Verify Found UPS Ground published rate: XX.XX appears.
      • Verify Found UPS Ground NEGOTIATED rate: XX.XX appears (or No negotiated rates returned for UPS Ground if not configured).
      • Verify Using effective UPS Ground rate: XX.XX (published) appears (since flag is false).
  50. KOD-29634: UPS Shipping - Create fallback to rates when products have missing dimensions
    • Tests
    • Case 1
      • Add a product with no length/width/height defined to cart.
      • Proceed to checkout as guest/consumer.
      • Go to the logs.
      • Verify Item XXXX missing dimensions (l/w/h) - will skip UPS appears.
      • Verify Skipping UPS API call - post-processor will handle fallback logic appears.
      • Verify fallback rates are applied (Local Delivery or Freight Delivery).
  51. KOD-29651: Update Storage
  52. KOD-29856: Payments - A standalone refund (Credit) Transaction