All Releases
View all releases

June 22, 2023 release notes

Highlights

Commerce

Search PreProcessor - perform actions based on search terms

Search needs to be flexible and intuitive. Search needs to have an array of options to leverage returning search results custom to your user and industry. In your Kodaris system, one of the ways you can customize your commerce search is by using search rules. You can boost various product fields, adjust the fuzziness, and much more to tailor the results to your customers.

In this release, we've added another type of search rule called preProcessing. These pre-processing rules run before the actual product search is performed and you can redirect the user to a relevant product category based on their search terms. For example, if you want to redirect all users who search on insulation to the Insulation product category, enter a pre-processing rule that looks for the insulation keyword and then redirects to category Insulation.

To view and manage your search rules, navigate to Operations > Search Tools > Search Rules. To add a pre-processing rule:

  1. Ensure that the global setting Use Search Preprocessing is enabled
  2. Add a new search rule with the following fields:
    1. Query - the search query you want to intercept from the user
    2. Search Type - set this to product
    3. Active - set this to Yes
    4. Minimum Match - this determines how lax the rule is when comparing the user's query to the query we are looking for. The more lax it is, the more typos and alternate spellings are accepted.
    5. Action - set this to categoryRedirect
    6. Action Data - set this to the category you'd like to re-redirect to
    7. Rule Type - set this to preProcessing
    8. Pattern - set this to matchSearchText
439_preprocessingsearchrule2.png
439_customerinsulationsearch.png

Calculate product quantity from square footage

In this release, we've developed a calculator to make it easy for users to order insulation, drywall, or any other product applied by the square foot. On the product page, users can open the calculator and enter either the dimensions of the areas they need to cover or the total square footage to cover. Once they finish and click continue, the calculator will automatically calculate the quantity they need to purchase. This allows your users to calculate and purchase the exact quantity they need quickly and without manual calculations. This feature is in the platform but would need to be set up in your specific implementation. Please reach out to your account manager for details if interested.

439_kodaris_release_highlight_footage_calculator.png
439_kodaris_release_highlight_square_footage_calculator_2.png

Customer Portal

View and download documents

We've added a new screen to your customer portal which displays all the files in your Kodaris Document Management System for the selected customer account at the Company level. Your customers can find, preview, and download these documents as needed. To view and upload documents that your customers can access here, navigate to Operations > Companies > Company > Customer Files. Any files attached here will also appear in your customers' Documents screen.

This is a powerful tool that allows your customers to self-serve. They can access their account 24/7 and check generated statements, pricing lists, or anything documents or files you share with them. This adds the Document Management feature which is already enabled for Orders and Quotes in the Customer Portal.

To enable this feature, navigate to Operations > System > Settings and find the Customer Customer Files Enabled setting. Then set the value to 1.

439_kodaris_release_highlight_documents_v1.png
439_kodaris_release_highlight_customer_files.png

Operations Portal

Get notified when a ticket is assigned to you

In your Kodaris system, you can track, manage and assign tickets to your teams. In this release, we've added a new email notification that is sent when you assign an employee to a ticket. You can subscribe to these notifications by navigating to Account > Notifications and selecting Ticket is assigned to employee notification. You can also subscribe other employees to this notification by navigating to Operations > Employees > Employee > Notifications. If you are subscribed, anytime someone assigns you a ticket, you will receive an email notification with a link to the ticket.

439_kodaris_release_highlight_ticket_assigned_email.png

Tickets

  1. KOD-12746: Issues With Search Box
  2. KOD-13788: Additional Updates to PDF
    • Choose an order
    • Generate file
    • Test PDF layout
  3. KOD-14036: Send Automatic Notification to Newly Assigned Sales Rep to a Lead
    • In employee portal select any Company and assign to it an employee.
    • Check that the assigned employee received an email notification about the assignment.
  4. KOD-14295: Check Blank Order Email
  5. KOD-14314: BI
  6. KOD-14420: Message when Password is Expired
    • Login to the operations portal and set your password expires date on your employee record to 50 days ago. Logout. Try to login. You should be automatically redirected to a password expiration screen. It should say your password has expired. Go through the change password process and make sure that works and you can login again.
    • Login to the operations portal and set your password expires date on your employee record to 50 days ago. Open a new tab. Logout in that new tab. Go back to your old tab. Navigate to a different operations portal screen. You should see a dialog box open prompting you to login again. Try to login. It should auto redirect you to the password expiration screen. Go through the change password process and make sure you can login again.
    • Regression:
      • Navigate to Employee portal -> Categories -> Category. Test updating English version of category. Tested for multiple languages.
      • Navigate to Employee portal -> Pages -> Page. Test updating English version of the page. Tested for multiple languages.
      • Navigate to Employee portal -> Products -> Product. Test updating English version of the product. Tested for multiple languages.
      • Login to the Operations portal and then let your session expire. Try to navigate to a new screen in the operations portal. A session expired dialog should open and should prompt you to login again. Login and make sure that works fine.
      • Navigate to Companies -> Company -> Catalog and test assigning products to a category. Also test assigning a product to the category that has already been assigned. It should not assign it twice and not show an error either.
      • Navigate to Operations portal -> PIM -> Products. Test bulk uploading product images for all three types. Also test triggering an error uploading all three types. The box should show you the error messages fine.
  7. KOD-14461: QA - Customer App on ios
  8. KOD-14540: QA - Customer App on ios
  9. KOD-14566: Digital Credit App Validation UX Needed
    • Create a credit app account
    • Login to the site
    • Check the following fields according to criteria in the ticket:
      • Every Phone Number field - look for 10 digits
      • Every Email Address field - with correct format, ie @email.com
      • Federal Tax ID Number - look for 9 digits with format xxx-xx-xxxx
      • State Contractors License Number - alpha and numeric characters allowed, no special characters
      • Every Zip field - at least 5 numbers
    • Test for prompt for sign button
  10. KOD-14653: Add Documents Section to Customer Portal
    • This feature requires customerCustomerFilesEnabled setting to be on.
    • Test that if customerCustomerFilesEnabled is turned off, you do not see that option in the navdrawer.
    • Flow 1:
      • Open Customer portal
      • Make sure there is a "Documents" section in the side menu.
      • Go to "Documents"
      • Case 1:
        • Make sure you see list on customer files.
      • Case 2:
        • Make sure search/filtering/pagination works properly for this grid.
      • Case 3:
        • Click on "View" button.
        • Make sure previewer is open and you can see valid document content.
      • Case 4:
        • Click on "Download" button.
        • Make sure you download a valid file.
    • Regression:
      • Tested for viewing, downloading documents under Orders -> Order -> Files in the Customer portal.
  11. KOD-14686: Create Customer Side Catalogs
    • No need for regression tests, have only swagger endpoints and need to implement UX side.
  12. KOD-14741: Sending Notification when Comment is Added to a Ticket
    • Log into employee portal.
    • Create Subscription for any other employee and subscribe to SubscriptionList with code creatingTicketNoteEventEmployee.
    • Find any Ticket without internal comment and add two assignees to it which are different from the employee you've added to SubscriptionList and employee logged in.
    • Make an internal comment for this Ticket.
    • Make sure that the subscribed employee, two ticket assignees, ticket owner, and author of comment get the email notification about new comment.
  13. KOD-15005: Create a CompanyAddress Catalog
  14. KOD-15042: Need to add order numbers to the Payment Notification Emails
    • Testing:
      • In Employee portal go to Orders -> Orders, select an order and add assignee to it.
      • Then go inside the order and on the top right corner button menu, click on Email Order button.
      • On the Configure Email screen under drop down 'Display payment link' select - Yes.
      • On the new email screen, specify email address to send.
      • Once you get email with payment request, go inside and click on button 'Review and Pay'.
      • On the newly appeared screen, populate all required payment info and click 'Pay'.
      • Wait for a while and check order assignee email box, they should get email about payments notification, and that Payment Details section contains Web Order # with value.
  15. KOD-15044: Looking to see the field that is mapped to the Mode Of Delivery
  16. KOD-15067: Update checkout call to updateRecentlyOrderedItems to deal with Addresses and Customers
    • QA tests added
  17. KOD-15075: CRM - Enforce Activity Filters not in Component
    • Regression
      • Case 1:
        • Open Tickets
        • Check that all tickets are displayed
        • Open browser developer tools => network
        • Find request
        • Check that the request payload contains a filterFields as empty array
      • Case 2:
        • Open CRM - Activity
        • Check that Tickets are filtered by ticketType ‘Activity’:
        • Open browser developer tools - network
        • Find request
        • Check that the request payload contains:
          • filterFields: [{
          • name: 'ticketType',
          • operation: 'EXPRESSION',
          • value: '("Activity")',
          • fuzzy: null,
          • boost: null,
          • not: false,
          • tagged: false
          • }]
      • Case 3:
        • Open CRM - Activity Templates
        • Check that Tickets are filtered by ticketType ‘ActivityTemplate’
        • Open browser developer tools - network
        • Find request
        • Check that the request payload contains:
          • filterFields: [{
          • name: 'ticketType',
          • operation: 'EXPRESSION',
          • value: '("ActivityTemplate")',
          • fuzzy: null,
          • boost: null,
          • not: false,
          • tagged: false
          • }]
      • Case 4:
        • Open CRM/Customers - Companies
        • Company Details
        • Open Tickets tab
        • Observe that all tickets are displayed except tickets with type 'Activity'
        • Open browser developer tools - network
        • Find request
        • Check that the request payload contains:
          • filterFields: [{
          • name: 'ticketType',
          • operation: 'EXPRESSION',
          • value: '("Activity")',
          • fuzzy: null,
          • boost: null,
          • not: true,
          • tagged: false
          • }]
      • Case 5:
        • Open CRM/Customers - Companies
        • Company Details
        • Open Activities tab
        • Check that Tickets are filtered by ticketType ‘Activity’
        • Open browser developer tools - network
        • Find request
        • Check that the request payload contains:
          • filterFields: [{
          • name: 'ticketType',
          • operation: 'EXPRESSION',
          • value: '("Activity")',
          • fuzzy: null,
          • boost: null,
          • not: false,
          • tagged: false
          • }]
  18. KOD-15119: Checkout updates
  19. KOD-15128: Typo on reset password screen
  20. KOD-15138: Fix some minor cross browser issues
    • When hitting the “Enter“ key to subscribe to updates, it is showing a successful response
    • Also test submitting the form via button click
    • For both tests, subscribe email notification received
  21. KOD-15194: Quickorder updates
  22. KOD-15196: WarehouseTransfer
    • Tested only on API level, lists of created endpoints:
    • 1. POST: /api/system/warehouseTransfer/search
    • 2. GET: /api/system/warehouseTransfer/{warehouseTransferID}
    • 3. GET: /api/system/warehouseTransfer/readDetails/{warehouseTransferID}
    • 4. POST: /api/system/warehouseTransfer
    • 5. PUT: /api/system/warehouseTransfer/{warehouseTransferID}
    • 6. PATCH: /api/system/warehouseTransfer/{warehouseTransferID}
    • 7. DELETE: /api/system/warehouseTransfer/{warehouseTransferID}
    • 8. POST: /api/system/warehouseTransfer/{warehouseTransferID}/items
    • 9. GET: /api/system/warehouseTransfer/{warehouseTransferID}/item/{warehouseTransferItemID}
    • 10. POST: /api/system/warehouseTransfer/{warehouseTransferItemID}/addItem
    • 11. POST: /api/system/warehouseTransfer/{warehouseTransferID}/bulkItem
    • 12. PATCH: /api/system/warehouseTransfer/{warehouseTransferID}/updateItem/bulkItem
    • 13. POST: /api/system/warehouseTransfer/{warehouseTransferID}/deleteItem/bulkItem
    • 14. POST: /api/system/warehouseTransfer/{warehouseTransferID}/note/list
    • 15. GET: /api/system/warehouseTransfer/{warehouseTransferID}/note/{noteID}
    • 16. POST: /api/system/warehouseTransfer/{warehouseTransferID}/note
    • 17. PUT: /api/system/warehouseTransfer/{warehouseTransferID}/note/{noteID}
    • 18. DELETE: /api/system/warehouseTransfer/{warehouseTransferID}/note/{noteID}
    • 19. POST: /api/system/warehouseTransfer/{warehouseTransferID}/customerNote/list
    • 20. GET: /api/system/warehouseTransfer/{warehouseTransferID}/customerNote/{customerNoteID}
    • 21. POST: /api/system/warehouseTransfer/{warehouseTransferID}/customerNote
    • 22. PUT: /api/system/warehouseTransfer/{warehouseTransferID}/customerNote/{customerNoteID}
    • 23. DELETE: /api/system/warehouseTransfer/{warehouseTransferID}/customerNote/{customerNoteID}
    • 24. GET: /api/system/warehouseTransfer/{warehouseTransferID}/customerFile/{customerFileID}/view
    • 25. POST: /api/system/warehouseTransfer/{warehouseTransferID}/customerFile/upload
    • 26. GET: /api/system/warehouseTransfer/{warehouseTransferID}/internalFile/{internalFileID}/view
    • 27. POST: /api/system/warehouseTransfer/{warehouseTransferID}/internalFile/upload
  23. KOD-15212: Make fields “Type“ and “Payment System“ on the Payment Methods page unfilterable
    • Tested Payment Methods in Operations Portal.
    • Columns Type and Payment System are unfilterable. Near the column names, there is an icon with the tooltip "Filtering Unsupported".
  24. KOD-15222: Update Template for Email Alert to Assignee of a Task
    • Testing the template ticketAssignedToEmployeeNotification- EMAIL
    • Company permission:
      • The ticket should have entityID and entityType is 'Company'
    • Ticket permission:
      • The ticket should not have entityID or entityType is not 'Company'
    • Add a subscriber:
      • Open Subscriptions
      • Subscribe for the event creatingTicketEmployeeAssignmentEventEmployee.
    • Test cases with Tickets permissions:
      • Case 1:
        • Open Tickets
        • Select Ticket
        • Click Ticket details
        • Ticket permissions are set
        • Add email to assignees
        • Check email received
        • Click on the link {ticketId} in the email; it should redirect to the Ticket page.
        • Copy and paste the URL from the email into the browser and as a result, you should be redirected on the Ticket page.
        • Example of the email: Hello, Ticket number {ticketId} was assigned to you. If clicking the link is not working, copy and paste this URL into your browser URL window: Thank you.
      • Case 2:
        • Open Activities
        • Select Ticket
        • Click Ticket details
        • Check ticket permissions set
        • Add email to assignees
        • Check email
        • Click on the link {ticketId} in the email to be redirected to the Ticket page
        • Copy and paste the URL from the email into the browser and as a result, you should be redirected on the Ticket page
          • Example of the email: Hello, Ticket number {ticketId} was assigned to you. If clicking the link is not working, copy and paste this URL into your browser URL window: Thank you.
      • Case 3:
        • Open Activity Templates
        • Select Ticket
        • Click Ticket details
        • Check ticket permissions set
        • Add email to assignees
        • Check email
        • Click on the link {ticketId} in the email to be redirected to the Ticket page
        • Copy and paste the URL from the email into the browser and as a result, you should be redirected on the Ticket page
        • Example of the email: Hello, Ticket number {ticketId} was assigned to you. If clicking the link is not working, copy and paste this URL into your browser URL window. Thank you.
    • Test cases with Company permissions:
      • Case 1:
        • Open Companies
        • Select Company
        • Select Ticket
        • Click Ticket details
        • Check that ticket has Company permission.
        • Add email to assignees
        • Check email
        • Click on the link {ticketId} in the email to be redirected to the Ticket page
        • Copy and paste the URL from the email into the browser and as a result, you should be redirected on the Ticket page
        • Example of the email: Hello, Ticket number {ticketId} was assigned to you. If clicking the link is not working, copy and paste this URL into your browser URL window: Thank you.
      • Case 2:
        • Open Companies
        • Select Company
        • Select Activity
        • Click Ticket details
        • Check that ticket has Company permission.
        • Add email to assignees
        • Check email
        • Click on the link {ticketId} in the email to be redirected to the Ticket page
        • Copy and paste the URL from the email into the browser and as a result, you should be redirected on the Ticket page
          • Example of the email: Ticket number {ticketId} was assigned to you. If clicking the link is not working, copy and paste this URL into your browser URL window: Thank you.
    • Error cases:
      • Open Development - Logs
      • If ticket has no ticketID
      • There will be an error in Logs - ticketID is required
      • Open Development - Logs
      • No ticketId found.
      • There will be an error in Logs - ticketID not found.
  25. KOD-15225: Credit App PDF Error when Viewing & Downloading
    • Navigate to credit application link. Enter your email address to sign up for credit.
    • Email will be received with a link to reset password
    • Reset password following the link
    • Login as prompted
    • Redirected to the credit application form
    • Fill out the credit application.
    • Through the credit application and ensure that the credit application generates fine, ensuring that all filled in data on your credit application shows up on the credit application pdf.
    • Once the form is valid and submitted, user will be redirected to a thank you page.
    • In Employee portal, look for the email registered under 'Companies'
    • In internal files, a PDF of your application should be in there.
  26. KOD-15227: Error while adding order items in bulk to a vendor quote on a quote
  27. KOD-15256: Enable punchout during checkout for templates
    • Flow 1:
      • Case 1:
        • Login as a user with punchout credentials
        • Add products to shopping cart
        • Go to checkout page
        • It contains "Pay with Punchout" block and "Place order" button
        • Redirected to Punchout payment page
    • Regression:
      • Login as user without punchout credentials
      • Add products to shopping cart
      • Go to checkout page
      • Making sure layout is not broken
      • All available payment methods are working as expected
  28. KOD-15260: Add Select UX to Preprocessor Search Rule Screen
    • Tested if pattern, action, ruleType, and searchType has dropdown and updates it
  29. KOD-15268: Checkout updates
  30. KOD-15294: Fix date issues
    • Test on different sites with different extra3 and extra4 date formats.
    • Force an order to be indexed and tested that the extra3Date and extra4Date are properly filled in using the development tab under the solr document data. Tested for properly indexing different date formats like 06/21/23 or 2023-06-20T00:00:00Z
  31. KOD-15302: Add New Square Footage Calculator Feature to the Demo Site
    • Check linked ticket how to setup calculator logic.
    • Test the calculator logic and ensure it works as expected.
    • Tested product pages on the demo site as both logged out and logged in customer.
  32. KOD-15306: Products in Cart not Remembered when Closing App
  33. KOD-15307: Error when choosing a delivery method
  34. KOD-15308: Order Detail Updates
  35. KOD-15314: Requests should not preserve sessions
  36. KOD-15315: Remove Some Info Sections Displayed on Product Details Page
  37. KOD-15335: Implement - Spin up system
  38. KOD-15341: Order Release Updates
  39. KOD-15342: Updating the insulation calculator disclaimer
    • Setup calculator if it not set
    • Go to product page with calculator
    • Click calculate button
    • Check disclaimer text
  40. KOD-15357: Issue with Orders
  41. KOD-15358: Pricing Issues
    • Regression tests:
      • Tested pricing runs fine when logged in as customer