All Releases
January 30, 2025 January 23, 2025 January 16, 2025 January 9, 2025 January 2, 2025 December 26, 2024 December 19, 2024 December 12, 2024 November 28, 2024 November 21, 2024 November 14, 2024 November 7, 2024 October 31, 2024 October 24, 2024 October 17, 2024 October 10, 2024 October 3, 2024 September 26, 2024 September 19, 2024 September 12, 2024 September 5, 2024 August 29, 2024 August 22, 2024 August 15, 2024 August 8, 2024 August 1, 2024 July 25, 2024 July 18, 2024 July 11, 2024 June 27, 2024 June 20, 2024 June 13, 2024 June 6, 2024 May 30, 2024 May 23, 2024 May 16, 2024 May 9, 2024 May 2, 2024 April 25, 2024 April 18, 2024 April 11, 2024 April 4, 2024 March 28, 2024 March 21, 2024 March 14, 2024 March 7, 2024 February 29, 2024 February 22, 2024 February 15, 2024 February 8, 2024 February 1, 2024 January 25, 2024 January 18, 2024 January 11, 2024 January 4, 2024 December 21, 2023 December 14, 2023 December 7, 2023 November 30, 2023 November 16, 2023 November 9, 2023 November 2, 2023 October 26, 2023 October 19, 2023 October 12, 2023 October 5, 2023 September 28, 2023 September 21, 2023 September 14, 2023 September 7, 2023 August 31, 2023 August 24, 2023 August 17, 2023 August 10, 2023 August 3, 2023 July 27, 2023 July 20, 2023 July 13, 2023 July 6, 2023 June 29, 2023 June 22, 2023 June 15, 2023 June 8, 2023 June 1, 2023 May 25, 2023 May 18, 2023 May 11, 2023 May 4, 2023 April 27, 2023 April 20, 2023 April 13, 2023 April 6, 2023 March 30, 2023 March 23, 2023 March 16, 2023 March 9, 2023 March 2, 2023 February 23, 2023 February 16, 2023 February 9, 2023 February 2, 2023 January, 2023 December, 2022 November, 2022 October, 2022 September, 2022 August, 2022 July, 2022 June, 2022 May, 2022 April, 2022 March, 2022 February, 2022 January, 2022 December, 2021 November, 2021 October, 2021 September, 2021 August, 2021 July, 2021 June, 2021 May, 2021 April, 2021 March, 2021 February, 2021 January, 2021 December, 2020
View all releases

August 8, 2024 release notes

Highlights

Commerce

New search bar added to product catalogs

A search bar has been added to all product catalogs, including company catalogs, customer catalogs, and group catalogs. This will make it easier for your customers to search through their catalogs and find what they need, faster.

Check out this new feature below!

https://youtu.be/dwH84qUPgjU

Set the default shipto per customer account

You can now manually set the shipto address per customer account so that when a customer logs in, their shipto account matches their desired location. This setting can be configured in the Operations Portal.

Find out how to set the shipto for your customers in this video:

https://youtu.be/6LkC7v179hU

Send password reset email to customers after failed login attempts

When a customer has many failed login attempts, they will receive a “Login failed” message on the login screen. You can now configure your settings so that after they receive the failed message, they’ll get an email letting them know that the system detected many failed login attempts and, as a result, their account has been locked. Within that same email, they have the option to easily reset their password.

To further customize this experience, you can set the required number of failed login attempts before the email is sent, as well as the number of minutes a customer would be locked out of their account.

Walk through how to configure this setting in the video below:

https://youtu.be/6IO9G2iUhBY

Operations Portal

Issue a charge on a credit card

Historically, you could issue a charge to a customer using a bank account as the payment method. While this is still an option, you can also issue charges on a credit card. The process to issue a charge remains the same, but you’ll now see both options under the payment method dropdown.

Check it out in the video below!

https://youtu.be/_S90Jb12Nyw

Import files on the Search Rules screen

You can now import files on the Search Rules screen! The process to do this is the same as importing files in other data grids throughout the Operations Portal.

Learn more about the feature in this video:

https://youtu.be/HK3CdNfZG3E

Users with orderEdit role can cancel orders

Historically, only users with the Superuser role could cancel orders in the Operations Portal. Now, users with the orderEdit role also have the ability to cancel orders. This will allow Superusers to share and/or delegate the task of canceling orders to other team members who are not assigned the Superuser role.

See the new feature in use here:

https://youtu.be/0FR9xTQTYuM

CRM

UX updates to inventory grid on Price Check screen

The inventory grid on the Price Check screen in the Operations Portal is now a data grid, which is displayed in a spreadsheet view. Similar to the other data grids in Kodaris, you can now customize your view by selecting and deselecting columns, sorting and filtering columns, searching the grid, and saving filters. You also have the ability to view all SKU fields.

Check out the updates!

https://youtu.be/XFoJBTmO-BM

Tickets

  1. KOD-19357: UX for Minimum Order Feature
    • Regression Tests
    • Case 1
      • On the product for which interval, minimum and maximum order quantities weren’t configured. Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
      • That quantity is increased/decreased by 1 and you can add this product to a cart with no issues.
    • Case 2
      • Configure only Interval Order Quantity on the product.
      • Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
      • Make sure by default the minimum quantity shown is interval order quantity (since you haven’t configured minimum order quantity initially).
      • Make sure that quantity can be updated only by the configured interval on those pages.
    • Case 3
      • Configure Interval Order Quantity, Maximum Order Quantity, and Minimum Order Quantity on the product.
      • Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
      • Make sure that by default on a product quantity is shown minimum order quantity. Quantity could be updated only by your configured interval and should not be more that your configured maximum order quantity.
    • Case 4
      • Configure Maximum Order Quantity and Minimum Order Quantity on the product.
      • Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
      • Make sure that by default on a product quantity is shown minimum order quantity.
      • Quantity could be updated only by interval of 1 and should not be more that your configured maximum order quantity.
    • Case 5
      • Configure Interval Order Quantity, Maximum Order Quantity on the product.
      • Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
      • Make sure by default your minimum order quantity is your interval order quantity.
    • Case 6
      • Configure Interval Order Quantity, Minimum Order Quantity on the product.
      • Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
    • Case 7
      • Configure only Maximum Order Quantity on the product.
      • Check this product on following pages:
        • Product page
        • Category grid/list/catalog view
        • At shopping cart
  2. KOD-19668: Kodaris Operations Platform - avataxStatesToCalculate Setting
  3. KOD-19810: Add search box to company catalogs
    • Regression Tests
    • Case 1
      • On the content site, navigate to any category screen.
      • Confirm screen is visible and data is loaded properly.
      • Confirm on the filter sidebar there is no “Search“ filter.
      • Use other filters and confirm products are displayed as expected.
      • Add product to cart and confirm this product is successfully added.
      • Use different layouts and confirm all of them works as expected.
      • Repeat this steps as logged in user.
    • Case 2
      • On the content site, use the search bar.
      • Confirm proper result is displayed for the search string.
      • Confirm on the filter sidebar there is not “Search“ filter.
      • Use other filters and confirm products are displayed as expected.
      • Add product to cart and confirm this product is successfully added.
      • Use other layouts and confirm everything works as expected.
      • Repeat this steps as logged in user.
    • Case 3
      • Log in to the customer portal.
      • Navigate to the catalogs screen.
      • Confirm catalogs are visible and page is loaded properly.
      • Add customer catalog and confirm catalog is successfully added.
      • Confirm for empty catalog displayed proper message.
      • Repeat step 4 for company catalog.
      • From the category or search page add to catalog some products.
      • Confirm products are properly displayed.
      • Add products from catalog to cart.
      • Confirm products were added.
    • Tests
    • Case 1
      • Log in to the content site.
      • Navigate to the catalogs screen.
      • Select catalog (company, customer, group) with products.
      • Confirm on the filter sidebar search filter is visible.
      • Type search string and apply filter.
      • Confirm products are displayed for a valid search string.
      • Confirm proper message is displayed for search string that does not match any product.
    • Case 2
      • Following same tests as case 1, but this time when searching on catalogs, for company catalogs also test with in stock and warehouse filters (when applicable) and make sure the filtering/searching is working.
  4. KOD-19975: Kodaris Operations Platform - Avalara Sales Date
  5. KOD-19990: Map the to the reference field
  6. KOD-20210: Default ShipTo for the customer
    • Regression Tests
    • Case 1
      • Test company addresses still working as expected and company address is available in dropdown after customer login.
    • Case 2
      • Test current default shipTo logic works as expected on customer login.
    • Case 3
      • Test current default shipTo logic works as expected on customer login.
    • Case 4
      • Test auto-selecting billing address when card is initialized.
    • Tests
    • Case 1
      • Test defaultDelivery address is applied from list of assigned locations only.
    • Case 2
      • Test defaultDelivery address is applied from list of all company addresses.
    • Case 3
      • Test auto-selecting billing address with enabled flag defaultBilling.
  7. KOD-20578: Credit card added as a payment option when Issuing a Charge
    • Regression Tests
    • Case 1
      • On the operations portal, go to the companies screen → click into a company → click on issue a charge → adding a bank account and using a bank account that is listed in the dropdown should work the same as before.
    • Case 2
      • Do the same steps as above, but this time make sure you select ‘Vault Bank Account’ → after payment succeeds, go to Payment Methods and notice that the bank info still saves.
  8. KOD-20652: Discounted price rounding
  9. KOD-20660: Add new endpoint for uploading files in the cart
    • Regression Tests
    • Case 1
      • We want to make sure drag and drop file feature still working: In the website, after logging in and having an empty cart, you should be able to see this:
        • That hits /api/user/cart/upload
        • Endpoint to process the file sync. The parser needs to be picked up from the company settings. In the company associated to the customer, we need to have a setting {{customerOrderUploadScript }}in the Custom Fields with the value of the uploadFileParser.
        • Also, we need to have the setting uploadimportfile in the company enabled .
    • Case 2
      • Test json upload /api/user/cart/upload/json.
    • Tests
    • Case 1
      • Use /api/user/cart/upload/async to upload a file and update the current cart async. We should have to pass the parser as a parameter. The parser name will be one of the new setting value: {{uploadFileTypesInCartProcessing}}.
      • As soon as the process starts, a new Order setting will be added to the order with a value “status” : “started” (you can see it in operations portal → Custom Fields). After the process finishes, the setting will be updated to “status”:”finished”. The company associated to the customer must be able to process the upload file. To do that, we need a setting in the company {noformat}uploadimportfile{noformat} with integerValue = 1:
      • Verify: A new setting in the order is added with {noformat}value {{"status":"started"}} or {{"status":"finished"}}{noformat}.
      • (If already finished). Besides, if there was any error with the OrderItem, the item information appear in that setting - new OrderItems are added to the current cart (Since it is a async process, you will have to refresh the screen after confirming the process ended. Totals must be reflected correctly in the cart after finishes.
      • Note: Do this process for each file-parser. tsv file → kodaris_tsvOrderUpload.js. csv file → kodaris_csvOrderUpload.js xlsx file → kodaris_xlsxOrderUpload.js
    • Case 2
      • New setting was added for getting the file types and it is only available for logged in customer. Hit this endpoint to get the value: GET - /api/account/system/setting/uploadFileTypesInCartProcessing
  10. KOD-20682: Create UX screen for setting up daily lockbox/batchout process
  11. KOD-20703: Create video for Core Charge feature
  12. KOD-20707: Enable languages in search as you type results
    • Regression Tests
    • Case 1
      • Make sure everything still works for default
    • Tests
    • Case 1
      • Check whether changed language in search as you type results
      • Go to page
      • Select language for some product
      • Don’t forget go to page selected product and update some field to triggering solor index event because data about product language store in solr product doc
      • Change language in customer portal and move back to product tab. Try to type selected product.
  13. KOD-20735: CMS Layout
  14. KOD-20831: Adding Outside Sales Representative Number to Orders
  15. KOD-20847: Add UX for general contractors field
    • Regression Tests
    • Case 1
      • Within Settings, search for this setting: generalContractors.
    • Case 2
      • On the Companies Search Data tab, check that table and grid loaded with no issues. You should still be able to edit editable data and add some filters.
    • Case 3
      • On the Company Detail screen, check that data is loaded with no issues.
    • Case 4
      • On the Company Detail Screen, make sure data in category dropdown is taken from companyCustomerTypes setting value.
    • Case 5
      • On the Companies Search/Data screen within columns list check that new column “Customer Type“ was added.
      • Add this column to the table/grid
    • Case 6
      • On the Company Details screen, check that new dropdown field “Customer Type“ was added.
      • Select any value there and save.
      • Reload page and make sure Customer Type field value was successfully updated.
    • Case 7
      • Make sure generalContractors setting value is empty.
      • On the Jobs → Leads Detail screen check General Contractors field. It should contain dropdown with values from Companies with customer type “GeneralContractors”
      • Try saving the value and reload page. Make sure your selected value was saved.
      • Try typing some text values within General Contractors field. Results after typing should be limited to your typed text.
  16. KOD-20863: Integration
  17. KOD-20866: Order File Exploration
  18. KOD-20870: Multiple Invoice in One Email Sending
  19. KOD-20893: Surface Customer Product Codes from ERP
  20. KOD-20906: Drag and Drop AI Order Automation
  21. KOD-20944: Populated “placedby” Field with First & Last Name of Delivery Address
  22. KOD-20957: Price Check Screen Enhancements
    • Regression Tests
    • Case 1
      • For this regression test, we need to go to Check prices.
      • We can check the functionality of the fields and the Check prices button.
      • As long as the product you select has inventory information, you should see the Inventory table below. Otherwise, it should not appear.
    • Case 2
      • For this regression test we need to go to SKUs. We need to make sure that the columns are being displayed appropriately and that you can’t see the “Net” column since it should only appear in the Price Check table.
    • Tests
    • Case 1
      • For this test, we need to go to Price Check, then we need to make sure that the new table appears after you click on Check prices and it shows the correct data in the columns. We need to make sure that the “Net” column appears and that you can display the rest of the columns using the Show / Hide Columns button.
    • Case 2
      • For this test, we need to make sure that the information is replaced after you change the fields and click on Check prices again.
  23. KOD-20958: Populate "Placed By" with Sales Representative's Initials When Inserting Orders into ERP
  24. KOD-20997: Fix termstype and termstypeDescription
  25. KOD-21015: Configure FAQs
    • Regression Tests
    • Case 1
      • Test that delivery and payments section on checkout works as usual
    • Case 2
      • Test that themer works as usual
    • Tests
    • Case 1
      • Test that we have FAQs section on themer page, which fields we can edit.
    • Case 2
      • Test that after editing the themer, updates will be displayed on checkout FAQs section
    • Case 3
      • Test that if either question or answer is not provided, we will not see that block(QnA) on checkout
  26. KOD-21041: Adding Additional Fields to Price Check Screen
    • Regression Tests
    • Case 1
      • Test inventory is returned and displayed as expected in “Price check“ screen and run server-side/inventory endpoint from user scripts:
    • Tests
      • Case 1
        • Check newly added fields are returned from/inventory enpoint for employee with role administrator.
      • Case 2
        • Check that an employee without required roles can’t see newly added fields values.
  27. KOD-21054: Design - About Page
  28. KOD-21060: "Other" shipping method request note
    • Regression Tests
    • Case 1
      • Add some products to cart
      • Navigate to the cart page
      • Proceed with checkout
      • Confirm there no notes on the order, except default ones on:
        • Checkout page
        • Customer portal’s order detail page
        • E-mail
      • Proceed with checkout and add notes on the first tab.
      • Add notes to the product
      • Confirm there is additional user notes on the:
        • Checkout page
        • Customer portal’s order detail page.
        • E-mail
    • Tests
    • Case 1
      • On the operations portal navigate to the {{Shipping Methods}} screen
      • Add or update shipping method with method type ‘Other’
      • Navigate to the cart
      • Move to the 3rd tab
      • Confirm shipping method from step 2 is displayed.
      • Select all shipping methods.
      • Confirm {{Order Notes (required)}} text input displayed only after shipping method from step 2 is selected.
      • Confirm this text input is not visible if another shipping methods selected.
      • Click on the “{{Place the Order}}" or "{{Request a quote}}" a quote button.
      • Confirm order is not placed and validation request to input order notes in the brand new text field.
      • Enter order notes in the brand new field.
      • Repeat step 9 and confirm order notes are saved to the order and visible on the checkout
    • Case 2
      • On the cart on it’s 3rd tab select shipping method with the {{methodType = other}}
      • In the brand new text input enter some text
      • Select first cart’s tab
      • Confirm in the {{Order Notes (optional)}} text is equal to the one from step 2
      • Update {{Order Notes (optional)}} and move back to the 3rd cart’s tab
      • Confirm {{Order Notes (required)}} text input is not visible
      • Select shipping method with {{methodType = other}}
      • Confirm text was updated
  29. KOD-21062: Add customerTypeList Setting on the Employee side
    • Regression Tests
    • Case 1
      • Check whether setting: *companyCustomerTypes* exist
  30. KOD-21064: Allow resetting password if the account has been locked out
    • Regression Tests
    • Case 1
      • You must to try everything related to login/logout user, like reset password, forgot password, block user for non activity, create new user, block user for use incorrect password many times, etc.
    • Tests
    • Case 1
      • Check that when you locked your account because you enter the wrong password multiple times, you can reset your password following the instructions received in the email lock account notification.
  31. KOD-21067: Issue of applying taxes
    • Regression Tests
    • Case 1
      • Calculate taxes on instance where Avalara is used as a tax engine. Make sure taxes are calculated with no errors. E.g. calculate taxes on order in operations portal or in cart.
    • Tests
    • Case 1
      • Avalara tax calculation (payload and result) now should be saved under System Events in Operations Portal
      • This allows you to see data we send to Avalara to ease troubleshooting of taxes calculation issues
      • Numbers in System Event code is an orderID
  32. KOD-21068: Add search rules import to UX in operations portal
    • Regression Tests
    • Case 1
      • Go to Search Rules
      • Test the functionality of the Export button
    • Case 2
      • Go to Search Rules
      • Test the filters in the grid
    • Tests
    • Case 1
      • For the sake of this test, turn the {{alwaysBatchUserUploads}} setting off to see the changes immediately
      • Now go to Search Rules
      • Test the functionality of the Import buttons
      • After testing, turn the {{alwaysBatchUserUploads}} setting back on
  33. KOD-21090: Graphics for Blog Article
  34. KOD-21099: Operations Portal - Add Fields for configuring invoice and statement delivery
    • Regression Tests
    • Case 1
      • We need to head to Companies > Data > Select a Company.
      • Now, we need to make sure that all of the fields are still editable and they work properly.
      • Note: you don’t need to check the fields inside the Automated Invoicing & Statements section.
    • Case 2
      • We need to head to Companies > Data > Select a Company > Addresses > Select an address.
      • Now, we need to make sure that all of the fields are still editable and they work properly.
      • Note: you don’t need to check the fields inside the Automated Invoicing & Statements section.
    • Case 3
      • For this regression test, we need to go to Companies > Data. We need to test the functionality of the Show / Hide Columns button, as well as the editing of the columns.
    • Tests
    • Case 1
      • To test the new functionality, we need to go to Companies > Data > Select a test company.
      • We need to test the functionality of the fields inside the new Automated Invoicing & Statements section: Invoice Delivery, Statement Delivery, Invoice Copies and Send Invoices In Bulk fields.
    • Case 2
      • We need to head to Companies > Data > Select a Company > Addresses > Select an address.
      • We need to test the functionality of the fields inside the new Automated Invoicing & Statements section: Invoice Delivery and Invoice Copies.
    • Case 3
      • For this test, we need to go to Companies > Data.
      • We need to be able to use the Show / Hide Column button to display three new columns:
        • Invoice Copies, Invoice Delivery and Statement Delivery.
      • You need to be able to edit those fields in the grid as well.
    • Case 4
      • For this test, we need to go to Companies > Data > Select a Company > Addresses.
      • We need to be able to use the Show / Hide Column button to display two new columns:
        • Invoice Copies and Invoice Delivery
      • The information needs to match the one inside the details screen.
    • Case 5
      • For this test, we need to go to Companies > Data > Select a Company.
      • Now we need to find a company that doesn’t have the property “sendInvoicesInBulk” declared. For that, we can open the Network tab and verify if that property comes as “null”.
      • After we’ve done that, we need to open a new tab, go to Settings, search for the “sendInvoicesInBulkCompanySettingDefaultValue” setting.
      • Now, we need to make sure that when the value is 0, the option selected in the company is No, and when the value of the setting is 1 the option selected in the company is Yes.
  35. KOD-21101: Generate a new account in real time - configuration for orders
  36. KOD-21112: Index product category codes
    • Regression Tests
    • Case 1
      • Add/Modify/delete/index/list product should still working.
      • All interaction with product from customer portal should still working. Like search, add to cart, etc.
      • Triggered a save on a product and then tested all function with the product in FE
    • Tests
    • Case 1
      • There is a new field added in Product Document that only should be viewed from search tab on product menu.
      • The name is {{productCategoryCodes}} and this contains a list of category code, like parentCategoryIDs, but a list of codes.
      • The name was updated to:
        • {{productCategoryCodes}}
  37. KOD-21133: Unapplied Cash
  38. KOD-21141: Show Both Sq Ft and Bags on Work Order
    • Regression Tests
    • Case 1
      • Generate Internal PDF using TEST-workOrder template.
      • Make sure PDF is loaded properly with no issues
    • Case 2
      • Repeat step 1
      • Make sure for those Cash Quote Items, for which any calculations are taking place Qty and Unit cells are displaying original values, which you can check on the items tab.
    • Case 3
      • Generate Internal PDF using TEST-workOrder template.
      • In generated template make sure in columns Qty and Unit are displaying updated quantity and updated unitSell on the second line of the cell, after the original quantity
  39. KOD-21145: 99 Invoice Notes
    • Regression Tests
    • Case 1
      • Check that the 99 invoice pdf and preview are still working fine.
    • Tests
    • Case 1
      • For 99 invoices that have notes, make sure those show up fine on the pdf and preview.
    • Case 2
      • Type field on the 99 invoice should also reflect the invoice transaction type instead of being hardcoded to ‘SC’
  40. KOD-21150: Custom Home Page Section for Certain Customers
  41. KOD-21155: Support Daily Payments Batchout for Multihost
  42. KOD-21176: Enable hiding top category widget
    • Regression Tests
    • Case 1
      • Make sure welcome page works fine.
    • Case 2
      • Top Categories widget contains items.
      • Expected behavior:
        • Top Categories section is visible and works as expected.
    • Tests
    • Case 1
      • Top Categories widget does not contain items
      • Expected behavior:
        • Top Categories section is hidden
  43. KOD-21180: Load skus, addons, and taxes
  44. KOD-21183: Resync All Cross References from ERP
  45. KOD-21190: Substitute and Options Product Sliders
    • Regression Tests
    • Case 1
      • Check if product page works as usual.
    • Case 2
      • Navigate to Settings.
      • Check if setting *publicWhitelistedCrossReferenceTypes* has values *O* and *S*
    • Tests
    • Case 1
      • Check on product page if Substitute slider appears under related products.
      • Note: on cross reference, you can check which products have type S and corresponding products are substituted
    • Case 2
      • Check on product page if Complementary slider appears under Substitute products.
      • Note: on cross reference, you can check which products has type O and corresponding products are optional
  46. KOD-21193: Implementation
  47. KOD-21205: Users with orderEdit Role can now cancel orders
    • Regression Tests
    • Case 1
      • Log in using a test account
      • Navigate to the Orders screen.
      • Click on ERP and select "does not exist".
      • Choose any order from the list and click on the arrow.
      • Click on the More button and ensure that the user does NOT have the Cancel order option.
      • Expected Result:
        • The user should not be able to cancel orders.
    • Case 2
      • Verify {{Superuser}} has Cancellation permission:
        • Log in using an account with the {{superuser}} role.
        • Navigate to the Orders screen
        • Click on ERP and select "does not exist"
        • Choose any order from the list and click on the arrow.
        • Click on the More button and select Cancel order.
        • Expected Result:
          • The status of the selected order should change to canceled.
    • Tests
      • Case 1
        • Verify that a User with {{OrderEdit}} Role Can Cancel Orders:
          • Create a test account with only one role: orderEdit.
          • Log in using the test account.
          • Navigate to the Orders screen.
          • Click on ERP and select “Does not exist”.
          • Choose any order from the list and click on the arrow.
          • Click on the More button and select Cancel order.
          • Expected Result:
            • The status of the selected order should change to canceled.
  48. KOD-21207: Can't Void Account Payment with Convenience Fee
    • Regression Tests
    • Case 1
      • For instance in {{multiTenantMode}} for *CenPos* payment provider:
        • Make an account payment with convenience fee enabled ({{enableCreditCardFee}} = 1 and one of {{percentageCreditCardFee}} or {{dollarCreditCardFee}} is set).
      • Go to Accounts Receivable, open payment details and hit void payment.
      • This should successfully void main payment amount record and a convenience fee amount record
    • Case 2
      • For instance in {{multiTenantMode}} for *PriorityPayments* payment provider:
        • Make an account payment with convenience fee enabled ({{enableCreditCardFee}} = 1 and one of {{percentageCreditCardFee}} or {{dollarCreditCardFee}} is set).
      • Go to Accounts Receivable, open this payment details and hit void payment.
      • This should successfully void main payment amount record and a convenience fee amount record
  49. KOD-21210: Parser update
  50. KOD-21218: Payment Should Look at Company for COD on Multisite
    • Regression Tests
    • Case 1
      • On a multi-tenant site on one of the hosts
      • Start cart and complete checkout
      • In operations portal, check if Order is linked to corresponding host
    • Case 2
      • Start Order in employee portal on a Company that is tagged to some Host.
      • Check if Order.hostCode is the same as Company.hostCode
    • Case 3
      • Release Order
      • Run Release Order on a multi tenant Customer
    • Tests
    • Case 1
      • On a multi-tenant site, request a COD payment for an Order synced from ERP: Order that is not tagged with {{hostCode}} but is linked to a Company that is tagger with {{hostCode}}
      • When making payment - check the logs to see what {{hostCode}} is used to get PriorityPayments credentials. Now host should be determined correctly, PriorityPayments credentials should be taken off that Host and payment should went through successfully.
  51. KOD-21219: Product Not Showing Pricing for Some Customers
  52. KOD-21230: Payment Methods
  53. KOD-21231: Set up order templates
  54. KOD-21235: Configure and Test Taxes
  55. KOD-21234: Pricing
  56. KOD-21233: FAQs
  57. KOD-21255: Calculation update
  58. KOD-21263: Test releasing orders to ERP
  59. KOD-21264: Guest checkout
  60. KOD-21265: Remove seoMetaDescription setting in PATCH endpoint
  61. KOD-21270: Cache facet groups
  62. KOD-21276: Google analytics
    • Regression Tests
    • Case 1
      • Go to website. Make sure that the homepage is not broken and functions as usual.
    • Tests
    • Case 1
      • Set the TEST value to googleAnalyticsMeasurementID setting.
      • Open the homePage.
      • Confirm that everything loads without errors.
      • Then open the devtools and confirm that the {{googletagmanager}} script in the head with id=test query param exists.
      • Go to the product, companyCatalog, search, group catalog, contact or category page and confirm that the same {{googletagmanager}} script exists there.
      • This script should not be there if the page is not a public page, see cart as an example
  63. KOD-21278: Default ShipTo for the customer
    • Regression Tests
    • Case 1
      • In operations portal, make sure the following pages still load properly and all the data is working the same as before:
        • Companies
        • Company Addresses
        • Companies → select a company → Addresses
    • Case 2
      • Go to Companies → select a company → Addresses → then click into a company that has default billing set to true → you should still not see the Pricing and Pricing Types tabs as well as not seeing the extend button (top right near attach file button)
    • Case 3
      • Go to Companies → select a company → Addresses → then click into a company that does not have default billing set to true → you should still see the Pricing and Pricing Types tabs as well as see the extend button (top right near attach file button)
    • Tests
    • Case 1
      • Click on Company Addresses (on search tab)
      • Click the view columns icon
      • Notice the Default Billing and Default Delivery options
      • Select both of them
      • Notice they have now been added to the grid
      • Click on the dropdown to filter by values
      • Select one and notice that it filters correctly
      • Also select the sort button and notice the items are sorted correctly
    • Case 2
      • Go to the data tab on the Company Addresses screen
      • Click the view columns icon
      • Notice the Default Billing and Default Delivery options
      • Select both of them
      • Notice they have now been added to the grid
      • Now filter the data by either searching in the search box or clicking the filter button
      • Notice it filters correctly
      • Now click into one of the boxes and notice a dropdown selection of either Yes or No
      • Update the default billing and default delivery
      • Reload the page and add the columns back and notice those updates are still there
    • Case 3
      • Go to Companies
      • Select a company
      • Go to the addresses tab
      • Follow same checks as case 1
    • Case 4
      • Go to Company Addresses
      • Select an address
      • In the details tab notice the new Default Billing and Default Delivery options under Other Info
      • Both boxes should be a dropdown with a yes or no option
      • Change the selection and reload the page
      • Notice the change has stayed
  64. KOD-21280: Delete the duplicate Active column
    • Regression Tests
    • Case 1
      • Testing changes without affecting existing features
      • Ensure that changes don't impact existing features and that all components with changed code function and display correctly
      • Check that the remaining parameters are displayed and working correctly
      • Check that the remaining Active parameter works as expected
    • Tests
    • Case 1
      • Testing new features and UI changes
      • Ensure that new features changes are implemented and displayed correctly
      • Make sure the duplicate Active attribute is renamed and called “Combined Active“ and appear in the filter on the Company Addresses page
  65. KOD-21281: FAQs
  66. KOD-21284: Adding warehouse field to the DQ payload dto
    • Regression Tests
    • Case 1
      • Be able to see the Trip screen and modify some fields.
      • Create a new DQ Event without the warehouse field on it.
      • Modify an existing Trip through DQ endpoint {{/api/system/integration/dq/webhook/deliveryEvent}} without populating the warehousecode.
      • For creating the DQ Event, you need to enable setting {{jobProcessDQEvents}} and wait for FiveMinuteIntervalJob to process the new events
    • Tests
    • Case 1
      • Create a new dq payload event using the new field ‘warehouse’ in the request body and process the payload to check that the field trip.warehouseCode was updated.
      • Hit endpoint {{/api/system/integration/dq/webhook/deliveryEvent}} . Example of requestBody
      • Edit any field you wish. The deliveryID will be used to create a tripCode (with some prefix. In this example, it will be: dqt_tripCode-KOD-203). If you want to update a record, you need to put in the deliveryID the resulting tripCode without the ‘dqt_’ prefix.
      • Enable setting {{jobProcessDQEvents}}
      • Run FiveMinuteIntervalJob and see that the events were processed.
      • Verify you created/updated Trip with the new warehouseCode field on it.
      • should see the new field in any Order Item. Go to operations portal → Go to an order → Go to item details → See the new field there.
      • {{/api/system/order/driverDelivery/updateOrderShipmentItem }} should be able to receive and update the orderItem.receivedReason. orderItemID must be populated.
      • Eg of request body:
        • {
        • "receivedReason" : "updated with delay"
        • }
    • Case 2
      • Update deliveryStatus from new endpoint: {{/api/system/order/driverDelivery/updateDeliveryStatus/{deliveryID}/{deliveryStatus}}}
      • Take a deliveryID from an existing delivery and send any status in the path variable.
      • Check that the Delivery status is updated successfully.
  67. KOD-21293: Update to 99 Invoices
    • Regression Tests
    • Case 1
    • Check that 99 invoices preview and pdf can still be viewed fine in the customer portal.
    • Tests
    • Case 1
      • In the bottom text “this has been posted as a”
      • The type should be reflected off in this text, e.g. “This order was posted as a Service Charge” or “This order was posted as a Invoice”
  68. KOD-21294: Last purchased on recently ordered catalogs
    • Regression Tests
    • Case 1
      • Go to website. We need to check if category, product list, catalogs, search, and product details page are not broken and function correctly.
    • Tests
    • Case 1
      • Log in to website and go to the “recently ordered“ catalog. On live - all of the products there should have a last ordered quantity and date. All of those products should also have this on other product pages. This is only for logged in users.
  69. KOD-21296: Add API for saving the Damage Waiver to a Delivery
    • Regression Tests
    • Case 1
      • New endpoint to save the damage to the Delivery:
      • {{/api/system/order/driverDelivery/damageWaiverAnswers/delivery/{deliveryID}}}
      • Example of the request body used:
        • [^request_body.txt]
      • The delivery used in the request has to have a company associated in order to save the CustomerFile.
      • After processing it, the Delivery has to have 2 customer files on it.
      • The delivery has to have a new setting added with code '{{driverDeliveryDamageWaiver}}' , it holds the answers.
  70. KOD-21298: Fix inforCSD settings import
    • Regression Tests
    • Case 1
      • On the operations portal navigate to the {{InforCSD}} screen.
      • Click on the upload file icon.
      • Select {{.ionapi}} file.
      • Confirm Message “Settings applied, click Save to confirm” message displayed.
      • Refresh the page.
      • Confirm settings are the same as were before file uploading.
      • Repeat steps 2-4.
      • Click on the “Save” button.
      • Reload the page and confirm changes are saved.
      • You can download samples from the attached files.
    • Tests
    • Case 1
      • On the operations portal navigate to the {{inforCSD}} screen.
      • Upload {{.ionapi}} file.
      • Confirm next fields are set to {{ot}} value:
      • {{OAuth Authorize Path}}
      • {{OAuth Token Path}}
  71. KOD-21300: Do ordershipment check when processing a DQ event