All Releases
February 27, 2025 February 20, 2025 February 13, 2025 February 6, 2025 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

September 12, 2024 release notes

Highlights

Commerce

Consumer Account registration now available for public users

Your Kodaris Commerce website can now offer account registration for public users! With this feature, any user who visits your website can register for a consumer account on their own and immediately begin placing orders. This experience not only provides a seamless registration process for your customers but also lessens the steps required for you to manually add a new customer account. 

Consumer Registration Flow

  1. A public user fills out and submits the registration form on your website
  2. Immediately upon form submission:
    1. Kodaris creates a customer account that resides only in Kodaris (not in your ERP). The customer number of the customer account is the user's email address and the customer account is marked as a "Consumer" account. This Kodaris only customer account houses any orders the user places, personal information, other users the this user decides to add to the consumer account, etc.
    2. Kodaris creates a user account underneath the consumer customer account for the user who filled out the registration form. This user is the owner of the consumer customer account and has full administrative access to the account.
    3. Kodaris sends an email to the user with instructions on how to activate and set a password for their new account
  3. Once the user sets a password for their account, they can sign in and immediately start placing orders, managing their account, etc.
  4. When the user places an order under their consumer customer account, Kodaris inserts that order into the ERP under an ERP customer account of your choosing for processing and shipment. Most commonly, you'll want to choose your cash sales account that you use for counter sales, guest orders, etc. Essentially, you will have many Kodaris consumer customer accounts tied to one cash customer account in the ERP for order processing.
  5. When these consumer orders are processed, shipped, etc in the ERP, Kodaris will sync these updates back to the consumer orders in Kodaris so users can see the latest order status. In order to do this, Kodaris needs to populate a field on the order in the ERP with which consumer account in Kodaris the order belongs to. Typically the field used for this purpose is the "email" field on the order. You can specify any field you like however. When inserting the order into the ERP, Kodaris will simply set the field (ex: email) to the consumer account number in Kodaris so when updates are made to the order in the ERP, the system syncs those updates back to the right consumer account in Kodaris.
https://youtu.be/i_HTiBP3Hag

Display password requirements on login screen in real time

You can now choose to display password requirements on your website’s login screen when customers create their account for the first time or reset their password. The password limitations can include a minimum password length, letter and number requirements, and special character requirements. When a customer initiates setting their password, the list of requirements will be displayed so that they know the types of characters they need to include in their password for it to be accepted. Each requirement will turn green and display a checkmark next to it once it’s met.

You can enable and customize these settings in the Operations Portal. Watch the video to learn how:

https://youtu.be/OFJHmGlPPq0

Add items to cart by uploading a .csv, .tsv, .xls, or .xlsx file

As part of Kodaris’s order automation capabilities, your customers can add items to their shopping cart on your commerce website by uploading a file! This will allow your customers to easily add items to their online cart without needing to search for and add products individually. This may be helpful for customers who need to place large and/or recurring orders and for those who prefer to place orders via spreadsheet files. 

The file types that are currently accepted by default are .csv, .tsv, .xls, and .xlsx. To further support your customers in using this feature, they can download a template file that includes sample information/products and how the file should be formatted before uploading to the cart. This template is downloadable from their shopping cart on your website. 

If you have a custom file or template that you’d like your website to support, please contact your Kodaris Account Manager. 

Learn more about this feature and how to download the order template by watching this video: 

https://youtu.be/a0dw4LCguxc

Operations Portal

“Active” field added to Cross References screen

You can now mark products on the Cross References screen active or inactive by using the new “Active” column. You can search, sort, and filter the screen by the “Active” field. Adding this field to your view is simple and can be done by using the show/hide columns feature.

Check out this video to see the column in use:

https://youtu.be/UNwvaui7wds

Tickets

  1. KOD-17459: Customer Portal - Printing a file saves name as "view"
  2. KOD-18246: [Commerce] [BI] Search - Add a query param if the user selects a suggestion
    • Regression Tests
    • Case 1
      • For this regression test, we are going to search for a product, first we won’t click on a suggestion and then we will.
      • We need to make sure that the search and autocomplete functionality is still working as expected.
    • Tests
    • Case 1
      • For this test, we are going to search for a product without clicking on the suggestions.
      • You should see in the URL that “og” and “sg” query params are empty if we don’t click on a suggestion.
      • We should only see “searchString” param having a value matching what we enter in the input.
    • Case 2
      • For this test, we are going to clear the input and click on a suggestion.
      • You should see that searchString has a value matching the item code you clicked, og should be empty since there was no original text entered and sg should equal 1.
    • Case 3
      • For this test, we are going to enter a value in the input and click on a suggestion.
      • You should see that searchString equals the item code, og equals the text you entered before clicking on the suggestion and sg equals 1.
  3. KOD-18257: Automate request custom item button display on demo site
  4. KOD-18845: Fix displaying the Build Date
    • Regression Tests
    • Case 1
      • Navigate to CRM → Jobs.
      • Check if tabs other than “build date” is filtering and displaying data properly for data/search view.
      • Check if data is updating from the Jobs detail screen.
    • Tests
    • Case 1
      • Navigate to CRM → Jobs → details screen.
      • Set “Build Data”.
      • Refresh the page.
      • Check if displayed data is the same as provided before.
      • Navigate to CRM → Jobs.
      • Check if data is updated after your changes (Wait few seconds for update).
  5. KOD-20032: Implementation - Datamatx
  6. KOD-20064: ORS Nasco Drop Ship Plugin
    • Regression Tests
    • Case 1
      • As a regression test we could try to push a direct order with any other vendor.
    • Tests
    • Case 1
      • We need a vendor to match with orderFrom setting from the order.
      • From that company (you can create one or use one of the list but we need to make some updates since the case will trigger an email to the emails from the company (vendor) only if it is associated to orsnasco).
      • The company should have the code = ‘orsnasco’ OR the company setting ‘vendorIntegration' be 'orsnasco’.
      • Set a templateCode in the vendor setting:
      • pushDirectOrderEmailNotificationTemplateCode
      • (If not template code is set, it will used a new template as default with code: directPurchaseOrder-EJS)
      • Set an email where the vendor should receive the order information in company setting: pushDirectOrderEmailNotificationEmail
      • (If not email is set, we will use company.email1 or company.email2)
      • If all of them are empty or not valid, an error should appear.
      • The order should have the setting ‘orderFrom’ with the company code as a value.
      • In my case, orderFrom → orsnasco
      • Besides, the order should be a Direct Order.. this means the extra1 field should be ‘Direct Order’.
      • Use endpoint /api/system/order/{orderID}/pushDirectOrder with an order ID to test it.
      • Expected:
        • If the pushDirectOrderEmailNotificationTemplateCode settings from company is populated but the templateCode is not found → An error with a log message.
        • If at least one email from company is populated and valid, an email will be saved (And sent immediately unless the setting 'isEmailSendingFromJob' is enabled which means it will be triggered in the EmailSendingJob later).
  7. KOD-20189: Final Availability Messaging on Cart and Checkout
    • Regression Tests
    • Case 1
      • For this regression test you should be logged out, we are going to add a product to the cart. When you click on My Cart you should be sent to the login screen.
      • After you log in, you should see the item you added in My Cart.
    • Case 2
      • For this regression test you should be logged in, we are going to add a couple of products to the cart, change the quantity, save for later and remove them.
      • You can also test “Clear Cart” button and “Next” button.
      • Everything should work as normal.
    • Case 3
      • For this test, we are going to go to the product page of a non-available product with replacements.
      • You shouldn’t be able to add it to the cart.
      • You can click on add to saved list.
      • You should see the Product Replacement card on the right side of the screen as usual.
      • We can click on View Replacement and you should be sent to the substitute product page.
      • You can also verify that the product was successfully saved for later.
    • Case 4
      • For this test, we are going to go to the product page of a non-available product with no replacements.
      • You shouldn’t be able to add the product to the cart.
      • You can click on Add to saved list and it should work just fine.
    • Case 5
      • For this test, we are going to go to the product page of a an available product.
      • You should be able to add the product to the cart and to saved list.
    • Case 6
      • For this test, we are going to go to the search page and look for an available product, a non-available product with no replacements and a non-available product with replacements.
      • For the available product, you should be able to add it to the cart and to the saved list. You should also see a message that says “Available for Order”.
      • For the non-available product with no replacements, you shouldn’t be able to add it to cart, only to saved list. You should also see a message that says “Unavailable”.
      • For the non-available product with replacements you shouldn’t be able to add it to cart, only to saved list. You should also see a message that says “Replacement Available” and a button that says “View Replacement”. We can click that and we should be redirected to the substitute product page.
    • Case 7
      • For this test, we are going to add to the cart two non-available product, one with replacements and one without replacements. We are going to test the functionality of the quantity buttons, remove button, saved for later button and add to saved list.
      • When you save for later a non-available product with replacements, you should see the “View Replacement” button below “Add to saved list”. You can also click that button to make sure it works as expected.
    • Tests
    • Case 1
      • For this test, we are going to add to the cart a non-available product with replacements.
      • You should see a link inside the alert that says “Remove & View Replacement”.
      • When you click that link, you should see the item being removed from the cart and then you should be redirected to the replacement product screen.
    • Case 2
      • For this test, we are going to add to the cart a non-available product that has no replacements.
      • You should see a link inside the alert that says “Remove Product”.
      • When you click that link, you should see the item being removed from the cart.
  8. KOD-20298: Display password limitations in real time
    • Regression Test
    • Case 1
      • Go to the homepage and click on the "Register OR Sign in" text.
      • Ensure that a popup opens and enter a password into the password input field.
      • Confirm that there are no password limitations in this popup.
    • Case 2
      • Go to Sign In screen.
      • Enter a password into the password input field.
      • Confirm that there are no password limitations in this page.
    • Case 3
      • Open the reset-password page and confirm that it loads correctly without any errors.
      • Confirm the same for the account-password and credit-application-password pages (note that this page does not need to be tested on the Payment portal, as it does not exist there).
    • Tests
    • Case 1
      • For the:
      • /spcu/reset-password
      • /spcu/account-password
      • /spcu/credit-application-password
      • confirm password limitations displayed with proper setting’s value.
    • minimumPasswordLength
      • On the operation portal navigate to the setting screen.
      • Find minimumPasswordLength setting.
      • If this setting is not populated, minimum password length limitation will not be displayed.
      • If setting’s value is not a number or less or equal zero this limitation will not be displayed.
      • For smallValue, mediumValue, integerValue and textValue of this setting set any values except positive integers.
      • Confirm limitation is not displayed.
      • Repeat step 5 for positive integers.
      • Confirm limitation is displayed.
    • customerPasswordRequiresLetterAndNumber
      • On the operations portal navigate to the setting screen.
      • Find customerPasswordRequiresLetterAndNumber setting.
      • If this setting is not populated or it’s value is not equal to 1 limitations will not be displayed.
      • For smallValue,mediumValue, integerValue and textValue use any values except 1.
      • Confirm limitations are not displayed.
      • Repeat step 4 for value set to 1.
      • Confirm limitations are displayed.
    • customerPasswordRequiresSpecialCharacter
      • On the operations portal navigate to the setting screen.
      • Find customerPasswordRequiresSpecialCharacter setting.
      • If this setting is not populated or it’s value is empty limitation will not be displayed.
      • For smallValue,mediumValue, integerValue and textValue leave value field empty.
      • Confirm limitation is not displayed.
      • Repeat step 4 with setting value.
      • Confirm limitation is displayed.
    • Case 2.
    • Limitation validation
      • For the:
      • /spcu/reset-password
      • /spcu/account-password
      • /spcu/credit-application-password
      • Confirm password limitations update every type user types in field.
    • Test steps
      • Type in the Password input field.
      • Confirm limitations turns green only when their requirement fits:
        • At least 8 characters - when length of the input is grater or equal 8 (eight could be replaced by any positive integer)
        • Contains letter - when user types any letter.
        • Contains digit - when user types any digit.
        • Contains one of the symbols: @#$%^? - when user types one of this symbols.
    • Case 3
    • Native input validation
      • For the:
      • /spcu/reset-password
      • /spcu/account-password
      • /spcu/credit-application-password
      • Confirm native input validation works properly.
    • Test steps
      • Focus on Password input by clicking on it.
      • Press enter.
      • Confirm “Please fill in this field” message is displayed.
      • Enter any value.
      • Confirm first gray limitation message is displayed.
        • At least 8 characters limitation is gray - confirm Password should contain at least 8 characters message is displayed.
        • If Contains letter limitation is gray - confirm Password should contain letter message is displayed.
        • If Contains digit limitation is gray -confirm Password should contains digit message is displayed.
        • If Contains one of the symbols: @#$%^ is gray - confirm Password should contain one of the characters: @#$%^ message is displayed.
      • If all limitations are valid, except Password Match you should see the Passwords do not match message on the Confirm Password input.
      • If there is checkbox for Terms and Conditions confirm message Please tick this box if you want to proceed when all other requirements are valid.
  9. KOD-20410: [Operations Portal] Update 'Select a payment method' dialog
  10. KOD-20412: [Operations Portal] Update 'Add a Payment Method' dialog
  11. KOD-20658: Import Sheet to Order - Demo Site
    • Regression Tests
    • Case 1
      • When navigating to the cart with no products, nothing should have changed (besides the added button).
    • Case 2
      • Add an item to the cart and navigate to the cart → nothing should have changed.
    • Tests
    • Case 1
      • For this test you need to be logged in and go to My Cart.
      • Make sure you have a csv/tsv/xlsx file formatted correctly (you can download the template to use).
      • Navigate to an empty cart → click Upload File button → click choose file and select your file you want to → click Upload → once the upload has completed, you will be routed back to your cart and see the new items listed as well as the quantity and unit sell if specified.
    • Case 2
      • Make sure you have at least one item in the cart → navigate to the cart → click Actions → Upload File button → click choose file and select your file you want to → click Upload → once the upload has completed, you will be routed back to your cart and see the new items listed (as well as the quantity and unit sell if specified) in addition to the ones that were already there.
      • Note → Actions button will only show Upload File if the nonstock product is not active/display is false or the length is not 1, if all of that is true, you will see both ‘Request Custom Item’ and ‘Upload File’ in the dropdown with ‘Upload File’ first in the list.
    • Case 3
      • Navigate to the cart and click Upload File button → click on Download Template → a template should be downloaded to your computer that shows how the info should look .
  12. KOD-20965: Update orders to ensure an e hold has been applied to all ecommerce orders
  13. KOD-20986: Issue With Adding Product Translations
  14. KOD-21009: Implementation - Sync data
  15. KOD-21087: 10X Faster Quote Reprice Speed
    • Tests
    • Case 1
      • Check if quote repricing process performance was improved
  16. KOD-21105: [UX] Adding active and inactive flag to cross references
    • Regression Tests
    • Case 1
      • Make sure that the table is working correctly.
      • For this test we need to go to Cross References section.
    • Tests
    • Case 1
      • Make sure that the newest column “active“ is displaying correctly.
      • For this test we need to go to Cross References section.
  17. KOD-21208: Record Customer Registration in System Events
  18. KOD-21345: Implementation - Add new form
    • Regression Tests
    • Case 1
      • In the search bar type “course”.
      • 2Check search results: grid view, list view, catalog view and product pages for any products except product with code
      • 3All views and product pages should be loaded with no issues.
      • 4All existent functionality should be the same and work with no issues: you should be able to add products to cart in specified quantity, add them to lists (catalogs), etc.
    • Tests
    • Case 3
      • Repeat step 1 from Case 1. Check grid, list and catalog views.
      • Find product with code
      • Make sure instead of the Add to Cart button, the View Options button appears but only for product.
      • Click that button.
      • After click you should be redirected to the product page.
    • Case 4
      • On the product page of this product check.
      • Below the quantity input there was added form with 3 input fields.
      • Add Row button is added below the form rows.
      • Make sure when you click Add to Cart button with not fully filled in form, tooltip message “Please fill in all the fields in the form“ appears on the screen and the product is not added to a cart.
    • Case 5
      • Use the same setup from Case 4.
      • Click Add Row button. After clicking new row with 3 inputs should appear below the existing row.
      • Fill in all the input fields.
      • Click Add to Cart button.
      • At cart page check that all the values you’ve added on the 2nd step, appear in the note of this cart item.
      • Make sure they appear in following format:
      • Trainee trainee #: Name: trainee name, Phone: trainee phone, Email: trainee email.
      • Per each form line you’ve added and filled on the product page.
    • Case 6
      • Use same setup as from the Case 4.
      • Click Add row Button.
      • If there is more that 1 row in the form Delete Row button should appear near the Add Row button.
      • Click Delete Row button.
      • Make sure last row from the form was deleted.
      • Make sure if there is only one row in the form, there is no Delete Row button on the screen near the Add Row button.
    • Case 7
      • Perform all above tests on screens with width less than 960 px and less.
  19. KOD-21404: Parser Sales Order PDF
  20. KOD-21406: Implementation - Parser Sales Order Doc
  21. KOD-21425: AP Automation - Split separate invoices out of a single PDF
  22. KOD-21438: Generate a new account in real time - integrations
  23. KOD-21456: Port AssignSalesRepsToCompaniesJob job
  24. KOD-21471: Sending notification after order placement
  25. KOD-21490: Implementation - Rebate Sync
  26. KOD-21507: Add server side export and imports for new search screen
    • Regression Tests
    • Case 1
      • Ensure that the user can create new records successfully.
      • Interact with existing records to confirm they function correctly.
      • Attempt to delete the selected record.
      • Expected Results:
        • All functionality should work as expected, identical to how it functioned before the code changes.
    • Tests
    • Case 1
      • Navigate to the Search - Beta screen.
      • Click on the File menu and perform import and export actions for the following tabs: Search Rules, Synonyms, Replacements, Category Redirects.
      • Open Developer Tools (Dev Tools) in your browser.
      • Navigate to the Network tab.
      • Ensure that the import and export actions trigger the corresponding server requests.
      • Ensure that the export works for each tab according to its type.
      • Expected Results:
      • All server requests related to the import and export actions should be successfully executed and visible in the Network tab of the Developer Tools.
  27. KOD-21525: Add breadcrumbs to DDA app for navigation
    • Tests
    • Case 1
      • Verify that at the top of the DDA app the navigation path is shown, this only for the routes that belong to a Trip.
      • Verify that the Trip Code and Delivery Number are shown in the path.
    • Case 2
    • Bug fix:
      • Verify that it is not possible to go back after the first login from home (i.e. that you cannot navigate back to the login or URL entry screen).
  28. KOD-21530: Display banner to customers about payments/data outage during change over
    • Regression Tests
    • Case 1
      • Check that website welcome screen still looks good.
    • Tests
    • Case 1
      • Add new setting 'websiteAlertBannerMessage' with message as value.
      • Should appear on welcome and login page and look good.
  29. KOD-21565: Soft RFQ Pricing Workflow
  30. KOD-21567: Return the product attribute docs on endpoint: GET: /api/user/category
  31. KOD-21592: Plugin for Midland Vendor
  32. KOD-21616: Needed Documents
  33. KOD-21623: Fix customizer issue
    • Tests
    • Case 1
      • Check if adding page will display it on the list.
      • Check if page is displayed on the operations portal.
      • Check if page is displayed on the Header.
      • Check if page will be displayed on the list when you set active: no in the operations portal.
  34. KOD-21624: Implementation - URL rewrites
  35. KOD-21625: Update order templates with new URL
  36. KOD-21650: News Posts Export Before Go-Live
  37. KOD-21651: Initial Setup - Spin up system
  38. KOD-21653: Include Delivered Column in POD Email Sent Out
    • Regression Tests
    • Case 1
      • On the Order Click “Email Order“.
      • Check email preview.
      • Make sure Order email is loaded with no issues.
    • Tests
    • Case 1
      • On the Order Email click “Email Order“.
      • Select “Yes” in the display Proof of delivery dropdown field.
      • Make sure in the generated Order email was added Delivered column. In this column quantityCustomerReceived field value should be shown.
  39. KOD-21655: Display Up to Four Decimal Places for Unit Price
  40. KOD-21657: Add integration to the DDAv3 app
  41. KOD-21662: Add ProductDisplay to Attributes record
  42. KOD-21663: Platform for disposition on checkout
  43. KOD-21664: Implementation - Add noindex
  44. KOD-21666: Fix Custom Parser Request
  45. KOD-21670: Locations dropdown on order details screen not displaying warehouse correctly
    • Regression Tests
    • Case 1
      • For this test, we need to go to Orders > Select an order.
      • We are going to test the Location field changing the value to something else and seeing the information being updated.
    • Tests
    • Case 1
      • For this test, we need to go to Orders > Select an order with whse being equal to a lower case value that matches an existing uppercase warehouse code. Before this update, form field would appear empty. Now you should see an option being selected correctly even though the whse value is in lowercase.
  46. KOD-21671: Updates to specs screen in operations portal
    • Regression Tests
    • Case 1
      • Check that you can still view, add, update, and delete specs without issues.
    • Tests
    • Case 1
      • On a product without specs, check that the forever ‘Loading…’ message is replaced after the page loads with something like ‘No data available.’
  47. KOD-21672: AP Automation - Parser does not pick up line item
  48. KOD-21675: Implementation - Updates for links
  49. KOD-21689: Shop by brand updates
  50. KOD-21691: Mark New Products Coming from ERP as product.display=false
  51. KOD-21692: Email & Datamatx Config Document for Approval
  52. KOD-21693: Checkout Coupon Code
    • Regression Tests
    • Case 1
      • We should test if checkout process remains the same as it was without applying any coupons.
    • Tests
    • Case 1
      • We should now test applying the coupon. For this ticket please use a coupon with name, it will give a 1 percent whole order discount. There should appear a message in order totals with total amount of discounts. (message should be hidden if there are no discounts).
    • Case 2
      • We should also check if charges and discounts are displayed and calculated separately in the 3 step of checkout. To check this please apply this discount (actually a charge) to your order “testMax“. charges and total discount amount should be separate, as well as discounts should not be counted into total additional charges.
  53. KOD-21694: Implementation
  54. KOD-21695: Implementation - Checkout Tweaks
    • Regression Tests
    • Case 1
      • Check that product categories views still looks good (list, grid, catalog).
    • Case 2
      • Check that product details page still looks good.
    • Case 3
      • Check that you still can add products to the cart and check out looks good.
    • Case 4
      • Check that this page still looks good and you can add products here.
    • Case 5
      • Check that quick order in header still looks good and you can add products to the cart.
    • Tests
    • Case 1
      • In this case you should check product categories view (list, grid, catalog).
      • Instead of part of product you should see Serial.
      • Instead of add to cart you should see add to quotation.
      • If product doesn’t have price, you should see To evaluate instead of TBD
    • Case 2
      • In this case you should check product details page.
      • Instead of part of product you should see Serial.
      • Instead of add to cart you should see add to quotation.
      • If product doesn’t have price, you should see To evaluate instead of TBD.
    • Case 3
      • In this case you should check quick order in header.
      • Instead of part of product you should see Serial.
      • Instead of add to cart you should see add to quotation.
  55. KOD-21703: Updating CSD Integration for Coupons
  56. KOD-21705: Add ability to edit employee status and customer status on orders.
    • Regression Tests
    • Case 1
      • In the Operations Portal find an order which hasn’t been released to ERP.
      • Check this order details tab.
      • Make sure page is loaded with no issues. You should be able to edit all the fields on this order.
    • Case 2
      • In the Operations Portal find an order which has been released to ERP.
      • Check this order details tab.
      • Make sure page is loaded with no issues. Make sure all fields on the order (except those from Case 3) are not editable.
    • Tests
    • Case 3
      • In the Operations Portal find an order which has been released to ERP.
      • Check this order details tab.
      • Make sure 2 fields on this order are editable:
      • Customer Status
      • Employee Status
  57. KOD-21706: Update endpoint to return base64
  58. KOD-21707: Vimeo block links blocked
  59. KOD-21708: Set showPODFiles flag to true when POD email is sent
    • Regression Tests
    • Case 1
      • As a regression we still should be able to upload a document to the Delivery even though we are not sending the email (For instance, if the image detection type is not ‘signature’ then the email won’t be sent out)
    • Tests
    • Case 1
      • If we send the email using api/system/order/driverDelivery/uploadDeliveryDocumentByID endpoint, the showPODFiles should be true when using the order template (Need a template using it to test this flow).
      • Remember that extra3 field should have a valid email and also the imageDetectionType should be ‘signature’ in order to send the email.
  60. KOD-21710: Process order status changes for deliveries
    • Tests
    • Case 1
      • If the status sent is one of the following:
        • Delivered
        • Arrived
        • OutForDelivery
        • OnTheWay
      • Then, if orders associated to the delivery exist, a new event should be created for each order.
      • Besides, the order should have a new setting in ‘custom fields’ tab indicating the status/event and the timestamp.
      • If orders don’t exist, it should only update the delivery without any error.
      • To corroborate that the deliveryID you are using has orders associated, you can use the following endpoint:
      • /api/system/delivery/deliveryOrder/{deliveryID}
    • Case 2
      • If the status sent is ‘NotDelivered’, then:
      • If orders associated to the delivery exist, it should create the setting indicating that event but also updating all the ‘employeeStatus’ field in the orders.
      • No event should be generated for this case.
      • If orders don’t exist, it should only update the delivery without any error.
      • To corroborate that the deliveryID you are using has orders associated, you can use the following endpoint:
      • /api/system/delivery/deliveryOrder/{deliveryID}
    • Case 3
      • If the status is different than any of the following statuses:
        • Delivered
        • Arrived
        • OutForDelivery
        • OnTheWay
        • NotDelivered
      • Then, it should still update the Delivery but no order neither event should be updated/created no matter if it has orders associated or not.
  61. KOD-21711: Reindexing of orders
  62. KOD-21712: Update order and mailer templates to include coupon discounts data
    • Regression Tests
    • Case 1
      • Make sure the order details, order email, order pdf, and order mailer still look fine for both orders with and without discounts.
    • Tests
    • Case 1
      • Check that orders with discounts now show a total discounts applied line with the correct amount on the order details, order email, order pdf, and order mailer templates.
  63. KOD-21718: Orders entered through ops portal overwriting delivery first name
  64. KOD-21728: Order Errors
  65. KOD-21741: Label "Address" as "Billing Address" on COD Payment Page
  66. KOD-21745: Documents Upload Job
  67. KOD-21746: Add General Delivery for Address 3
  68. KOD-21754: Pull and Resync Addons
  69. KOD-21756: Implementation - Test addons
  70. KOD-21768: Soft RFQ Pricing Workflow - UX
  71. KOD-21770: Issue With Shipto Selection
    • Regression Tests
    • Case 1
      • Check that billing address and shipto still look good and values populate fine on the second cart tab.
    • Tests
    • Case 1
      • If no shipto is selected on the second cart tab, the input should be empty not display “null”.