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
January 22, 2026 release notes
Tickets
- 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.
- KOD-28074: logic rules and actions
- KOD-28416: Allow pickup orders to be sourced
- KOD-28638: Check Supporting Messaging by Host
- KOD-28678: API Call for Price Issue investigation
- KOD-28820: Click to pay email Created From Ticket 42018
- 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.
- KOD-28988: Kodaris Dev Examples: Additional category examples
- KOD-29201: Kodaris - Update Default Store Input in Customer Portal
- KOD-29225: PIM Enrichment Script
- KOD-29280: Test Site Showing Up on Google
- KOD-29284: Payment on Order
- KOD-29294: AR Lockbox update - Details
- KOD-29325: Create Custom Heading Block
- 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.
- KOD-29342: Add UX for making the shipto default on the user level
- 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
- 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.
- 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.
- KOD-29381: Create Business Event when Pushing Orders to ERP
- Regression Tests
- Case 1
- Check if the order releases to ERP successfully.
- KOD-29383: Implementation - Next Steps
- 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).
- 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.
- KOD-29446: Move INFORCSD settings to be type INFOR
- KOD-29468: Update credit card error messaging
- 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.
- Case 1
- For Search page:
- Attributes should be accessible on each product within UX code.
- Case 2
- 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] $.
- KOD-29494: Kodaris - Digital Payment Application - Follow-up
- KOD-29512: Implementation - Install Applications
- KOD-29526: OA - Upgrade Parser
- KOD-29527: Dynamic Contracting / Quote parser
- 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:
- KOD-29552: Product Configurator - Create a short help video
- KOD-29554: Update repo to also allow managing company catalogs for users with "companyCatalogEdit"
- 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.
- KOD-29559: Implementation - Install Applications
- KOD-29558: Implementation - System
- 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.
- KOD-29571: Payment Update
- KOD-29573: Model lookup - Upload new data
- 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.
- KOD-29582: Fix Release tickets screen
- KOD-29585: Update Configuration
- KOD-29587: Add new tag 'New Lower Price'
- 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.
- KOD-29595: Processing Inquiry-Shipping & Taxes
- 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).
- KOD-29597: Add draft page CRUD endpoints in Intranet Page
- 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
- 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.
- KOD-29602: Customers selecting Pickup from one store, but order is created for different store
- 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.”
- KOD-29626: Implementation - Showing Up on Google
- 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).
- 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).
- KOD-29651: Update Storage
- KOD-29856: Payments - A standalone refund (Credit) Transaction