All Releases
View all releases

October 26, 2023 release notes

Highlights

Commerce

Secondary order approval

As part of the extensive Kodaris commerce ordering feature set, your customers currently have the option to set a spending limit for employees in their organization. When an employee places an order over that limit, the order must be approved by a designated person for it to be submitted.

As an enhancement to this feature, we've now added the capability to designate a secondary approver as well. When using this feature, an order must be approved initially by the first order approver, and then by the second designated person in order for the order to be submitted. The second order approver can also log in and approve the order prior to the first one doing so, giving your customers flexibility in case the first level approver is unavailable.

To utilize this feature, complete the initial set up steps:

711_enable_companyCustomerSpendingLimitEnabled_setting.png
711_enable_spending_limit_second_approval.png

You will also need to set up each Customer in the order approval process, starting with the person who will be placing the order. This person should already have basic ordering permission assigned in Roles.

711_customer_with_spending_limit.png

Next, confirm the person who will be the first level approver.

711_order_approval_role_assigned.png

Lastly, set up the person who will be the second level approver.

711_second_level_approval.png

Once the set up is completed, the following flow will take place when Keira places an order over her set spending limit of $2500.

711_submit_for_approval.png
711_waiting_for_approval_order_status.png
711_initial_approval_notification.png
711_final_approval_notifications.png
711_waiting_for_final_approval.png
711_final_order_approval.png

Operations Portal

Update and add data en masse on discounts screen

As part of your Kodaris platform, you can create various discounts and additional charges that are automatically applied to your customers' orders. These discounts and additional charges are stored in the Pricing & Discounting > Discounts section of the Operations Portal. In this release, you are now able to mass import and update data on this screen.

To utilize this feature, navigate to the Discounts screen in the Pricing & Discounting section of the Kodaris Operations Portal, click File, select the type of import you would like to run, and select the .CSV file you would like to import. After importing, you should get an email confirming success or notifying you of the failure of your import.

711_import_update_discounts_en_masse.png

Export complete list of filter categories

As part of the robust Kodaris PIM module, you can create Filter Categories with assigned Attributes as a useful method to help refine the selection of products within a Category. All of your Filter Categories are available to view in the PIM section of the Operations Portal, under the Filter Categories section; by clicking into the Filter Category Details, you can also see the attributes assigned within that specific Filter Category.

In this release, you can now export all the Filter Categories as a .CSV file so that you can add and edit these Filter Categories, then import to update your PIM system. To utilize, navigate to the PIM section and select Filter Categories. On the following screen, select the columns you would like to export by using the Show/Hide Columns icon, then click File, and select the Export option.

711_export_filter_categories.png
711_filter_categories_export_result.png

Tickets

  1. KOD-14229: Select Multiple Invoices for Payment in Operations Portal
    • Regression Tests
    • Case 1:
      • Log in to Operations Portal.
      • Go to CRM ? Companies ? Company Detail.
      • Make sure page layout is not broken.
      • Make sure all tabs are working as expected.
    • Case 2:
      • Log in to Operations Portal.
      • Go to CRM ? Companies ? Data.
      • Click on Edit menu item.
      • Make sure “Select all across grid“ is disabled.
      • Make sure page layout is not broken.
    • Tests
    • Case 1:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Make sure tab layout is not broken.
    • Case 2:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Check/uncheck some checkboxes from “Total budget“ control.
      • Make sure that invoices amount in a list is changing corresponding to chosen period.
      • Note: As for now we are not handling Pending and Scheduled Invoices Budget so amount and invoices sum could be different.
    • Case 3:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Open “Edit“ table menu item.
      • See “Select all across grid“ is enabled.
      • Click on “Select all across grid“.
      • Make sure all items on this grid page were selected.
      • Change grid page.
      • Make sure selection presented on all pages.
      • Change selection.
      • Change grid page.
      • Make sure selection from all grid is not presented.
    • Case 4:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Select some Invoice.
      • Change “Amount to Pay“ value or Payment Reason.
      • Reload page.
      • Make sure your changes are presented.
    • Case 5:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Select some Invoice.
      • Click Make payment button.
      • Make sure modal with Payment Methods appears.
      • Choose payment method from modal.
      • Click Make Payment.
      • Make sure Payment success modal appears.
    • Case 6:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Click on any real Invoice #.
      • Make sure you are redirected on Order details.
    • Case 7:
      • Log in to Operations Portal.
      • Make sure you have one of these roles: ({{administrator || superuser || paymentEdit || paymentView || accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Click on any unreal Invoice #.
      • Make sure you see “Order not found“ message.
    • Case 8:
      • Log in to Operations Portal.
      • Make sure you don't have any of these roles: ({{superuser, administrator, accountant}})
      • Go to CRM ? Companies ? Company Detail ? Open Invoices tab.
      • Make sure you don’t see “Make payment“ button.
  2. KOD-15702: Product Catalog Page - Table View
    • Regression Tests
    • Case 1:
      • Please go to the product page and check if all views are displayed correctly and work as usual.
    • Tests
    • Case 1:
      • Please go to the Operations Portal ? Filter Categories and check if there is a new column productDisplay and it is editable.
  3. KOD-16124: Add Cross References to the Demo Site
    • Tests
      • Navigate to a product page:
      • If the product reference is empty, the text should be {{Add}} in italic.
      • {{Add}} should be inline editable.
      • Click {{Add}} to show an inline popup and type in desired text.
      • Click {{Save}}. The text should change to the one you typed in.
  4. KOD-16197: Customer Portal - Open Invoices - Filtering on Created Date Doesn't Work
    • Regression Tests
    • Case 1:
      • Please check that column created has correct displaying of data.
    • Tests
    • Case 1:
      • Please check that we can filter on one date but different time.
  5. KOD-16285: Add Second Level Order Approval Feature to Demo Site
    • Regression Tests
    • Case 2.1:
      • companyCustomerSpendingLimitEnabled is disabled
      • Company Details ? Enable Spending Limit is *enabled*
      • Company Detail ? Checkout with Purchase Order is *disabled*
      • Expected result:
        • Store front: It’s not possible to send an order for review
    • Case 3:
      • companyCustomerSpendingLimitEnabled is enabled
      • Company Details ? Enable Spending Limit is enabled
      • Company Details ? Checkout with Purchase Order is disabled
      • Expected result:
        • Store front: It’s not possible to send an order for review
    • Case 4:
      • companyCustomerSpendingLimitEnabled is enabled
      • Company Details ? Enable Spending Limit is enabled
      • Company Details ? Checkout with Purchase Order is enabled
      • Customer Details ? Spending Limit is not set/set to 0
      • Expected result:
        • Store front: It’s not possible to send an order for review
    • Case 6:
      • Store front
      • Customer sends order for approval
      • Expected result:
        • Customer gets order details by email
        • Order status is Waiting for Approval
        • orderApprover gets a notification that order needs approval
    • Case 8:
      • Customer Portal
      • orderApprover
      • Expected result:
        • orderApprover can approve order
        • orderApprover can unapprove order
        • On (un)approving, customer gets an email that order status was changed
        • Order status changes in Customer Portal
    • Case 8:
      • Employee Portal ? Company Details
      • Expected Result:
        • It’s possible to update the Enable Second Level Approval field
        • Enable Second Level Approval value is Yes/No
    • Tests
    • Case 1:
      • Store front
      • Customer sends order for approval
      • Expected result:
        • Customer gets order details by email
        • Order status is Waiting for Approval
        • orderApprover gets an email notification that order is waiting for approval
        • secondOrderApprover does not get a notification
    • Case 1.1:
      • Order from Case 1 was sent for approval
      • Customer Portal
      • orderApprover
      • Expected result:
        • Order status is Waiting for Approval
        • orderApprover can (un)approve order
        • secondOrderApprover can (un)approve order
    • Case 1.2:
      • Order from Case 1 was sent for approval
      • Customer Portal
      • orderApprover approves the same order
      • Expected result:
        • Order status changes in Customer Portal to Waiting for Final Approval
        • secondOrderApprover gets email notification that order is waiting for approval
        • secondOrderApprover can approve/unapprove order
    • Case 1.3:
      • Order from Case 1.2 was approved by secondOrderApprover
      • Expected result:
        • Order status changes in Customer Portal to Received
        • Customer gets an email that order status was changed
        • It’s no longer possible to approve/unapprove the order for both approvers
    • Case 1.4:
      • Order from Case 1 was sent for approval
      • Customer Portal
      • orderApprover unapproves the same order
      • Expected result:
        • Order status changes in Customer Portal to Not Approved
        • Customer gets an email that order status was changed
        • It’s no longer possible to approve/unapprove the order for both approvers
    • Case 1.5:
      • Order from Case 1 was sent for approval
      • Customer Portal
      • secondOrderApprover unapproves the same order
      • Expected result:
        • Order status changes in Customer Portal to Not Approved
        • Customer gets an email that order status was changed
        • It’s no longer possible to approve/unapprove the order for both approvers
    • Case 2:
      • Store front
      • Customer sends order for approval
        • Customer Portal
      • orderApprover does not approve the order
      • secondOrderApprover approves the order
      • Expected result:
        • Order status changes in Customer Portal to Received
        • Customer gets an email that order status was changed
        • orderApprover is not able to approve the order any more
    • Case 2.1:
      • Store front
      • Customer sends order for approval
      • Customer Portal
      • orderApprover does not approve the order
      • secondOrderApprover unapproves the order
      • Expected result:
        • Order status changes in Customer Portal to Not Approved
        • Customer gets an email that order status was changed
        • orderApprover is not able to approve the order any more
    • Case 3:
      • Enable Second Approval is false
      • Company has both orderApprover and secondOrderApprover users
      • Store front
      • Customer sends order for approval
      • Expected result:
        • Customer gets order details by email
        • orderApprover:
          • Gets email notification that order is waiting for approval
          • Can (un)approve the order
        • secondOrderApprover:
          • Does not get email notification that order is waiting for approval
          • Can (un)approve the order
    • Case 3.1:
      • Order from Case 3 was approved by orderApprover
      • Expected result:
        • Order status changes in Customer Portal to Received
        • Customer gets an email that order status was changed
        • secondOrderApprover is not able to (un)approve order
    • Case 3.2:
      • Order from Case 3 was unapproved by orderApprover
      • Expected result:
        • Order status changes in Customer Portal to Not Approved
        • Customer gets an email that order status was changed
        • secondOrderApprover is not able to (un)approve order
    • Case 3.3:
      • Order from Case 3 was approved by secondOrderApprover
      • Expected result:
        • Order status changes in Customer Portal to Received
        • Customer gets an email that order status was changed
        • orderApprover is not able to (un)approve order
    • Case 3.4:
      • Order from Case 3 was unapproved by secondOrderApprover
      • Expected result:
        • Order status changes in Customer Portal to Received/Not Approved
        • Customer gets an email that order status was changed
        • orderApprover is not able to (un)approve order
    • Case 4:
      • Customer Portal
      • /api/account/customer/configuration endpoint
      • Expected result:
        • selectedCompany has approvalFlowTwoLevel field
        • selectedCompany.approvalFlowTwoLevel contains company.approvalFlowTwoLevel value
    • Case 4.1:
      • Customer Portal
      • Employee details ? Permissions
      • company.approvalFlowTwoLevel is true (Enable Second Approval is Yes)
      • Expected result:
        • There is a secondOrderApprover role in the permissions list
    • Case 4.2:
      • Customer Portal
      • Employee details ? Permissions
      • company.approvalFlowTwoLevel is false (Enable Second Approval is No)
      • Expected result:
        • There is no secondOrderApprover role in the permissions list
    • Case 5:
      • Customer Portal
      • ‘Waiting for final approval’ order details
      • Expected result
        • Order status is red in order details
        • Order status is red in PDF
      • Operations Portal ? Order email:
      • Expected result:
        • Order status is red in email
  6. KOD-16314: Cache Screen - Error Not Found Pops Up when Selecting a Cache Key
    • Regression Tests
    • Case 1:
      • Go to Operations Portal
      • Go to Cache screen
      • Check if everything looks good
    • Tests
    • Case 1:
      • Go to Operations Portal
      • Go to Cache screen
      • Choose any of available records in Caches column
      • Choose any of available records in Cache Keys column
      • You should have some information in Cache Values column without any error
  7. KOD-16389: Add the Link for the Shipping Flag
    • Regression Tests
    • Case 1:
      • Please check that shipping flag and its message is displayed as usual
    • Case 2:
      • Please check that if we click on other flags we will not be redirected to fast shipping page
    • Tests
    • Case 1:
      • Please check that after clicking on fast shipping flag we will be redirected to fast shipping page (on pages product list (list and grid view) and product page)
      • NOTE: need to check this on grid and list view
  8. KOD-16468: Adding 'Top Brands' to Demo Site
    • Regression Tests
    • Case 1:
      • Make sure the home page isn't broken and looks good
    • Tests
    • Case 1:
      • Go to Operations Portal ? CMS ? Menus ? Top Brands
      • Try adding, editing, and deleting top brands
      • Make sure the top brands in the CMS editor and the website look good
    • Case 2:
      • Also test removing all top brands ? the top brands slider in the home page should disappear
  9. KOD-16495: QuickSight Restricted Access Configuration
  10. KOD-16653: PIM - FilterCategories Export Only Allowing "First 1000 Rows" or "Current Page" in Commerce Operations Portal
    • Regression Tests
    • Case 1:
      • In Operations Portal ? PIM ? Products ? Attribute Assignment tab ? Go to ‘FILE' and click ‘EXPORT’ ? provide a file name and then click ‘Save’
      • A .CSV file with all the products should be downloaded properly
    • Tests
    • Case 1:
      • In Operations Portal ? PIM ? Filter categories ? Pick an attribute ? Go to ‘FILE' and click ‘EXPORT’ ? provide a file name and then click ‘Save’
      • A .CSV file with all the products for that category should be downloaded properly
  11. KOD-16660: Report to, Data and Search - Filter Doesn't Apply Any Changes in Operations Portal
    • Regression Tests
      • No regression tests needed
    • Tests
    • Case 1:
      • Go to Operations ? Employees ? Search, add a new column Report To; it should not be available for filtering
    • Case 2:
      • Go to Operations ? Employees ? Data, add a new column Report To; it should not be available for filtering
  12. KOD-16770: Can't Sign In or Access Site
  13. KOD-16772: Backorders Not Displaying ERP Line #'s
    • Regression Tests
      • Prerequirements:
      • On Customer Portal ? Orders screen, we need to choose one orderID which we will use in all cases
    • Case 1:
      • Go to Customer Portal
      • Go to Orders screen
      • Go to order details page
      • Check if everything looks good
    • Case 2:
      • Go to Customer Portal
      • Go to Orders screen
      • Go to order details page
      • Click on button ‘print’
      • Check if PDF file looks good
    • Tests
    • Case 1:
      • Go to Customer Portal
      • Go to Orders screen
      • Go to order details page
      • Go to Operations Portal
      • Go to Orders screen
      • Go to order details page with previously chosen order ID
      • Go to Items tab
      • Update record in lines field
      • Check that lineNo is the same as we have in Customer Portal
    • Case 2:
      • Go to Customer Portal
      • Go to Orders screen
      • Go to order details page
      • Click on button ‘print’
      • Check that in PDF file lineNo is the same as we have in Operations Portal for the same order
    • Case 3:
      • Go to Operations Portal
      • Go to Orders tab
      • Go to order details page
      • Click on email button
      • Click on ‘configure’ button
      • Check that in email lineNo is the same as we have in Operations Portal for the same order
  14. KOD-16800:Add Related Products
    • Regression Tests
    • Case 1:
      • Products without related products should not show the widget
    • Tests
    • Case 1:
      • Add related products to a product
      • Make sure {{relatedProductTypes}} setting is set and value has {{RelatedProducts}}
      • Add/Edit Related Products in the Related Products tab in the Product page
      • Check the product page in the website to make sure that it is showing the related products slider/widget
      • Check the tablet and mobile layouts to make sure they aren't broken
  15. KOD-16811: Enable Shop By Store
    • Tests
    • Case 1:
      • Not logged in customer: execute GET {{/selectedWarehouse}} to make sure there is no warehouse
      • Call GET {{/api/user/system/activeWarehouses}}
      • Pick any warehouse, then update using PUT {{/selectedWarehouse}}
    • Case 2:
      • Logged in customer
      • Execute GET {{/selectedWarehouse}} to make sure there is no warehouse
      • Call GET {{/api/user/system/activeWarehouses}}
      • Pick any warehouse, then update using PUT {{/selectedWarehouse}}
      • Verify that the warehouse is also shown at {{/currentState}} endpoint
    • Case 3:
      • Two users - logged in and anonymous
      • Verify their requests do not update each other’s warehouse
  16. KOD-16828: Scope Supporting Price Breaks
    • Regression Tests
    • Case 1:
      • Test pricing by product code
    • Case 2:
      • Test system “/pricesByCodes” endpoint
    • Case 3:
      • Testing prices calculation, adding/ updating product to customer’s (logged in user) cart
    • Case 4:
      • Testing {{updateQtyOnAddToCart}} logic works as expected; when setting is on - item quantities in cart are added up
  17. KOD-16879: Fix Bug with Endpoint Post /api/system/orderShipment/{orderShipmentID}/setting
    • Regression Tests
    • Case 1:
      • Create/update a setting with *textValue* should still working
    • Case 2:
      • Create/update setting with *integerValue* should still working
    • Case 3:
      • Create/update setting with *smallValue* should still working
    • Case 4:
      • Create/update setting with *mediumValue* should still working
    • Tests
    • Case 1:
      • Create/update setting with *textValue* type, but using field value
    • Case 2:
      • Create/update setting with *integerValue* type, but using field value
    • Case 3:
      • Create/update setting with *smallValue* type, but using field value
    • Case 4:
      • Create/update setting with *mediumValue* type, but using field value
  18. KOD-16881: Purchase Order - Copy Purchase Order Functionality
    • Regression Tests
    • Case 1:
      • Go to AR/AP ? Purchase Orders
      • Choose one of available
      • Check if page looks good without any problems
    • Tests
    • Case 1:
      • Swagger ? Endpoint:
      • To copy ? {{/api/system/purchaseOrder/{purchaseOrderID}/copy}}
      • To read details ? {{/api/system/purchaseOrder/readDetails/{purchaseOrderID}}}
      • Copy and read details of the copied purchase order
    • Case 2:
      • Go to AR/AP ? Purchase Orders
      • Choose one of available
      • Click on copy icon
      • Click on copy button
      • Purchase order should be copied and you should be redirected to new details page
  19. KOD-16939: Set Unit on a Line Item When It Goes to Trend
  20. KOD-16951: Category Layout Should Not Crash if category.name Is Not in Cache
    • Regression Tests
    • Case 1:
      • Please check few other category pages, it must work correctly as well
  21. KOD-16987: Make Shipping Method Mandatory
    • Regression Tests
    • Case 1:
      • Go to Orders ? Data ? select order with status ‘Web Entered’ ? click release to ERP ? go through this flow and make sure that you can successfully release the order
      • In production do this on a test order on the test company
    • Tests
    • Case 1:
      • Go to Operations Portal ? Settings ? orderShippingMethodRequired ? create this setting if it doesn’t exists and value should be equal to 1
      • Go to Orders ? Data ? select order with status ‘Web Entered’ ? check if Shipping Method is empty ? click release to ERP ? error ‘Please select a shipping method’ must appear
    • Case 2:
      • Fill the Shipping method field ? try to release again ? order should pass this validation, can show other errors if you have it
    • Case 3:
      • Go back to Settings and set orderShippingMethodRequired value equal to 0
      • Go to Orders ? Data ? select order with status ‘Web Entered’ ? check if Shipping Method is empty ? click release to ERP ? error ‘Please select a shipping method’ must not appear
  22. KOD-17006: Product Catalog - Add Documents In Scope For Products Attributes
    • Regression Tests
    • Case 1:
      • *Search page:*
      • Use search box on UI
      • URL:
      • {{/search?searchString=acoustical_ceilings}}
      • *Important!* To use a new business logic turn on the setting with the name {{documentDbEnabled}} and {{productAttributeDocsEnabled}}
    • Case 2:
      • *Category page:*
      • Use search box on UI
      • URL:
      • {{/category/acoustical_ceilings}}
      • Check if this page works without any exception
    • Case 3
      • Log in as a customer to website
      • Open both a company catalog and a group catalog
      • Make sure there are no errors and nothing is broken
  23. KOD-17019: Adding Importer Capability for Discounts Screen - UX
    • Tests
    • Case 1:
      • Log in to Operations Portal ? go to Pricing and Discounting ? Discounts ? Select File ? export
    • Case 2:
      • Log in to Operations Portal ? go to Pricing and Discounting ? Discounts ? Select File ? Import ? make sure that import is enabled and correct import operations are available
  24. KOD-17020: Vendor Name Is Not Shown on Details Screen
    • Regression Tests
    • Case 1:
      • Log in Operations Portal
      • Go to Vendors screen
      • Choose one of available and go to details page
      • Check if details page looks good
    • Tests
    • Case 1:
      • Log in Operations Portal
      • Go to Vendors screen
      • Choose one of available and go to details page
      • Check if field “Name” has data
  25. KOD-17029: Configure Rates Associated to shipvias
  26. KOD-17040: Deal with Changed Company Mappings
  27. KOD-17042: Redirected to Details Page when Click on Tickets/Order Discounts Tab on External Orders Details Page
    • Regression Tests
    • Case 1:
      • Log in to Operations Portal
      • Go to external orders
      • Choose one of the available records
      • Check if details page looks good
    • Case 2:
      • Log in to Operations Portal
      • Go to external orders
      • Choose one of the available records
      • Check if you can go to any tabs and are redirected to correct screen
    • Tests
    • Case 1:
      • Log in to Operations Portal
      • Go to external orders
      • Choose one of the available records
      • Go to Tickets tab
      • Check if:
        • Can see list of all records
        • Can add new record
        • Edit records
        • Delete record
    • Case 2:
      • Log in to Operations Portal
      • Go to external orders
      • Choose one of the available records
      • Go to Order Discount tab
      • Check if:
        • Can see list of all records
        • Can add new record
        • Edit records
        • Delete record
    • Case 3:
      • Log in to Operations Portal
      • Go to external orders
      • Choose one of the available records
      • Go to Delivery (Custom Fields) tab
      • Check if:
        • Can see list of all records
        • Can add new record
        • Edit records
        • Delete record
    • Case 4:
      • Log in to Operations Portal
      • Go to external orders
      • Choose one of the available records
      • Go to Delivery (Development) tab
      • Check if screen looks good
  28. KOD-17048: Add Settings to /api/user/employee/configuration
    • Tests
    • Case 1:
      • Log in to Operations Portal
      • Make sure the response of {{/configuration}} endpoint contains:
        • {{achTerms}}
        • {{shortPayReasons}}
    • Case 2:
      • Update values of {{achTerms}} and {{shortPayReasons}} settings
      • Login again, make sure the values in the response of
      • {{/configuration}} endpoints are also updated
  29. KOD-17051: Trailing Zeros Not Displayed on Convenience Charges
    • Regression Tests
    • Case 1:
      • On the Open Invoices Tab in the Customer Portal select Invoice ? Click Actions ? Pay Selected Invoices
      • Check that convenience fee field is displayed below each card number and has currency sign ($) before the actual number
    • Tests
    • Case 2:
      • Add some values to the Operations Portal Settings {{dollarCreditCardFee}} and {{percentageCreditCardFee}}
      • For testing purposes, these values should have trailing zeros; for example {{dollarCreditCardFee}} integer value can be set to 2.50
      • On the Open Invoices Tab in the Customer Portal select Invoice ? Click Actions ? Pay Selected Invoices
      • Check that convenience fee numeric value has trailing zero in it; for example: $0.80 convenience fee
  30. KOD-17058: Adding a Shipping Method Without Specifying Active/Inactive Fields, Uploads It as Inactive
    • Tests
    • Case 1:
      • Import shipping method using create only, not specifying {{active}} flag
      • Verify imported method is active
    • Case 2:
      • Import shipping method using create and update, not specifying {{active}} flag
      • Verify created method is active
  31. KOD-17067: Error on Delete URL Rewrite
  32. KOD-17072: Update Order Templates to Use the Order TermsType/termsTypeDescription Fields Instead of the Company Ones
    • Tests
    • Case 1:
      • Check Terms in Order Email and Order PDF if showing termsTypeDescription
    • Case 2:
      • Check Terms in Order Layout in Customer Portal if showing termsTypeDescription
  33. KOD-17081: Add SKUs to Direct Shipped Products
    • Tests
    • Case 1:
      • Use nonexistent product/warehouse code
      • SKU should not be created, error response
    • Case 2:
      • Use warehouseCode and productCode with which the SKU already exists
      • Another one should *not* be created, error response
    • Case 3:
      • Use valid productCode and warehouseCode
      • SKU record should be created
    • Case 4:
      • Valid product and warehouse code, use server-side endpoint
  34. KOD-17087: Missed endpoint DELETE - api/system/payment/scheduledPayment/{paymentID}
    • Tests
    • Case 1:
      • Move to Customer Portal ? Open Invoices and create a Scheduled Payment
      • Then move to Swagger Payment API for admin and find your new payment using {{/api/system/payment/search}}
      • Request body
        • {noformat}{ "page": 0, "size": 10, "sortBy": "id", "sortDirection": "autotimestamp", "filterFields": [ { "name": "status", "operation": "EXPRESSION", "value": "ScheduledPayment" }, { "name": "active", "operation": "EXPRESSION", "value": "true" } ]}{noformat}
      • When you found your Scheduled Payment ID use new endpoint {{/api/system/payment/scheduledPayment/{paymentID}}}
      • Then move to Customer Portal and confirm that Scheduled Payment is reopened
  35. KOD-17089: Create an List endpoint in the public product api not requiring inactive flag
    • Regression Tests
    • Case 1:
      • Go to Swagger and under User Api, look for [POST] /api/user/product/inactive/list endpoint
      • Run it with default parameters and check that it is returning inactive products
    • Tests
    • Case 1:
      • Go to Swagger and under User Api, look for [POST] /api/user/product/list endpoint
      • Run it with default parameters and check that it is returning all products
  36. KOD-17102: Create Pretty Version of paymentStatementEmail-EJS
  37. KOD-17104: Create Pretty Version of sendAutomatedPDFInvoice-Email
  38. KOD-17125: Home Page Content Tiles Updates
    • Tests
    • Case 1:
      • Check home content tile layout; it should show 2 rows of 3 tiles
      • Please also check the mobile and tablet layouts
  39. KOD-17134: Reset Password Email Button is Blank
    • Tests
    • Case 1:
      • Check that the button text in reset password email is showing (Outlook issue)
  40. KOD-17150: Add orderShippingMethodRequired to Configuration Endpoint
    • Tests
    • Case 1:
      • Check if field {{orderShippingMethodRequired}} is equal to {{false}} or {{true}}
      • Endpoint: {{/api/user/employee/configuration}}
    • Case 1:
      • Endpoint: {{/api/user/employee/configuration}} has to work without any exception
      • Check if field {{orderShippingMethodRequired}} is equal to {{false}}
  41. KOD-17255: Customer App - Only Display In Stock if There Is Inventory
    • Tests
    • Do it before each of the cases
      • Pre-test for cases 1, 2, 3, 4:
      • Log in to customer app as a customer
      • Go to any category
      • Click on any product to open detailed information (choose a different product each time). You will need to open a different product for each test.
    • Case 1:
      • If this item does not have inventory information, then no text about availability should be shown.
    • Case 2:
      • If this item has inventory information, but none of the locations have this item (meaning the user should call for availability), then the text “Call for Availability“ should be displayed in both places (in bold at the top and in regular weight on the right).
    • Case 3:
      • If this item has inventory information, and it is available for purchase at only one listed location, then “In Stock” should be displayed.
    • Case 4:
      • If this item has inventory information, and it is available for purchase at any of the listed locations (there should be multiple buying options and some should read “Call for availability”), then “In Stock” should be displayed.
  42. KOD-17264: Product Facet Categories List Endpoint
    • Tests
    • Case 1:
      • Endpoint /api/system/product/{productID}/assignedFacetCategory/list
      • Use not existing productID
      • Should return an error
    • Case 2:
      • /api/system/product/{productID}/assignedFacetCategory/list
      • Use valid productID without categories with type {{Facets Only}}
      • Verify the response is empty
    • Case 3:
      • /api/system/product/{productID}/assignedFacetCategory/list
      • Use valid productID, with categories with type {{Facets Only}}
      • Should return categories, assigned to product
  43. KOD-17266: Text Color Broken on Cover block Using Links
    • Regression Tests
    • Case 1:
      • Privacy policy page
      • Links should be primary color of the site
    • Tests
    • Case 1:
      • Content pages
      • Cover block links should inherit the text color of the paragraph