All Releases
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
View all releases

March 26, 2026 release notes

Highlights

Commerce

Automatic Guest Cart Integration Upon Login

The Operations Portal now includes a configurable setting that automatically merges guest shopping cart items with a customer's previous logged-in session cart. This feature eliminates the frustration of losing items when customers browse as guests before logging into their accounts.

The functionality is controlled through the "AutoMergeGuestCartOnLogin" setting in the Operations Portal Settings screen. When enabled, the system automatically combines items from both the customer's previous authenticated session and their current guest session upon login. This creates a seamless shopping experience where customers retain all their selected items regardless of their authentication status when they were added.

This enhancement addresses common e-commerce scenarios where customers may start shopping before logging in, or when their sessions expire during extended browsing. The feature preserves customer intent and reduces cart abandonment by ensuring no selected items are lost during the authentication process.

The Auto-Merge Guest Cart feature is now available through the Operations Portal configuration. For a detailed walkthrough of the setup process and functionality, refer to the demonstration video that shows the complete configuration and user experience flow.

https://youtu.be/i8wIrdElVok

Tickets

  1. KOD-23784: Manage discontinued products and reactivation
    • Regression Tests
    • Case 1
      • Verify that product indexing still works correctly with the business event disabled. For example, if I update a product, check that the corresponding field in the search tab of the products page is updated.
    • Tests
    • Case 1
      • Ensure BusinessEvent with code searchProductPrepareDocument is enabled ( isActive = 1 ).
      • Enable the Rule with code RLU_DEFAULT_018 . Rules can be found in the automation app and this rule is under Inline Interceptors.
      • Make some edit such as changing the description for a product WITHOUT any SKU status 'X'.
      • Check application logs for the interceptor firing.
      • Verify the product's showPublic field on the search tab of the product page is unchanged.
      • Expected Result: Interceptor fires, but since no SKUs have status 'X', no changes are made to the document.
    • Case 2
      • Discontinued Product WITH Inventory - Should Be Visible.
      • Setup:
      • Find or create a product with at least one SKU where:
      • status = 'X' (discontinued)
      • inventoryLevel > 0 (has inventory)
      • Warehouse is active ( isActive = true )
      • Warehouse is displayable ( isDisplay = true )
      • Warehouse is NOT a customer warehouse
      • Warehouse has no company code (or empty string)
      • Steps:
      • Note the product's current showPublic value on the product search page.
      • Make some edits to the product (such as editing the description).
      • Use the search page to find the product and check the showPublic field.
      • Expected Result:
      • showPublic = true on the product search page.
      • Now do the same thing but make the inventory of the sku be 0. Make some edit to the product. Then showPublic should be false.
      • Now add back inventory to that sku and make another edit to the product. showPublic should be true again.
      • Now you can do the same test with a warehouse that is not active, or display is false, or is a customer warehouse, or is linked to a company. Nothing should be changed in any of these cases.
    • Case 3
      • Inventory Fully Reserved
      • Setup:
      • Discontinued SKU (status 'X') where:
      • inventoryLevel = 100
      • quantityReserved = 100
      • quantityCommitted = 0
      • Available = 100 - 100 - 0 = 0
      • Change something on the product.
      • Expected Result: Product should be hidden ( showPublic = false ) because available inventory is 0.
      • Setup:
      • Discontinued SKU (status 'X') where:
      • inventoryLevel = 100
      • quantityReserved = 30
      • quantityCommitted = 20
      • Available = 100 - 30 - 20 = 50
      • Change something on the product.
      • Expected Result: Product should be visible ( showPublic = true ) because available inventory > 0.
      • Discontinued SKU (status 'X') where:
      • inventoryLevel = 50
      • quantityReserved = 40
      • quantityCommitted = 30
      • Available = 50 - 40 - 30 = -20
      • Change something on the product.
      • Expected Result: Product should be hidden ( showPublic = false ) because available inventory <= 0.
    • Test 4
      • Multiple Discontinued SKUs - One Has Inventory.
      • Setup:
      • Product with 3 SKUs:
      • SKU 1: status 'X', inventoryLevel = 0
      • SKU 2: status 'X', inventoryLevel = 50
      • SKU 3: status 'X', inventoryLevel = 0
      • All warehouses meet the filter criteria.
      • Change something on the product.
      • Expected Result: Product should be visible ( showPublic = true ) because at least one discontinued SKU has inventory.
      • Setup:
      • Product with 2 SKUs:
      • SKU 1: status 'X' (discontinued), inventoryLevel = 0
      • SKU 2: status 'A' (active), inventoryLevel = 100
      • Change something on the product
      • Expected Result:
      • The rule does NOT modify showPublic - product stays visible .
  2. KOD-28311: Search bug when searching Vendors
    • Regression Tests
    • Case 1
      • Navigate to the Vendors page.
      • Verify: The "Code" column is displayed and shows vendor codes correctly.
      • Verify: The "Name" column is displayed and shows vendor names correctly.
    • Tests
    • Case 1
      • Open Vendors Page on the Search tab, note any vendor code
      • Enter code in the search field.
      • Verify: Matching vendor appears in results.
    • Case 2
      • Open Vendors Page on the Search tab, note any vendor name
      • Enter name in the search field.
      • Verify: Matching vendor appears in results.
  3. KOD-28902: Rollout
  4. KOD-29210: Approval Workflow Questions
    • Tests
    • Case 1
      • Test direct role assignment for orderApprover and secondOrderApprover, across:
      • approve flow.
      • not-approve flow.
      • edit flow.
    • Case 2
      • Test permission-group-based (orderApprover and secondOrderApprover roles) through role assignment for orderApprover and secondOrderApprover, across:
      • approve flow.
      • not-approve flow.
      • edit flow. (edited and approved order should be transitioned to 'Received'(or any completed) status) .
  5. KOD-29333: Portal / Proposed Customer Registration Updates
  6. KOD-29358: Returns issue with e-hold
    • Regression Tests
    • Case 1
      • Generate a return order from an original order on the customer side.
      • Add an item to it and make sure everything is working as expected:
      • Item should be added to the return order successfully.
      • For creating a return you need to create from an invoiced order (And the item you are trying to return should have quantityShipped > 0 ).
    • Case 2
      • Generate a return order based on delivery address.
      • Then try to add an item to that return.
      • Here you could typically end up with more than one return item depending on the shipped quantity available from all invoiced orders.
      • Make sure the item(s) are added correctly to the return.
  7. KOD-29443: Investigate upc code scanning in customer app
  8. KOD-29640: Kodaris Migration Scripts
  9. KOD-29641: Provide technical documentation of budget recalculation jobs
  10. KOD-29680: Add action for creating a service ticket
  11. KOD-29776: Update with latest scripts, API interactions, etc.
  12. KOD-29864: Capture customer vehicle data
  13. KOD-29897: Discount by Item
  14. KOD-29950: OA: Supersede Pricing Issue - System Not Updating Price After Part Number Supersede
  15. KOD-30009: Have "County" as Available Column Option on Opportunities
    • Regression Tests
    • Case 1
      • Verify that the existing fields on the Search tab (Opportunities) are working correctly.
      • Verify that the existing fields on the Data tab (Opportunities) are working correctly.
    • Tests
    • Case 1
      • Verify that the County field is displayed on the Search tab.
      • Verify that the County field is displayed on the Data tab.
      • Verify that sorting by County works on the Search (Solr) tab.
      • Verify that searching by County works on the Search (Solr) tab.
      • Verify that editing, filtering, and sorting for the County field are not supported on the Data tab.
  16. KOD-30031: Add column sorting to Interceptors, Workflows, and Inline Interceptors tables
    • Regression Tests
    • Case 1
      • Make sure the workflows, interceptors and inline interceptors tables still load properly.
    • Tests
    • Case 1
      • In all 3 tables, make sure to add all the columns and notice that only Rule ID and Rule Order are sortable (you should not see the arrow in any of the other columns).
      • Click the arrow and notice it sorts by ascending and click again and it will sort by descending order, click it a third time and the sort goes away.
  17. KOD-30073: Requested Template for Price List Download
    • Regression Tests
    • Case 1
      • Navigate to the Commerce Site and log in as a customer user.
      • Navigate to Catalogs (/spcu/catalogs) and click on a catalog that has products with prices.
      • Click the "Actions" dropdown and select "Export Price List".
      • In the Export Price List modal, select a CSV template from the template dropdown.
      • Check "Attach file to email" and click "Confirm".
      • Verify the confirmation message: "The price book is being generated and will be sent to your email shortly."
      • Verify the CSV email is received with the correct product codes and formatted prices
      • Navigate to the Employee Portal (Operations) and log in as an employee user.
      • Navigate to the company catalog / price book section for a test company.
      • Select a catalog and trigger the CSV price book export for the company.
      • Verify the CSV file is generated and the email notification is sent to the employee.
      • Verify the CSV contains the expected product codes and formatted prices from the catalog.
    • Tests
    • Case 1
      • Navigate to the Commerce Site and log in as a customer user.
      • Navigate to Catalogs (/spcu/catalogs) and click on a catalog that has the PDF price book template configured.
      • Click the "Actions" dropdown and select "Export Price List".
      • In the Export Price List modal, select the PDF template from the template dropdown.
      • Check "Attach file to email" and click "Confirm".
      • Verify the confirmation message: "The price book is being generated and will be sent to your email shortly."
      • Open the PDF from the email and verify the company name and today's date are populated in the header
      • Verify product prices are populated (not showing priceProductCode=XXX tokens or - for products that have prices).
      • Repeat steps 2-4, but leave "Attach file to email" unchecked and click "Confirm".
      • Verify the email notification is received without the PDF attachment.
      • Verify the PDF is still stored as a CustomerFile under the selected company.
    • Case 2
      • Navigate to the Employee Portal (Operations) and log in as an employee user.
      • Navigate to the company catalog / price book section for a test company.
      • Select the PDF price book catalog and trigger the PDF generation for the company.
      • Verify an email notification is received at the employee email address.
      • Open the PDF and verify the company name, date, and section headers render correctly.
      • Verify product prices from the catalog are correctly replaced in all sections (Wallboard, Steel Framing, Insulation, etc.).
      • Verify the PDF is stored as a CustomerFile under the selected company.
      • Repeat steps 2-3, but leave "Attach file to email" unchecked and trigger the PDF generation.
      • Verify the email notification is received without the PDF attachment.
      • Verify the PDF is still stored as a CustomerFile under the selected company.
  18. KOD-30119: Ability to Generate Price Books for Future Prices
    • Regression Tests
    • Case 1
      • Surf a commerce site logged in and record a few prices.
      • Surf a commerce site logged in and make sure that pricing matches your previous checks.
      • This is all new code so there should be no changes as we are not using the new feature yet.
  19. KOD-30122: Website Configurator Tool
  20. KOD-30153: Synchronization Issue: shipping address not syncing with CSD
  21. KOD-30187: Website Customization
  22. KOD-30206: Configuration update to allow auto merging guest cart with previous logged in cart upon login
    • Regression Tests
    • Case 1
      • Validate that standard login behavior is unchanged when autoMergeGuestCartOnLogin setting is disabled (default).
      • Pre-requirements:
      • The autoMergeGuestCartOnLogin setting is set to 0 (disabled — this is the default).
      • Steps:
      • Log in on the customer portal.
      • Add one or more items to the cart.
      • Log out.
      • Log in again, the previous cart must be loaded.
      • Log out again.
      • As a guest, add one or more items to the cart.
      • Log in as the customer who has a previous cart with items.
    • Tests
    • Case 1
      • Validate the auto merge – guest cart items are merged with previous customer cart items on login.
      • Pre-requirements:
      • A customer account with a previous cart containing items (e.g., items C and D).
      • The autoMergeGuestCartOnLogin setting is set to 1 (enabled).
      • Steps:
      • Log in on the customer portal.
      • Add one or more items to the cart.
      • Log out.
      • As a guest , one or more items to the cart.
      • Log in as the customer – who has a previous cart.
      • Verify the cart now contains all items: the ones in the guest cart and the ones in the previous cart.
      • Verify the merged cart is repriced with the customer's pricing context.
    • Case 2
      • Validate that login with an empty guest cart does not trigger auto-merge and loads the previous cart normally.
      • Pre-requirements:
      • A customer account with a previous cart containing items.
      • The autoMergeGuestCartOnLogin setting is set to 1 (enabled).
      • Steps:
      • Open the site as a guest but do not add any items to the cart (empty guest cart).
      • Log in as the customer who has a previous cart with items.
      • Verify the previous cart is loaded normally into the session (standard behavior).
      • Verify no merge occurred (the auto-merge block is not entered because the guest cart has no items).
    • Case 4
      • Validate the three-session scenario — only the most recent previous cart merges, not older ones
      • Pre-requirements:
      • A customer account.
      • The autoMergeGuestCartOnLogin setting is set to 1 (enabled).
      • Steps:
      • As a guest, add item A to the cart and log in as the customer — this creates Order A as the session cart.
      • Log out.
      • As a guest, add item B to the cart and log in as the same customer — Order A merges into Order B's session cart (merged cart now has A + B).
      • Log out.
      • As a guest, add item C to the cart and log in as the same customer.
      • Verify that Order B (the most recent previous cart, containing A + B) merges into the current session cart (which has C).
      • Verify Order A does not re-merge (it was already marked as Saved or is outside the Page-size-2 window).
      • Verify the final cart contains items A, B, and C.
      • Verify no errors appear in the logs screen.
    • Case 5
      • Validate that customers with Start new cart on login enabled are unaffected by auto-merge.
      • Pre-requirements:
      • A customer account configured with Start new cart on login enabled.
      • The customer has a previous cart with items.
      • The autoMergeGuestCartOnLogin setting is set to 1 (enabled).
      • Steps:
      • As a guest, add items to the cart (or not).
      • Log in as the customer with Start new cart on login enabled.
      • Verify a new order/cart is created on login as expected by the Start new cart on login behavior.
      • Verify the auto-merge did not interfere with the Start new cart on login flow.
  23. KOD-30262: Kodaris Ticket System Refinement Requested Custom Fields
  24. KOD-30269: Designate Unit Displayed to Customer
  25. KOD-30285: Forms Integration
  26. KOD-30306: Error when adding certain parts to Order Templates (Catalogs)
    • Regression Tests
    • Case 1
      • Log in as a user with a company admin role.
      • Search for any product.
      • Add the product to an Order Template (either from the product card or from the product detail page).
      • Select a company order template from the list.
      • Verify:
      • Success message displays.
      • Navigate to Order Templates and open the selected company template.
      • Verify:
      • Product was added to the template.
      • Add the product to an Order Template (either from the product card or from the product detail page).
      • Select a customer order template from the list.
      • Verify:
      • Success message displays.
      • Navigate to Order Templates and open the selected customer template.
      • Verify:
      • Product was added to the template.
    • Case 2
      • Search for any product.
      • Add this product to cart.
      • Navigate to the Cart page.
      • Click the actions button.
      • Add the product to the company template.
      • Verify:
      • You are redirected to the Order Template page on your company order template.
      • The product was added successfully to the list.
      • Click the remove button for this product.
      • Verify:
      • Product is removed from the list immediately.
      • Navigate to the Cart page.
      • Click the actions button.
      • Add the product to your personal order template.
      • Verify:
      • You are redirected to the Order Template page on your customer order template.
      • The product was added successfully to the list.
      • Click the remove button for this product.
      • Verify:
      • Product is removed from the list immediately.
    • Tests
    • Case 1
      • Log in as a user with a company admin role.
      • Search for a product that has + in the part number (e.g., "ABC+123").
      • Add the product to an Order Template (either from the product card or from the product detail page).
      • Select a company order template from the list.
      • Verify:
      • Success message displays.
      • No error message displays.
      • Navigate to Order Templates and open the selected company template.
      • Verify:
      • Added product displays in the list.
      • Add the product to an Order Template (either from the product card or from the product detail page).
      • Select a customer order template from the list.
      • Verify:
      • Success message displays.
      • No error message displays.
      • Navigate to Order Templates and open the selected customer template.
      • Verify:
      • Added product displays in the list.
    • Case 2
      • Log in as a user with a company admin role.
      • Search for a product that has + in the part number.
      • Add this product to cart.
      • Navigate to Cart page.
      • Click the actions button.
      • Add the product to the company template.
      • Verify:
      • No error message displays.
      • You are redirected to the Order Template page on your company order template.
      • The product was added successfully to the list.
      • Click the remove button for this product.
      • Verify:
      • Product is removed from the list immediately.
      • No error message displays.
      • Navigate to the Cart page.
      • Find an option to save cart items to order templates.
      • Click the actions button.
      • Add the product to your personal order template.
      • Verify:
      • No error message displays.
      • You are redirected to the Order Template page on your personal order template.
      • The product was added successfully to the list.
      • Click the remove button for this product.
      • Verify:
      • Product is removed from the list immediately.
      • No error message displays.
  27. KOD-30341: Implementation
  28. KOD-30340: Implementation
  29. KOD-30343: Pull orders from different cono using tenant setting
  30. KOD-30346: Combine line item qty
  31. KOD-30348: Opportunity Naming Breadcrumbs - Allow Custom Names Instead of Numbers
    • Regression Tests
    • Case 1
      • Ensure that the breadcrumbs look and function correctly.
    • Tests
    • Case 1
      • Ensure that when the opportunity name is present, breadcrumb displays "Opportunity {opportunity name}".
      • Ensure that when the opportunity name is empty, breadcrumb displays "Opportunity {order number}".
  32. KOD-30359: Link Display Issues
    • Regression Tests
    • Case 1
      • Open pages on the website that were previously created with Gutenberg.
      • Verify existing links were not affected by this change.
      • Ensure link color is applied only when the user explicitly sets it in the editor.
      • If a color was previously added manually in the editor, verify it is still displayed correctly.
    • Tests
    • Case 1
      • Open Operations Portal → Pages.
      • Create a test page or use an existing one.
      • Add a Header, Paragraph, and List block.
      • Select any word or sentence and apply a Link Color.
      • Open the page on the website.
      • Verify the link color changes from the default color to the one selected by the user in Gutenberg editor.
    • Case 2
      • Open the Operations Portal → Pages.
      • Create a test page or use an existing one.
      • Add a Header, Paragraph, and List block.
      • Select any word or sentence and add a Link.
      • Open the page on the website.
      • Check if links have color.
      • Check for different browsers .
  33. KOD-30361: Warranty Purchasing Part 2
  34. KOD-30367: Add exception to see if any supersede cross references exists for a product
  35. KOD-30377: Add facets to Create Catalog
    • Regression Tests
    • Case 1
      • Navigate to a category → click create catalog → name it and click create → make sure you can still create a catalog based off.
    • Tests
    • Case 1
      • Go to the brands page then click a brand → click create catalog → name it and click create → a catalog should be created only with the products that you see on the screen (same number of products on that category page should be the same as how many are in the newly created catalog).
    • Case 2
      • Go to a category and add in any facets, then click create catalog → once the catalog is created, verify that the products in that catalog are the same products that were in the filtered category (want to make sure the facets that you added on the category screen are taken into account when creating the catalog).
  36. KOD-30376: Update orders screen with delivery limitations message to customers
  37. KOD-30382: Kodaris - Configurator Products QTY Breaks Issue
    • Regression Tests
    • Case 1
      • In the commerce site, open a product page with no price breaks:
      • Everything should work normally.
    • Tests
    • Case 1
      • In the commerce site, open a product page with price breaks :
      • Select an option with price breaks: it should show the Quantity Pricing list.
      • Select an option with no price breaks: it should hide the Quantity Pricing list.
  38. KOD-30387: Fix bubbles on order items discrepancies
    • Tests
    • Case 1
      • Log in the Operations Portal, and open the Orders page.
      • Open an order with discrepancies in its items, and open the Items tab.
      • Find an order item with Code “NONSTOCK”: it should show a warning bubble in an amber color, indicating a discrepancy.
      • Hover the bubble: it should show a tooltip with the discrepancy message (in this case, “Product not Found”).
      • Double click this Code field to edit it, and change it to a valid product code.
      • Blur the field to save the change:
      • It should hide the discrepancy warning bubble.
      • Double click this Code field again to edit it, and change it back to “NONSTOCK”.
      • Blur the field to save the change:
      • It should show the discrepancy warning bubble again.
  39. KOD-30391: Menu Item Display Issue
    • Regression Tests
    • Case 1
      • Open the website.
      • Open browser DevTools and inspect the page.
      • Add more text to the existing header element.
      • Verify the updated text still looks good on the site.
      • Ensure the header remains user-friendly and does not break the layout.
  40. KOD-30394: Chat Code
    • Regression Tests
    • Case 1
      • Log in as a customer.
      • Navigate through different pages (Home, Products, Product detail).
      • Verify:
      • Pages load correctly.
      • Site functionality works properly.
      • No console errors related to script.
      • Note: Console may show errors from service (e.g., 404 "Unknown thread uuid") - these are RingCentral server-side issues, not related to site functionality.
    • Case 2
      • Clear browser local storage.
      • Open the website.
      • Log in as a customer account.
      • Verify:
      • Cookie consent popup appears.
      • A chat button also appears.
      • Both elements are visible and do not completely overlap.
      • Accept or decline cookies.
      • Verify:
      • Cookie popup closes.
      • A chat button remains visible and functional.
    • Tests
    • Case 1
      • Open the website.
      • Log in as a customer.
      • Navigate to the home page.
      • Look at the bottom right corner of the page.
      • Verify:
      • A chat button appears in the bottom right corner.
      • Clicking the button opens a chat form.
      • Clicking the X button closes a chat form.
      • Scroll down to the bottom of the page.
      • Verify:
      • Chat button remains visible and accessible.
      • Navigate to any other public page (Products page, product detail page).
      • Verify:
      • Chat button appears in the bottom right corner.
      • Navigate to any non-public page (Cart).
      • Verify:
      • No chat button appears in the bottom right corner.
    • Case 2
      • Open the website without logging in (or log out if logged in).
      • Navigate through different pages.
      • Verify:
      • No chat button appears.
    • Case 3
      • Chat widget does NOT appear for employee accounts.
      • Log in as an employee.
      • Navigate through different pages.
      • Verify:
      • No chat button appears.
    • Case 4
      • Log in as a customer.
      • Click the chat button in the bottom right corner.
      • Verify:
      • Chat form opens with fields: Name, Account Number, Message.
      • All fields are marked as required (asterisk *).
      • Try to click "Start chat" without filling any fields.
      • Verify:
      • Chat does not start.
      • Validation errors appear.
      • Fill in all required fields (Name, Account Number, Message).
      • Click "Start chat".
      • Verify:
      • Chat starts successfully.
      • After a few seconds, a welcome message appears from the agent.
      • Click the emoji icon to open the emoji panel.
      • Verify:
      • Emoji panel opens.
      • Emojis display correctly on the panel.
      • Select an emoji from the panel.
      • Verify:
      • Emoji name appears in the message field (e.g., ":smirk:") - this is expected behavior.
      • Send the emoji message.
      • Verify:
      • Emoji displays correctly in the chat (as image, not text).
      • Type a text message and send it.
      • Verify:
      • Text message appears in the chat.
      • Click the attach file button and select an image.
      • Verify:
      • File uploads successfully.
      • The image can be opened by clicking on it .
  41. KOD-30396: Company Group Catalog Pricebook Company Select Cut Off (FIX)
    • Regression Tests
    • Case 1
      • Test autocomplete in Orders/Quotes → Items → Add Item.
      • Open Orders or Quotes screen.
      • Go to Items → Add Item.
      • Trigger the autocomplete dropdown.
      • Verify the dropdown is fully visible to the user.
      • Ensure it opens above the field when there is not enough space below.
      • Verify scrolling works correctly.
      • Verify search inside the dropdown works correctly.
      • Test autocomplete inside tables.
      • Navigate to Pricing → Company Applies.
      • Trigger autocomplete inside the table.
      • Verify the dropdown renders correctly within the table layout.
      • Test with different screen heights.
      • Ensure the dropdown opens above or below the field depending on available space.
      • Test autocomplete on Order Detailed screen.
      • Open any order detailed view.
      • Locate fields with autocomplete.
      • Scroll the page and trigger the dropdown from different vertical positions.
      • Verify the dropdown opens correctly above or below depending on space.
      • Ensure the dropdown is not visually clipped and all items can be accessed via scrolling.
      • Test autocomplete in Company Groups → Detailed Screen → Catalog.
      • Navigate to Company Groups detailed view.
      • Open Catalog tab.
      • Test autocomplete in Assign Product.
      • Test autocomplete in Actions → Generate Price Book.
      • Verify dropdown position, visibility, scrolling, and search functionality.
      • Expected Result:
      • Autocomplete dropdowns display correctly across all screens, adapt their position based on available space , support scrolling and search, and are never visually clipped.
    • Tests
    • Case 1
      • Open the Operations Portal.
      • Navigate to Generate Price Book.
      • Go to Company Groups → Catalog.
      • Click Actions.
      • Select Generate Price Book.
      • Open Company autocomplete.
      • Click on the Company field.
      • Trigger the autocomplete dropdown.
      • Verify dropdown display.
      • Ensure the dropdown fits within the page layout.
      • Verify it does not overflow outside the visible screen area.
      • Ensure the user can easily scroll and select the last item in the list.
    • Case 2
      • Open the Operations Portal.
      • Go to Company Groups → Catalog.
      • Trigger the autocomplete dropdown.
      • Click + Assign product.
      • Verify dropdown display.
      • Ensure the dropdown fits within the page layout.
      • Verify it does not overflow outside the visible screen area.
      • Ensure the user can easily scroll and select the last item in the list.
  42. KOD-30399: More Template Updates
    • Regression Tests
    • Case 1
      • Go to Operations Portal Orders → Orders. Pick a random order. Try to generate an internal file for it with template wrappedOrderPDF-EJS-test .
      • Check that everything looks good and we don’t have any broken UI.
      • Try to generate Email to send with template wrappedOrderEmail-EJS-test . Do the same check, that everything looks good.
      • Do the same thing for the customer portal order template by checking wrappedOrderHTML-EJS-test.
  43. KOD-30406: Add Account Integration Screens
  44. KOD-30407: Create Separate Setting for Customer FAQ Statuses
  45. KOD-30409: Return Parent Name/Code on Intranet Page Endpoints
  46. KOD-30419: Credit Hold Login Interceptor
    • Regression Tests
    • Case 1
      • Attempt customer login with valid credentials.
      • Expected: Login succeeds normally, no interception.
      • Also try to login with invalid credentials (login should be rejected).
    • Case 2
      • Attempt to use SSO to login as a customer.
      • Login should succeed.
    • Case 3
      • Login as a customer and select remember me. Then refresh or x out of the page and see if you are remembered.
      • Expected: You should not have to log in again.
    • Tests
    • Case 1
      • Turn on business events with code customerLoginCheck and set Rule with code RLU_DEFAULT_019 to be active. To find this rule go to the automation app and it will be under Inline Interceptors. Then attempt to login to a customer account with valid credentials. You should be able to.
    • Case 2
      • Now modify the script to block all logins:
      • var customer = data.customer;
      • if (customer) {
      • data.blocked = true;
      • data.errorMessage = "Test block message - please ignore.";
      • }
      • Then, do the same test as in case 1. In this case, your login should be blocked and you should get the error message "Test block message - please ignore."
    • Case 3
      • Leave the interceptor script as it is for case 2. Now try to login using SSO (like Google or Microsoft). It should still fail.
      • Then delete the changes from the interceptor script, log in successfully selecting remember me, then revert the interceptor script back to how it was for case 2 and refresh the page you logged in on. You should be logged out now.
  47. KOD-30427: PARSER
  48. KOD-30429: Adding facets to bulk add products to catalog
    • Regression Tests
    • Case 1
      • Create catalog from category.
      • It should work as before, no regressions should be introduced.
    • Tests
    • Case 1
      • Create a catalog from category with applied facets.
      • Use swagger endpoint, since UX does not provide facets to new param yet: /api/account/companyProductCategory/createFromCategory
      • Ensure the created catalog has only products that correspond to the applied facet.
  49. KOD-30428: Implementation - Shipping Methods / Shipvias
    • Regression Tests
    • Case 1
      • Check that order can still be released to ERP.
    • Tests
    • Case 1
      • Need to test which shipvias we are sending to ERP. We have three cases:
      • When a company address has a type field populated, we are sending this value in the shipVia field.
      • When the company address doesn’t have a type field populated and the company have default shipvia populated, we are sending this value in the shipVia field.
      • When both fields are empty, we are sending the BEST shipvia in shipVia field.
  50. KOD-30433: Checklist Required for SSO and Integration - Phase 2
  51. KOD-30437: Data Migrations
  52. KOD-30439: End User Pricing Margin Increase
    • Regression Tests
    • Case 1
      • Make sure the product list page and product details page still load properly.
    • Tests
    • Case 1
      • Need to make sure displayRetailPriceOnProductPage is set (most likely going to be listPrice).
      • Also need to make sure enableRetailPriceUpdate is added to the settings and turned on to be able to update the retail price.
      • Click into a product → you should see:
      • ‘Retail Price’: xxx which is the listPrice (or whatever is set in displayRetailPriceOnProductPage of the sku- as long as it it greater than 0).
      • Your Retail Price: xxx if you updated the retail price.
      • Update Retail Price which you can click to update the retail price.
    • Case 2
      • Click Update Retail Pricing → a modal should appear → here you will see cost, markup type, markup value, retail price, and new retail price.
      • Cost = price that is listed for the product.
      • Markup Type = can choose between static markup or percentage markup.
      • Markup Value = The markup amount. If you choose static markup, whatever you type in there is going to be the updated retail price. If you chose percentage, whatever value you type in there will be the percentage of increase of the cost.
      • Retail Price = if you have updated the retail price it will be that value. If you have not updated it yet, it will default back to the listPrice of the sku (or whatever value you have in displayRetailPriceOnProductPage ).
      • New Retail Price = The new retail price that is determined based on the markup type and value.
    • Case 3
      • Update the markup type and value and click save → you should now see the product page update and you will see ‘Your Retail Price’ be updated accordingly.
    • Case 4
      • When saving the updates, it will either add or update the product in the retail price catalog. If that catalog does not exist, one will be created upon updating the retail price on a product.
      • If you navigate to the retail price catalog of that company, you will see the products you updated as well as if you add in product markup and product markup type to the grid, you can see what values you added in the popup.
    • Case 5
      • If enableRetailPriceUpdate is turned off, you should not see the Update Retail Pricing button.
      • Or if you are not logged in, you should not see the Update Retail Pricing button.
      • If displayRetailPriceOnProductPage isn’t present or is not set and enableRetailPriceUpdate is turned on, then the retail price on the modal defaults to $0.00, as well as you won’t see ‘Retail Price’ on the product.
      • In a normal environment we shouldn’t have such case, but just in case - whatever displayRetailPriceOnProductPage is set to (most likely listPrice), if the skus have a listPrice of 0, then you will not see Retail Price: on the product page (similar case to what was written above).
  53. KOD-30451: Remove the 1 From Company Code
  54. KOD-30454: Create Product Overview Template
    • Tests
    • Case 1
      • Navigate to a child product page (e.g., CRM > Overview).
      • Verify that a dark navy sub-navigation bar appears below the header.
      • Verify that the parent product name (e.g., "CRM") is displayed on the left.
      • Verify that all active child pages appear as tab links.
      • Verify that the current page's tab is highlighted with green text and underline.
      • Verify that page content (Gutenberg blocks) renders below the sub-nav.
    • Case 2
      • Click each tab. Verify it navigates to the correct child page.
      • Verify that the active tab highlights updates on each page.
      • Verify that the same tabs and product name appear on every child page.
    • Case 3
      • Scroll down. Verify the sub-nav sticks below the header.
      • Verify that page content does not show through behind the sticky sub-nav.
  55. KOD-30457: Turn off Quantity Pricing
    • Regression Tests
    • Case 1
      • Product pricing still displays correctly.
      • Navigate to a product detail page.
      • Verify the product price is displayed correctly.
      • Click the "Add to Cart" button.
      • Verify the item is added to the cart with the correct quantity and price.
      • Verify the cart badge/count updates to reflect the added item.
    • Tests
    • Case 1
      • The Quantity Pricing section is no longer displayed on the product page.
      • Navigate to a product detail page for a product that has quantity price breaks configured (tiered pricing based on quantity).
      • Verify that the "Quantity Pricing" section (listing quantity-at-price tiers) does NOT appear anywhere on the product page.
      • Verify that the rest of the product page renders correctly — product name, description, base price, and unit of measure all display as expected.
  56. KOD-30462: COD Payment Form - Add disclaimer
  57. KOD-30465: Adding the Sort By filter to Product List pages
    • Regression Tests
    • Case 1
      • Product list views still work correctly.
      • Navigate to a product category page with results.
      • Click the list view icon to switch to list view.
      • Verify the page reloads in list view and the Sort by dropdown is still visible.
      • Click the grid/card view icon to switch back to grid view.
      • Verify the page reloads in grid view and the Sort by dropdown is still visible.
    • Case 2
      • Facet filtering works alongside sort.
      • Navigate to a product category page that has filter/facet options in the sidebar.
      • Select "Price: Low to High" from the Sort by dropdown.
      • Check a facet/attribute filter checkbox in the sidebar.
      • Verify the page reloads with filtered results still sorted by price low to high.
      • Click the filter chip to clear the applied filter.
      • Verify the full product list returns, still sorted by price low to high.
    • Tests
    • Case 1
      • Sort by dropdown is visible and functional on product list pages.
      • Navigate to a product category page that displays a list of products (e.g. browse a category from the main menu).
      • Verify the "Sort by:" dropdown is visible in the header area above the product results.
      • Select "Price: Low to High" from the Sort by dropdown.
      • Verify the page reloads and products are reordered by price from lowest to highest.
      • Select "Price: High to Low" from the Sort by dropdown.
      • Verify the page reloads and products are reordered by price from highest to lowest.
      • Select "Relevance" from the Sort by dropdown.
      • Verify the page reloads and products return to relevance-based ordering.
      • Make sure that the sort selection persists with pagination.
      • Note: make sure to test on catalogs as well.
  58. KOD-30468: Description 3 Field Mapping and Length Adjustment
    • Regression Tests
    • Case 1
      • Verify that the Descrip 1 and Descrip 2 fields are displayed correctly in the Custom Fields tab.
      • Verify that edits to Descrip 1 and Descrip 2 are saved correctly.
      • Make sure that if a setting has the type integerValue, and we enter a value such as “123test” in the custom fields, the setting will not be saved with that value; instead, the value will be 0.
    • Tests
    • Case 1
      • Verify that if a setting has the textValue type and a value length greater than 255 characters, the value is displayed in full in the Custom Fields tab.
      • Verify that when the value of a setting with the textValue type is changed, the textValue type does not change to mediumValue.
      • Verify that if a setting has the integerValue or smallValue type, the value is displayed correctly in the Custom Fields tab and does not change to mediumValue when edited.
  59. KOD-30476: Add county field to leadsquotes list and search endpoints
    • Regression Tests
    • Case 1
      • Check whether new field: county return on POST endpoints:
      • POST: api/system/leadsquotes/list → page: http://localhost:8080/operations/opportunities/data
      • POST: api/system/leadsquotes/search
  60. KOD-30477: Restrict Country Selection on Shipping Address
  61. KOD-30483: Google Tag Update
    • Regression Tests
    • Case 1
      • Check that pages still load fine on the website.
  62. KOD-30484: QuickSight
  63. KOD-30485: Promo Tag Update
    • Regression Tests
    • Case 1
      • Click "Shop by Category" dropdown and verify:
      • Dropdown opens and shows categories.
      • Subcategories expand properly on hover.
      • All category links are clickable.
      • No visual glitches or overlapping.
    • Tests
    • Case 1
      • Open the website homepage.
      • Click on the "Shop by Category" dropdown.
      • Scroll through all categories in the menu.
      • Test the same behavior on mobile view.
      • Expected Result:
      • "Clearance" category is NOT visible in the category menu.
      • Other categories displayed correctly.
    • Case 2
      • Go to the Product List page.
      • Find any product with a Clearance tag.
      • Verify it shows "Clearance" (not "Winter Clearance" or other variation).
      • Check Clearance tag styling in Grid view.
      • Switch to List view and check styling.
      • Switch to Mobile view and check styling.
      • Open Product Details page of this Clearance product.
      • Check Clearance tag styling on the Product Details page.
      • Add this product to cart.
      • Go to the Cart page.
      • Check Clearance tag styling in cart items.
      • View 4+ different products to populate Recently Viewed slider.
      • Go to the Product Details page, scroll to the "Recently Viewed Products" slider.
      • Check Clearance tag styling in Recently Viewed slider.
      • Find any product that has Related Products slider with Clearance products.
      • Check Clearance tag styling in Related Products slider.
      • Expected Result (for every page and slider)
      • Clearance tag displays with:
      • Text color: Black
      • Background color: Yellow
  64. KOD-30495: Addresses on outgoing emails from Kodaris
    • Tests
    • Case 1
      • Go to the Contact Us page and submit a form with any data, we should see that form submitted without any errors.
  65. KOD-30503: Quote Process
  66. KOD-30504: Implementation - Test Addons
  67. KOD-30507: Add Footer Authenticated Menus similar to Header Authenticated Menus
    • Regression Tests
    • Case 1
      • Open the commerce site.
      • Certify you're not logged in.
      • Scroll to the footer:
      • It should display the expected public menu and its items.
      • It should not display the footer-authenticated menu and its items.
    • Tests
    • Case 1
      • Open the commerce site and log in as a customer.
      • Scroll to the footer:
      • It should not display the public menu and its items.
      • It should display the footer-authenticated menu and its items.
  68. KOD-30508: Update so Requested Due Date can Only be Set in Future
    • Regression Tests
    • Case 1
      • Go to the customer portal as a logged in user.
      • Go to the Tickets screen, select a ticket, Details tab.
      • In the Requested Due Date field, make sure you can still select dates and it updates and saves correctly in the ticket.
    • Tests
    • Case 1
      • Go to the customer portal as a logged in user.
      • Go to the Tickets screen, select a ticket, Details tab.
      • In the Requested Due Date field, make sure you can only select future dates (one day from today’s date).
      • If a requested due date is already set in the past, that’s expected behavior.
  69. KOD-30509: Kodaris - Checkbox not aligned in a row with the text.
    • Regression Tests
    • Case 1
      • Make sure checkboxes are still clickable, send the information to the form correctly, and the layout looks correct.
    • Tests
    • Case 1
      • Single checkbox - input box aligns with label text.
      • Navigate to the Gutenberg editor and open a content page with a form.
      • Add a Checkbox block with only one checkbox option.
      • Enter a short label (e.g., "I agree to the terms").
      • Verify the checkbox input box is vertically aligned with the first line of the label text.
    • Case 2
      • Single checkbox - long label wraps correctly.
      • Enter a long label on the checkbox you added that wraps to multiple lines (e.g., "By checking this box, I acknowledge that I have read and agree to the Terms of Service, Privacy Policy, and Cookie Policy of this website and its affiliated partners").
      • Verify the checkbox input box is aligned with the first line of the label, not centered vertically against all the wrapped lines.
    • Case 3
      • Multiple checkboxes - input boxes align with their labels.
      • Add another Checkbox input to your previous checkbox block.
      • Enter a short label for the first checkbox and a long multi-line label for the second checkbox.
      • Verify the title label appears correctly above the checkbox options.
      • Verify each checkbox input box is aligned with the first line of its respective label text.
      • Verify the spacing between the checkbox box and its label is consistent across all checkboxes.
  70. KOD-30511: Fix filtering for dates with no time (requested due date)
    • Regression Tests
    • Case 1
      • Make sure filtering on non dates still works the same as before.
    • Case 2
      • When filtering on a date (i.e. created, last updated), if you just put the date (no time) in the filter box, the grid should be updated accordingly and you should see items with that date.
      • If you put in the full date and time in the filter box, it should filter down specifically where items meet that criteria.
    • Case 3
      • Now do the same but with != in front of the date.
      • Both with just the date and then with the date and time.
      • If only adding the date, then all the entries with that date will not show.
      • If filtering on date and time, the items specifically with that date and time should not show. Other items with the same date, but different time should still show.
    • Case 4
      • Make sure the other filters (less than, greater than, between, etc.) still are filtering properly for other date time columns.
    • Case 5
      • On the open invoices screen, make sure the due date and invoice date are still filtering properly.
    • Tests
    • Case 1
      • On the tickets screen, add in the requested due date column.
      • If you just copy the date and paste it into the filter bar, the items should filter properly (same as it was before) as well as if you put an = before the date, the items should filter the same.
      • If you put in != [date] into the filter bar, the items should filter that date out properly.
    • Case 2
      • Open the filter dropdown and choose equals → now select a date and click apply → the items should be filtered properly and you should see items with that date.
    • Case 3
      • Open the filter dropdown and choose not equals → now select a date and click apply → the items should be filtered properly and you should not see items with that date.
    • Case 4
      • Now choose a column that has a date and time (i.e. created/last updated) → Open the filter dropdown and choose equals → now select a date and click apply → the items should be filtered properly and you should see items with that date.
      • If you copy in a time with the date, then it should filter down specifically on that date and time.
    • Case 5
      • Now choose a column that has a date and time (i.e. created/last updated) → Open the filter dropdown and choose not equals → now select a date and click apply → the items should be filtered properly and you should not see items with that date.
      • If you copy in a time with the date, then it should filter out specifically that date and time.
    • Case 6
      • Make sure the other filters on the filter dropdown filter/work properly for requested due date (less than, greater than, between, etc.).
    • Case 7
      • Filter on requested due date and some other columns as well → now save the view → reload the page and navigate to that view → make sure the columns are still filtering the same as they were when you saved the column.
  71. KOD-30512: Implementation - PIM
  72. KOD-30514: PIM - Product page updates
    • Regression Tests
    • Case 1
      • Existing product attributes still display correctly with or without BRAND or UPC CODE attributes on the product details page.
    • Tests
    • Case 1
      • UPC Code displays on the product detail page.
      • Navigate to any product detail page.
      • Scroll to the product attributes section (where Brand and Supplier Part # are shown).
      • Verify a "UPC CODE" label is displayed below "SUPPLIER PART #".
      • Verify the UPC Code value matches the product's UPC code, or displays "---" if no UPC code exists.
    • Case 2
      • Label changed from "SUPPLIER" to "BRAND".
      • Navigate to any product detail page.
      • Scroll to the product attributes section.
      • Verify the label reads "BRAND" (not "SUPPLIER") next to the manufacturer code value.
  73. KOD-30518: Hide 1 in Company Code on Website
    • Regression Tests
    • Case 1
      • Open the website without logging in.
      • Verify:
      • Home page loads properly.
      • Cart page loads properly.
      • Log in as a customer.
      • Verify:
      • Home page loads properly.
      • Cart page loads properly.
      • Company switcher works correctly.
      • Address switcher works correctly.
      • Account switcher in the customer portal works correctly.
      • No console errors related to company code display.
    • Tests
    • Case 1
      • Log in as a customer.
      • At the header bar open the company switcher dropdown.
      • Verify:
      • All company codes in dropdown display without underscore and any characters after it.
      • Open address switcher dropdown.
      • Verify:
      • Autocomplete suggestions show shipto without underscore suffix.
      • Make sure to check the mobile version as well.
    • Case 2
      • Add item to Cart.
      • Go to Location tab - Shipping address.
      • Verify:
      • Shipto code displays without underscore and any characters after it.
    • Case 3
      • Navigate to the customer portal.
      • Open company switcher dropdown.
      • Verify:
      • Company code should not be followed by an underscore.
      • Format is "12345" not "12345_1" or "12345_234" etc.
  74. KOD-30521: Investigate and Fix Slow Performance on Employee Portal Configuration Endpoint
    • Regression Tests
    • Case 1
      • Go to the operations portal.
      • Go to settings.
      • Search by a setting with code “enableLeads”.
      • If it does not exist, create it. Set the value to 1 like in the screenshot:
      • Go to the Opportunities tab.
      • Add an opportunity.
      • Go to the details of the opportunity that you just created.
      • Click in the “Sales Rep” input.
      • Expected:
      • You should be able to see all the active Administrators (active employees) of the website listed there. This guarantees that we didn’t break the admin listing in the configuration endpoint.
    • Case 2
      • Follow the same steps 1-6 of the test case 1. You can use the same opportunity that you already created.
      • Go to the opportunity details.
      • Go to the warehouse dropdown.
      • Expected:
      • All active warehouses that does not have a developer field with code “web” and value = “1” should be in the dropdown. You can confirm all the warehouses in the “Locations” tab.
    • Case 3
      • Follow the same steps 1-6 of the test case 1. You can use the same opportunity that you already created.
      • Go to the locations tab.
      • Pick a random location (warehouse). Go to details → developer field.
      • Create a developer field with code = ‘web’ and mediumValue = “1” as shown in the image below:
      • Go to the opportunity details.
      • Go to the warehouse dropdown.
      • Expected:
      • The warehouse that you created the developer field should disappear from the dropdown. All other actives warehouse that does not have a developer field with code “web” and value = “1” should be in the dropdown.
    • Case 4
      • Go to the operations portal.
      • Go to the companies tab.
      • Start a new order for a company.
      • Go to the delivery address form.
      • Select a country. You should be able to see all countries.
      • Select the United States.
      • Select a state.
      • Expected:
      • You should be able to see all countries in the country selected. Also you should be able to see all the states from the united states in the states selected.
  75. KOD-30522: Associate payment record to ERP order number when order is pushed to ERP
  76. KOD-30523: Implementation - Order / Invoice Documents
  77. KOD-30524: Update mappings to remove note restrictions
  78. KOD-30527: Enable jobProcessUnprocessedTerminalTransactions setting by default
    • Tests
    • Case 1
      • Confirm that setting jobProcessUnprocessedTerminalTransactions is enabled by default on your system (if it was not changed before).
  79. KOD-30528: Platform Document Automation - Support Processing JSON files
  80. KOD-30529: UX Document Automation Studio - Support JSON Adapters
    • Regression Tests
    • Case 1
      • Verify that PDF Order adapters are created and function as expected.
      • Verify that PDF Invoice adapters are created and function as expected.
      • Verify that Analysis Methods are displayed for PDF adapters.
      • Verify that PDF file uploads and previews work correctly.
    • Tests
    • Case 1
      • Verify that the JSON option appears in the File Type dropdown when creating an adapter.
      • Verify that the Analysis Methods section is hidden when JSON is selected.
      • Verify that the JSON adapter is created with an empty analysisMethods array and the correct default code.
      • Verify that a JSON file can be uploaded on the Details and Configure pages and that it is displayed in the correct format.
      • Verify that the JSON adapter can be run on the Configure page.
      • Verify that JSON preview uses Monaco editor on Details and Configure pages.
  81. KOD-30530: Need UX for Payments
    • Tests
    • Case 1
      • Open Customer Portal → Company Payment Methods.
      • Verify bankPaymentSystem configuration.
      • Check the value returned in bankPaymentSystem.
      • Verify form
      • Set bankPaymentSystem (e.g., via response override).
      • Verify the form displays the following fields:
      • Transit Number
      • Institution Number
      • Verify form for ACH.
      • Set bankPaymentSystem to ACH.
      • Verify the form does NOT display Transit Number and Institution Number fields.
      • Repeat for each case.
      • Test all scenarios
      • Ensure the correct form is displayed for each configuration.
    • Case 2
      • Open Operation Portal → Companies -> Company -> Payment Methods.
      • Verify paymentSystembankAccount field in the selected company.
      • Verify form
      • Set paymentSystembankAccount (e.g., via response override).
      • Verify the form displays the following fields:
      • Transit Number
      • Institution Number
      • Verify form for ACH.
      • Set paymentSystembankAccount to ACH.
      • Verify the form does NOT display Transit Number and Institution Number fields.
      • Repeat for each case.
      • Test all scenarios
      • Ensure the correct form is displayed for each configuration.
  82. KOD-30532: Update Terms of EFT Service
    • Tests
    • Case 1
      • Check if the updated EFT terms are shown when vaulting an EFT payment method.
  83. KOD-30533: New Section - FAQ
    • Regression Tests
    • Case 1
      • Open the website.
      • Navigate through different pages.
      • Open multiple pages across the site.
      • Verify each page loads correctly.
      • Verify styles and assets.
      • Ensure all styles are applied correctly.
      • Verify there are no missing or broken UI elements.
      • Verify overall page rendering.
      • Ensure pages render as before without visual or functional issues.
    • Tests
    • Case 1
      • Open FAQ page on the website.
      • Verify content display.
      • Ensure questions and answers are displayed.
      • Verify the design matches the provided example.
      • Verify accordion behavior.
      • Click on a question.
      • Ensure the answer expands.
      • Click again to collapse.
      • Ensure it works correctly.
      • Verify search functionality.
      • Enter a query in the search field.
      • Ensure results are filtered based on questions.
      • Verify Read More button.
      • Verify mobile version.
      • Open the FAQ page on mobile.
      • Ensure layout and functionality work correctly.
  84. KOD-30539: Implementation - Branding
  85. KOD-30538: Implementation - Countries / States
  86. KOD-30541: Implementation - Configure Customer Portal
  87. KOD-30549: Order Notes Section
    • Regression Tests
    • Case 1
      • Log in as a customer.
      • Navigate to the cart page.
      • Verify the cart page loads without any issues.
    • Tests
    • Case 1
      • Log in as a customer.
      • Navigate to the cart page.
      • Confirm the "Order Notes.
      • (Optional)" section has been removed.
  88. KOD-30554: File Referencing Cono2 - Incorrect Taxes
  89. KOD-30561: Order Automation - Drop legacy "useOrderAdapter" check
  90. KOD-30559: Enable UPS shipping flow to test company
  91. KOD-30564: Implementation - shipvia mapping
    • Regression Tests
    • Case 1
      • Create an order in the storefront.
      • Find your order in the operations portal.
      • Click on the button ‘Release to ERP’.
      • Navigate to the System Events tab.
      • Check that order was released without any problems.
    • Tests
    • Case 1
      • Create an order in the storefront
      • Find your order in the operations portal.
      • Click on the button ‘Release to ERP’.
      • Navigate to the System Events tab.
      • Check that we are sending the right shipping option in shipvia code.
  92. KOD-30563: Shipping methods not translating to French with message updates
  93. KOD-30569: Removing payments from customer portal
  94. KOD-30577: Kodaris - Add "Your Status" for the Tickets table
    • Regression Tests
    • Case 1
      • Go to Operations Portal Services → Tickets.
      • Check that Search and Data tabs are rendering properly and we don’t have any broken UI.
    • Tests
    • Case 1
      • Go to the Search tab. Open Columns dropdown and enable the “Customer Status” column.
      • Check that column with the name “Customer Status” rendered properly.
      • Check that sorting/filtering works well for the column.
      • Go to the Data tab. Enable this column for the grid. Check that the column is rendering properly.
  95. KOD-30586: Color update for homepage message
  96. KOD-30587: The field mapPrice is not getting returned in the SOLR product response
    • Regression Tests
    • Case 1
      • Go to Products → Search tab.
      • Verify everything works fine.
    • Tests
    • Case 1
      • Go to Products → Search tab.
      • Make the mapPrice column visible.
      • Make sure the mapPrice column contains values.
  97. KOD-30588: Import CRM Notes as Comments
    • Regression Tests
    • Case 1
      • Go to the Operations Portal Development → Importers. Check that the page and the grid on the page is rendering properly.
      • Go to System → Internal Notes. Check that the page and the grid on the page is rendering properly.
  98. KOD-30589: Workflow Engine UI generates incorrect JSON structure for action inputs
    • Regression Tests
    • Case 1
      • Verify that existing workflows load without errors.
      • Verify that a workflow without actions saves correctly.
      • Verify that editing and saving an existing action works.
    • Tests
    • Case 1
      • Verify that when a workflow is saved, the payload contains inputs:
      • { ... }
      • Verify that when a workflow with an inputs wrapper is loaded, the action fields are displayed correctly.
  99. KOD-30594: Statement/Invoice templates changes
  100. KOD-30604: Test New Automation Endpoint for Orders
  101. KOD-30606: Unhandled issue when tried to Generate AI for AI PIM product
  102. KOD-30614: Gift card creation with balance of zero dollars
  103. KOD-30616: Order approval workflow not accounting for the group roles
    • Regression Tests
    • Case 1
      • Login into the operations portal.
      • Open Customers tab.
      • Open the developer menu and go into the network tab.
      • Open Data tab for customers.
      • Ensure data is loaded.
      • You should see request in the network to the /api/system/customer/list endpoint.
      • Open response and check "roles" field for customers. Ensure they are being returned correctly.
    • Case 2
      • Disable setting limitApprovalEmailsToCompanyAddresses.
      • Setup yourself as an order approver directly. For this, go to your customer account and assign orderApprover role.
      • NOTE: do not use group roles, this should be feature test.
      • (requires setup to trigger this flow) On the checkout for separate customer on the same company, as approver, request approval for the order. Use next steps to enable the flow:
      • Enable companyCustomerSpendingLimitEnabled setting.
      • For customer, which you will use for testing, update orderSpendingLimit value (called Spending Limit on UX).
      • For company you need to enable spendingLimitEnabled (called Enable Spending Limit on UX).
      • Post order with amount, exceeding the limit set.
      • Ensure when the order approval flow triggers, you receive email about order approval.
    • Tests
    • Case 1
      • Assign some group roles to your customer.
      • Ensure that the list, returned in regression case 1, contains the roles assigned from the group.
    • Case 2
      • Use the regression case 2, but assign a group role with orderApprover role within instead of directly assigning the role to the customer.
  104. KOD-30620: Order / Invoice Documents Instructions