June 5, 2026
May 28, 2026
May 21, 2026
May 14, 2026
May 7, 2026
April 30, 2026
April 23, 2026
April 16, 2026
April 9, 2026
April 2, 2026
March 26, 2026
March 19, 2026
March 5, 2026
March 12, 2026
February 26, 2026
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
May 7, 2026 release notes
Tickets
- KOD-11904: Migration
- 35589: Configure - Fraud detection - Hold suspicious orders to release to ERP
- 35590: Configure - Fraud Reporting Option for ERP Order on Hold
- 43203: Configure - Product Redirect for Discontinued Items
- KOD-29306: Core Return Flow
- KOD-29627: Update credit card error messaging on website
- Regression Tests
- Case 1
- Go to the operations portal.
- Open Orders → Orders, select order for test. On the details page in the right sidebar click on the button “Request Payment”, generate email and copy “Review and Pay” link.
- Open it, check that cod payment form looks good, and there’s no broken UI.
- Case 2
- Log in as a customer on the e-commerce portal.
- Add some items to the card, and go to checkout. Check that the third checkout step looks good, no broken UI. Check that everything works as expected.
- Case 3
- Log in as a customer to the e-commerce portal.
- Add some products to the cart and go to checkout.
- On the third step, try to submit an order with an already existing card. See that the server error happens, and in the UI alert block shown at the top of the checkout page. Check that everything works as expected.
- Tests
- Case 1
- Try to submit COD payment form with the invalid card data.
- Check that the alert block appears above the payment button.
- Check responsive, to make sure that margins are looking good between the error block and payment button and other content above.
- Case 2
- Go to the ecommerce portal and log in as a customer.
- Add items to cart and proceed to checkout.
- Select Credit Card as payment method.
- Enter invalid card details in the payment iframe (e.g., wrong card number, expired date).
- Click Place Order.
- Verify: An error message appears below the card fields (inside the payment section), not at the top of the page.
- Verify: The error text is the specific message from the iframe (not a generic "something went wrong").
- Verify: The Place Order button is no longer in a loading state.
- Case 3
- Proceed to checkout with credit card selected.
- Trigger a server-side error (e.g., use a test card that passes iframe validation but is declined by the backend).
- Verify: The top-of-page alert displays the specific error message from the server response (e.g., "Card declined").
- Verify: The page scrolls to the error alert.
- Verify: The button loading state is removed.
- Case 4
- Select ACH as payment method at checkout.
- Submit with details that will cause a server error.
- Verify: The specific server error message is shown in the top alert (not a generic message).
- Verify: Button loading state is removed.
- KOD-30178: Move integration, punchout, CMS server side endpoints to separate serverside apis
- KOD-30327: Move cmsLanguage and internalFile server side endpoints to separate serverside apis
- KOD-30459: Fix pricing in UX for unitSell2 with matching unit conversion
- KOD-30728: Discounts being applied to credits
- Regression tests
- Case 1
- Confirm, discounts are applied to invoice payments regardless of disableDiscountsOnCredits setting.
- Invoice payments have invoiceAmount > 0.
- Confirm, discounts are applied to credit payments if the disableDiscountsOnCredits setting is disabled.
- Credit payments have invoiceAmount < 0.
- Confirm, short payments are still working as expected (no changes).
- Tests
- Case 1
- If setting disableDiscountsOnCredits is enabled, discounts should not be applied to credit payments.
- KOD-30734: Item History UX screen
- Regression Tests
- Case 1
- Navigate to a company catalog page with products and sidebar filters.
- Select a sidebar facet filter (e.g. Store) and verify the product list filters correctly and the chip appears.
- Click Clear All on the chips and verify all products are shown again.
- Verify the grid , list , and catalog view switcher buttons toggle views correctly.
- Navigate to a non company catalog page ( customer or group catalog) and verify the date pickers do not appear and the input search works as before.
- Tests
- Case 1
- Navigate to a company catalog page that has products with different lastPurchaseDate values.
- Type a partial product code in the search field and click Search ; verify the results are filtered and searchString appears in the URL.
- Set From to a date that excludes some products (leave To empty) and click Search ; verify products purchased before that date are excluded and lastPurchaseDateFrom appears in the URL without lastPurchaseDateTo.
- Click Clear , set To to a date that excludes some products (leave From empty) and click Search ; verify only products purchased on or before that date are shown and lastPurchaseDateTo appears in the URL without lastPurchaseDateFrom.
- Click Clear , set both From and To to the same date, click Search ; verify only products purchased on that exact date are returned.
- Expand the date range to include all products and click Search ; verify all products are returned.
- Combine a text search with both date filters and click Search ; verify results match both the text and date criteria, and all 3 params appear in the URL.
- Click Clear and verify all products are shown, fields are reset, and searchString , lastPurchaseDateFrom , lastPurchaseDateTo are removed from the URL.
- KOD-30836: PIM Category Tree Cache Eviction
- KOD-30860: UX Kodaris - Product Custom Fields Follow-up - Ability to Update on Grids
- Regression Tests
- Case 1
- Verify that product fields can be edited and saved in the grid.
- Verify that custom fields are not cleared after editing a standard field.
- Tests
- Case 1
- Verify that custom fields can be edited in the Product Data Grid.
- Verify that after editing a custom field, the value is saved and displayed after a refresh.
- Verify that users with productView or productEdit permissions can open the Custom Fields tab.
- Verify that users with productEdit permissions can edit custom fields in the Custom Fields tab.
- KOD-30884: Back arrow navigation in Shared Drive folder Follow-up
- Regression Tests
- Case 1 Folder navigation
- Click through several nested folders.
- Expected:
- URL updates to /folder/{id}
- at each step
- Breadcrumbs show full path
- Case 2 Breadcrumb navigation
- Navigate using breadcrumbs.
- Expected:
- Goes to the correct folder each time.
- Case 3 Browser Forward
- After using Back, click Forward.
- Expected: Returns to previous folder.
- Case 4 Page refresh
- Refresh (F5) on root - should stay on /all
- Enter a folder, refresh - should stay in the folder with breadcrumbs.
- Case 5 File preview and Back
- Click a file to preview.
- Click browser Back.
- Expected: Preview closes, stays in folder (not navigates away).
- Case 6 Direct link (deep link)
- Copy folder URL from address bar.
- Open new browser tab.
- Paste and navigate to the URL.
- Expected:
- Opens the correct folder.
- Breadcrumbs show the full path to the folder.
- Tests
- Case 1 Back to root stays in Shared Drive
- Navigate through several folders.
- Click Back multiple times until you reach root.
- Expected:
- Final Back returns to Shared Drive root.
- Does NOT redirect to Operations portal.
- Case 2 Sidebar expands to selected folder
- Navigate to nested folder.
- Expected:
- The sidebar tree expands to show the current folder.
- 59801: Order Confirmation Email to Punchout Users
- 59804: CRM portal request 3 - Enhancement to opportunity screen to link quotes-UX
- 59818: CRM Portal Request 2 - Update email templates to include job name-UX
- 59899: Send payment link with expiration timer
- 60110: Create New Quoting Template with Group Breakdowns
- KOD-30892: UX - Filter price book templates by catalog in Export Price List
- Regression Tests
- Case 1
- Navigate to a company catalog page that has products.
- Click Export Price List.
- Verify the price book template dropdown populates with available templates.
- Navigate to a customer group catalog page that has products.
- Click Export Price List.
- Verify the price book template dropdown populates with available templates.
- Tests
- Case 1
- Navigate to a company catalog page that has products.
- Open the browser Developer Tools and switch to the Network tab.
- Click Export Price List to trigger the template loading.
- Locate the request to /api/account/companyProductCategory/priceBookTemplates in the Network tab.
- Verify the request URL includes the query parameter companyProductCategoryID with the correct catalog ID value.
- Navigate to a customer group catalog page and repeat steps 2-5.
- Verify the companyProductCategoryID parameter is also present on the customer group catalog request.
- 60169: Cookie Consent Modal Updates - Engineering
- 60433: Kodaris - Add Customer Notes and Internal Notes to Search
- 60903: Add cookie policy popup/modal
- 60972: Order notes and Product comments by customers on orders - Engineering
- 60998: Engineering - Product Configurator Remove default selection
- 61045: COD Payment page throws error
- 61086: Update for Nonstock Flow
- 61544: Kodaris - Add New Fraud Settings to Configuration Screen
- 61562: Format Issue when Opening Custom Fields Export in Excel
- 61576: Company Name Display Enhancement - Engineering
- 61616: Catalog/Shopping List Issues
- 61675: Make Company Field Required for Opportunities
- 61792: Incorrect Inventory in Mobile App
- 61805: Add to Quote functionality in mobile app
- ENG-62839: Product Number Display in Configurator
- 62851: Company catalog product add search box search results limited to 10 issue
- ENG-62900: Add calculate button for vendor invoices
- ENG-62925: Footer & Logo Update
- 62930: Character in Blog Post template.
- 62982: Add Tax Numbers to templates
- KOD-30891: UX - Assign price book templates to catalogs in the Operations Portal
- Regression Tests
- Case 1
- Navigate to a Company Group > Catalogs tab.
- Select a catalog from the category tree.
- Verify the product grid loads with existing products.
- Use the product autocomplete to assign a product to the catalog.
- Verify the product appears in the grid.
- Delete the product and verify it is removed.
- Repeat steps 1-6 for a Company > Catalogs tab.
- Case 2
- Navigate to a Company Group > Catalogs tab.
- Create a new catalog.
- Verify the new catalog appears.
- Select the new catalog and edit its name.
- Verify the updated name is reflected.
- Delete the catalog and verify it is removed.
- Repeat steps 1-6 for a Company > Catalogs tab.
- Case 3
- Navigate to Company Templates and select a template.
- Verify the Details, Content, Header, and Footer tabs all load correctly.
- Make an edit on the Details tab and verify it saves.
- Tests
- Case 1
- Navigate to a Company Group that has catalogs with assigned templates.
- Click the Price Book Templates tab.
- Verify the category tree loads on the left sidebar and the first category is auto-selected.
- Select a catalog from the category tree.
- Verify the grid shows only templates explicitly assigned to that catalog (not all/generic templates).
- Verify sorting by column headers, and column filtering work correctly.
- Use the + Assign template autocomplete in the grid footer to search for and select a template.
- Verify the assigned template appears in the grid.
- Select the newly assigned template row and delete it.
- Verify the template is removed from the grid.
- Case 2
- Navigate to a Company that has catalogs with assigned templates.
- Click the Price Book Templates tab.
- Select a catalog from the category tree.
- Verify the grid shows only templates explicitly assigned to that catalog.
- Use the + Assign template autocomplete to assign a template, then delete it.
- Verify the template appears after assignment and disappears after deletion.
- Case 3
- Navigate to a Company Group > Catalogs tab.
- Select a catalog.
- Click Generate Price Book.
- Verify the template dropdown shows templates relevant to the selected catalog (assigned + global/unlinked templates).
- Close the dialog, then click Generate Price Book for All.
- Verify the template dropdown shows the same relevant templates.
- Repeat steps 1-4 for a Company > Catalogs tab.
- Case 4
- Navigate to Company Templates and select a template that has catalogs assigned.
- Click the Catalogs tab.
- Verify the grid loads and shows linked catalogs with code, name, and active columns.
- Verify additional columns are available via the column picker.
- Select a catalog row and delete it.
- Verify the catalog is removed from the grid.
- Go to the Price Book Templates tab on the corresponding company/group, re-assign the template to the catalog.
- Return to the Company Templates > Catalogs tab and verify the catalog appears again.
- Case 5
- Navigate to Company Templates and click Add.
- Verify the "Assign To" dropdown defaults to "Global".
- Change "Assign To" to "Company" and verify the Company autocomplete appears.
- Select a Company, then switch "Assign To" to "Customer Group".
- Verify the Company autocomplete is replaced by the Customer Group autocomplete.
- Switch "Assign To" back to "Global" and verify no autocomplete is shown.
- Fill in required fields with all 3 “Assign To” and verify the templates are created using the correct endpoint.
- ENG-63338: Amount tendered in CSD is greater than the order total because shipping doesn't shown up.
- ENG-63400: Support XLSX,XLS,CSV,TSV files in the Document Automation Studio
- ENG-63424: Terms Checkbox & Email Template Fix
- 63459: Display Request a Quote Always
- ENG-63507: Implementation - Line Items notes
- ENG-63510: Updates to FAQ page in the operations portal
- 63638: Kodaris - Update User Search Content Page Endpoint to Support Multilingual FAQ Translation
- ENG-63727: Kodaris - Allow Import punchout user with parent relationship
- 63729: Kodaris - To add ability organized FAQ page by category
- ENG-63789: Add ability to select transaction account when creating a consumer company
- ENG-63945: Allow Deletion of Leads
- ENG-63946: Allow Deletion of Internal Files on Leads
- 63985: Configure - Generate a statement template
- 64029: Configure - Generate a statement mailer template
- 64226: Add Event for Consumer Registration Flow
- ENG-64269: Recently Purchased Orders "Last Modified" issue
- 64284: Request a Quote missing
- 64302: Implementation - Install Applications
- ENG-64515: Deprecate order discrepancies v1 in favor of v2 automation engine discrepancies
- ENG-64737: Fix state code validation on the company detail screen
- 65119: Customer Part Number Upload and Line Item Aggregation
- ENG-65346: Fix Company and Ship-To selectors on mobile view
- ENG-65415: Kodaris - Apply companyType != vendor on company searches
- ENG-65442: Allow user to define rule type based on trigger in the automation engine
- ENG-65447: Company Sync Integration
- ENG-65448: Add ERP Logic Integrator
- ENG-65661: Template Updates for Public Pricing Launch
- ENG-65741: Update import export app run export logic
- ENG-65792: Add enable/disable emails for form submissions with custom setting
- ENG-65937: Vertex Tax Integration: Support V2
- ENG-65998: Will Call Option Updates
- ENG-66047: New pricecalcs api
- 66216: Catalog enhancement - Add Price Unit to company catalog creation flow
- ENG-66225: Kodaris - Remove column in price book no matter the user
- ENG-66408: Add Actions button to Catalog pages and UI Improvements
- 66512: Vendor Invoices - Round web whole unit price to 5 decimals instead of two
- ENG-66559: Inventory Negative Number Update
- ENG-66560: Remove projectManager role from location/budget endpoints and add fine-grained budget roles
- ENG-66561: Add enableTaxesByJurisdiction to employee configuration endpoint
- ENG-66690: Send Account activation emails