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

December 18, 2025 release notes

Highlights

Operations Portal

New Password Policy Configuration Screens Now Available in Operations Portal

The Operations Portal now includes dedicated Password Policy Configuration screens that allow administrators to centrally manage password requirements for both customers and employees.

The configuration options include setting previous password checks to prevent reuse, requiring special characters and alphanumeric combinations, defining minimum password length, and establishing password expiration periods.

This feature is now live in the Operations Portal. For a complete walkthrough of the configuration options, view the full demonstration video.

https://youtu.be/Ip7Euy7F3-A

Tickets

  1. KOD-24149: App showing empty when trying to filter by city
    • Tests
    • Case 1
      • Go to the companies screen.
      • Press on the map icon on the top right of the screen.
      • Regular methods to control maps should work as expected. For example:
      • Center map on user’s location.
      • Zoom in.
      • Zoom out.
      • Moving the map view.
    • Case 2
      • Searching by text on the map should work in the same way, as on the grid, but the results should be displayed on the map directly.
    • Case 3
      • Search here action on the top center should take current boundaries of the map and perform a search within these boundaries.
    • Case 4
      • Using grid icon to return back to grid should return you to the grid without changing found companies. Basically, if you “searched here” within the map, it should be reflected on the grid too.
      • This should work visa-versa. After filtering something within the grid, switching to the map should show every location found, which have coordinates attached to it. Locations without coordinates are ignored.
    • Case 5
      • After searching with “Search Here” and switching to the grid, you should see the “remove location“ icon as one of the actions. This action will dismiss a special filter that was applied by “Search Here” within the map.
    • Case 6
      • Change page size and marker amount should work in a similar way across map and grid views.
  2. KOD-24236: Surface Statement PDFs in Customer Portal - Self Serve
  3. KOD-26927: -99 Invoices not emailing to customers
  4. KOD-27479: Search Collections
  5. KOD-27744: Enter Card to Pay Open Invoices but don't Vault
  6. KOD-28057: Product Configurator
  7. KOD-28117: Shipping fees and calculations - Next steps
  8. KOD-28179: Operations Portal - Page Draft - Comments
  9. KOD-28204: List of Tables used
  10. KOD-28261: Roll out the latest Product Configurator updates to all customers
  11. KOD-28410: Add Slider & Number to PDP
  12. KOD-28420: Kodaris - Credit App - Ability to add financial accounts to company
  13. KOD-28422: Company not Showing ACH & Web Users as Yes Created From Ticket 39461
    • Tests
    • Case 1
      • Validate Web Users and ACH Payments columns on the search tab from Company screen are properly calculated when only one customer has roles companyAdmin and/or accountsPayable associated by Group Role.
      • Pre-requirements:
      • A company with only one customer who belongs to Group Role that contains any of these roles companyAdmin , accountsPayable.
      • Steps:
      • From the Operations portal go to Companies and select the tab Search.
      • The company who has customer defined in the pre-requirements sections must have column Web Users and ACH Payments set according the next rules:
      • ACH Payments: If the group role contains role accountsPayable , value must be Yes otherwise it must be NO.
      • Web Users : If in the group role contains any of the roles accountsPayable or companyAdmin , value must be Yes otherwise it must be NO.
    • Case 2
      • Validate that in Companies > Company > Customers screen the roles added by Group Roles are properly displayed in the customer records.
      • Pre-requirements:
      • A customer who belongs to Group Role and also have roles assigned directly
      • Steps:
      • From the Operations portal go to Companies.
      • Go to the company details.
      • Go to the Customers tab.
      • Make visible roles columns.
      • You must be in the customer’s roles list which also includes the roles assigned through a Group Role.
  14. KOD-28508: Kodaris Mobile App - Emailing Orders Error Created From Ticket 40198
  15. KOD-28540: Kodaris Dev Examples: Search Filters
  16. KOD-28565: Load options to a product configurator based on all related products
    • Regression Tests
    • Case 1
      • Check if the products are loading correctly. Regular ones and configurator.
    • Tests
    • Case 1
      • Check if the product displays all variants from related products options.
      • Check time for loading the product page if it has more than 100 results.
  17. KOD-28578: New parser from Ticket 40622
  18. KOD-28579: New parser from Ticket 40620
  19. KOD-28712: Product Configurator Attribute and Option Sorting Functionality
    • Regression Tests
    • Case 1
      • Go to the Operations Portal PIM → Filter categories. Select a category.
      • On the single category Detail page try to change “Position” property.
      • Check that everything is saved properly.
    • Tests
    • Case 1
      • On the test website find the product that has some filters on the page.
      • Go to the Operations Portal PIM → Filter categories. Find these filters in the Filter categories.
      • Try to change filter categories “position” property in the table to make the new order of filters.
      • Go to System → Scheduler. Find SolrReindexJob. Run it manually by clicking on the running man icon on the right side of the row.
      • Go to the website product page. Reload it and check that the order of filters was changed.
    • Case 2
      • Select one of the Filter categories of the product.
      • Go to PIM → Filter categories, select this specific category.
      • Go to the Attributes tab of this category.
      • Try to change order of attributes by clicking “Edit” icon on each attribute and changing “Order” value in the modal form.
      • Go to System → Scheduler. Find SolrReindexJob. Run it manually by clicking on the running man icon on the right side of the row.
      • Go to the website product page. Reload it. Then open the right category select and check that the order of options was changed.
  20. KOD-28724: Confirmation email & logo
    • Regression Tests
    • Case 1
      • Open the website.
      • Log in.
      • Add products to the cart.
      • Go to the checkout page and fill in the form using your test email.
      • Place the order.
      • Check your email inbox and verify:
      • The email template displays correctly.
      • The sender email address is correct.
      • The logo renders properly.
      • Additional Note:
      • Test the email in multiple email clients (Gmail, Outlook) to ensure correct logo rendering.
      • This regression test confirms that issues previously fixed in the first website are also resolved here.
    • Tests
    • Case 1
      • Open the website.
      • Log in.
      • Add products to the cart.
      • Go to the checkout page and fill in the form using your test email.
      • Place the order.
      • Check your email inbox and verify:
      • The email template displays correctly.
      • The sender email address is correct.
      • The logo renders properly.
      • Additional Note:
      • Due to previously reported issues with logo rendering in Microsoft Outlook, validate the email on multiple services (e.g., Gmail, Outlook).
      • Ensure the logo displays correctly across all tested email clients.
    • Case 2
      • Open the Operations Portal.
      • Navigate to the Order screen.
      • Select any order.
      • Click on “Configure Email”.
      • Send the email to your test email address.
      • Verify:
      • The logo is displayed correctly in the received email.
      • The email was sent from the correct company address.
  21. KOD-28772: Account Automation - GeoCode, Route Assignment Piece
    • Regression Tests
    • Case 1
      • Ensure that the company is successfully saved in the ERP.
      • Ensure that the company's shipping address is successfully saved in the ERP.
    • Tests
    • Case 1
      • Ensure that when saving the company in ERP, the fields are mapped from the postal code table to the corresponding CSD fields, as shown below:
      • Ensure that when saving the company's shipping address in ERP, the fields are mapped from the postal code table to the corresponding CSD fields.
  22. KOD-28790: Start syncing data
  23. KOD-28798: Make the shipto defaulted on the user level
    • Regression Tests
    • Case 1
      • Test switching a company on the customer portal still works.
      • Confirm that the default company address is selected properly when switching a company.
    • Tests
    • Case 1
      • For the company, where your current customer is located, take the code of some active address under this company.
      • Use this code in the endpoint /api/account/customer/defaultCompanyAddress.
      • Test two cases:
      • Switching to child company and back should apply address, you used for step 2
      • Logging out and logging back in should apply to the same address.
    • Case 2
      • Test security of the endpoint: /api/account/customer/defaultCompanyAddress
      • You should not be able to select company addresses from other companies.
      • You should not be able to select inactive addresses.
      • If the customer does not have any of those roles, "companyAdmin", "editAllLocations", "viewAllLocations" , the customer should have access to assigned company addresses only. Confirm if it is working correctly.
    • Case 3
      • Test updating defaultCompanyAddressCode via /api/system/customer/{customerID}
      • Confirm it has proper validation.
      • If the customer has access to the company address, it should be assigned.
      • If the customer does not have access to the company address, it should fail with next error:
      • User does not have permissions for this company address.
  24. KOD-28802: CRM questions and additional updates
  25. KOD-28809: Replatform - Order & Invoice Display - PDF that is generated Created From Ticket 41566
    • Regression Tests
    • Case 1
      • Confirm that the PDF template loads correctly, that we can see its content with data, and that there is no white screen or errors.
    • Tests
    • Case 1
      • Confirm that the Due Date is present in the template.
    • Case 2
      • Confirm that after Subtotal we display the label Shipping , not Freight.
    • Case 3
      • Confirm that the Add’l Charges section before Subtotal is not displayed.
  26. KOD-28825: Punchout Base Setup
  27. KOD-28837: Freight Handling for Specific Customers
    • Regression Tests
    • Case 1
      • Please test that the order still is released to ERP successfully.
    • Case 2
      • Please test that we do send the shipping price to ERP in addonAmount2 field (please refer to test case 3).
    • Tests
    • Case 1
      • Customers who pay actual freight :
      • Set user1 field to yes on the company under which you’ll place the order.
      • Check if the shipping amount is still displayed for these customers.
      • Place order with ['9.95', '12.95', '34.95', '69.95'] one of these shipping prices and release to ERP.
      • Check SX_OrderChange event under system events tab on order and see if the addonAmount5 and addonNetAmount5 fields don’t have shipping price.
      • In the same event check if the pmFlag is true.
    • Case 2
      • Customers with prepaid freight :
      • Make sure user1 field is empty on the company under which you’ll place the order.
      • Add the company code to the freeShipping discount companiesAppliesValue.
      • Check if shipping amount is not displayed for these customers.
      • Place order with any one shipping method and release to ERP.
      • Check SX_OrderChange event under system events tab on order and see if the addonAmount5 and addonNetAmount5 fields don’t have shipping price.
      • In the same event check if the pmFlag is false.
    • Case 3
      • Companies that does not belong to any of types above :
      • Make sure user1 field is empty on the company under which you’ll place the order.
      • Make sure the company code is not added to the freeShipping discount companiesAppliesValue field.
      • Check if shipping amount is displayed for these customers.
      • Place order with any one shipping method and release to ERP
      • Check SX_OrderChange event under system events tab on order and see if the addonAmount2 fields have shipping price.
      • In the same event check if the pmFlag is true.
    • Case 4
      • Punchout order ( order should be created from the operations portal).
      • We cannot do a real test, but we can test the pmFlag by adding the isPunchOutOrder setting.
      • Add the setting isPunchOutOrder with integerValue and the value should be 1.
      • Select any shipping method.
      • Release order to ERP.
      • Check SX_OrderChange event under system events tab on order and see if the pmFlag is true.
  28. KOD-28853: Missing Shipping Options
  29. KOD-28854: In Stock Hover Message
    • Regression Tests
    • Case 1
      • Go to the catalog page.
      • Dive into some catalog.
      • Check if in stock message is displayed correctly.
      • Check if filters are working correctly.
    • Tests
    • Case 1
      • Check if there is a “local branch” displayed instead of a “warehouse” filter.
      • Check if tooltip is displaying the message from description.
      • Check if everything is looking and working fine on mobile.
  30. KOD-28868: Order / Invoice Documents Additional Tweaks
  31. KOD-28873: Update repository to include quote payments
    • Regression Tests
    • Case 1
      • Verify that order creation is working correctly.
      • Verify that standard payment methods are working correctly.
      • Verify that there are no issues when selecting a payment method in the console.
      • Ensure that the checkout functionality is working correctly.
      • Ensure that the layout is not broken during checkout.
    • Tests
    • Case 1
      • Make sure that the Save Quote checkout option only appears for customers with any shipto and with the "enableCustomerQuoteRequestInCart" setting enabled.
      • Make sure that if the setting is inconsistent (either enableCustomerQuoteRequestInCart networking is disabled or user log out on the website), the Save Quote checkout option does not appear.
      • Verify that the Save Quote checkout option is working correctly by clicking "Save a quote"; the status is 200 OK.
      • Check that after clicking on “Save a quote“ we have a new item on the Cash Quotes page in the Operation Portal.
      • Check that after clicking on “Save a quote“ we have a new item on the Quotes page in the Customer Portal.
      • Make sure there are no errors in the console on the checkout page related to adding the new Save a Quote payment option.
      • After creating a quote, ensure that the template on the website matches the template on the Quotes page in the Customer Portal.
      • Make sure the default Cash Quote status after creation is "Quote in Process." On the Quote Details page in the Customer Portal, we see two options in the "More" dropdown: "Attach File" and "Print."
      • Verify that after changing the quote status in the operational port to "Quote Pending," three options are visible in the "More" dropdown on the Quote Details page in the customer portal: "Attach File," "Print," and "Accept Quote."
      • Verify that when clicking "Accept Quote," the user is redirected to the website's cart page. No errors are displayed in the console.
      • Verify that the "Place order" buttons are available for the "Account" and "Card" payment methods.
      • Verify that the "Place order" buttons are not displayed for the "Save as a quote" payment option. The method is selected by default.
  32. KOD-28875: Please include inactive products in export to data lake
  33. KOD-28879: Order with return available
  34. KOD-28885: BI Update Engaged Customer Count to Sales in Last 6 months Created From Ticket 41577
  35. KOD-28888: Push Kodaris Identifier on Order Import
    • Tests
    • Case 1
      • Update interceptor as provided in the comment.
      • Place an order.
      • On the Event screen look for the event type - MappedPayload-syncOrders after you placed the order.
      • Check if user2 field was populated with “Kodaris“ value.
  36. KOD-28894: Remove Ability to Check Out with Purchase Order
  37. KOD-28896: Implement Product Configurator
    • Regression Tests
    • Case 1
      • Open product list.
      • Find a regular (non-configurable) product.
      • Confirm the “Add to Cart / Add to quote” button is displayed.
      • If the product contains a price: the price is displayed normally.
      • If the product price is still loading or being calculated: the “Calculating price…” string is displayed instead of the final price.
    • Case 2
      • Confirming that our list looks good in list view, grid view, and catalog view.
    • Case 3
      • Click Add to the Cart.
      • Go to cart.
      • Confirm product is added.
      • Confirm description is correct and properly displayed.
    • Tests
    • Case 1
      • Open product list.
      • Find a product with a configurator.
      • Confirm “View Details” button is displayed instead of “Add to Cart/Add to quote”.
      • Confirm product photos look the same as for regular products.
      • Click View Details.
      • Confirm you are redirected to the product details page.
      • Confirm 'Calculating price' is not displayed for configurable products.
      • If product contains price: confirm price is displayed.
    • Case 2
      • Confirming that our list looks good in list view , grid view , and catalog view .
    • Case 3
      • On the product details page confirm configurator fields exist.
      • Change values in the configurator.
      • Confirm updated photos , description , name.
      • Confirm product photos behavior matches regular products (gallery, size).
      • Click Add to Cart.
      • Go to the cart page.
      • Confirm selected options match what was chosen in the configurator.
    • Case 4
      • Select a valid combination.
      • Confirm invalid options are light gray.
      • Select an invalid combination.
      • Confirm invalid selection is auto-adjusted to a valid one.
    • Case 5
      • Open dropdown.
      • Click outside.
      • Confirm dropdown closes.
      • Open dropdown again.
      • Navigate using Arrow Up/Arrow Down.
      • Press Enter to select the value.
      • Confirm value is changed (selected).
      • Open dropdown again.
      • Navigate with arrows but do not select any option > click Add to Cart.
      • Confirm value stays unchanged.
    • Case 6
      • Open product with configurator.
      • Confirm that at least one selection field already has its first default value.
      • If for any reason the product does not have default selected variants (can happen if product variants were added incorrectly to the configurator) > click Add to Cart and confirm product is not added to cart.
      • The test cases are the same for every repo.
  38. KOD-28903: Support /api/user/product/search to retrieve files link
    • Tests
    • Case 1
      • Validate endpoint /api/user/search/product is working find with the new includeMediaFileLinks param.
      • Go to swagger and look for the endpoint /api/user/search/product under Search API section.
      • In the body paste a JSON like the one below.
      • Click on the Execute button.
      • If includeMediaFileLinks is true those products which have media files will have a mediaFileLinks field populated with the basic information of their media files, otherwise this field will be an empty array.
  39. KOD-28908: New parser request Created From Ticket 42672
  40. KOD-28917: Updates to Customer Facing Analytics
  41. KOD-28929: Limit PO Field at Checkout to 22 Characters
    • Regression Tests
    • Case 1
      • Go to the commerce site and follow the checkout process.
      • Make sure nothing breaks when reloading the screen with the purchase order field filled or empty.
    • Tests
    • Case 1
      • Go to the commerce site and follow the checkout process.
      • The Purchase Order field should be a character limit of 22.
  42. KOD-28937: Support Store Credit Tied to ARSC Account
  43. KOD-28939: Add or automate data grids for open search UX
    • Regression Tests
    • Case 1
      • Make sure that the system menu looks correct.
      • Ensure that the Business Events screen is functioning correctly.
    • Tests
    • Case 1
      • Ensure that a new section appears in the menu - “OpenSearch.”
      • Ensure that the grid of the selected index is displayed on the “OpenSearch” screen (selector in the toolbar).
      • Make sure that the selected grid consists of fields from the OpenSearch mapping.
      • Make sure that the first 10 fields are taken from the OpenSearch mapping, and also make sure that fields can be enabled and disabled in the grid.
      • Ensure that pagination works correctly on all OpenSearch grids. Also on the Business Events screen.
  44. KOD-28958: Vendor Invoice Infrastructure Parser
  45. KOD-28966: Product Search Updates
  46. KOD-28970: Need to ensure return reasons flow through to SX
  47. KOD-28975: Configurator Renaming issue
  48. KOD-28984: Add Customer & Employee Password Policy Configuration screen
    • Regression Tests
    • Case 1
      • Ensure that the system menu appears correctly.
      • Ensure that only the settings values from the “Customer Configuration” and “Employee Configuration” screens are changed.
    • Tests
    • Case 1
      • Make sure that two menu items have been added: “Customer Configuration” and “Employee Configuration”.
      • Ensure that the password policy settings are successfully changed from the “Customer Configuration” screen.
      • Ensure that the password policy settings are successfully changed from the “Employee Configuration” screen.
  49. KOD-28986: Kodaris Dev Examples: Additional examples for ticket
    • Tests
    • Case 1
      • In the Pull Request open the file serverside-api/system/ticket/assignee-post.js
      • Copy the code example from this file.
      • Log in the Operations Portal, and open the User Scripts page .
      • Create a new script or open an existing test script, then paste the code example. Remember to use a valid administratorID .
      • Click save.
      • Open the Logs page in a new tab.
      • Back to the user script, then click Run.
      • Check the Logs page: it should return a response compatible with the call parameters and similar to the related example response.
      • All the test cases should follow these same steps.
  50. KOD-28989: Kodaris Dev Examples: Category Languages Entity
  51. KOD-29008: Implementation - Taxes
  52. KOD-29015: Cash / COD version of credit application doesn't submit properly
    • Regression Tests
    • Case 1
      • Create a new credit application.
      • Navigate to the spcu/credit-application-register page.
      • Provide your test email and click the submit button.
      • Confirm you have received email.
      • Click on the button from the email.
      • Confirm navigation to the Set Credit Application Password page.
      • Provide password and log in.
      • Confirm credit application is blank and loads as expected.
    • Case 2
      • Fill in values for Cash/COD application.
      • Confirm required fields needed to submit a credit application.
      • Submit a form.
      • Confirm you were redirected to a “Thank you page”.
    • Case 3
      • Repeat steps from case 1 and 2, but for Credit Account type.
    • Tests
    • Case 1
      • Repeat steps from regression test 1.
      • Select Cash/COD preferred payment method.
      • Select “Credit Account” preferred payment method.
      • Select Cash/COD preferred payment method
      • Repeat steps from regression test case 2.
    • Case 2
      • On the operations portal locate the account from the previous test case.
      • Navigate to its detail page and change “Status” from “Applied for a Credit” to “Applying for a Credit”
      • From the “Thank You” credit application page, move back to the credit application form.
      • Change Preferred payment method to “Credit Account”.
      • Complete the form filling in all required fields.
      • Confirm the form is properly submitted.
    • Case 3
      • Create a new Account Application (Steps from regression test case 1).
      • Select “Cash/COD” → “Credit Account“ → “Cash/COD” and refresh the page.
      • Confirm all previously required fields are still required.
      • Repeat all this steps for “Credit Account”:
      • Select “Credit Account” → “Cash/COD“ → “Credit Account” and refresh the page.
  53. KOD-29024: Updates when orders released into CSD
    • Tests
    • Case 1
      • After updating the interceptor, place an order and release to ERP.
      • On the Event screen look for the event type - MappedPayload-syncOrders after you placed order.
      • Check if placedby field was updated with customer email who placed order - you can check how it looks on comment section.
  54. KOD-29052: Import Proof of Delivery from Infor/IDM
  55. KOD-29054: Check and update UX templates
  56. KOD-29055: Implementation - ERP Configuration
  57. KOD-29073: Enable Paging & Update Date Filter
    • Tests
    • Case 1
      • Check that you can now page through the results for both the Spend and Usage pages.
      • Check that you can go to next and previous pages, if you select filters the paging resets, and if you try different combinations of filtering and paging, nothing wonky happens.
    • Case 2
      • Check that the date filters on both pages have been converted to: Start Date End Date.
      • Check that the results get filtered if you select both dates, only start date or only end date.
  58. KOD-29076: Pricing Records Issue When Created from Quote
  59. KOD-29089: Card Checkout Improvement
    • Regression Tests
    • Case 1
      • For this regression test, make sure you are able to place an order paying with a card when the card information is correct.
    • Tests
    • Case 1
      • For this test, you need to add to your cart a valid product (that has a price higher than $0 and is not marked as quote only).
      • Go through the order placement process and once you get to the Delivery Payment tab, scroll down to the Pay with card panel and click the Place Order button without filling the Card Form.
      • You should see a “Something went wrong, please try again or contact support” error message right below the card form.
      • This error should disappear if you change from a New Card to a saved card if you have one.
      • Also, if you try placing the order with an already saved card but the form submission returns an error, you should also see the error message right below the card form.
      • No other error message at the top of the page should be shown.
  60. KOD-29094: Product Redirect on code with space in it
    • Regression Tests
    • Case 1
      • Validate product redirect search rule for productCode pattern continue working as before when Minimum Match is blank or search rule it’s inactive
      • From the operation platform go to Tuning → Product Redirect screen and inactivate the rule for productCode pattern.
      • Repeat Case 1 from the main tests.
      • In this case you must not be redirected to the product details instead you must see the search result screen with you product card(s)
      • Repeat this test but this time re-activate the rule and clear the minimumMatch, the result must be the same
      • Note: Minimum match is a readonly field so it cannot be set from UI, you can be cleared by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one below.
    • Case 2
      • Validate product redirect search rule for supercedesOrReplacement pattern continue working as before when Minimum Match is blank or search rule it’s inactive
      • From the operation platform go to Tuning → Product Redirect screen and inactivate the rule for supercedesOrReplacement pattern.
      • Repeat Case 2 from the main tests.
      • In this case you must not be redirected to the product details instead you must see the search result screen with your product card(s).
      • Repeat this test but this time re-activate the rule and clear the minimumMatch, the result must be the same.
      • Minimum match is a readonly field so it cannot be set from UI, you can set it by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one defined in regression test Case 1.
    • Case 3
      • Validate product redirect search rule for productManufacturerProductCode pattern continue working as before when Minimum Match is blank or search rule it’s inactive.
      • From the operation platform go to the Tuning → Product Redirect screen and inactivate the rule for productManufacturerProductCode pattern.
      • Repeat Case 3 from the main tests.
      • In this case you must not be redirected to the product details instead you must see the search result screen with your product card(s).
      • Repeat this test but this time re-activate the rule and clear the minimumMatch, the result must be the same.
      • Note : Minimum match is a readonly field so it cannot be set from UI, you can set it by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one defined in regression Case 1.
    • Case 4
      • Validate product redirect search rule for customerProductCode pattern continue working as before when Minimum Match is blank or search rule it’s inactive.
      • From the operation platform go to the Tuning → Product Redirect screen and inactivate the rule for customerProductCode pattern.
      • Repeat Case 4 from the main tests.
      • In this case you must not be redirected to the product details instead you must see the search result screen with your product card(s).
      • Repeat this test but this time re-activate the rule and clear the minimumMatch, the result must be the same.
      • Note : Minimum match is a readonly field so it cannot be set from UI, you can set it by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one defined in Case 1.
    • Case 5
      • Validate product redirect search rule for productUpcCode pattern continues working as before even if Minimum Match is blank.
      • According to discussion during development productUpcCode pattern were not affected by this change because it’s always expecting a number without spaces, therefore these rules must work the same disregarding if the Minimum Match is set or not.
    • Tests
    • Case 1
      • Validate product redirect search rule for productCode pattern is properly applying the regex set Minimum Match field.
      • Pre-requirements:
      • A search rule with:
      • Pattern : productCode
      • Minimum Match : ^.
      • {1,20}$
      • Active : Yes
      • A product with a code which has spaces in the middle. e.g.: 123 456
      • Go to the customer portal (no need to be logged in there).
      • Look by typing the full code of a product whose code has space in it.
      • You must be redirected to the specific product directly.
      • Note: Minimum match is a readonly field so it cannot be set from UI, you can set it by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one below.
    • Case 2
      • Validate product redirect search rule for supercedesOrReplacement pattern is properly applying the regex set Minimum Match field.
      • Pre-requirements:
      • A Product Cross Reference record with:
      • Alt Product Code: Must be a code with spaces in the middle. e.g.: Product 50.
      • Type: Must match the Action Data field from the rule.
      • A search rule with:
      • Pattern : supercedesOrReplacement
      • Minimum Match : ^.
      • {1,20}$
      • Active : Yes
      • Action Data: Must match with the product cross reference record type.
      • Go to the customer portal (no need to be logged in there).
      • Look by typing the full alt product code of a product whose alt code has space in it.
      • You must be redirected to the specific product directly.
      • Note : Minimum match is a readonly field so it cannot be set from UI, you can set it by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one defined in Case 1.
    • Case 3
      • Validate product redirect search rule for productManufacturerProductCode pattern is properly applying the regex set Minimum Match field.
      • Pre-requirements:
      • A search rule with:
      • Pattern : productManufacturerProductCode
      • Minimum Match : ^.{1,20}
      • Active : Yes
      • A product with a manufacturer product code which has spaces in the middle. e.g.: 123 612
      • Go to the customer portal (no need to be logged in there).
      • Look by typing the full manufacturer product code of a product whose manufacturer product code has space in it.
      • You must be redirected to the specific product directly.
      • Note : Minimum match is a readonly field so it cannot be set from UI, you can set it by executing endpoint PATCH - api/system/searchRule/{searchRuleID} from swagger with a payload like the one defined in Case 1.
    • Case 4
      • Validate product redirect search rule for customerProductCode pattern is properly applying the regex set Minimum Match field.
      • Pre-requirements:
      • A Product Cross Reference record with:
      • Alt Product Code: Must be a code with spaces in the middle. e.g.: Product 15
      • Type: web_customer.
      • Company Code: a company code the user logged into customer portal has access to
      • A search rule with:
      • Pattern : customerProductCode
      • Minimum Match : ^.{1,20}$
      • Active : Yes
      • Go to the customer portal and log in.
      • Look by typing the full manufacturer product code of a product whose manufacturer product code has space in it.
      • You must be redirected to the specific product directly.
      • Note : Minimum match is a read-only field so it cannot be set from UI, you can set it by executing endpoint PATCH - /api/system/searchRule/{searchRuleID} from swagger with a payload like the one defined in Case 1.
  61. KOD-29103: AP - Map Order Minimum Fee to Handling CSD Add-on
  62. KOD-29110: Add disclaimer to the saved cart
    • Regression Tests
    • Case 1
      • In the customer portal go to the orders screen.
      • Check that the disclaimer is not shown for orders with a status other than ‘saved’.
    • Tests
    • Case 1
      • Check if disclaimer is displayed on the orders with status “saved“ on the customer portal.
  63. KOD-29112: Upgrade process
  64. KOD-29115: Parser request
  65. KOD-29118: Delete Functions need Confirmation
    • Regression Tests
    • Case 1
      • If you go to any data grid, if you click to delete unselected rows, make sure the popup still shows like normal and warns you before deleting.
    • Tests
    • Case 1
      • On any screen with a data grid where you can delete rows, select some rows to delete → select to delete them (or use the short cut) and now a popup should appear asking the user if they are sure they want to delete the rows → click cancel and the popup should close and the rows should not have been deleted.
    • Case 2
      • Go to delete a selected row again → the popup should appear again → now click delete → it will delete the rows selected → now if you go to delete some more, the popup should appear again.
    • Case 3
      • You also have the option to not show the popup again: Check the box to not show the popup again → then click delete → the rows should have been deleted → now go to delete some more rows → you should not get the popup anymore.
  66. KOD-29158: CSD warehouse data syncing
  67. KOD-29165: Add an API for exchanging Payment Token details
  68. KOD-29167: Check Incorrect Balance Calculation Additional Example
    • Regression Tests
    • Case 1
      • Check that you can still generate a pdf on an order with the automatedInvoicePDF-EJS template without issues.
    • Tests
    • Case 1
      • In the example order provided in the ticket description, generate the automatedInvoicePDF-EJS template and check that the totals are now correct.
  69. KOD-29180: Parser Created From Ticket 39073
  70. KOD-29206: Provide Functionality for Direct Orders
  71. KOD-29213: Hide Cono from Company Code on the website
    • Regression Tests
    • Case 1
      • For this regression test, make sure the home and cart pages load properly when the user is logged in and not logged in.
    • Tests
    • Case 1
      • For this test, log into the commerce site as a customer.
      • In the header bar, the company code should not be followed by an underscore or any other characters anymore.
      • Make sure to check both desktop and mobile versions.
      • Make sure to also check this on the autocomplete on the header, and in the Cart - Location tab - Shipping address.
  72. KOD-29218: Ecommerce feature setting request - Language menu visibility
    • Regression Tests
    • Case 1
      • Make sure the Quick Order button is still hidden when the contentOnly setting is on and that the layout looks okay.
  73. KOD-29221: Include Unapplied Cash on Open Invoices
    • Regression Tests
    • Case 1
      • Check open invoices screen works as expected.
  74. KOD-29230: Parser request
  75. KOD-29231: Featured Products Tiles on Home Page Not Showing
  76. KOD-29232: Default Owner File Upload Issue
    • Regression Tests
    • Case 1
      • On the credit Application form the Owner form is displayed for Credit Account.
      • Add more owners.
      • Upload files for owners you’ve added.
      • Refresh the page.
      • Confirm added owner forms and initial owner forms are displayed.
      • Upload file for initial owner form.
      • Confirm file is uploaded by refreshing the page
      • Remove the initial owner form and refresh the page.
      • Confirm other owner forms are displayed.
    • Tests
    • Case 1
      • On the blank Credit Account order form locate the initial owner.
      • Upload it’s driver License.
      • Confirm file is uploaded properly by refreshing the page.
  77. KOD-29234: Kodaris - Internal FAQ - Delete Rows
    • Tests
    • Case 1
      • Select any deletable value(s) (answer or status).
      • Go to Edit > Delete selected value.
      • Confirm the value was deleted successfully.
    • Case 2
      • Select any row(s).
      • Go to Edit → Delete selected rows.
      • Confirm the rows were deleted successfully.
    • Case 3
      • Select some rows, leaving unselected only the row(s) you want to delete.
      • Go to Edit → Delete unselected rows.
      • Confirm the unselected row(s) were deleted successfully.
  78. KOD-29235: Using Quantity Shipped on Returns update
    • Tests
    • Case 1
      • Check if a new error message appears when the shipping quantity is NOT greater than 0.
  79. KOD-29236: Add Subtitle Column to Pages > Data Grid
    • Regression Tests
    • Case 1
      • Ensure that the Pages search grid looks and functions correctly, that we can display fields, hide fields.
      • Ensure that the detail page looks and functions correctly.
    • Tests
    • Case 1
      • Ensure that we have changed the field name from “Subtitle” to “Page Title” on the search grid and detail page.
  80. KOD-29240: Carousel and hero/banners - CSS breakpoint for large monitors
    • Regression Tests
    • Case 1
      • Ensure that the carousel and hero/banners appear and function correctly.
    • Tests
    • Case 1
      • Ensure that images are not cropped and content is readable on large screens in carousels and hero/banners.
  81. KOD-29241: Kodaris - Add Index to Cross Reference Type Field
    • Regression Tests
    • Case 1
      • Confirm that Cross References are loading correctly on the operations portal.
    • Tests
    • Case 1
      • Try to filter by some columns on the Cross References table. Confirm, loading is fast.
  82. KOD-29242: Ticket product list not updating with program name from PIM cross reference
  83. KOD-29244: Kodaris - Display the Internal FAQs in the operations portal knowledge base
  84. KOD-29245: Fix the bug with empty cart
  85. KOD-29247: Kodaris Invoices
    • Regression Tests
    • Case 1
      • Create an order from ecommerce site that has at least one Core product. This will end up adding one extra item to the cart with type ‘CORE’. Also, it could end up adding KIT products marked as inactive that you will only see in the Operations Portal.
      • Add another item after that core product.
      • How to identify a Core product:
      • Any product available to buy that has the productType = R.
      • Once you find that product, there should be a setting under that product called ‘ impliedcoreprod ' which makes reference to the 'core product’.
      • After creating the order, release it to the ERP.
      • Wait about 10m after the ERP syncs back.
      • You can validate that the ERP syncs back because you can see the OrderItem settings and confirm the ‘trendCompileSettings’ is there.
      • You can also see that the trendCode was a number before and then it is supposed to be replaced with the actual item code.
      • Confirm that everything looks good and print the order pdf.
      • Validate that all the items that went to the ERP have the setting ‘trendCode’ after that and the value matches the same sequenceNumber that went to the ERP.
      • Validate there are no duplicates over there.
    • Case 2
      • Create an order with a few items on the commerce site.
      • Release the order to the ERP.
      • Wait about 10m after the ERP syncs back.
      • You can validate that the ERP syncs back because you can see the OrderItem settings and confirm the ‘trendCompileSettings’ is there.
      • You can also see that the trendCode was a number before and then it is supposed to be replaced with the actual item code.
      • Confirm that everything looks good and print the order pdf.
      • Validate that all the items that went to the ERP have the setting ‘trendCode’ after that and the value matches the same sequenceNumber that went to the ERP.
      • Validate there are no duplicates over there.
    • Tests
    • Case 1
      • Add a few items to the cart then some core charges and at least one item after the core charge item is added.
      • This is important to not have the core charges at the end of the cart and test all the flows.
      • Release the order to the ERP.
      • Validate that the sequenceNumber on the system event matches the trendCode for each of the items that went to the erp. (The other items might not even contain the trendCode).
      • Wait about 10m after the ERP syncs back.
      • You can validate that the ERP syncs back because you can see the OrderItem settings and confirm the ‘trendCompileSettings’ is there.
      • You can also see that the trendCode was a number before and then it is supposed to be replaced with the actual item code.
      • Confirm that everything looks good and print the order pdf.
      • Validate there are no duplicates over there in the operations portal nor in the PDF.
  86. KOD-29249: Parser Setup Created From Ticket 22129
  87. KOD-29250: Order Templates Update
  88. KOD-29253: Replatform - Follow-up Order confirmation email to display shippingMethodName
    • Regression Tests
    • Case 1
      • Confirm that we can open the order confirmation email via the Operations Portal and that it loads correctly. We can see some fields and data in the email, not just a blank white screen.
    • Tests
    • Case 1
      • Confirm that when an order is created and not sent to CSD, or immediately after it is sent but before it comes back from CSD, the order confirmation email displays the shippingMethodName setting . If this setting does not exist, the email shows the selected shipping method code instead.
  89. KOD-29252: Upload File Error
    • Regression Tests
    • Case 1
      • On checkout, select the upload file option.
      • Download the template for all three kinds of files.
      • Check that they now have the headers: Item #, Quantity, and Unit Sell.
      • Try uploading a file with those headers.
      • It should work correctly and add items to your cart with that item, quantity and unit.
  90. KOD-29254: Issue with returns
    • Regression Tests
    • Case 1
      • The first case would be to confirm that consumer returns work properly as they did before:
      • Users can submit a return with available quantity (for one or multiple items).
      • Users can't submit quantities bigger than the quantity shipped.
      • Users can’t leave return items without a return reason.
    • Tests
    • Case 1
      • This would be the main case for this ticket. Currently, if the user tries to return multiple items and some of them are rejected by platform - the other items that were added before are not being removed, because we added them in parallel. This would then create confusion because users would think that nothing was added to the return, but some items were actually added. In this fix we clear the return of all items on submit to fix this.
    • Case 2
      • If the consumer return is not submitted yet - we should display the “Shipped Qty“ column near ordered qty, because the validation runs against it on the platform.
  91. KOD-29259: Price Engine Issues
  92. KOD-29262: View Details - Model Lookup not working
    • Tests
    • Case 1
      • Go to the spcu/lookup.
      • Search for a valid product.
      • Click on the View Details button.
      • Make sure the product’s panel opens correctly.
  93. KOD-29264: Infor CSD Payments Token lookup for ROAs
  94. KOD-29272: Implementation - Shipping Methods / Shipvias
  95. KOD-29274: Add punch-out default setup and function
    • Regression Tests
    • Case 1
      • Сheck that the order is created successfully (by a guest user).
      • Сheck that the checkout page layout looks correct.
      • Сheck that there are no errors in the console while on the checkout page.
    • Tests
    • Case 1
      • Check that when a guest logs in, the “Pay with Punchout” section is not displayed on the checkout page.
      • Check that when a user logs in and cartService.isPunchOut() is enabled, the “Pay with Punchout” section appears on the checkout page.
      • Check that when clicking on “Place Order” in the “Pay with Punchout” section, a request is sent to /api/account/punchOut/cart.
      • Check that there are no errors in the console when clicking on “Place Order” in the “Pay with Punchout” section.
  96. KOD-29275: Footer Color Change
  97. KOD-29277: Checkout: Do not post Shipping Name and shipping phone into order notes
  98. KOD-29278: Collecting customer feedback
    • Regression Tests
    • Case 1
      • For the regression test, make sure the following still happens after submitting the survey:
      • Make sure that an employee email is sent and that a ticket for the survey is created with the order number.
      • A setting should also be added on the order with the survey data.
    • Case 2
      • You should be able to close the survey without submitting it.
    • Case 3
      • If you place another order after submitting the survey, you should not see it appear again after placing it.
    • Tests
    • Case 1
      • For this test, we will go through the checkout process and place an order. When the survey appears, you should be able to submit the form after filling at least one of the fields in the survey.
      • You can try filling any of the three fields and submitting the form.
      • If you try to submit the form without filling out at least one field, you should see a Please fill out at least one question. validity error on the first field in the form.
      • The error should disappear after starting to type in any of the fields.
  99. KOD-29279: Display Order Type to Customer
    • Regression Tests
    • Case 1
      • Make sure you can still load the orders screen in the customer portal.
    • Tests
    • Case 1
      • On the orders screen in the customer portal, you should now be able to see the Type column → add it and you should be able to see the ERP order types similar to the ops portal and can search/filter on that column.
      • Before a deployment, you can see the type column now as that was updated by a setting (customerOrderTypeEnabled ). Need the updates to be deployed in order to see the values in the column.
  100. KOD-29281: Content - Remove Second Tab for Punchout users
    • Regression Tests
    • Case 1
      • As a guest user click on the Cart button.
      • Confirm redirection to the “Sign In” page.
      • Add product to the cart.
      • Confirm redirection to the “Sign In” page.
      • if setting “guestCheckout Enabled” is set to 1, you can confirm that the cart page lends on the “You shopping cart is currently empty” and products could be added to the cart.
    • Case 2
      • As logged in user navigate to the cart button.
      • Confirm “Your shopping cart is currently empty” page is rendered.
      • Add some products to the cart.
      • Confirm cart is loaded as expected.
      • Click the “Next” button.
      • Confirm redirection to the Location Tab.
      • Click the “Next” button again.
      • Confirm input of the billing and shipping addresses information is required.
      • Click the “Previous” button two times.
      • Confirm the user redirected to the proper page.
      • Click on the Tabs at the top.
      • Confirm redirection works as expected.
    • Tests
    • Case 1
      • As a punchout customer navigates to the cart page.
      • Confirm “Your cart is currently empty” page is rendered.
      • Add some products to the cart.
      • Navigate to the Cart page.
      • Click the “Next” button.
      • Confirm Second / “Location” tab is skipped.
      • Click on the “Previous” button.
      • Confirm that the first tab is opened as expected.
      • Click the “Next” button / “Payments” Tab.
      • Confirm that Second Tab is skipped.
  101. KOD-29283: Pricing Issue
  102. KOD-29287: Limit length of the field Purchase Order # to 21 characters
    • Regression Tests
    • Case 1
      • For this regression test, we will go to the commerce site and follow the checkout process.
      • Make sure nothing breaks when reloading the screen with the purchase order field filled or empty.
    • Tests
    • Case 1
      • For this test, we will go to the commerce site and follow the checkout process.
      • The Purchase Order field should be a character limit of 21.
  103. KOD-29289: OA: New Customer Parser Setup
  104. KOD-29293: OA: New Customer Parser Setup
  105. KOD-29298: Update link on the footer
    • Tests
    • Case 1
      • Please test that in the footer we have the updated link for Return Policy on test and Terms and Conditions buttons on live.
  106. KOD-29299: Spin up Dev URL
  107. KOD-29302: Unknown UOM's being displayed in Commerce
  108. KOD-29304: Created date in the customer portal orders tab not populating
    • Regression Tests
    • Case 1
      • Make sure the orders page on the customer portal still loads properly.
    • Tests
    • Case 1
      • On the orders page in the customer portal, add the created column → notice there should be data in there now in the format of mm/dd/yy and you should be able to also filter.
    • Case 2
      • Not related to the original issue in the ticket, but also added the extra1 field to whitelister →
      • Add the Type column and notice that there should be data in there now and you should also be able to filter.
  109. KOD-29317: Add ability to pay Open Invoices by typing in card details
  110. KOD-29324: Create Commerce Host
  111. KOD-29327: Add ability to edit minimum match on product search rules screen
    • Regression Tests
    • Case 1
      • Make sure the product redirect page still loads on the search tuning tab.
    • Tests
    • Case 1
      • Add the minimum match column → now you should be able to edit the field → reload the grid and the update should stick.