All Releases
View all releases

April 18, 2024 release notes

Highlights

Commerce

Limit order approval notifications to order approvers assigned to the shipto

As part of Kodaris commerce, there is an extensive order approval workflow that you can setup if you'd like certain users to approve orders over a certain dollar amount placed by other users. When a user who has a spending limit places an order over the designated amount, any users on the customer account with the order approver role will receive a notification prompting them to approve or un-approve the order.

In this release, we've added an enhancement where you can send these order approval notifications to any order approvers on the order's shipto; instead of all order approvers on the customer account. This allows you to streamline the notification process if you have many shiptos and certain order approvers are responsible for approving orders at each location. This behavior can be enabled for all customer accounts at once, or you can turn it on per customer account.

Check out this video that walks through the order approval workflow and then next video which covers the new feature that was released.

https://youtu.be/VUs3KooJhIE
https://youtu.be/nLulmbxBPXc

PIM

Mark products as “Digital”

If you offer digital products on your commerce website, you can now label them as such. 

Marking a product as “Digital” is useful based on how your commerce system is configured. It can be used to exclude the product from shipping costs at checkout if you have custom shipping rules set up, easy filtering to find all digital products on your website, etc. 

Refer to this video to learn how to label your product as a digital product.

https://youtu.be/vs2kJplRcow

Developer

Infor OS: Connecting to Kodaris APIs

In this release, we've released an exciting new enhancement that allows you to embed the Kodaris open APIs inside Infor OS. You can then connect to the Kodaris API directly from Infor OS to pull and push data from Kodaris.

Watch the video below to see how to connect.

https://www.youtube.com/watch?v=psisvSuVqUw

Tickets

  1. KOD-16403: Encrypt sensitive credit app fields
    • Regression Tests
    • Case 1
      • Company details edit works with no errors, confidential info is not populated (not returned in API response) and is not updated (not saved via regular company update API).
    • Case 2
      • Customer details edit works with no errors, confidential info is not populated (not returned in API response) and is not updated (not saved via regular customer update API).
    • Tests
    • Case 1
      • CreditApp Company confidential fields.
    • Case 2
      • CreditApp Customers/Owners confidential fields.
    • Case 3
      • New Company API endpoints for accessing company confidential information:
        • GET ​/api​/system​/company​/{companyID}​/confidential: Get Company Confidential Information
        • PATCH /api​/system​/company​/{companyID}​/confidential: Update Company Confidential Information.
    • Case 4
      • New Customer API endpoints for accessing customer information:
        • GET /api​/system​/customer/{customerID}​/confidential: Get Customer Confidential Information.
        • PATCH /api​/system​/customer​/{customerID}​/confidential : Update Customer Confidential Information.
  2. KOD-18322: Group user permission roles together for easy selection
    • Regression Tests
    • Case 1
      • Check customer is displayed and updated as expected in the Operations portal.
    • Case 2
      • Verify that customer roles are displayed correctly and working as expected in the Operations Portal.
    • Case 3
      • Test customer still can login as expected and navigate through customer portal, even when assigned duplicate roles from CustomerPermissionGroups.
    • Tests
    • Case 1
      • Test creation of CustomerPermissionGroup.
    • Case 2
      • Get CustomerPermissionGroup.
    • Case 3
      • Test updating CustomerPermissionGroup (PUT) .
    • Case 4
      • Test updating CustomerPermissionGroup (PATCH).
    • Case 5
      • Test CustomerPermissionGroup list endpoint.
    • Case 6
      • Test deleting CustomerPermissionGroup.
    • Case 7
      • Test assign/unassign roles to CustomerPermissionGroup.
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/unassign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/assign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/list
        • /api/system/customer/{customerID}/permissionGroups
        • /api/system/customer/{customerID}/permissionGroups/assign
        • /api/system/customer/{customerID}/permissionGroups/unassign
    • Case 8
      • Test deleting CustomerPermissionGroup which has assigned roles and deleting customer roles:
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/unassign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/assign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/list
        • /api/system/customer/{customerID}/permissionGroups
        • /api/system/customer/{customerID}/permissionGroups/assign
        • /api/system/customer/{customerID}/permissionGroups/unassign
    • Case 9
      • Test assign/unassign customer to CustomerPermissionGroup.
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/unassign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/assign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/list
        • /api/system/customer/{customerID}/permissionGroups
        • /api/system/customer/{customerID}/permissionGroups/assign
        • /api/system/customer/{customerID}/permissionGroups/unassign
    • Case 10
      • Test deleting CustomerPermissionGroup which has assigned roles and assigned to customers.
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/unassign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/assign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/list
        • /api/system/customer/{customerID}/permissionGroups
        • /api/system/customer/{customerID}/permissionGroups/assign
        • /api/system/customer/{customerID}/permissionGroups/unassign
    • Case 11
      • Test if the role from the CustomerPermissionGroup is applied to the customer as expected and if the customer has access to the appropriate resources.
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/unassign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/assign
        • /api/system/customerPermissionGroup/{customerPermissionGroupID}/roles/list
        • /api/system/customer/{customerID}/permissionGroups
        • /api/system/customer/{customerID}/permissionGroups/assign
        • /api/system/customer/{customerID}/permissionGroups/unassign
  3. KOD-18657: Ticket controller endpoint for listing files
  4. KOD-18964: Inventory Display Product Detail Page
    • Regression Tests
    • Case 1
      • Please check the product detail page to ensure everything is loading correctly and there are no issues.
    • Tests
    • Case 1
      • In Product detail page, if the product has inventory, the space between the branch name and the quantity on hand should be reduced.
      • Also when user is logged in, All inventory tab should appear below About this item section, and the space between the branch name and the quantity on hand should be reduced as well.
      • Please also check on tablet and mobile to ensure everything looks okay.
  5. KOD-19055: Adding 'Tag and hold' orders function - Integration
  6. KOD-19130: Swagger compatibility issue with Infor tool
  7. KOD-19167: Configure pricing
  8. KOD-19228: AP - AWS Textract Parser
  9. KOD-19231: Add EFT as an ACH Payment System Option
    • Regression Tests
    • Case 1
      • On the operations portal, navigate to the companies screen.
      • Select any company and find “Payment" section.
      • Change “ACH Payment System“ value.
      • Confirm the value is saved.
    • Tests
    • Case 1
      • On the operations portal, navigate to the companies screen.
      • Select any company and find “Payment" section.
      • Change “ACH Payment System“ to “EFT"
      • Confirm the value is saved.
  10. KOD-19290: Install SSL to go live
  11. KOD-19296: Incorrect Customer Pricing
  12. KOD-19314: Migrate the data
  13. KOD-19329: Category and Product Page Mockups
    • Regression Tests
    • Case 1
      • Ensure that all three views for categories look good and are not broken.
    • Case 2
      • Verify that the product details page looks good and is not broken.
    • Tests
    • Case 1
      • Go to the product detail page and check the following:
        • The color of the product name matches the color of the header.
        • The price color is pink.
        • The 'Add to Cart' button is pink.
        • The color of 'In Stock'/'Out of Stock' (for logged-in users) matches the color of the header.
        • The photos of the product location match those on the mockups.
        • Near the quantity, you should see the 'Add to Cart' button.
        • 'In Stock'/'Branch'/'Region'/'Network' is located under the 'Add to List' dropdown.
    • Case 2
      • Go to any category and check the following (for both list and grid view):
        • The 'Add to Cart' button is pink.
        • The color of the product name matches the color of the header.
        • The price color is pink.
        • The color of 'In Stock'/'Out of Stock' (for logged-in users) matches the color of the header.
        • The category and attribute names are the same color as the header.
        • The border near the attributes is pink.
  14. KOD-19384: EFT: Check what we have in v1 for payments in Canada
    • Regression Tests
    • Case 1
      • Default country is USA.
      • paymentSystembankAccount on company is ACH.
      • In Edit Payment Method, Add Payment Method dialogs:
        • There is no "Institution Number" field.
        • There is a "Routing Number" field.
        • There is an "Account Type" field.
      • It's possible to add/edit/delete ACH accounts.
    • Tests
    • Case 1
      • Default country is CA.
      • EFT was set up as payment banking system.
      • In Edit Payment Method, Add Payment Method dialogs:
        • there is an "Institution Number" field.
        • there is "Transition Number" field.
        • there is no "Account Type" field.
      • It’s possible to add/edit/delete EFT account.
  15. KOD-19449: Magento Update Real Time Order Insert When Error
  16. KOD-19485: Home page updating
  17. KOD-19491: Custom Parser Request
  18. KOD-19492: Order was Received but Agent did not Retrieve PO
  19. KOD-19499: Top Menu & Header Updates
    • Regression Tests
    • Case 1
      • Header menu links should function the same as before.
    • Case 2
      • The "Shop By Category" dropdown should continue to function as it did before.
    • Tests
    • Case 1
      • Add child items to header menu items.
      • On the website, there should now be a dropdown with the child item links.
  20. KOD-19513: Update the region logic
    • Regression Tests
    • Case 1
      • Please verify that the product list and detail pages still display correctly.
    • Case 2
      • Please verify that the branch and network inventory still display correctly.
    • Tests
    • Case 1
      • The region’s will now be based off of the value in the Operations portal > Locations > Region field.
      • If there is no region set, the the location inventory will be “Network by Default”.
      • Please double-check that the region data in the operations portal is set up same as as described in the ticket.
    • Case 2
      • Region inventory = All inventory under locations with same region set.
      • The region displayed will be taken from the closest warehouse to you.
      • Please verify that the region inventory value is correct.
  21. KOD-19516: UOM on Pricing Breaks
  22. KOD-19525: Add API User to operation screens
    • Regression Tests
    • Case 1
      • Ensure that the Customers -> Search, Data, and Details screens work properly.
    • Tests
    • Case 1
      • On the operations portal customers screen there should be a new column called 'API User'. It should be available on Search and Data tabs, as well as on the Customer-> Details page. The user should be able to edit this field on the Data and Details tab.
  23. KOD-19533: Hide inventory for Punch-out users
  24. KOD-19545: Digital Products should be Free Shipping - Update interceptor
  25. KOD-19548: Smart App Banner
    • Regression Tests
    • Case 1
      • Test on Android and iOS devices to ensure the home page looks good.
    • Tests
    • Case 1
      • Test on an iOS device to ensure that the Smart App Banner is visible.
  26. KOD-19552: Mobile app listing creation and screenshots
  27. KOD-19567: Rename the filed during account creation
    • Regression Tests
    • Case 1
      • Test the following pages to ensure they look good:
        • accountActivation
        • login
        • lostPassword
    • Tests
    • Case 1
      • Test the following pages to ensure you see the Account Email with the disclaimer "This is the email you used to register"
        • accountActivation
        • login
        • lostPassword
  28. KOD-19582: Brand mobile app
    • Tests
    • Case 1
      • Complete a full testing for the mobile app.
  29. KOD-19583: Digital Products should be Free Shipping - issues
    • Regression Tests
    • Case 1
      • As part of regression tests you should see digital field on next pages:
        • Products → Search tab
        • Products → Data tab
        • Products → Category Assignment tab
        • Products → Details page
        • Orders → Details page → Order Items
        • Companies → Details page → Orders → Choose order → Order Items
        • External Orders → Details page → Order Items
    • Case 2
      • As part of regression tests you should be able to assign/unassign fields on next pages:
        • Products → Search tab
        • Products → Data tab
        • Products → Category Assignment tab
        • Orders → Details page → Order Items
        • Companies → Details page → Orders → Choose order → Order Items
        • External Orders → Details page → Order Items
    • Tests
    • Case 1
      • Go to products → Category Assignment tab.
      • Ensure that the digital field has a dropdown.
    • Case 2
      • Verify that the digital field is populated on the following pages:
        • Orders → Details page → Order Items
        • Companies → Details page → Orders → Choose order → Order Items
        • External Orders → Details page → Order Items
    • Case 3
      • Go to Products → Search tab.
      • Check the digital field to ensure it returns the correct value for the product. You can go to the product details page, locate the digital field, change the value, go back to the search tab, wait for several minutes, and the result should be displayed.
  30. KOD-19584: Create an ERP logic Integrator method according to pattern name getVendorCodeFromSku
  31. KOD-19586: Doesn't populate fields: arpvendno, prodline on SKU details page
    • Regression Tests
    • Case 1
      • Check whether the fields arpvendno and prodline populate after refreshing the SKU detail page.
      • Select a SKU record, update the current fields arpvendno and prodline, then refresh the page. Check whether the current fields are not empty.
  32. KOD-19589: Remove wowser from customizer
  33. KOD-19590: Fix swagger issues - follow up 3
    • Regression Tests
    • Case 1
      • Validate that all endpoints for Swagger are working as expected. These include:
        • /v2/api-docs?group=System
        • /v2/api-docs?group=User
        • /v2/api-docs?group=System
        • /v2/api-docs?group=Account
    • Tests
    • Case 1
      • A new controller was created to redirect requests to Swagger and, in the future, catch the response and process it before showing it to the client. For now, we need to validate that we have a similar response for each of these URLs:
        • /v2/openapi?group=System
        • /v2/openapi?group=Vendor
        • /v2/openapi?group=User
        • 4/v2/openapi?group=Account
      • These endpoints are now redirected to /v2/api-docs?.
  34. KOD-19592: FedEx Overweight Package Issue
  35. KOD-19600: Update to AP screens
  36. KOD-19603: Сustomize the stock message
    • Regression Tests
    • Case 1
      • Check that on category, search and product detail pages still show ‘Out of Stock’ and ‘In Stock’ depending on if they are in stock or not.
    • Tests
    • Case 1
      • Check that if user10 on a product is populated, that text will show instead of ‘Out of Stock’ and ‘In Stock’ on category, search, and product detail pages.
  37. KOD-19609: Parser does not pick up lines on certain invoices
  38. KOD-19614: Sovos - Taxable Shipping
    • Regression Tests
    • Case 1
      • Company with taxableType = y, taxProvider = sovos.
      • Perform a call to: /api/system/integration/magento/webhook/order/taxCalculation
      • Make sure the endpoint works correctly and calculate taxes
    • Tests
    • Case 1
      • Company with taxableType = y, taxProvider = sovos
      • Perform a call to_ /api/system/integration/magento/webhook/order/taxCalculation
      • Change value of "shipping_amount", make sure it affects total tax (depends on a state, in some states shipping counts as exempt amount and does not affect the total tax)
  39. KOD-19615: Allow new field being updated in processAddOrUpdateItem method
    • Regression Tests
    • Case 1
      • Modify the items in a cart when creating an order and check that everything works fine.
    • Case 2
      • From an existing order, modify a field for one item, and check that the old values in the new fields are not wiped.
    • Case 3
      • Add a related product with type "KIT" and check that the current values on the new fields are not wiped.
    • Tests
    • Case 1
      • you should be able to update the fields: quantityReceived; quantityCustomerReceived; sscReceivedNote; using the next endpoint:
      • PATCH: /api/system/order/{orderID}/updateItem/{orderItemID}
  40. KOD-19637: Remove not active lines from order templates
    • Setup
      • This setting should be turn on "companyCustomerSpendingLimitEnabled".
      • You should have a CompanyAddress assigned to your company.
      • You should have Customer with role OrderAppover or SecondOrderApprover and CompanyAdmin assigned to the Company Address.
      • The company should have “Checkout with purchase Order= Yes”, “Enable Spending Limit = Yes”, “Enable Second Approval= Yes” and “Default Spending Limit =1 (this value could be different, but the total on your order should be bigger to test it correctly)”.
      • Turn on notification for "An order was placed".
      • After setup your environment, you must go to customer portal and place an order with a total amount greater than “spending Limit” and using the company address previously configured. Then, if the setting limitApprovalEmailsToCompanyAddresses is enabled, every customer assigned to the company address with role orderApprover should receive an email indicating that an order was placed.
      • If the setting is turned off, then all customer with role orderApprover that belong to the company are going to receive an email.
    • Tests
    • Case 1
      • You should repeat the regression, but with the global setting "limitApprovalEmailsToCompanyAddresses" turned off.
      • Then you have to go to the company settings and add this same setting with a value of 1. You will see that the same behavior from regression for the global setting "limitApprovalEmailsToCompanyAddresses" should be taking place. If the setting in both places is off, then we have to have the same behavior than regression when global setting "limitApprovalEmailsToCompanyAddresses" is off.
  41. KOD-19640: Home page tweaks
  42. KOD-19641: Update Ticket Updated Email Template
  43. KOD-19666: Website Branding
  44. KOD-19684: Updates to Installation Service form emails (english and french)
  45. KOD-19706: Home page tweaks V2