All Releases
View all releases

February 15, 2024 release notes

Highlights

Operations Portal

Export & import employees

In this release, we've added the ability to import and export employees as well as their roles/permissions. This is often useful if you'd like to mass update data on employees or migrate employees from a different system into your Kodaris system.

https://youtu.be/vUxDtXLHfA0?feature=shared

Customer Portal

Customer ticketing system

One of the most exciting features on this release is about the service / ticketing system that you have access to. We have been using the Kodaris service module internally for nearly a year. We began with Jira years ago and found it just could not scale the way we wanted to work. This led us to invest in building what we wanted. Over the last year, we have implemented not only a full-service ticketing system but also time-logging activities, like call logging, automated service order and invoice creation, and more. Kodaris runs more than eighty percent of its business on Kodaris, including contracts and pricing.

This month, we began rolling out the customer-facing component of the ticketing system. This means that your customers can now log into your customer portal on your Kodaris website and not only enter tickets and enhancement requests but also track their requests, add images and comments, etc. This fully connected to your internal team. If you have a need for Customer Service, Field Service, Time Tracking, Activity Tracking, or other service use cases, chat with us. It is fully integrated like every Kodaris module, which means billing, payment, and analytics are one hundred percent built-in. This might be another way to drive further ROI to your bottom line.

https://youtu.be/-AOtYoiM9e4?feature=shared

Tickets

  1. KOD-12854: Kodaris - Commerce Demo Site - Add a few orders with POD images for demo purposes
  2. KOD-13970: Add Generic Endpoint for Checking status of an integration
    • Case 1
      • New endpoint to call:
      • GET {{/api/system/integration/{integrationCode}/status}}
      • As now this endpoint is only available from swagger, open {{System}} spec, and navigate to {{Integration API}}
  3. KOD-15564: Employees screen - server side export and import
    • Case 1: Check Employee importing process:
      • check whether import list exist:
      • use example csv file to import employee record, test only create, update, create & update =>
    • Case 2: Check the new Employee /export endpoint: {{/api/system/employee/export}}
  4. KOD-17329: Stocking Notes
    • Case 1
      • please check that company and customer lists work as usual
    • Case 1
      • please check that for company and customer lists we can:
        • add/update/see/delete location notes
        • start order and see locations (that we set on customer portal) in cart
        • show/hide button ‘toggle locations’ by changing value of setting customerProductListLocationsEnabled
  5. KOD-17702: Add attributes to search product endpoint
    • Case 1
      • Go to customer site and check that featured product still working fine.
    • Case 2
      • Use the endpoint with one of the setting {{documentDbEnabled}} or
      • {{productAttributeDocsEnabled}} = false.
      • And the endpoint should behave as it was working always.
    • Case 3: check server side api is working:
    • Case 5:
      • Look for a product that has related product on main screen
    • Case 1
      • Use the endpoint with all of these settings {{documentDbEnabled}} and
      • {{productAttributeDocsEnabled}} = true. Then set up “attributes”=”true” in the search payload. Then be sure to look for a product which has attributes, then you should be able to see attributes in the responses
  6. KOD-17725: CreditStatusChanges Template
  7. KOD-18043: Public Pricing to Show Qty Breaks
  8. KOD-18045: Create DocumentDb for AccountsPayable Sync
    • Case 1
      • Test order create/update /delete document db from UI
      • You must check that there are not exception in logs related to your create/update/delete action
    • Case 2
      • Create and delete any entity which is not a documentDB
      • and check it is working fine
      • You must check that there are not exception in logs related to your create/update/delete action
    • Case 1
      • this setting should be enabled:
      • {{documentDbEnabled}}=1
      • Run SyncPayloadJob and check that it is not breaking trying to add a record into AccountsPayablesDocumentDB table
    • Case 2
      • this setting should be enabled:
      • {{documentDbEnabled}}=1
      • using swagger try to add a new AccountsPayableDocumentDB record
      • [POST]{{/api/system/accountsPayableDocument/{accountsPayableID}/createOrUpdate}}
    • Case 3
      • this setting should be enabled:
      • {{documentDbEnabled}}=1
      • using swagger try to read a AccountsPayableDocumentDB record
      • [GET]{{/api/system/accountsPayableDocument/{accountsPayableID}/list}}
    • Case 4
      • this setting should be enabled:
      • {{documentDbEnabled}}=1
      • using swagger try to list all AccountsPayableDocumentDB records
      • [GET]{{/api/system/accountsPayableDocument/list}}
    • Case 5
      • this setting should be enabled:
      • {{documentDbEnabled}}=1
      • using swagger try to delete a AccountsPayableDocumentDB record
      • [DELETE]{{/api/system/accountsPayableDocument/{id}}
    • Case 6
      • this setting should be enabled:
      • {{documentDbEnabled}}=1
      • using User scripts try to Add/get/list/delete a AccountsPayableDocumentDB record
      • [POST]{{/api/system/accountsPayableDocument/{accountsPayableID}/createOrUpdate}}
      • [GET]{{/api/system/accountsPayableDocument/{accountsPayableID}/list}}
      • [GET]{{/api/system/accountsPayableDocument/list}}
      • [DELETE]{{/api/system/accountsPayableDocument/{id}}}
    • Case 7
      • Test order create or update document db:
      • {{/api/system/orderDocument/{orderID}/createOrUpdate}}
      • when _id is not provided in document, then it should look for orderId and use the orderNumber
  9. KOD-18158: UX to Add Quantity Conversion Column
    • Case 1
      • On Products => Related Products screen check that grid and its fields and columns are working properly.
    • Case 2
      • On Products => Related Products screen check that 2 new columns were added to the column list. Try selecting and editing them.
  10. KOD-18213: Move quote endpoints
    • Case 1
      • Execute a User Script in operation portal to validate the following endpoints continue working as expected:
      • GET:
      • /api/system/quote/search/\{quoteID}
      • /api/system/quote/searchDetails/\{quoteID}
      • /api/system/quote/\{quoteID}
      • /api/system/quote/\{quoteID}/orders
      • api/system/quote/\{quoteID}/discounts
      • /api/system/quote/\{quoteID}/quoteItems
      • /api/system/quote/\{quoteID}/quoteItemPreview
      • /api/system/quote/\{quoteID}/orderItem/\{quoteItemID}
      • /api/system/quote/\{quoteID}/lookupJurisdiction
      • /api/system/quote/\{quoteID}/settings
      • /api/system/quote/\{quoteID}/setting/\{code}
      • /api/system/quote/\{quoteID}/escalators
      • /api/system/quote/\{quoteID}/discount/{discountID}
      • POST:
      • /api/system/quote/search
      • /api/system/quote/index/\{quoteID}
      • /api/system/quote/\{quoteID}/orders/search
      • /api/system/quote/list
      • /api/system/quote/\{quoteID}/items
      • /api/system/quote/\{quoteID}/addItem
      • /api/system/quote/\{quoteID}/bulkItem
      • /api/system/quote/\{quoteID}/recalculate
      • /api/system/quote/\{quoteID}/settings
      • /api/system/quote/\{quoteID}/setting /api/system/quote/generateQuoteCompanyAddressPricingRecordsForExistingCompanyAddressFromQuote/\{quoteID}
      • /api/system/quote/\{quoteID}/repriceAndRegenerateQuoteCompanyAddressPricingRecords
      • /api/system/quote/\{quoteID}/changeDeliveryAddress
      • /api/system/quote/\{quoteID}/escalator
      • /api/system/quote/\{quoteID}/generateEscalators
      • /api/system/quote/\{quoteID}/bulkEscalators
      • /api/system/quote/\{quoteID}/addon
      • /api/system/quote/\{quoteID}/sendEmail
      • /api/system/quote/\{quoteID}/email/list
      • /api/system/quote/\{quoteID}/quoteToV2
      • /api/system/quote/\{quoteID}/company/address/search
      • /api/system/quote/listErpSettings
      • PUT:
      • /api/system/quote/\{quoteID}
      • PATCH:
      • /api/system/quote/\{quoteID}/updateItem/\{quoteItemID}
      • /api/system/quote/\{quoteID}/bulkItem
      • /api/system/quote/\{quoteID}
      • /api/system/quote/\{quoteID}/setting/\{code}
      • /api/system/quote/\{quoteID}/escalator/{productPriceID}
      • /api/system/quote/\{quoteID}/bulkEscalators
      • /api/system/quote/\{quoteID}/escalatorSchedule
      • /api/system/quote/\{quoteID}/discount/{discountID}
      • DELETE:
      • /api/system/quote/\{quoteID}/deleteItem/\{quoteItemID}
      • /api/system/quote/\{quoteID}/setting/\{code}
      • /api/system/quote/\{quoteID}
      • /api/system/quote/\{quoteID}/escalator/{productPriceID}
      • /api/system/quote/\{quoteID}/bulkEscalators
      • /api/system/quote/\{quoteID}/discount/{discountID}
  11. KOD-18263: Add SKU DocumentDB
    • Case 1
      • Create or Update a SKU Document
    • Case 2
      • List SKU Documents for skuID
    • Case 3
      • Delete a SKU Document
    • Case 4
      • List SKU Documents
  12. KOD-18321: Updated Pack Size
  13. KOD-18370: Assignee IDs not shown in Vendors/Search Screen
    • Case 1
      • On the employee portal go to the vendors screen and verify is this screen work properly.
    • Case 1
      • On the employee portal go to the vendors screen. Add assignee related columns to this table and verify is information right. Add assignees and remove them to test this feature.
      • Warning: updating the information about the assignees may take some time (about 10 seconds). Refresh control to see changes.
      • All vendor’s assignees that was added before platform fixes may not be visible on the Vendors screen.
  14. KOD-18433: Make Payment Reasons Column Filterable & Sortable
    • Case 1: Check whether the page: don’t have regression
    • Case 1: Check whether column: PaymentReason is filterable and sortable on search page
      • go to page: select some record, update the column: PaymentReason of current record
      • then go to page: to check wheter current column indexed in current record
      • go to swagger endpoint:
      • try to filter by current field: *paymentReason*
  15. KOD-18612: Add new method to sdk
    • Case 1
      • If site has guest quote request enabled, a guest should be able to request a quote.
    • Case 2
      • If the setting is turned off, the guest user shouldnt be able to checkout with quote request.
    • Case 3
      • If site has customer quote request enabled, a customer should be able to request a quote.
    • Case 4
      • If the setting is turned off, the user shouldnt be able to checkout with quote request.
  16. KOD-18626: Add an interceptor for cart endpoint
    • Case 1
      • Verify the endpoint works correctly, as it is expected - depending on enabled settings
    • Case 1
      • Modify interceptor, make sure it affects response
      • {{cartGetPaymentMethodOptions.js}}
    • Case 2
      • {{cartGetPaymentMethodOptions.js}}
      • Update key of some option.
  17. KOD-18636: Related Products - Add the 'relatedProductTypes' setting to the 'configuration' endpoint
    • Case 1: Check whether employee portal works well
    • Case 1: Check whether return *relatedProductTypes* from endpoint: {{/api/user/employee/configuration}}
      • before call endpoint need to check the setting: *relatedProductTypes* in setting list and put some value(if the setting is empty)
  18. KOD-18659: Disable Unsafe Character Check for Product Codes
  19. KOD-18666: Request Quote
  20. KOD-18673: Converge Credit Card Surcharging
    • Case 1
      • Card BIN Lookup by card number.
      • Endpoint: {{GET /api​/system​/paymentMethod​/binLookup​/byCardNumber}}
    • Case 2
      • For Case 1 - test with non-existent card number.
      • Check if error is returned and logged in employee portal
    • Case 3
      • BIN Lookup for stored payment method by external token
      • In employee portal - find CONVERGE payment method. Copy the External Token value for this payment method:
      • Test by using endpoint {{GET /api​/system​/paymentMethod​/binLookup​/byToken}}, use the copied External Token value for {{token}} param:
    • Case 4
      • Same initial steps as in Case 3, but copy the Payment Method ID
      • Test by using endpoint {{GET /api/system/paymentMethod/binLookup/companyMethod/{paymentMethodID}}}, use the copied Payment Method ID value for {{paymentMethodID}} param:
      • Should get the same response as in Case 3
    • Case 5
      • Update of {{cardType}} on stored payment method.
      • Find CONVERGE payment method in employee portal, open details, and check request/response in console:
      • PaymentMethod to test should be with {{cardType}} value different from these 2: “DEBIT“, “CREDIT“ (it could be empty, or “CREDITCARD“, but none of those 2).
      • Run API endpoint with the selected paymentMethodID:
      • {{PATCH /api​/system​/paymentMethod​/binLookup​/companyMethod​/{paymentMethodID}}}:
      • Check the response: it should have value of {{cardType}} fields one of “DEBIT“ or “CREDIT“.
      • Check the details page again for this payment method: API call should now return updated value of {{cardType}} field
  21. KOD-18699: Test Customer Tickets
  22. KOD-18708: UX for Address 3 Line
    • Case 1
      • On the employee portal go to the orders screen. Verify is all tabs are working properly. Open specific order details and verify is everything work.
    • Case 1
      • On the employee portal go the the orders screen and select specific order. On the delivery address section find “Address details“ input, write down some piece of information and verify is this data saved.
  23. KOD-18739: UX for Add Card Type Selector and Modify Convenience Fee Process
    • Case 1
      • Employee portal => Payment methods screen works fine
    • Case 2
      • Customer Portal => Company Account => Payment methods screen works fine
    • Case 3
      • Customer Portal => My Account => Payment methods screen works fine
    • Case 4
      • Customer Portal => Company Account => Deposit screen works fine
    • Case 5
      • Customer Portal => Company Account => Deposit screen => when change the selected payment method - cvv field gets reset
    • Case 6
      • Customer Portal => Company Account=> Open Invoices screen => Payment Dialog => when change the selected payment method - cvv field gets reset, it’s possible to add the payment method
    • Case 1
      • Check Add Card Payment Method dialog on the screens:
      • Customer Portal => Company Account => Payment methods
      • Customer Portal => My Account => Payment methods screen
      • Customer Portal => Company Account => Deposit screen => Make payment => Add new Payment Method
      • Customer Portal => Company Account => Open Invoices => Make payment => Add new Payment Method
      • Expected behaviour:
      • there is a Card Type field
      • Required
      • Values: Debit, Credit
    • Case 2
      • Check Edit Card Payment Method dialog on the screens:
      • Customer Portal => Company Account => Payment methods
      • Customer Portal => My Account => Payment methods screen
      • Expected behaviour:
      • it’s possible to edit a Card Type field
      • it’s not possible to set it to empty string
    • Case 3
      • Customer Portal => Company Account => Deposit screen
      • Select payment method that has Card Type already set up.
      • Make a deposit payment
      • Expected behaviour:
      • payment was made successfully
    • Case 4
      • Customer Portal => Company Account => Deposit screen
      • Select payment method that has no Card Type already set up
      • Make a deposit payment
      • Expected behaviour:
      • payment was made successfully
      • the selected payment method got it’s card type updated to the one you’ve just selected(check in Customer Portal => Company Account => Payment methods screen)
    • Case 5
      • Employee portal => Payment methods screen
      • Expected behaviour:
      • Card Type column is available
      • It’s editable, freehand
    • Case 6
      • Customer Portal => Company Account=> Open Invoices screen
      • Actions:
      • Pay selected invoices
      • Schedule Payment
      • Select payment method that has Card Type already set up.
      • Make a payment
      • Expected behaviour:
      • payment was made successfully
    • Case 7
      • Customer Portal => Company Account=> Open Invoices screen
      • Actions:
      • Pay selected invoices
      • Schedule Payment
      • Select payment method that has no Card Type already set up.
      • Make a payment
      • Expected behaviour:
      • payment was made successfully
      • the selected payment method got it’s card type updated to the one you’ve just selected
    • Case 8
      • Customer Portal => Company Account => Deposit screen
      • Input some data in amount, description, cvv and cardType(optional) fields.
      • Press Cancel
      • Expected behaviour:
      • fields were reset
      • first payment method was selected
      • it’s possible to pay another deposit right away
    • Case 9
      • Customer Portal => Company Account => Deposit screen
      • Input some data in amount, description, cvv and cardType(optional) fields.
      • Press Make Payment
      • Close the confirmation popup
      • Expected behaviour:
      • fields were reset
      • first payment method was selected
      • it’s possible to pay another deposit right away
  24. KOD-18740: Product pricesByCodes v2 endpoint
    • Case 1
      • POST
      • api​/user​/product​/pricesByCodesV2
  25. KOD-18762: Subtype & Release to Vendor Icon not Automatically Displayed when Splitting Order with Direct Only Items
    • Case 1
      • Open employee portal. Create a proper order with only “Shipped Directly“ items.
      • Go to Orders → Order details.
      • Click on “Split Direct Order“ button.
      • Make sure you’re redirected on Back Orders tab
      • Goto Details tab
      • Make sure Subtype field has “Direct Order“ value.
  26. KOD-18770: UX Tweak
  27. KOD-18775: Update Kodaris About Footer Image
  28. KOD-18778: Switch Layout to use Search Suggest Endpoint
  29. KOD-18779: Customer Tickets - Add grid refresh
  30. KOD-18780: Customer Tickets - Tickets screen issues
  31. KOD-18781: Kodaris - Add customer tickettype dropdown
    • Case 1
      • On Tickets => Tickets details check Misc section.
      • Layout shouldn’t be changed, you should be able to edit data there.
    • Case 2
      • On Tickets => Tickets details check that Customer Ticket types dropdown was added to the Misc section with values you’ve saved in customerTicketTypes setting
  32. KOD-18794: Operations portal - make code field filterable and sortable
    • Case 1
      • On the employee portal on the filter categories screen verify is page work properly.
    • Case 1
      • On the employee portal on the filter categories screen add all columns to the table and verify is every columns filterable and sortable.
  33. KOD-18800: Configure the payment portal
  34. KOD-18808: Create Our History page
  35. KOD-18807: Customer Tickets - Fix import to add entityID and entityType
    • Case 1
      • Import a ticket with option "Create and Update" should work
    • Case 2
      • Import a ticket with option "Only Create" should work
    • Case 3
      • Import a ticket with option "Only Update" should work
    • Case 1
      • Import a new ticket with a valid companyCode:
      • From employee portal, check that the ticket has populated entityID and entityType on Development tab of imported ticket
      • From customer portal, check that the ticket is visible in the list of ticket from the ticket menu.
  36. KOD-18809: Create Our Team page
  37. KOD-18810: Create Tools page
  38. KOD-18812: Create Pickup page
  39. KOD-18811: Create Service page
  40. KOD-18813: Create about page
  41. KOD-18815: Create another services page
  42. KOD-18816: Create last services page
  43. KOD-18819: Create Terms page
  44. KOD-18820: Create Privacy Policy page
  45. KOD-18822: Create Careers page
  46. KOD-18821: Delete Deployment screen
    • Case 1
    • On the employee portal verify is navigation menu works properly.
    • Case 1
      • On the employee protal view Development group. Verify there is no “Deployment” item. Try to reach the endpoint {{/deployment}}
  47. KOD-18830: Create locations page
  48. KOD-18831: Create Contact page
  49. KOD-18832: Create About Us page
  50. KOD-18840: Assigned to Ticket email template not host compatible
    • Case 1
      • Test employee receives email after ticket assigned, and has correct host
      • Email will try to get host from:
      • Employee warehouse - host code
      • ticket host code
      • ticket warehouse → host code
      • Ticket company → host code
    • Case 2
      • Test received email after content page commented uses correct host
      • Where to set host for Content Page Pages → details → Host code
  51. KOD-18848: RelatedProduct isDeletable flag
    • Case 1
      • Check deletable field is added and editable
    • Case 2
      • Check deletable field appears on list endpoint
  52. KOD-18862: Customer Tickets - Add reporter to update email
  53. KOD-18899: Set up menus & content on the content site