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

April 10, 2025 release notes

Highlights

Customer Portal

Automatically sync returns to ERP

Recently, a new screen titled “Returns” was added to the Customer Portal that allows your customers to view their previous returns and initiate new returns. Following the original flow, you would need to review returns once they’re submitted by customers and then manually push them to the ERP. 

As an enhancement to the returns feature, you now have the option to automatically sync customer-submitted returns to the ERP instead of requiring a manual review. This option only applies to returns submitted by customers. Returns entered by your sales team via the Operations Portal will be held until manually pushed to the ERP.

If enabled, this capability can provide an opportunity to automate the returns process even further, saving your team the time and resources.  

Learn more by watching the video below: 

https://youtu.be/7ZYoensxjms

Operations Portal

“Status” field added to Category Redirects and URL Redirects screens

To help manage redirects on your commerce website, a scheduled job (jobInactivateSearchRules) runs periodically to check existing category and URL redirects with the purpose of automatically inactivating invalid redirects. If an invalid redirect is found, the system will mark it as “Invalid”. Previously, the invalid redirects could be seen in the code.

While you can still locate invalid redirects through the code, this information is now even more accessible via a field titled “Status” on the Category Redirects and URL Redirects screens in the Operations Portal. With this field, you can view the status of all redirects. If a redirect is valid, the status will be empty; if it’s invalid, the status will show as “Invalid”. You also have the ability to manually clear the field when invalid rules are fixed.

By surfacing this information on the Category Redirects and URL Redirects screens and being able to clear invalid fields, you can now more easily manage your website’s redirects.

Watch the video below to see where you can view this new field in the Operations Portal and how to use it:

https://youtu.be/GTkoehZiamw

Tickets

  1. KOD-23638: Default search changed to Content Search
    • Regression Tests
    • Case 1
      • Confirm that the header has loaded correctly and without any errors.
      • Confirm that you can search for products using the search bar, click on a result, and be redirected to the search page displaying the products you searched for.
      • Confirm that everything works the same way on mobile devices.
    • Tests
    • Case 1
      • Confirm that when we open the customer site, the header includes a select dropdown where we can choose between "content" or "products", and that this select is not present on other customer hosts.
    • Case 2
      • Confirm that when "content" is selected, the search will show pages related to the query, and hitting Enter or clicking an item from the list, we are redirected to a page displaying those content pages.
    • Case 3
      • Confirm that the content listing page displays content correctly, and clicking "View" redirects us to the selected content page.
    • Case 4
      • Confirm that "content" is selected by default in the dropdown. If we select "products", then reload the page or navigate to the search or another page, the selection remains as "products". The same applies if "content" is selected.
    • Case 5
      • Confirm that if we try to search for a page that doesn't exist while "content" is selected, and we navigate to the search page, we see the message:
      • "We're sorry, we couldn't find any results for ...”
  2. KOD-23657: COD Payments - UX Terminal Flow
  3. KOD-23658: Commerce Checkout Payments - UX Terminal Flow
  4. KOD-24032: Run importer for updating companies to use credit card on checkout
  5. KOD-24076: Set up CSD Payments
  6. KOD-24235: Add automatedPaymentStatementAllowNegativeBalances to the config screen
    • Tests
    • Case 1
      • Check whether setting: automatedPaymentStatementAllowNegativeBalances returns on /config endpoint.
    • Case 2
      • For this test, we will go to the Automated Statement Delivery screen and look for the "Allow Negative Balance Statements" setting, which should be linked to the setting with the following name: "automatedPaymentStatementAllowNegativeBalances" if it exists.
      • We will test changing the value and saving it. Make sure the correct setting is being updated. We can also try to update the setting from the Settings screen and see the changes on the Automated Statement Delivery screen after reloading.
      • If the setting doesn’t exist when you try to modify the value, you should get an error "Setting with code automatedPaymentStatementAllowNegativeBalances not found.".
  7. KOD-24361: Configure for Multiple Invoices in one PDF
  8. KOD-24391: Add Complete Status for Returns & Hide from Customer Portal
  9. KOD-24448: Check Missing Financial Institution Checks Data
  10. KOD-24468: Create Brands Page
  11. KOD-24611: Minimum quantity in CSD is ignored
  12. KOD-24620: Credit Card entry on checkout, missing entry fields
  13. KOD-24677: Discount XML Issue
    • Tests
    • Case 1
      • Make a payment for Open Invoices, where there is an invoice(s) with a valid discount.
      • The new Payment record created should have invoice(s) discount information now, which is then used on payments export, could check this on Development tab.
      • Check if in the downloaded XML file there is discount amount discAmt populated for the corresponding invoice.
  14. KOD-24730: Test Jira Integration Ticket Created From Ticket 70
  15. KOD-24775: Edits to Commerce Platform Page on Kodaris Website
  16. KOD-24817: 'Sales Assignment Change' Email Constantly Going Out
  17. KOD-24818: Customers and Employees Able to Go In & Update Retail Price UX
    • Tests
    • Case 1
      • Log in to the customer website and go to any product page. You should see the new “update retail pricing“ button, but only if the product has a retail price. The retail price is a listPrice field on product sku.
    • Case 2
      • Now we will try updating the customer retail price. This should create or update an order record in company “retailPriceCatalog“. Check that all of the fields are updated correctly. Also, now that we updated our retail price we should see a new section on product page called “Your Retail Price“ which will contain the updated price.
    • Case 3
      • Check that the dialog is mobile responsive.
    • Case 4
      • In the operations portal → company product category → items there should be new columns for following fields:
        • lastSyncedToErp
        • lastModifiedLocally
        • needsSyncingToErp
        • statusSyncedToErp
        • markupType
  18. KOD-24819: Pricing Question
  19. KOD-24841: Allow customer to manage Invoice and Statement delivery email
  20. KOD-24855: GST/QST taxes not calculated correctly
    • Regression Tests
    • Case 1
      • Make sure all pages of checkout still load properly and on page 3, make sure the total adds up correctly.
    • Tests
    • Case 1
      • Get to page 3 of checkout then go back to page 2 and change the delivery location → go back to the next page and notice the taxes by jurisdiction section has been updated properly and adds up to the final tax value.
  21. KOD-24860: Salesforce export requested updates
  22. KOD-24888: Link CompanyProductCategory to CustomerAsset
    • Tests
    • Case 1
      • To test this ticket, you need to use swagger (Customer Asset section) and POST to POST*
      • /api/system/customerAsset/{customerAssetID}/companyProductCategory/{companyProductCategoryID}
      • You need to provide valid customerAssetID and companyProductCategoryID and check if they are linked.
  23. KOD-24891: Add Customer Asset screen
    • Tests
    • Case 1
      • Go to new screen Customer Assets, check that you can:
      • Create asset
      • Update asset
      • Delete asset
      • Sort and filter on fields
    • Case 2
      • Navigate to the details screen of an asset, check that you can:
      • Create a setting
      • Update a setting
      • Delete a setting
  24. KOD-24892: Add validation for the returned items
  25. KOD-24893: AD Connector images issue part 2
  26. KOD-24934: Issue with entry of credit card on mobile device
  27. KOD-24938: Enhancement to pre-login order tracking
    • Regression Tests
    • Case 1
      • Check if email is being sent correctly with the message for placing order.
    • Tests
    • Case 1
      • Place an order as a guest.
      • Check if email after placing order contains message with information about tracking details, without any link.
      • Follow instructions in the comment for this order.
      • Check if email notification after changing status order to “shipped“ , “paid“ or “Initialized“ - contains link to the tracking page with working tracking number.
    • Case 2
      • Place an order as a user.
      • Check if email after placing order contains message with link to tracking tab for order in customer account.
      • Follow instruction in the comment for this order.
      • Check if email notification after changing status order to “shipped“ , “paid“ or “Initialized“ - contains link to the tracking page with working tracking number.
  28. KOD-24949: Credit Request - Vendor user under multiple vendors
    • Regression Tests
    • Case 1
      • Check that the vendor credit request page still works as a employee and logged in vendor user.
      • Along with the vendor search functionality.
    • Tests
    • Case 1
      • Go to the operations portal > vendors > vendor details screen.
      • There should be a new dropdown where you can set a vendor’s parent vendor.
      • You should be able to set a parent vendor and also delete it.
    • Case 2
      • Go to the vendors > vendor details > child vendors tab.
      • Check that everything works correctly and that you can add, update, and delete child vendors.
    • Case 3
      • Set up a vendor to have multiple child vendors and set up a vendor user on that vendor.
      • Go to the vendor credit request screen.
      • You should be able to select which of the vendors the credit request is to be placed under (one of the child vendors or the parent vendor).
  29. KOD-24953: Check Error They're Getting when Uploading Image for Tiles
  30. KOD-24955: Unable to Search on the Data tab
  31. KOD-24960: Hide the specs tab if there are no specs
    • Regression Tests
    • Case 1
      • Check that the product card looks good.
      • Check that there are no errors in the console.
    • Tests
    • Case 1
      • Check that the Specs tab on the product page is not displayed if there is no Specs for the product.
      • Check that the Specs tab is displayed and contains correct data if there is a Specs for the product.
  32. KOD-24962: Add homepage CMS to site
    • Regression Tests
    • Case 1
      • If a page with the code home is not found, the default homepage design should be displayed.
    • Tests
    • Case 1
      • Go to the Operations Portal → Pages.
      • Create a page with the code home.
      • This page should be displayed on the website's homepage.
  33. KOD-24970: Add ERP Order Type
    • Regression Tests
    • Case 1
      • Log in to the operations portal.
      • Go to companies → company details → order.
      • Verify that this page looks good.
    • Case 2
      • Notes: check both tabs → search and data.
      • Log in to the operations portal.
      • Go to orders.
      • Verify that this page looks good.
    • Case 3
      • Log in to the operations portal.
      • Go to orders → order details.
      • Verify that this page looks good.
    • Tests
    • Case 1
      • Log in to the operations portal.
      • Go to companies → company details → order.
      • Click on three lines.
      • Verify that you can see next fields:
        • Customer Status
        • Employee Status
        • Invoiced Date
        • Checklist
        • Has Direct Shipped Order Items
        • Signature
        • Host Code
        • Manufacture Status
        • Assignee Names
        • Assignee IDs
        • Order Type Details
        • Tendered
        • Payment Received Date
        • POD External Order #
        • POD Order #
        • Release Status
        • Invoice Sent
        • Shipment Trip ID
        • Transaction Type
        • User 1 - 10
        • Location Management Status
        • Location Management #
        • ERP Order Type
        • Quantity
    • Case 2
      • Notes: check both tabs → search and data.
      • Log in to the operations portal.
      • Go to orders.
      • Verify that you see ERP Order Type and not Subtype.
    • Case 3
      • Log in to the operations portal.
      • Go to orders → order details.
      • Verify that you see ERP Order Type and not Subtype.
  34. KOD-24971: Brands Are Not Showing on the page
    • Regression Tests
    • Case 1
      • On the commerce site navigate to the brands page (spcu/brands).
      • Confirm page is loaded properly.
    • Case 2
      • Navigate to the brands page.
      • Click “Collapse All” button.
      • Confirm all brand panels get closed.
      • Click “Expand All” button.
      • Confirm all panels are opened.
      • Click “Expand All” or “Collapse all” button.
      • Click on the any brand panel.
      • Confirm both buttons are active.
    • Case 3
      • Select any brand value.
      • Click on the brand value.
      • Confirm user redirected to the right search page.
    • Case 4
      • Log in to the operations portal.
      • Navigate to the settings screen.
      • Search for websiteBrandsPageFilterCategoryCode setting.
      • Change this to 'fg_color' or any filter category code.
      • Confirm on the spcu/brands page all brands are changed.
    • Case 5
      • On the commerce site navigate to the brands page.
      • Confirm letters are displayed at the top of the page.
      • If there are no brans for specific letter or digit (#).
      • Confirm that this letter is inactive.
      • Click on the active letter.
      • Confirm user gets scrolled to the brand section.
    • Case 6
      • On the commerce site navigate to the brands page.
      • Scroll to the bottom of the page.
      • Confirm there is “Back to top” button.
      • Click this button.
      • Confirm user gets to the top of the page.
    • Case 7
      • On the commerce site navigate to the brands page.
      • Open developer tools.
      • Enable device toolbar.
      • Confirm page is displayed properly for any screen size.
    • Tests
    • Case 1
      • On the commerce site.
      • Navigate to the brands page.
      • Confirm more brands are displayed on the page.
  35. KOD-24972: Port Category Options to the Search Dropdown
  36. KOD-24976: Store State
  37. KOD-24977: Set min order quantity in operation portal like we have on the UX
    • Tests
    • Case 1
      • For this test, we will go to an Order Items screen.
      • We will add to the order an item with defined minimumOrderQuantity and intervalOrderQuantity attributes.
      • When you select the product from the autocomplete field, the quantity field should be defaulted to the minimum order quantity value.
      • This should also work if you type a product code and click Enter instead of clicking the option from the autocomplete.
      • Clicking Enter after entering an invalid product code, will result in an error.
      • Trying to add a valid item to the order with a quantity lower than the minimum order quantity should throw an alert.
      • Also, trying to add the item to the order with a quantity that doesn’t match the interval order quantity should also throw an alert.
      • After adding the item to the order, the quantity field should still be the minimum order quantity of the product that’s still selected on the footer row.
    • Case 2
      • After you are done testing on Order Items, you should also test:
      • Cash Quote Items and Quote Items.
  38. KOD-24988: Ticketing System - Email Receiving Setup
  39. KOD-24987: Update icsw mappings with customerWarehouse and companyCode fields
  40. KOD-24997: Make following fields (markup, cost, price) updatable using this customer side patch endpoint: /api/account/companyProductCategory/{companyProductCategoryID}/product/{productID}
  41. KOD-25001: Ticket #129 - Text Edit Created From Ticket 19893
  42. KOD-25000: Ticket #130- Text Edit Created From Ticket 19895
  43. KOD-24999: Ticket #131 - Footer Logos Created From Ticket 19899
    • Regression Tests
    • Case 1
      • Check that footer still looks good and anything is broken.
    • Tests
    • Case 1
      • Check that you can see new logo in footer and both logos are clickable.
  44. KOD-25002: Expand Inventory & Purchase History Window on Order Entry
    • Regression Tests
    • Case 1
      • Confirm that the Items page in Order Details, Quote Details, Quote Cash Details, and Warehouse Transfers is displayed correctly.
    • Tests
    • Case 1
      • Confirm that on these pages you can add new items, and when selecting a product, a modal with Purchase History and Product SKUs appears. This modal should display correctly and not overlap the input field. It should expand upwards to the top of the screen and display without a scrollbar as long as possible. If there are too many rows, the modal should automatically scroll to the Inventory (Product SKUs) section by default.
    • Case 2
      • Confirm that if there are no Product SKUs, no error occurs and we still see the Purchase History.
  45. KOD-25005: Logo Update
  46. KOD-25009: Add Manufacturer Name and Manufacturer Part Number to search
  47. KOD-25012: Add Customer Asset Crud Customer Side APIs
    • Tests
    • Case 1
      • Test creating a CustomerAsset from customer side (You have to provide a companyID and that one should be allowed from the customer perspective).
      • If you provide a companyAddressID, then it will be used to find the companyID and do the validations.
      • In my case, my customer is assigned to company with ID 953 so if I provided a ID different than that, I would get a forbidden error.
      • Then, update it using PUT/PATCH endpoint.
      • After all, try deleting it.
      • These endpoints are in customer side so, from swagger, we need to log in as customer, then get the authToken in /user/authToken and then use that token in for the /account endpoints.
      • Also, the customer requires the following roles to view/update entities:
      • viewCustomerAsset, editCustomerAsset.
    • Case 2
      • Here we expect to get only customerAsset associated to the ID’s that are allowed for the customer logged in.
      • Same than case 1, if you create a few customerAsset with different customers or with employee side and those are not with the same companyID that the customer is allowed to see, you should not see any of those in this endpoint.
  48. KOD-25022: Employee roles review
  49. KOD-25024: Pricing records issue
  50. KOD-25027:Invoice Showing as a Credit Memo
    • Regression Tests
    • Case 1
      • Check the order details, order email and order pdf still work as expected.
    • Tests
    • Case 1
      • Check that for credit memos with total > 0, they are labeled as invoices on the order details, order email and order pdf.
    • Case 2
      • For credit memos that have an order total < 0, check that they are labeled as credit memos on the order details, order email, and order pdf.
  51. KOD-25029: Include Breadcrumbs in Search
    • Regression Tests
    • Case 1
      • Verify that breadcrumbs are displayed accurately for products within categories.
      • Ensure that clicking an item in the breadcrumb trail redirects to the correct page.
      • Confirm that there are no errors logged in the console.
    • Tests
    • Case 1
      • Verify that the breadcrumbs are fully displayed when navigating to a product from the search page.
      • Ensure that the breadcrumbs functionality operates as intended.
  52. KOD-25030: Add new field "customerUnitPrice" to OrderItem
  53. KOD-25045: Ticketing System - Email Receiving Interceptor
  54. KOD-25053: Automatically Push Customer Submitted Returns to ERP
  55. KOD-25054: Change Payments Portal link in header to Invoices
  56. KOD-25082: Override default branch for SalesOrderCreate DMSI request
  57. KOD-25085: Home page - Brands section updates
  58. KOD-25086: Add new customerUnitPrice column to order item grid view
    • Tests
    • Case 1
      • Go to the Operations Portal, open an order, and add an order item.
      • Check if it's possible to add the Customer Unit Price column.
      • This column should be editable and should match the customerUnitPrice value in the response from the endpoint api/system/order/155530/items.
  59. KOD-25087: Unable to Search on the Data tab - UX
  60. KOD-25088: CMS Instructions on internal comment notifications Created From Ticket 20425
  61. KOD-25094: Implementation
  62. KOD-25096: Ticket #134 - Image Swap
    • Regression Tests
    • Case 1
      • Check that banner for categories pages looks good.
  63. KOD-25104: Make Jira Ticket Numbers Clickable in Internal Comments after creating
    • Regression Tests
    • Case 1
      • Go through the flow of creating a JIRA ticket from a ticket in Kodaris.
      • It should work properly as before without issues.
    • Tests
    • Case 1
      • Check the comment created from adding a Jira ticket from Kodaris.
      • The ticket code should now be linked, and if you click it, it should take you to the Jira ticket in a new tab.
  64. KOD-25109: Add Status Column to Category & URL Redirects Grids
    • Tests
    • Case 1
      • Category Redirects tab:
      • Check if Status column is visible in Category Redirects grid.
      • Confirm Status column shows "INVALID" for invalid categories.
      • Verify Status is empty for active, valid categories.
      • Test clearing Status field for an not invalid category anymore.
      • Verify Status field remains empty after saving.
      • Verify Status column is not sortable and filterable.
    • Case 2
      • URL Redirects tab:
      • Verify Status column appears in URL Redirects grid.
      • Confirm "INVALID" status shows for invalid categories.
      • Verify Status is empty for active, valid categories.
      • Test clearing Status field for an not invalid category anymore.
      • Verify Status field remains empty after saving.
      • Verify Status column is not sortable and filterable.
  65. KOD-25112: Add status box to order/invoices template
  66. KOD-25113: Remove "shipped" column from order acknowledgement email
  67. KOD-25114: Form Email Updates
  68. KOD-25122: Employee App - Issue with activity and tickets creation with template