All Releases
View all releases

April 6, 2023 release notes



Search by product name during quick order

Customers can now search by product name as well as by product code when they quick order products on the website. This is helpful if they are ordering products they don't order often. Please contact your account manager if you would like this added to your commerce website.


View the customer number for the currently selected account

Logged in customers can view and select company accounts they have access to on the commerce website. The currently selected company account displays the Kodaris company number along with the company name. In this release, we've added the option to display your customer number instead of the Kodaris company number. For example, the customer number from your ERP. Please contact your account manager if you'd like this functionality added to your website.


Display order as needed messaging on product pages

If you have products in your ERP that are marked order as needed, you can surface that information on your commerce product pages and display relevant messages to your customers. Please reach out to your account manager if you are interested in this feature.

Drive SEO with schema

Schema is a structured data vocabulary that describes the content on your commerce pages. Search engines use this schema to easily understand what your pages are presenting and provide users with richer search results. Schema can be added to product pages, category pages, search result pages, content pages, and much more. Please contact your account manager if you are interested in adding this to your website.


Operations Portal

Check a product's price and availability

You can check any product's pricing and availability by navigating to CRM > Price Check. Select the company you want to check the price for and enter the product code. You can optionally include a company address and/or warehouse if you'd like to see the pricing with those parameters. Note: users must have either superuser, administrator, or productPriceView permission to access this screen.


Export all company product lists

Previously you could export either the first page or the first 1000 rows from the company product lists screen. You can now export all the product lists at once which allows you to mass update all lists via exporting and then re-importing.


Preview a content page directly from the operations portal

Content pages in the operations portal now have a preview link which will take you directly to the page on the website. This eliminates the need to remember the page url at the end of the day when we all need more coffee.


Adjust the ticket comment panel to your desired width

When viewing and adding comments on the Tickets screen, you can adjust the width of the comment panel to your preferred width. This makes it easier when carrying out long discussions.


Set dynamic email subjects for any email template

You can set a dynamic subject for any email template in your Kodaris system. This subject can change based on parameters and/or data available in the system. To further support this, a code editor has been added to the subject column on the Templates screen where you easily personalize any template subject to your users.


Customer Portal

Filter and sort orders by user and total

Customers can now filter and sort orders by user (the person placed the order) and by order total.


Re-order any order you have access to

Previously we released an update where customers can re-order any order they had previously placed. In this release, we've made another update which allows users to re-order any order they have access to. For example, a user assigned to a location can also re-order orders someone else has previously placed for that location.


Use a tabbed layout for your embedded payment portal

You can easily embed the Kodaris payment portal in Unilog, Adobe Commerce, Magento and other systems. Please reach out if you are interested in embedding the Kodaris payment portal in your system.

In this release, we've released a new payment portal layout that uses a tabbed navigation view across the top instead of the navigation to the left side. Based on your website layout, you can choose between either the side navigation view or this tabbed view for your embedded payment portal.



Capture a credit card authorization on an order

When a customer checks out and pays via credit card, the authorization is recorded by the Kodaris system. Based on your system configuration, the authorization is then captured at the time of checkout or in the ERP at a later time. In this release, we've also added the ability to capture the authorization in the Kodaris operations portal under Orders > Order > Payments. This feature is still undergoing final testing so please reach out to your account manager if you are interested.


  1. KOD-13164: CMS - Make it Easy to Override the Default Block Styles of Gutenberg with User's Custom Stylesheet
  2. KOD-13119: Tickets Screen - Pop-up on Toggle Comments
    • Comments section in the tickets page should show up from the right side and be draggable to a wider width.
  3. KOD-11358: Add API Endpoint for Tickets
  4. KOD-9373: Capture Auth on Payment Providers
  5. KOD-13537: Customer Portal - Remove Shadows when Detail View is Opened in kg-grid
    • Open Customer Portal.
    • Open Invoices in kg-grid.
    • Press the Arrow Right Button at the end of any table row.
    • Scroll horizontally from left to right and vise versa.
    • Ensure that the checkbox and the Arrow Right Button don't have any vertical shadows while scrolling.
  6. KOD-13806: System Cache Endpoints for New Cache Screen in Employee Portal
    • Endpoints added:
      • GET /api/system/script/cacheKeys
      • GET /api/system/script/cache
    • Existing endpoints modified:
      • GET /api/system/script/cache/list - check if endpoint returns existing caches with appropriate cache keys. If includeOnlyCacheNames = true then only cache names should be returned.
      • DELETE /api/system/script/cache/evictAll - should clear appropriate cache by specified cacheName. If 'servlet cache' used then it should re-initialize cache(if allowed).
  7. KOD-13829: OAN Items Note
    • Here new field added, so probably will need to implement UX first and then test.
    • Regression tests:
      • Login as customer on a site with CSD price engine and make sure product and category pages does not crash.
      • Do the same as number 1 on cloud site.
      • Start an order and add an item on a non-cloud site in the portal.
      • Swagger test: POST api/system/product/priceByCode/{productCode} - check whether returned product has specialOrder field and it has be true when appropriate SKU record has status equals 'O'(big letter). (price engine should be CSD)
  8. KOD-13910: Confirm Order Item Screens Have Paging
    • For the screens below, find the ones that list more than 50 Items.
    • The page should display 50 items max.
    • Test paging and adding a new product, when you're on the page that already lists 50 items.
    • There should be no errors.
    • Pages that need to be tested:
      • Order -> Items
      • Cash Quote -> Items
      • Quote -> Items
      • Quote Request -> Items
      • Summary Order -> Items
  9. KOD-13855: Add Tabs to Embedded Customer Portal
    • Case 1: On embedded portal (desktop) make sure that:
      • There is no navdrawer on the left.
      • Navigation was moved to the top - tabs are shown on the top of the content.
      • It's possible to open to any available page using the tab navigation.
    • Case 2: On mobile version, make sure that:
      • There is no navdrawer on the left.
      • Navigation was moved to the top - navigation bar shown on the top of the content.
      • There is a menu button on the right of navigation bar, by clicking on it dropdown menu is shown.
      • It's possible to open to any available page using the dropdown menu navigation.
    • Case 3:
      • For both desktop and mobile, please check every page and make sure layout is correct.
    • Case 4:
      • On Thursday night be sure to request deployment to an embedded customer portal without tabs. Then login to portal, bust cache, and throughly test all the available customer screens there.
    • Regression:
      • Make sure that layout for non-embedded Customer portal remains the same and works as expected. Every screen should be checked for both desktop and mobile versions.
  10. KOD-13919: Short Pay - Add Field for Short Pay Reason
    • No need to regression test on UI side, waiting for implementation on UI side.
    • At the moment we can test on swagger side:
      • PATCH: /api/account/payment/{paymentID}
    • scenarios:
      • if amountToPay = 0 or throw exception with message
      • if amountToPay throw exception with message
      • if amountToPay > invoiceAmount => throw exception with message
  11. KOD-13995: Create Email Subject "Easy Editing"
    • Go to Marketing Templates.
    • Double click on Subject grid field.
    • A code editor pop up should display with code highlighting.
    • Test updating email subject
    • Test adding new templates and setting subject while you are doing it.
  12. KOD-14005: Move Install Script
  13. KOD-14026: Upgrade Version for Employee Portal
    • Regression tests:
      • Need to retest such screens: basic tax rate detail screen, cash quote detail screen, quote detail screen, and order detail screen.
      • Please check all buttons/dialogs/datepickers/dropdowns/autocompletes on screens mentioned above, all buttons on the top toolbar, they must work correctly
    • Throughly test:
      • Order entry
      • Quote entry
      • Updating quote pricing and company pricing records.
      • Test setting up quote jobs.
    • As much testing as possible on as many screens as possible in the employee portal would be good. Everything should look and behave as it did before.
  14. KOD-14078: Add Schema Markup for Category Pages
    • Schema script should be present on category/search pages.
  15. KOD-14083: Add Interceptor to Search Suggester
    • Regression Tests: Make sure the suggester works normally when using the type as you search in the search boxes. It should properly display the code and the name like it usually does.
  16. KOD-14084: Error Listing Company Addresses Due to Invalid Search Param
    • Go to Customer => Product Lists and global Customer Product Lists.
    • Ensure there are no errors in console.
  17. KOD-14088: Add New Employee Role updateDynamicDb
    • Go to Operations -> EmployeeRoles list -> check if setting: updateDynamicDb exist.
  18. KOD-14093: Customer Portal - Placed By Filter and Sort Issue
  19. KOD-14103: Move Price Check Screen to CRM Section
    • Price Check screen is moved from Pricing & Discounting to the CRM section.
  20. KOD-14107: Add Ticket Employee Assignment Endpoints to Serverside API and Allow Assigning by userName
    • Tests:
      • POST /api/system/ticket/{ticketID}/assignee/byUsername
      • DELETE /api/system/ticket/{ticketID}/assignee/byUsername
      • With administratorUsername request param, you should be able to assign or unassign employee from ticket.
  21. KOD-14118: Index Assigned Employees onto Company Solr Docs
    • In portal take some Employee and make sure that is has email field populated.
    • Go to Companies, select some company and go to Details tab.
    • On the right side add Assignee to this company.
    • Inside tested company go to Development tab and check whether Assignee related fields appeared: assigneeIDs, assigneeNames, assigneeEmails, assigneeTypes.
  22. KOD-14124: Customer Portal - UX for Reorder Button for All Users with Access
  23. KOD-14131: Short Pay - Add Discount Disclaimer
    • Open Customer Portal.
    • Open Invoices.
    • Check a few Payments and set the Amount to Pay for each of them.
    • Disclaimer should appear in the middle of pop up (Please check the example of the look in the comments) if Short Pay enabled for this user.
    • Disclaimer shouldn't appear if Short Pay not enabled for this user.
  24. KOD-14134: Move Company Product Lists Exports to Server Side
  25. KOD-14142: Add Full Search for Quick Order
    • Please check quick order dropdown if it shows the code and name in the autocomplete
  26. KOD-14147: Adjust Customer Number Appearing when Logged In State is Active in Topbar
    • Tests:
      • Currently only you have to test is possibility to update externalCompanyCode field for Company and Customer.
      • You can use Company API and Customer API, you should also see externalCompanyCode in the response.
      • Company:
        • POST /api/system/company
        • PATCH /api/system/company/{companyID}
      • Customer:
        • POST /api/system/customer
        • PATCH /api/system/customer/{customerID}
    • Regressions:
      • Changes will not produce any regressions, as currently is only new field added.
  27. KOD-14149: Support Another Date Format
    • Testing:
      • In portal take some order and add to it CustomField new one with code 'invoicedt' if it doesn't have.
      • For this field provide mediumValue in the one of the allowed format: 'MM/dd/yy', 'yyyy-MM-dd'.
      • Do indexing for this Order.
      • Go to Order search and find your test Order, then go to tab Development and check if you see field 'invoicedt' populated with provided date.
    • Regression test
      • Do Order indexing, all should work as usual without any errors.
  28. KOD-14151: Add extra3 to Order Search Grid in Operations Portal
    • extra3 field should be added to the order search grid in the employee portal.
  29. KOD-14153: Extra4 Field is Blank but has a Value
    • extra4 field should display a value if exists in the operations portal on the orders data grid.
  30. KOD-14164: Utility for Logging Data to Browser Console
  31. KOD-14176: Add Preview Page Button for Pages Screens
    • On CMS -> Pages -> Search/Docs button "preview on website" should be present. By clicking on this button page should be opened in new window.
    • On CMS -> Pages -> Search/Docs -> page details -> "preview on website" button should be present inside top toolbar. By clicking on this button page should be opened in new window.
    • On CMS -> Blog posts -> Search/Docs button "preview on website" should be present. By clicking on this button page should be opened in new window.
    • On CMS -> Blog posts -> Search/Docs -> page details -> "preview on website" button should be present inside top toolbar. By clicking on this button page should be opened in new window.
  32. KOD-14239: Add Session Establishment
  33. KOD-14258: Check for Cenpos Tendering / Auth Capability
    • New field on Payment (DTO): paymentType.
    • Possible values:
      • SALE
      • PRIOR_AUTH
      • VOID
      • REFUND
      • CREDIT
    • Payment record which is a prior auth will have paymentType=PRIOR_AUTH.
    • To capture this payment - use POST /api/system/paymentProcessing/capturePriorAuth/byPayment?priorAuthPaymentID={paymentID}
    • After prior auth is captured successfully - new Payment record will be created with paymentType=CAPTURED_AUTH. The first record (PRIOR_AUTH) will now have webPaymentID set (reference to new CAPTURED_AUTH payment record), i.e. PRIOR_AUTH payment record could be disabled on UI (no not allow capturing it again)
    • Regression Tests:
    • PaymentView has changed. Check whether next screens are accessible and no errors:
      • Orders -> Order Details -> “Payments” Tab (API endpoint /api/system/order/{orderID}/payments)
      • Orders -> Order Details -> Payments -> Single Payment details (>) (API endpoint /api/system/payment/{paymentID})
      • Accounts Receivable -> “Data” Tab (API endpoint /api/system/payment/list)
      • Accounts Receivable -> “Data” Tab -> Single Payment details (>) (API endpoint /api/system/payment/{paymentID})
    • Check if payment provider retrieved successfully from Payment record (data). It is used in (not sure where it is in UX):
      • Void Payment (API endpoint /api/system/paymentProcessing/void)
      • Refund Payment (API endpoint /api/system/paymentProcessing/refund)
      • VoidOrRefund Payment (API endpoint /api/system/paymentProcessing/voidOrRefund)
  34. KOD-14259: Cache Company and Addresses for Custom Rule Speed
    • Test the public commerce website category and product pages.
    • Login and test selecting company and selecting company address in topbar.
    • Test selecting company address in cart during checkout.
  35. KOD-14267: UX for Capturing Auth on an Order
    • Test on both test and live.
    • A new field Payment Type is added to Order => Payments grid.
    • Possible values of it can be:
      • SALE
      • PRIOR_AUTH
      • VOID
      • REFUND
      • CREDIT
    • If the field Payment Type is PRIOR_AUTH and webPaymentID is null - there’s a new button Capture Payment is added. When a user clicks it and prior auth is captured successfully - new Payment record will be created with paymentType=CAPTURED_AUTH. The grid should be updated with a new payment in it.