All Releases
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

November 20, 2025 release notes

Tickets

  1. KOD-26864: Invalid Date for Purchase History on Website Created From Ticket 28966
    • Regression Tests
    • Case 1
      • On Chrome, make sure the last purchased date is still visible (can navigate to the recently ordered catalog to view products with last purchased date).
    • Tests
    • Case 1
      • In Safari, find products that have been recently ordered (you can go to the recently ordered catalog to easily view) and notice the last purchased date shows properly and no longer says invalid date.
  2. KOD-26932: List of Translations needed
    • Regression Tests
    • Case 1
      • Open the customer portal.
      • Look at the different pages, everything should work as expected.
      • The text should be translated if there are corresponding translations on the operations portal.
  3. KOD-27002: Tax Exempt Customers - Avalara Integration Created From Ticket 29419
    • Tests
    • Case 1
      • New global setting added - avataxCustomerCodePerCompanyEnabled to send customerCode (company code without cono) to Avalara when calculating taxes, so appropriate tax exempt rules can be applied.
  4. KOD-27338: Payments Report API Integration
  5. KOD-27577: Company Groups / Assigned Company import error
  6. KOD-27625: ERP Configuration
  7. KOD-27704: Employment Application Submission
    • Tests
    • Case 1
      • Fill out an employee application form.
      • Upon submission, an email should get sent out (to whatever email is in contactFormEmailTo setting) with the form as an attachment (along with a resume attached if the user attaches resume).
      • The form should also have a signature and be added as an image in the attachment along with the date and client IP address.
  8. KOD-27739: Replace UTC Hour Dropdowns with Local Hour Picker
    • Regression Tests
    • Case 1
      • Verify that the hour dropdown on the Statement Delivery and Lockbox screens is functioning correctly: values are saved to the server and displayed correctly when the form is reopened. Ensure that there are no errors in the console and that other form fields are not broken.
    • Tests
    • Case 1
      • Verify that the text "UTC" has been removed from the descriptions on the Statement Delivery and Lockbox screens.
      • Ensure that the value is saved on the server in UTC, and the user sees the selected local time.
  9. KOD-27752: New AP Automation Vendor Created From Ticket 34855
  10. KOD-27942: Banner Content on pages Phase 2
    • Regression Tests
    • Case 1
      • Check if the search page is working correctly and no issues occur during regular users behaviors on that page.
    • Tests
    • Case 1
      • To test the ticket you need “superuser“ role set for your employee.
      • Check if those settings exist - if not, create:
      • searchSliderSlides,
      • searchSliderSpeed
      • Go to some search screen (type “*“) in the search bar and click “enter”.
      • You should be able to see “Manage Slider“ or slider if it was set already.
      • Check if the modal appears after you click “Manage Slider“.
    • Case 2
      • On the modal try to set different settings and save them.
      • Check if adding a new slide to the modal is working correctly.
      • Check if there is no issue changing order, links, images - every change will be saved only if you hit “save“ on the right-bottom corner of modal.
      • Check if settings you saved are displayed correctly on the website.
    • Case 3
      • Make sure data is reflected correctly.
      • Check if the link is set to the image - then the image banner with that link should navigate you to another site provided in the link.
      • Check if there is no animation if there is only one slide setup.
  11. KOD-28030: Abandoned Cart Integration
  12. KOD-28050: Store Credit Flow
  13. KOD-28136: Payments warehouse issue
  14. KOD-28265: Pricing tolerances feedback
    • Regression Tests
    • Case 1
      • Please test that all 3 order templates look as usual.
    • Tests
    • Case 1
      • Please test that on all 3 order templates we can see a discount percentage if applicable. The value is populated from discpct in trendCompiledSettings.
  15. KOD-28367: Direct Order Processing Issue
  16. KOD-28368: Order Notification Numbers
    • Regression Tests
    • Case 1
      • Check Checkout if it is displaying the order template correctly.
      • Check the email template that was sent after placing an order if it’s displayed correctly - there should be an order number provided by ERP.
      • Generate order invoice in the operations portal to check the template, same requirements as above - there should be only displayed numbers from ERP, not Kodaris one.
    • Tests
    • Case 1
      • Place an order and make sure the order number field on the checkout is empty.
      • After you turn on the settings you should receive email once we get ERP order number and it should be displayed on the order template you get via email.
      • Generate invoice for the order you placed in the operations portal and make sure it displays ERP order number instead of Kodaris.
      • Check the order with status “received“ and generate an invoice to see if we’ve got correct numbers or there is no order number on the template, depending on if the order was released to ERP and get ERP order number or not.
  17. KOD-28375: Transfer options for a product into catalogs / cart
    • Regression Tests
    • Case 1
      • Check if attributes you selected for the product are populated in the cart.
    • Case 2
      • Check if you are able to add regular products without variants to cart and to catalog.
      • Check if you are able to add regular products from catalog to cart.
    • Tests
    • Case 1
      • Find a product with some variants to select.
      • Select some values for the product, add it to cart and to different catalogs (company, customer).
      • Check on the catalog screen if the product you added displays attributes you selected.
      • Make sure everything is looking good for the list and grid view.
    • Case 2
      • Add product to cart from the catalogs screen and check if selected attributes are displayed in the cart for this product.
  18. KOD-28399: Add Store fields to the Terminal Details screen
    • Regression Tests
    • Case 1
      • On the Terminals page, confirm that the grid looks correct and that the data matches the result of
      • POST api/system/terminal/list
    • Case 2
      • Go to the Terminal Details page.
      • In the Merchant Info section , check that all fields are displayed correctly and look good.
      • Open DevTools and find the current API response using the terminalID of the terminal you are viewing.
      • Confirm that the data in the Merchant Info section matches the data from
      • GET api/system/terminal/{terminalID}
    • Tests
    • Case 1
      • Go to the Terminal Details page and find the Merchant Info section.
      • Confirm that there are two new fields : Store Email and Store Website .
      • Open DevTools and find the API response for the current terminalID .
      • Confirm that the data in these two fields matches
      • GET api/system/terminal/{terminalID}
      • If a value in the response is null , the field should be empty .
      • Clear the Network tab in DevTools.
      • Change Store Website and Store Email in the UI.
      • Confirm that PATCH api/system/terminal/{terminalID} was called and the data was updated.
    • Case 2
      • Go to the Terminals page.
      • Open the Show/Hide Columns panel and confirm that two new column names appear:
      • Store Email , Store Website .
      • Show these columns and confirm they appear in the grid.
    • Case 3
      • In a new browser tab, open one of the terminals, terminal details page.
      • Go to its Merchant Info section.
      • Compare the Store Website and Store Email values in Merchant Info with the values in the terminals grid - they should match.
      • Try changing these fields again on the Terminal Details page.
      • Return to the Terminals page.
      • Confirm the data was updated there as well.
    • Case 4
      • Go to the Terminals page.
      • Open DevTools → Network .
      • Change Store Email and Store Website for any terminal.
      • Confirm these cells are editable.
      • Confirm the PATCH api/system/terminal/{terminalID} request is called, data is updated and displayed correctly.
      • Go to the Details page for this terminal
      • Confirm the updated values are shown there.
  19. KOD-28411: Add new script type companyScript
  20. KOD-28436: Product Configurator - Maintain Configured Product Options When Navigating Between Cart and Product Detail Views
    • Regression Tests
    • Case 1
      • Navigate to a regular product page (non-configurator product).
      • Add the product to cart.
      • Navigate to the cart page.
      • Verify the product displays correctly in cart (name, price, image).
      • Click on the product in the cart.
      • Expected Result:
      • The Product page opens normally.
      • URL does not contain any configuration parameters.
      • No JavaScript errors in browser console.
      • "Add to Cart" functionality works as before.
      • The Cart page renders all items correctly (both configurator and non-configurator products if mixed).
    • Tests
    • Case 1
      • Preconditions:
      • Catalog contains a product with a configurator (for example with color selection option).
      • Steps:
      • Navigate to the product page with a configurator.
      • Select a specific configuration (e.g., color "Red").
      • Add the product to cart.
      • Navigate to the cart page.
      • Click on the added product in the cart.
      • Expected Result:
      • The configurator automatically has the same option selected that was added to cart (color "Red")
      • URL contains configuration parameters.
    • Case 2
      • Catalog contains a product with configurator and multiple options (for example with color and size).
      • Navigate to the product page with a configurator.
      • Select a specific configuration (e.g., color "Red", size Small).
      • Add the product to cart.
      • Navigate to the cart page.
      • Click on the added product in the cart.
      • Expected Result:
      • The configurator automatically has the same option selected that was added to cart (color "Red", Size Small).
  21. KOD-28466: Scope Tiered Approval Based on $$
    • Regression Tests
    • Case 1
      • Validate second approval flow continues working as always when company does not have setting secondLevelApprovalSpendingLimit or this one exists but does not have any value.
      • Validate that when company has second approval enabled and company setting secondLevelApprovalSpendingLimit is set to some no numeric string value and a customer first approves an order, this regarding the total of the order the second approve flow is triggered and in the logs we should see next message [JS] Cannot parse company setting secondLevelApprovalSpendingLimit since it is not a number.
      • Pre-requirements:
      • Global setting companyCustomerSpendingLimitEnabled must be enabled.
      • A company with Enabled Spending Limit and Enable Second Approval in Yes.
      • Tree customers configured like this:
      • Customer used to do the purchase : must be configured with limited permission and small spending limit.
      • First approver customer: must be configured similar to the first customer but this must have the role orderApprover.
      • Steps:
      • Go to the company and make sure we don’t have a new setting called secondLevelApprovalSpendingLimit from the Developer Fields tab.
      • Go to customer portal, log in with the customer configured to the purchase
      • Do a purchase with an amount greater than the customer spending limit, the order must be created with status Waiting For Approval.
      • Log out and Log in again but this time with First approver customer.
      • Go to orders and look for the latest order in Waiting For Approval status.
      • Open it up and click approved it (before approve it open logs screen from operations portal).
      • The order must be in status Waiting For Final Approval and in the logs you must not see any special log line since this must be working as always did.
      • NOTE: repeat this same test but adding the setting secondLevelApprovalSpendingLimit with a null value set to its smallValue, the behavior must be exactly the same.
    • Tests
    • Case 1
      • Validate that when company has second approval enabled and company setting secondLevelApprovalSpendingLimit is set to some amount and a customer first approves an order whose total is greater than that amount, the second approve flow is triggered and the order status goes to Waiting For Final Approval .
      • Pre-requirements:
      • Global setting companyCustomerSpendingLimitEnabled must be enabled.
      • A company with Enabled Spending Limit and Enable Second Approval in Yes.
      • Two customers configured like this:
      • Customer used to do the purchase : must be configured with limited permission and small spending limit.
      • First approver customer: must be configured similar to the first customer but this must have the role orderApprover.
      • Steps:
      • Go to the company and add a new setting called secondLevelApprovalSpendingLimit from the Developer Fields tab and set its smallValue to a spending limit amount.
      • Go to the customer portal, log in with the customer configured to the purchase.
      • Do a purchase with an amount greater than the customer spending limit and greater than the spending limit defined in company setting secondLevelApprovalSpendingLimit, the order must be created with status Waiting For Approval.
      • Log out and Log in again but this time with First approver customer.
      • Go to orders and look for the latest order in Waiting For Approval status.
      • Open it up and click approved it (before approve it open logs screen from operation portal).
      • The order must be in status Waiting For Final Approval and in the logs you must see this log line [JS] Second approval flow spending limit exceeded, following second approval flow.
    • Case 2
      • Validate that when a company has second approval enabled and company setting secondLevelApprovalSpendingLimit is set to some amount and a customer first approves an order whose total is smaller than that amount the second approve flow is not triggered and the order status goes to Received .
      • Pre-requirements:
      • Global setting companyCustomerSpendingLimitEnabled must be enabled.
      • A company with Enabled Spending Limit and Enable Second Approval in Yes.
      • Tree customers configured like this:
      • Customer used to do the purchase : must be configured with limited permission and small spending limit.
      • First approver customer: must be configured similar to the first customer but this must have the role orderApprover.
      • Steps:
      • Go to company and add new setting called secondLevelApprovalSpendingLimit from de Developer Fields tab and set its smallValue to a spending limit amount
      • Go to customer portal, log in with the customer configured to the purchase
      • Do a purchase with an amount greater than the customer spending limit and smaller than the spending limit defined in company setting secondLevelApprovalSpendingLimit, the order must be created with status Waiting For Approval.
      • Log out and Log in again but this time with First approver customer.
      • Go to orders and look for the latest order in Waiting For Approval status.
      • Open it up and click approved it (before approve it open logs screen from operation portal).
      • The order must be in status Received and in the logs you must see a this log line [JS] Second approval flow spending limit not exceeded, order doesn't require second approval.
    • Case 3
      • Validate that when company has second approval enabled and company setting secondLevelApprovalSpendingLimit is set to some no numeric string value and a customer first approves an order, this regarding the total of the order the second approve flow is triggered and in the logs we should see next message [JS] Cannot parse company setting secondLevelApprovalSpendingLimit since it is not a number
      • Pre-requirements:
      • Global setting companyCustomerSpendingLimitEnabled must be enabled.
      • A company with Enabled Spending Limit and Enable Second Approval in Yes.
      • Tree customers configured like this:
      • Customer used to do the purchase : must be configured with limited permission and small spending limit.
      • First approver customer: must be configured similar to the first customer but this must have the role orderApprover.
      • Steps:
      • Go to company and add new setting called secondLevelApprovalSpendingLimit from de Developer Fields tab and set its smallValue to a no numeric value
      • Go to customer portal, log in with the customer configured to the purchase
      • Do a purchase with amount greater than the customer spending limit, the order must be in created with status Waiting For Approval
      • Log out and Log in again but this time with First approver customer
      • Go to orders and look for the latest order in Waiting For Approval status
      • Open it up and click approved it (before approve it open logs screen from operation portal)
      • The order must be in status Received and in the logs you must see a this log line [JS] Cannot parse company setting secondLevelApprovalSpendingLimit since it is not a valid number.
  22. KOD-28510: Payments - Add option to use APIs
  23. KOD-28542: Library File Management - Folder
  24. KOD-28571: Payments updates
  25. KOD-28580: Errors and slow speeds Created From Ticket 40177
  26. KOD-28582: Store Credit Link Payments to Account
  27. KOD-28592: Duplicate Items in Cart Pop-Up Created From Ticket 40891
    • Regression Tests
    • Case 1
      • For a product that is not in the cart, you should be able to add that product with no issue on both the product list view and product details view.
    • Tests
    • Case 1
      • Click into a product so you are on the details page → add the product if its not already added → now add the product again → a pop up will appear saying that the item already exists in the cart and asks if you want to update the quantity on the existing item, add a new line item, or cancel and not add the product → click update item → the quantity of the item on the cart should be updated with the original + new quantity.
    • Case 2
      • Now click to add the product again → on the pop up, click add item → now a new line item with the product should be added to the cart with the correct amount.
    • Case 3
      • Now go to the product list view → make sure to test on all 3 views (list, grid, catalog) → repeat the steps above of adding the product to the cart and if it is already present, a popup will appear → if clicking update item, the quantity will be updated on the cart; if clicking add, a new line item will be added.
    • Case 4
      • When a popup appears, either click cancel, the x or out of the box and the modal should close and the cart should not have been updated.
  28. KOD-28603: Update mappings for outside salesreps assignments on shipto creation
  29. KOD-28608: Fix Login Redirect URL in the Session Expired Modal
    • Regression Tests
    • Case 1
      • Test that the login screen works fine and you can login fine with google or using your username/password.
    • Case 2
      • Test that when you navigate to any screen in the operations portal, then log out, log in, you will stay on the previous page.
    • Tests
    • Case 1
      • Test that when you navigate to any screen in the operations portal, be inactive for about 15-20m, and then you should see a “ Your session has expired” popup. Click on the "Sign in with Google" button. After this, you should navigate to the page where you were previously.
  30. KOD-28610: Ensure product list & item data is sent to data lake
  31. KOD-28621: New Invoice Parser
  32. KOD-28629: Tickets Screen - UX for Custom Ticket Indexed Fields
    • Regression Tests
    • Case 1
      • Check that adding the Custom Fields tab didn’t appear on other pages.
    • Case 2
      • Check that there are no errors in the console.
    • Tests
    • Case 1
      • Search for tickets page. Go to ticket details. Check that tab Custom Fields are present. On that tab input some values and reload page. Make sure that values are still available. Then, go to Developer Fields Tab and make sure that there are values that user input on Custom Fields Tab in column Value and code match expected label input.
      • Ensure that when inputs are changed in the form, the values are entered into the developer fields tab (created, deleted, changed).
      • Ensure that the inputs in this form correspond to the integrationIndexedTicketFields setting, settingCode - value, name - label (if any), otherwise label - settingCode.
  33. KOD-28674: Check Order Automation Parser
  34. KOD-28682: Modifications for content-only site
  35. KOD-28684: UX - Budgets tree implementation
    • Regression Tests
    • Case 1
      • Go to the customer portal.
      • Navigate to Locations.
      • Click a location that has budgets with QuoteCode items.
      • Test grid features (sort, filter, etc).
      • Verify it works properly.
    • Tests
    • Case 1
      • Go to the customer portal.
      • Navigate to Locations.
      • Click a location that has budgets with QuoteCode items.
      • Open the "Budget Items" tab.
      • Verify QuoteCode budgets show a ">" icon (next to the comments icon).
      • Verify non-QuoteCode budgets do not show the expand/collapse button.
      • Click the ">" icon on a QuoteCode budget.
      • Verify the icon changes rotation to "v".
      • Wait for children to load.
      • Verify child items appear directly below the parent QuoteCode row, have different background color and same columns as parent rows.
      • Click the "v" icon to collapse.
      • Verify icon changes to ">".
      • Wait for collapse to complete.
      • Verify child items are hidden.
      • Only the parent QuoteCode row remains visible.
    • Case 2
      • Go to the customer portal.
      • Navigate to Locations.
      • Click a location that has budgets with multiple QuoteCode items.
      • Open the "Budget Items" tab.
      • Expand multiple QuoteCode budgets simultaneously.
      • Verify each shows its children correctly.
      • Collapse one while others remain expanded.
      • Verify only the collapsed one's children disappear.
  36. KOD-28690: Operations portal - date / time picker issue
    • Regression Tests
    • Case 1
      • Users still can manually input dates in the proper format in the input field and it applies to the table.
    • Case 2
      • Date picker only appears in the proper column with date(created at, modified at).
    • Case 3
      • Date picker works properly for page details.
      • Operations portal->CMS->Pages->Page Details.
    • Tests
    • Case 1
      • User clicks on the filter icon under the table header (created at, last modified), and a popup appears with date input.
      • User can click on the datepicker icon, and the datepicker appears.
      • User can pick a proper date and see this value in input.
      • User clicks Apply and filter applies to table.
  37. KOD-28696: Mapping Products to ICSW - Implement SKU to ERP Synchronization APIs
    • Tests
    • Case 1
      • Validate new endpoints /api/system/sku/{skuID}/updateSkuInErp and /api/system/sku/{skuID}/addSkuInErp are working as expected.
      • Pre-requirement:
      • Global setting erpLogicEngine must be set to InforCSD.
      • Steps:
      • Go to the Operations Portal’s swagger.
      • Look for the endpoint to test.
      • Pass a skuID as param.
      • Click on the Execute button.
      • From the Operations Portal go to the System Events screen.
      • You must see Events CSDSku_ResponseSkuChange (for endpoint /api/system/sku/{skuID}/updateSkuInErp} execution) and CSDSku_ResponseSkuAdd (for endpoint /api/system/sku/{skuID}/addSkuInErp execution) with the payload sent properly generated according interceptors inforCSDSkuChg.js and inforCSDSkuAdd.js
  38. KOD-28697: Look at "shipreqfl" Flag for Required Return Shipto
    • Tests
    • Case 1
      • Test two new endpoints:
      • /api/account/order/{orderID}/shippingAddressRequired - accepts orderID.
      • /api/account/order/shippingAddressRequired - accepts companyID.
      • Both endpoints should look for the same setting under company: shipreqfl
      • If it is true or yes, the endpoints should return true, otherwise false.
    • Case 2
      • Look at the response of:
      • /api/account/order/shippingAddressRequired
      • Test submitting return.
      • If the response of shippingAddressRequired endpoint is false, then return should be submitted successfully.
      • If the response of shippingAddressRequired endpoint is true, then return should require location. If location is not provided, the return should fail with error:
      • Cannot submit a return because a location is required.
  39. KOD-28698: Ship Via Defaulting Issue Created From Ticket 41568
    • Regression Tests
    • Case 1
      • Add a product to the cart → make sure there are non billing addresses you can select for the shipping address → when you go to step 3 of checkout, make sure under the select a shipping option, the correct option is defaulted (if the address has a type, it should default to that, else it should default to the companies default ship via).
    • Tests
    • Case 1
      • When checking out, if there is only a billing address available, the select a shipping option should default to the company’s default ship via.
      • (when testing, make sure you start out with a new cart. If you clicked a shipping option previously, it will default back to the one that you chose).
  40. KOD-28699: Pricing tolerances rounding issue
    • Regression Tests
    • Case 1
      • We need to place an order and verify if the orders go through if there are no price discrepancies, and if there are some - they are not caused by not rounding the CSD price.
  41. KOD-28706: Get Related Products when Display = "No" - Platform
  42. KOD-28708: Parser From Ticket 41569
  43. KOD-28718: Order Change Interceptor Updates
    • Regression Tests
    • Case 1
      • Start a cash quote from the company.
      • Then click the button: 'save to ERP'.
      • After clicking the button should return the message: ‘ about saved cash quote to ERP ’.
    • Tests
    • Case 1
      • Start a cash quote from the company.
      • Then try to find a new js file interceptor with name: saveOrderToErpValidationManual.js on page: http://localhost:8080/operations/interceptors.
      • Open a new interceptor validation js file and add some test conditions.
      • Then go to created cash quote → go to development tab: http://localhost:8080/operations/cash-quotes/4784/development and set field: extra1 = 'TestException' for throwing test exception
      • Then click the button: 'save to ERP'.
      • Then should get a test error message.
  44. KOD-28719: Model Number Search Issue
    • Regression Tests
    • Case 1
      • Search for a valid model number.
      • Find a product without inventory that has been superseded only one time.
      • Click View Details.
      • Verify panel opens showing the superseding product with inventory instead of the original product.
    • Case 2
      • Search for a valid model number.
      • Verify that the integration loads properly.
      • Go to a valid product.
      • Click View Details.
      • Confirm the product panel displays correct information.
      • Test Add to Cart to ensure the cart integration works.
    • Tests
    • Case 1
      • Search for a valid model number.
      • Find a product without inventory that has been superseded more than one time.
      • Click View Details.
      • Verify panel opens showing the final superseding product with inventory.
  45. KOD-28725: Spin Up System
  46. KOD-28727: Install Applications
  47. KOD-28732: Invoice Parser - Incorrect Total Being Captured
  48. KOD-28734: AP-Invoice Failing with "No Items Found" Error Despite Valid Item Cross Reference Created From Ticket 25300
  49. KOD-28733: Spin Up System
  50. KOD-28746: Parser from Ticket 41703
  51. KOD-28749: Next Steps for Quote Automation
  52. KOD-28751: Parser from Ticket 41709
  53. KOD-28759: Website Assistance to Add Link to Copyright Footer Created From Ticket 41590
    • Regression Tests
    • Case 1
      • As a regression test, let's make sure that by default, the links in the bottom menu are displayed as before. If we don't have links in the Footer Bottom Links section.
      • We also see that the save is working successfully, the content is updated and there are no new errors.
    • Tests
    • Case 1
      • Navigate to Site Customizer.
      • Locate the "Footer Bottom Links" section in the main customizer menu.
      • Click the "Add Items" button.
      • Enter Link Name and URL.
      • Click the "Publish" button.
      • Expected Results:
      • Links appear in the footer copyright section on the live site.
    • Case 2
      • Navigate to Site Customizer.
      • Open "Footer Bottom Links" section.
      • Note the current number of links (e.g., 3 links).
      • Click "Remove" on all items.
      • Click "Publish".
      • View the site footer links.
      • Live site footer displays fallback hardcoded links (Terms of Use, Privacy Policy, etc.) when no custom links exist.
  54. KOD-28761: Implement redirection to the System Events tab from the Company/Order screen
    • Regression Tests
    • Case 1
      • Open the Companies page.
      • Confirm that the URL matches the active tab: /companies/search/{activeTabName}
      • Confirm that breadcrumbs show only "Companies".
    • Case 2
      • Locate a company with existing orders.
      • Open the company details page.
      • Confirm that the URL matches the format: companies/:companyID/{tabName}.
      • Confirm that breadcrumbs display: companies /{companyNumber} regardless of the active tab.
    • Case 3
      • Open the Orders tab.
      • Select any order from the Orders list.
      • Open the order details page.
      • Confirm that the URL matches the format: companies/:companyNumber/orders/:orderID/{tabName}
      • Frauds tab, Delivery (Custom Fields), and Delivery (Development) redirect to the details page.
      • Associated Orders have the URL name back-orders .
      • Confirm that breadcrumbs display: companies /{companyNumber}/orders/{orderNumber}
    • Case 4
      • Switching between tabs on any page does not change the breadcrumbs, but the URL always updates according to the selected tab.
      • Breadcrumb navigation works correctly and consistently, leading to the appropriate pages as expected.
      • Hover link preview displays the correct destination URL in the browser’s bottom-left corner for any breadcrumb or navigation link.
    • Tests
    • Case 1
      • Navigate through the flow: Companies page - Company Details page - Orders tab - Order Details page.
      • Open the "More" dropdown menu on the Order Details page.
      • Hover over the "System Events" item.
      • Confirm that the preview link shown in the bottom-left corner of the browser matches the expected destination URL.
      • Click the "System Events" item.
      • Confirm that the redirection works correctly.
      • Confirm the new URL is:
      • companies/:companyNumber/orders/:orderNumber/system-events
      • Confirm that breadcrumbs remain the same and continue to display the companies-related path.
      • Confirm that the System Events grid appears on the page.
      • If the order contains any system events, the relevant data should also be displayed in the grid.
      • Open the system events details of any item from the grid.
      • Confirm that the redirection leads to the corresponding order system event page.
  55. KOD-28764: PO Number Not Found Exception for French Vendor Created From Ticket 33340
  56. KOD-28765: Parser from Ticket 41732
  57. KOD-28767: Kodaris Dev Examples: Hold an order with interceptors
    • Tests
    • Case 1
      • Open Interceptors, go to releaseOrderValidationAuto.js.
      • Paste code from repo, located in interceptors\releaseOrderValidationAuto.js .
      • Add a customer’s email and try to place an order from the customer portal from that email.
      • Then go back to the operations portal to orders screen. That order is expected to be not released to CSD.
    • Case 2
      • Open Interceptors, go to releaseOrderValidationManual.js.
      • Paste code from repo, located in interceptors\releaseOrderValidationManual.js .
      • Add your email and try to release to ERP.
      • An error message is expected to appear in the bottom left corner.
  58. KOD-28768: Kodaris Dev Examples: Payment PDF Generation
  59. KOD-28769: Parser From Ticket 32194
  60. KOD-28770: Ticket Created From Ticket 41734
  61. KOD-28774: Check on adding shippingMethod through customer order post
  62. KOD-28777: Make "Log in for Price" area clickable for direct login access
    • Regression Tests
    • Case 1
      • Log in to the website.
      • Click on the product price.
      • Verify that no redirect occurs.
    • Tests
    • Case 1
      • Open the website.
      • Navigate to any product category (check list and catalog as well).
      • Click on “Log in for Price” and verify you are redirected to the login page.
      • Open a product detail page.
      • Verify that clicking “Login for Price” redirects to the login page as well.
  63. KOD-28778: Run tests for Mobile Apps
    • Tests
    • Case 1
      • UX changes should be reflected on mobile app and categories on mobile should be the same, as on the web.
      • UX web does not use the next endpoint, only mobile does.
      • Test via swagger:
      • /api/user/category/cache
      • To return correct values when multiTenantMode setting is enabled and on different hosts.
      • For example, you can test on the commerce site if categories returned are similar to the categories displayed on the website.
    • Case 2
      • On the customer mobile app for the edge case, when no shipping methods are returned, you should still be able to create an order.
  64. KOD-28780: Display Quote instead of Acknowledgement on order templates for orders of ERP order type = quote
    • Regression Tests
      • Case 1
      • Make sure orders that do not have ERP order type = quote still show Acknowledgment or Invoice on the order templates
      • Check for order details (in customer portal) and order email and pdf (in operations portal).
      • (if order is invoiced or paid it should say Invoice, else it should say Acknowledgement).
    • Tests
    • Case 1
      • For orders that have ERP order type = quote, on the order templates (for order details, email and pdf), it should say Quote instead of Acknowledgement.
    • Case 2
      • When a customer changes to French, on the order details screen, ‘Quote’ should be ‘Soumission’ instead.
  65. KOD-28781: Limit Characters in PO field on checkout
    • Regression Tests
    • Case 1
      • Please check if all 3 checkout pages look as usual.
    • Case 2
      • Please test that the PO input field works as usual and we can place the order.
      • Please check if the PO value is correct.
    • Tests
    • Case 1
      • Please test that the user cannot checkout with more than 22 symbols in the PO field.
    • Case 2
      • Please enter more than 22 symbols to the PO input → Refresh the page and the PO input should be trimmed. We should be able to place orders now .
  66. KOD-28784: UX updates to Customer Guide
  67. KOD-28788: Parser from Ticket 41694
  68. KOD-28794: Limit PO Characters in Checkout
    • Regression Tests
    • Case 1
      • Check if you are able to place an order with some value for Purchase order that is less than 22 characters.
    • Tests
    • Case 1
      • Check if you can type more than 22 characters in the PO field on the checkout.
    • Case 2
      • Start an order on the commerce website, find it in the operations portal, set PO for that order in the operations portal longer than 22 characters and go back to the website, refresh to get updated data for the order. Place an order and check if PO for this order was trimmed.
    • Case 3
      • Put something on the cart and start placing orders.
      • Type more than 22 chars on the input.
      • Click somewhere else to trigger update PO with value grater than 22 chars.
      • Perform navigation to the previous page and return to one with checkout.
      • Check if you are able to place an order if value wasn’t truncated and it has more than 22 chars.
  69. KOD-28795: New Parser Created From Ticket 41927
  70. KOD-28797: Parser from Ticket 41928
  71. KOD-28799: Pricing Issue - Type1/Type 2 Pricing Created From Ticket 42004
  72. KOD-28801: Order Global Notes
  73. KOD-28803: Fix order /discrepancies endpoint to not update settings if those did not change the values
    • Regression Tests
    • Case 1
      • Validate that warningCount and exceptionCount are properly created when they do not exist at all in an order.
      • Steps:
      • Go to an order which does not have any discrepancy (those where the the settings warningCount and exceptionCount are set to 0).
      • Go to the developer tab and look for Remove the settings warningCount and exceptionCount from there.
      • Refresh the page.
      • The setting must be re-created.
    • Case 2
      • Validate that warningCount and exceptionCount are properly created when they do not exist at all in a vendor invoice.
      • Steps:
      • Go to an vendor which does not have any discrepancy (those were the the settings warningCount and exceptionCount are set to 0).
      • Go to the developer tab and looks for Remove the settings warningCount and exceptionCount from the there.
      • Refresh the page.
      • The setting must be re-created.
    • Tests
    • Case 1
      • Validate that when /api/system/order/{orderID}/discrepancies endpoint is called, the lastModified field of the order is not updated if order settings exceptionCount warningCount have not changed.
      • From the Operations portal go to the order screen.
      • Make visible column Last Modified.
      • Enter to the order details.
      • Last Modified field must remain the same.
    • Case 2
      • Validate that when /api/system/order/{orderID}/discrepancies endpoint is called and this creates the settings exceptionCount warningCount , lastModified field of the order is updated.
      • Steps:
      • From the Operations portal go to the order screen.
      • Make visible column Last Modified.
      • Enter to the order details.
      • Go to Developer Fields tab and remove any of the setting exceptionCount warningCount.
      • Refresh the page (this will trigger the call to this endpoint).
      • The lastModified field must have been updated to current date time and the setting(s) must be recreated.
    • Case 3
      • Validate that when /api/system/order/
      • {orderID}/discrepancies endpoint is called and this updates any of the settings exceptionCount warningCount , lastModified field of the order is updated.
      • Steps:
      • From the Operations portal go to the order screen.
      • Make visible column Last Modified.
      • Enter to the order details of an order which has discrepancies.
      • lastModified must be updated since settings (both or one could be updated, depending the case) exceptionCount warningCount must be updated and therefore lastModified field must have been updated to current date time.
    • Case 4
      • Validate that when /api/system/vendorInvoice/{vendorInvoiceID}/discrepancies endpoint is called, lastModified field of the order is not updated if order settings exceptionCount warningCount have not changed.
      • Steps:
      • From the Operations portal go to Vendor Invoices screen.
      • Make visible column Last Modified.
      • Enter to the vendor invoice details.
      • Last Modified field must remain the same.
    • Case 5
      • Validate that when /api/system/vendorInvoice/{vendorInvoiceID}/discrepancies endpoint is called and this creates the settings exceptionCount warningCount , lastModified field of the order is updated.
      • Steps:
      • From the Operations portal go to Vendor Invoices screen.
      • Make visible column Last Modified.
      • Enter to the vendor invoice details.
      • Go to Developer Fields tab and remove any of the setting exceptionCount warningCount.
      • Refresh the page (this will trigger the called to this endpoint).
      • lastModified field must have been updated to current date time and the setting(s) must be recreated.
    • Case 6
      • Validate that when /api/system/vendorInvoice/{vendorInvoiceID}/discrepancies endpoint is called and this updates any of the settings exceptionCount warningCount , lastModified field of the order is updated.
      • From the Operations portal go to Vendor Invoices screen.
      • Make visible column Last Modified.
      • Enter to the order details of an vendor invoice which has discrepancies.
      • lastModified must be updated since settings (both or one could be updated, depending the case) exceptionCount warningCount must be updated and therefore lastModified field must have been updated to current date time.
  74. KOD-28804: Digital Credit Application Update Tweaks
    • Regression Tests
    • Case 1
      • Check that authorization is working correctly,
      • Check that there are no errors in the console after authorization,
      • Check that files with the “Other” type are downloaded correctly, the preview looks correct,
      • Check that adding an internal file works well.
    • Case 2
      • Navigate to the /spcu/credit-application-register page.
      • Follow the process and confirm a new company is created with “Appling for Credit” status.
      • Fill in all fields and submit the form.
      • Confirm form is submitted.
      • Confirm status of the new company has changed to “Applied for Credit”.
    • Case 3
      • On the credit application form confirm the following blocks are displayed.
      • AP information
      • Business Financials
      • Owners and etc.
      • Confirm not filled required fields in those blocks are restricting user from submitting a credit application form.
      • Confirm you can proceed with the credit application properly.
  75. KOD-28805: Updates for Order Confirmation template
    • Regression Tests
    • Case 1
      • Verify that we can open the order detail page in the customer portal, and confirm that we can view order emails/PDF through the Operations Portal.
      • Also, check if all data displays without any issues.
    • Tests
    • Case 1
      • Verify next:
      • You can see tracking numbers when the order has tracking information.
      • All fields with pricing values as UNIT PRICE, LINE TOTAL, total, addons info, etc. have 2 symbols after dot and $, like $5.00 or $9.9
      • If the order doesn’t have tax, you should see 0 amount on templates for email, pdf and in the customer portal.
  76. KOD-28806: Blogs on the home page not displaying properly
    • Regression Tests
    • Case 1
      • Please check if the home page still is displayed as usual.
    • Case 2
      • Please test that we can see blogs populated on the home page.
    • Tests
    • Case 1
      • Please check that when there’s a hidden page ( today is not within start - end date range) that is supposed to be shown on the home page blog section (we’re showing the newest 3 blogs sorting by order and id) - it would be replaced with the following blog.
  77. KOD-28812: Update post oeeh mappings for returns
  78. KOD-28816: Convert Homepage to CMS page
  79. KOD-28818: Multiple Matrices Per Quote - Pricing Groups
    • Regression Tests
    • Case 1
      • Validate Pricing screen and pricing details screen continue working when loaded, modified pricing records.
    • Tests
    • Case 1
      • Validate the new field priceTypeGroup is in the price records.
      • Steps:
      • From the operations platform go to the Pricing screen.
      • Go to tab Data.
      • Open up the browser dev-tools and go the Network tab.
      • Click on the refresh button.
      • Select the list request and check that in the response the pricing record must have the field priceTypeGroup.
    • Case 2
      • Validate the new field priceTypeGroup is in the price records is being properly indexed in Solr
      • From the operations platform go to the Pricing screen.
      • Go to tab Search.
      • Open up a pricing record.
      • Go to the Development tab.
      • The pricing record must have the field priceTypeGroup.
  80. KOD-28821: PO number characters
    • Regression Tests
    • Case 1
      • Check that all 3 steps of checkout are working fine.
    • Case 2
      • Check that PO input on the third step of checkout works fine.
    • Tests
    • Case 1
      • Check that when the user types more than 22 symbols in the PO field you have the message "Purchase Order cannot exceed 22 characters".
  81. KOD-28827: Parser update from Ticket 14245
  82. KOD-28831: Customer Email wrapping in Header
    • Regression Tests
    • Case 1
      • Check that the website header still looks good and loads without issues.
      • Both guest and logged in user.
    • Tests
    • Case 1
      • Login with two different users, one with a short username (~20-25 characters) and one with a longer username (~27-30+) characters.
      • Check that the header My Account section looks good and isn’t wrapped to two lines.
  83. KOD-28833: Remove the 'product' search option from the header search bar
  84. KOD-28834: Remove "Add Note" Request
    • Regression Tests
    • Case 1
      • Check that all 3 steps of checkout are working fine.
    • Tests
    • Case 1
      • On the first step of checkout verify that you don’t see add a note option.
  85. KOD-28835: Returns Functionality
  86. KOD-28836: Phone Number on Pickup Orders
  87. KOD-28841: Vendor- Mapping Updates Invoice Number, Invoice Date & Taxes
  88. KOD-28846: UX Spend vs Usage
    • Regression Tests
    • Case 1
      • Check that the Usage and Spend pages are still loading and displaying correctly without issues.
    • Tests
    • Case 1
      • We’ve made an update on the Usage screen to now get the sum of products bought with the field isOrderItemSpend = false.
      • We are now also displaying the sum of the custcost setting for each item.
      • So basically for isOrderItemSpend to be false, the setting billonrcptfl on the order has to exist and have a value of false .
      • Then those order items count as usage items.
    • Case 2
      • For the Spend page, we are now filtering by isOrderItemSpend = true on order items.
      • So basically for isOrderItemSpend to be true, the setting billonrcptfl on the order has to not exist, or have a value of true .
      • Then those order items count as spend items.
  89. KOD-28851: Sending negative total for returns
  90. KOD-28852: Pricing discrepancies
  91. KOD-28862: Changes to invoices - Template Update for "Add Ons"
    • Regression Tests
    • Case 1
      • Check that the order templates still look good in the customer portal.
    • Tests
    • Case 1
      • Check that if the order has discounts, they are showing on the template in the customer portal.
  92. KOD-28865: Update Parser to parse credit memos
  93. KOD-28870: Inventory Locations Display Issue
    • Regression Tests
    • Case 1
      • Check that as both guest and logged in users, you can still select a store, see inventory on products, and everything loads correctly.
    • Case 2
      • Clear cache and permission preferences for the site.
      • When you go to a category page and see the popup for location permissions, check that you can choose both allow and deny without issues.
    • Tests
    • Case 1
      • Check that in the previous test case, whether you choose allow or deny, no inventory is shown until a store is selected. Whether that is based on your location or your denied location services.
      • A list of inventory locations should not be shown at all, after a store is selected it should only be one store and the store that is selected.
  94. KOD-28890: Library File Management - Platform update
  95. KOD-28900: Requested Pickup/Delivery Date Feature
    • Regression Tests
    • Case 1
      • Check that the checkout flow still works as expected without issues and everything looks good.
    • Tests
    • Case 1
      • On the final checkout tab, there should be a new section to choose a delivery/pickup date and time.
      • Check that you can select a time and date and if you refresh the page your changes are saved.
  96. KOD-28901: Implementation - Branding
  97. KOD-28906: Make Customer Guide selection available for punchout orders
    • Regression Tests
    • Case 1
      • Make sure that the first step of checkout still works without any errors.
    • Tests
    • Case 1
      • The MRO Guide box should now be also available for punchout orders.
  98. KOD-28926: Kodaris - Update Create JIRA Ticket Action