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
February 19, 2026 release notes
Tickets
- KOD-28883: order sourcing flow to go directly to ERPs
- KOD-29113: Add links to the footer
- Regression Tests
- Case 1
- Check that the footer still looks good.
- Tests
- Case 1
- Check that you can see a new option in the footer, called “Your Privacy Choices”.
- KOD-29386: Product Search Updates for Catalogs
- KOD-29555: Transaction Detail On Invoices from CSD
- KOD-29607: Document Automation UX V2
- Case 1
- Navigate to vendor/company detail pages.
- Load vendor/company with existing plain text script (no adapter ID) - field shows plain text.
- Edit and save plain text - still works correctly.
- Vendor Detail page - all other fields and buttons work normally.
- Company Detail page - employee assignments, brands, terms still functional.
- Case 1
- Verify that the adapter autocomplete loads results on focus and filters correctly when typing.
- Pre-conditions (Create some adapters in the database).
- Navigate to the Vendor Detail page.
- Click on the "Invoice Adapter" input field (focus).
- Observe the autocomplete dropdown.
- Type text into the field.
- Observe filtered results.
- Case 2
- Navigate to the Company Detail page.
- Click on the "Order Adapter" field and select Adapter from the dropdown.
- Check the "Order Adapter" field.
- Expected Results :
- After selection, orderAdapterID setting is saved with the adapter's ruleID.
- After reloading, the field displays "Standard Order Adapter" (loaded from orderAdapterID ).
- Case 3
- Navigate to the Vendor Detail page with the existing Invoice Adapter configured.
- Clear the "Invoice Adapter" input field (delete all text).
- Click outside the field (blur event).
- Reload the page.
- Check the "Invoice Adapter" field and database settings.
- Expected Results :
- After clearing and blur, both invoiceAdapterID and vendorAPUploadScript settings are cleared
- After reload, the field is empty.
- No adapter is displayed.
- KOD-29609: HostCode missing on Deposit on Accounts
- Case 1
- Deposit Payment with CC.
- hostCode should be stamped on a Payment record from a Company.
- Company host:
- Make a Deposit payment with CC:
- Check Accounts Receivable screen - “Host Code“ stamped on a new record.
- Case 2
- Deposit Payment with ACH.
- hostCode should be stamped on a Payment record from a Company.
- Check Accounts Receivable screen - “Host Code“ stamped on a new record.
- KOD-29611: Order / Invoice Documents
- KOD-29646: Message not Showing at Checkout
- KOD-29664: Implementation - Exempt
- KOD-29711: Online Payment Percentage - Update calculation values to remove internal customers
- KOD-29736: Freight Charges not showing on Kodaris Order Acknowledgement
- Tests
- Case 1
- For this test, go to the Customer Portal - Orders screen - Order Details screen.
- You can use the order mentioned in the ticket description.
- Check that the Freight charges are being displayed on the order template.
- Case 2
- For this test, create a Cash Quote and add a Shipping charge in the operations portal.
- Release the order to CSD and check that the addon is being sent correctly in the request payload and also returned and applied correctly too.
- KOD-29752: Invoice Number Mapping
- KOD-29758: Kodaris - Return Custom Fields for Company/Ticket to be able to show them in Data grid
- Regression Tests
- Make sure settings those settings have blank values:
- integrationIndexedCompanyFields,
- integrationIndexedTicketField ,
- integrationIndexedProductFields
- Case 1
- Go to Companies → File → Import → Create Update → Select this file regresion_test_company_import.csv
- Go to Scheduler → find FiveMinuteBulkJobsJob and run it (click on running person icon).
- Go back to Companies and verify the company created.
- Case 2
- Company Data Grid without custom fields setting.
- Go to Companies → Data tab.
- Make sure there are companies and they are displayed correctly.
- Case 3
- Company details without custom fields setting.
- Open details of the created company and verify that it works.
- Case 4
- Company Data export without custom fields setting.
- Go to Companies → File → Export → Save.
- Open the saved file and verify that export works.
- Case 5
- Company export from Search tab.
- Go to Companies → Search tab → Wait till the created company appears there → Export csv → Save.
- Open the saved file and verify that export works.
- Case 6
- Ticket import without custom fields.
- Go to Tickets → File → Import → Create Update → Select this file regresion_test_ticket_import.csv
- Go to Scheduler → find FiveMinuteBulkJobsJob and run it (click on running person icon).
- Go back to Tickets and verify tickets created.
- Case 7
- Ticket Data Grid without custom fields setting.
- Go to Tickets → Data tab.
- Make sure there are tickets and they are displayed correctly.
- Case 8
- Ticket details without custom fields setting.
- Open details of the created ticket and verify that it works.
- Case 9
- Ticket Data export without custom fields setting.
- Go to Tickets → File → Export → Save.
- Open the saved file and verify that export works.
- Case 10
- Ticket export from Search tab.
- Go to Tickets → Search tab → Wait till the created ticket appears there → Export csv → Save.
- Open the saved file and verify that export works.
- Delete created ticket and company.
- Case 11
- Product export without settingCodesToReturn.
- Go to Products → File → Export → Save.
- Open the saved file and verify that export works.
- Case 12
- Product NDJSON export without settingCodesToReturn
- In Swagger: POST /api/system/product/export?fileName=test.ndjson isSolrSearch=false exportAsNdjson=true
- Body:
- {}
- Open the saved file and verify that export works.
- Tests
- Go to Settings → Search for integrationIndexedCompanyFields ->Paste this JSON into its value:
- [{"settingCode": "companysize", "settingName": "Company Size", "isIndexed": true, "solrField": "custom_companySize"}, {"settingCode": "erp", "settingName": "ERP", "isIndexed": true, "solrField": "custom_erp"}]
- Search for integrationIndexedTicketFields ->Paste this JSON into its value:
- [
- {
- "settingCode": "ticketpriority",
- "settingName": "Ticket Priority",
- "isIndexed": true,
- "solrField": "custom_ticketpriority"
- }
- ]
- Refresh page.
- Case 1
- Company import with custom_ prefix.
- Go to Companies → File → Import → Create Update → Select this file test_company_import.csv.
- Go to Scheduler → find FiveMinuteBulkJobsJob and run it (click on running person icon).
- Go back to Companies and verify the company created.
- Open details of the created company → Go to the Custom Fields tab and verify that fields are not blank.
- Don’t delete the created company.
- Case 2
- Company Data Grid with custom fields settings.
- Go to Companies → Data tab.
- Make sure there are companies and they are displayed correctly.
- Case 3
- Company import null removes setting.
- Go to Companies → File → Import → Create Update → Select this file test_null_company_import.csv.
- Go to Scheduler → find FiveMinuteBulkJobsJob and run it (click on running person icon).
- Go back to Companies and open details of existing companies → Go to Custom Fields tab and verify that “Company size” field is blank and the “ERP“ field is not.
- Case 4
- Company Data export includes custom fields.
- Go to Companies → Data → File → Export → Save.
- Open saved file and verify that export works and there are columns with “custom_” prefix:
- "custom_companysize"
- "custom_erp"
- Case 5
- Ticket import with custom_ prefix.
- Go to Tickets → File → Import → Create Update → Select this file test_ticket_import.csv.
- Go to Scheduler → find FiveMinuteBulkJobsJob and run it (click on running person icon).
- Go back to Tickets and verify ticket is created.
- Open details of created ticket → Go to Custom Fields tab and verify that the field is not blank.
- Don’t delete the created ticket.
- Case 6
- Ticket Data Grid with custom fields setting.
- Go to theTickets screen → Data tab.
- Make sure there are tickets and they are displayed correctly.
- Case 7
- Ticket import null removes setting.
- Go to Tickets → File → Import → Create Update → Select this file test_null_ticket_import.csv.
- Go to Scheduler → find FiveMinuteBulkJobsJob and run it (click on running person icon).
- Go back to Tickets and open details of existing tickets → Go to Custom Fields tab and verify that the field is blank now.
- Case 8
- Ticket Data export includes custom fields.
- Go to Tickets → File → Export → Save.
- Open the saved file and verify that the export works and there is "custom_ticketpriority" column.
- Case 9
- Company export with settingCodesToReturn.
- In Swagger: POST /api/system/company/export?fileName=test.csv isSolrSearch=false
- Body:
- {"fieldsToReturn": ["code", "companyName"], "settingCodesToReturn": ["erp"]}
- Verify CSV contains a custom_erp column with correct values.
- Case 10
- Company export settingCodesToReturn overrides empty JSON setting.
- Clear integrationIndexedCompanyFields setting value.
- In Swagger: POST /api/system/company/export?fileName=test.csv isSolrSearch=false
- Body:
- {"fieldsToReturn": ["code", "companyName"], "settingCodesToReturn": ["erp"]}
- Verify CSV contains a custom_erp column even though the JSON setting is empty.
- Restore integrationIndexedCompanyFields setting after test.
- Case 11
- Company export falls back to JSON definition when settingCodesToReturn is empty
- Ensure integrationIndexedCompanyFields setting has value.
- In Swagger: POST /api/system/company/export?fileName=test.csv isSolrSearch=false
- Body:
- {"fieldsToReturn": ["code", "companyName"]}
- Verify CSV still contains a custom_companysize and custom_erp columns (fallback to JSON definition).
- Case 12
- Ticket export with settingCodesToReturn.
- In Swagger: POST /api/system/ticket/export?fileName=test.csv isSolrSearch=false
- Body:
- {"fieldsToReturn": ["code", "title"], "settingCodesToReturn": ["ticketpriority"]}
- Verify CSV contains a custom_ticketpriority column with correct values.
- Case 13
- Ticket NDJSON export with settingCodesToReturn.
- In Swagger: POST api/system/ticket/exportAsNdjson?fileName=test.ndjson
- Body:
- {"settingCodesToReturn": ["ticketpriority"]}
- Verify NDJSON output contains a custom_ticketpriority field with correct value.
- KOD-29772: Kodaris (Automation) - Add menu item - “Logs”
- Regression Tests
- Case 1
- Ensure that the other menu items are functioning correctly.
- Ensure that navigation between pages is functioning correctly.
- Ensure that breadcrumbs are displayed correctly on all pages.
- Tests
- Case 1
- Ensure that the logs are displayed on the “/logs” page.
- Ensure that the “Pause” button stops the log stream.
- Ensure that the “Resume” button resumes the stream.
- Make sure that the “Clear” button clears the editor.
- Make sure that “Stop Tailing” disables auto-scrolling.
- Make sure that “Start Tailing” enables auto-scrolling.
- Make sure that auto-scrolling is disabled when scrolling up.
- KOD-29821: Add ability to set several Payment Flows
- KOD-29835: Implementation - Price Display
- Regression Tests
- Case 1
- Check that the product detail page still works as expected without issues.
- Tests
- Case 1
- We’ve added logic for displaying retail price on product pages.
- It should display based on the following logic:
- Guest User
- Whether the displayRetailPriceOnProductPage setting is populated or not, the retail price never displays on the product detail page.
- Logged in User:
- If the setting is populated with a field name.
- And if a sku for your product has that field populated (and is greater than 0).
- Retail price will display on the PDP.
- KOD-29844: Allow Company Group Price Books
- KOD-29870: Make an update to close the previous error snackbar before showing the next one
- Regression Tests
- Case 1
- Confirm that the snackbar message is displayed correctly.
- Tests
- Case 1
- Confirm that when a new snackbar message appears, the previous one closes automatically.
- KOD-29880: Text link pop up modal - Like on people block
- Regression Tests
- Case 1
- For this test, go to the operations portal and log in.
- Go to the Pages screen and open one of the pages in editor mode.
- Make sure nothing breaks in general and the preexisting blocks load just fine.
- Case 2
- Still in the editor mode of a page, try adding new blocks. Make sure editing the fields, saving and previewing works fine.
- Tests
- Case 1
- Still on the editor mode like in the regression test cases, we will look for our new CMS block: CM: Section: Text Modal and add it to the page.
- Make sure nothing breaks.
- You should be able to replace the placeholder text, change the color of it, add a Title heading and a text paragraph.
- Save and make sure nothing breaks.
- Case 2
- After saving your CMS block, click on Preview and make sure nothing breaks.
- You should see a link of the same color and with the same text you edited previously.
- Clicking on the link should open a modal with the Heading and Text you added in the editor mode.
- Make sure it looks good and that clicking outside of the modal closes it.
- Go back to the editor mode and delete the Title.
- The modal should still look okay in the preview.
- Also, test adding enough text so the scroll functionality also works fine.
- Edge case: adding a lot of text in the heading would make it look bad and scroll won’t work properly, but this shouldn’t be how the user uses this and the CMS block we based this one off of also has the same behavior.
- KOD-29887: Implementation - Shipping Charge
- KOD-29889: Add MRO Guide question and user's language to the post order survey analytics
- KOD-29893: Customer Portal
- KOD-29904: Reviewing Products Missing Required Attributes
- Case 1
- Test Required Attributes Assignment tab for Category works as expected. Filters work as expected.
- Tests
- Case 1
- Test new endpoint: POST /api/system/category/refreshProductsWithMissingAttributesCounts
- Which should refresh each category missing attributes count.
- You can check the counter when listing Category in the operations portal (Data or Search screen): see newly added field productsWithMissingAttributesCount - Returned only by the endpoint for now.
- Case 2
- Test new endpoint: POST /api/system/category/{categoryID}/refreshProductsWithMissingAttributesCounts
- Which should refresh specified category missing attributes count.
- You can check the counter when listing this Category (or view category details) in the operations portal (Data or Search screen), see newly added field productsWithMissingAttributesCount.
- KOD-29911: Kodaris - (Automation App) Update the inline interceptors screen
- Regression Tests
- Case 1
- Verify that the Interceptors page still loads and displays data.
- Verify that the Edit button on the Interceptors page leads to the correct URL.
- Tests
- Case 1
- Verify that the table displays the same columns as the Interceptor screen: Code, Name, Active, Created, Last Modified, Actions.
- Verify that the Add Inline Interceptor button leads to /inline-interceptors/new.
- Verify that the Edit button leads to /inline-interceptors/{ruleID}
- KOD-29913: Setup base search rules
- KOD-29916: Link System Events to the Order
- Tests
- Case 1
- System events for Pay_Order should be linked to and should now be linked to an order, unlike it is shown on in the ticket description.
- KOD-29920: Update search to support spaces when generating PDF files/sending emails
- Regression Tests
- Case 1
- Verify that template search on email/pdf popups still works fine.
- List of places that need to be tested in comments section.
- Tests
- Case 1
- Verify that template search using name of template on email/pdf popups works fine.
- List of places that need to be tested in the comments section.
- KOD-29925: Trigger business events for rule engine from jobs
- KOD-29926: Footer email address removal
- Case 1
- Make sure the footer looks correct.
- Tests
- Case 1
- Make sure that the email address has been removed from the footer.
- KOD-29928: Import Remaining Attributes
- KOD-29939: Remove Latin from Search Debugger + Update Actions links
- Regression Tests
- Case 1
- Make sure your employee has the searchDebug role and log into the operations portal.
- On the commerce site, while searching or going directly to a category, make sure the search score is at the bottom of the tile, the inspect button still works to open the inspector, and all the tabs on the search inspector still work.
- Tests
- Case 1
- On the debug tab, notice there is no more latin under the debug header
- Case 2
- Under the Actions button, the ‘Open product in operations portal’ should take you to that product in the operations portal, ‘Open search tools’ should take you to the search rules in the operations portal, and ‘Open search documentation’ should take you to the documentation on the search debugger.
- KOD-29940: Search discrepancy between English and French search after the update to AI search
- KOD-29945: Implementation - Translation Issues
- KOD-29955: Implementation-Parser
- KOD-29961: Implementation - Configure Customer Portal
- KOD-29960: Implementation - Branding
- KOD-29962: Implementation - Countries / States
- KOD-29967: Implementation - Countries / States
- KOD-29969: Implementation - Configure Customer Portal
- KOD-29975: Required Attribute Assignment - Filtering Bug
- Regression Tests
- Case 1
- Ensure that on the screen -> “Categories / Search / Category name” -> “Required Attribute Assignment” tab -> the empty and not empty filters are functioning correctly.
- Tests
- Case 1
- Ensure that on the screen -> “Categories / Search / Category name” -> “Required Attribute Assignment” tab for fg_* fields, you can open the filter and select “Not empty” and after selecting “Not empty”, clearing the filter and opening the filter menu to select ‘Empty’, make sure that when you select this option and click “Apply”, the filter works correctly.
- KOD-29980: Implementation - Configure Customer Portal
- KOD-29979: Implementation - Countries / States