All Releases
View all releases

May 11, 2023 release notes

Highlights

Payment

Quickly navigate to invoice details from the payment screen

When a customer makes a payment in the customer portal, the payment is recorded along with the list of invoices that were paid. You can view the payment and the paid invoices from the Accounts Receivable screen in the operations portal. In this release, we've add a link to each paid invoice so you can easily navigate to the invoice details and view relevant customer comments, internal comments, files, etc.

344_view_individual_invoice_records.png
344_individual_invoice_comments.png

Customer Portal

Create a product list from an order

In the customer portal, customers can create and manage product lists for themselves and/or their company account. They can use these product lists to place repeat orders quickly and efficiently. In this release, we've added the ability for customers to create a company or personal list from previous orders in their order history. Navigate to Orders > Order Details and you will see an Add List button with two options: A list for myself, and A list for the company. Choosing the former will create a new product list for the user with all the items from the order. The latter will create a list for everyone in the company account. This is convenient when users would like to save a list for orders that they place frequently.

346_Save_list.png

Operations Portal

View and track opportunities by expected monthly sales volume

In your CRM, you can view and enter the expected monthly sales volume for each opportunity by navigating to Companies > Company Details. In this release, we've added the expected monthly sales volume to the company search screen as well so you can easily track and filter opportunities by expected volume.

347_view_expected_monthly_sales_volume.png

View more detailed error messages if experiencing issues importing products

When importing any records in the operations portal, an email is sent out to the importing user detailing the result of the import. When importing products, the import notification sent out after the import was completed, only contained the product line number and no significant information on why the import had failed if it had done so. We have now released an update to make it easier to find and correct any issues when importing product data through providing the exact product code that had the issue, as well as detailing what the issue was in the import notification. This is particularly useful when importing large batches of data, as resolving any issues with the import is made significantly easier.

362_348_import_error_notification.png

Schedule emails to send at a specific date and time

When sending emails from the operations portal, you can now schedule them to send at a later date instead of immediately. This includes order emails, quote emails, cash quote emails, CRM emails, etc. To schedule an email, open the email popup as normal, fill in the email address information and content, then choose the Schedule & Send clock icon. Enter the date and time at which you want the email to send and then click Schedule send. The email will be sent at the time you selected.

354_schedule_sending_emails.png

Tickets

  1. KOD-12713: Expiring Shipto Job
    • There are two test cases in this task to check that job works correctly:
      • 1) Getting email notification about expiration of CompanyAddress in given days number
      • 2) Deactivating CompanyAddress after expiration in given days number
    • For testing these two case use endpoint GET /api/system/company/address/expiringShiptos
    • Steps for the first case:
      • Take any active CompanyAddress and set its extra1 field with any value that doesn't equal '0';
      • For appropriate CompanyAddressSetting, set its field 'jobclosedt' mediumValue with future date in format 'mm/dd/yy', e.g 01/11/23. Let's set +4 days from current date;
      • Specify params for the mentioned endpoint with values: daysAfterExpirationToDeactivate 1, reportEmailAddress - any email to get notification, daysUntilExpirationToWarn 4, that means we are expecting warning 4 days before expiration (as it was set in the previous step)
    • After making call check specified email address.
    • Steps for the second case:
      • Take any CompanyAddress and set its extra1 field with any value that doesn't equal '0';
      • For appropriate CompanyAddressSetting set its field 'jobclosedt' mediumValue with past date in format as for the first case. Let's set -4 days from current date;
      • Specify params for the mentioned endpoint with values: daysAfterExpirationToDeactivate -4, that means we expect deactivation 4 days after expiration (as it was set in the previous step); reportEmailAddress - any email (we don't expect email here but this is mandatory param); daysUntilExpirationToWarn 1;
      • After making a call check CompanyAddress extra1 value, it has to be '0'
  2. KOD-12072: Product Code Change Form and Processing
    • This will only be executed through API at the moment
    • Use Swagger to call the new endpoint (PATCH /api/system/product/changeProductCode/{code}) to change a product’s code. Ensure that the code was changed in all related entities which store product code value :
      • Product(code, seoCode columns)
      • SKU (skuNumber column)
      • OrderItem
      • Discount (cartItemsValue column)
      • Icss (prod column)
      • ProductPrice
      • ProductCrossReference
  3. KOD-11909: Job Tracker - Generic Job Tracker Upload
    • Use /api/system/mapped/any/file/{mappingCode}/{importType}/{fileType} endpoint
    • mappingCode - mapping-basicLeadsQuotesUpload (create&update), mapping-basicLeadsQuotesUploadCreateOnly(create), mapping-basicLeadsQuotesUploadUpdateOnly (update)
    • importType - direct
    • fileType - csv
  4. KOD-10956: Override Backorder Flag by Line Item
    • Test adding item to portal and on customer side when logged in.
  5. KOD-13805: Add UX for Scheduled Emails and Reminders
    • User should be able to schedule an email to a specific time.
      • Go to orders screen, choose any order and proceed to details section. User clicks Email order and configures the email. There’s a schedule icon near Send button on the email. If user wants to schedule email sending to a specific date, the user can click this Schedule button and the popup with a date and time picker appears. User chooses the desired date of sending letter and clicks Schedule.
    • The dialog windows close when request is processed. User can see a snacker with date and time of scheduling a letter.
    • The letter should be found also on the operation portal in System => Emails menu item.
    • The same behaviour is present anywhere where we can configure and send emails.
    • Quotes, Cash Quotes, Quote Requests, External Orders, Vendor Invoices and Company => Company Details => Send Email
    • REGRESSION:
      • Check sending emails without scheduling as well. Quotes, Cash Quotes, Quote Requests, External Orders, Vendor, Vendor Invoices. Should work as expected and at it worked before.
  6. KOD-13942: Company Search
    • Regression tests needed:
      • 1. Customer -> Companies
        • a) Navigate to Search Tab, apply some filters and try to export companies with applied filters. Check export file.
        • b) Navigate to Data Tab, apply some filters and try to export companies with applied filters. Check export file.
      • 2. AR/AP -> Vendors
        • Navigate to Search Tab, check existing Vendors and try to apply some filters to filter out vendors.
        • Navigate to Data Tab, check existing Vendors and try to search for some vendors.
        • Navigate to Search Tab, choose one of the existing Vendors and navigate to 'Custom Fields' tab and try to filter existing company settings.
        • Navigate to Data Tab, choose one of the existing Vendors and navigate to 'Custom Fields' tab and try to filter existing company settings.
      • 3. Not sure where to check on UX but need to check companies related to current user - endpoint is POST '/api/account/customer/myCompanies'
      • 4. Customer -> Companies
        • Navigate to Search Tab and try to apply some filters to filter out companies and check result.
        • Navigate to Data Tab and try to apply some filters to filter out companies and check result.
        • Navigate to Search Tab, choose one of the existing Companies, navigate to 'Custom Fields' tab and try to filter existing company settings.
        • Navigate to Data Tab, choose one of the existing Companies, navigate to 'Custom Fields' tab and try to filter existing company settings.
  7. KOD-14159: Alt Price Not Populating Yet
  8. KOD-14182: Add Schema Markup for Content Pages
    • Schema script should be present on content pages
  9. KOD-14220: Add UX for Quick Creation of Product Lists
    • Flow 1
      • Login into Customer portal.
      • Make sure you don't have "productListsEnabled" configuration enabled.
    • Case 1
      • Open Orders page -> Order Details page.
      • "Add list" button should be hidden.
    • Flow 2
      • Login into Customer portal.
      • Make sure you have "productListsEnabled" configuration enabled.
    • Case 1
      • Open Orders page -> Order Details page -> check "Add list" dropdown appeared instead of button on the top.
      • Choose "A list for myself" in dropdown, and input required fields in appeared modal.
      • Click "Create" button and make sure you are redirected to a Customer Product list page based on your order.
    • Case 2
      • Open Orders page -> Order Details page -> check "Add list" dropdown has appeared instead of button on the top.
      • Choose "A list for the company" in dropdown, and input required fields in appeared modal.
      • Click "Create" button and make sure you are redirected to Company Product list page based on your order.
    • Regression:
      • Open Customer list page.
      • Create new product list.
      • Make sure it's created properly and functionality works as expected
      • Open Company list page.
      • Create new product list.
      • Make sure it's created properly and functionality works as expected
  10. KOD-14311: Create COD Payment Link Page
    • 1. Open any Order in operation portal. Click Email Order and under the Display Payment link select "Yes" option.
      • After proceeding, the email preview should be seen.
      • Check if there is a Review & Pay button and order details inside the email. Send the email.
    • 2. Check the received email. Inside it should be the same content as from the preview in operation portal.
    • 3. Click Review & Pay button. It should lead to the URL that ends with : /cod-payment-form?orderNumber=**your-order-number**&amount=**requested-payment-amount**
    • 4. Fill in the form. Press the Pay Order button.
      • Case 1 (Successful Payment):
        • You will be redirected to COD Payment Thank You Page and receive Thank You email with the payment details.
        • The employee should receive the email that a payment has been made with the payment details.
      • Case 2 (Payment failed):
        • You'll stay on the same page with the COD payment form. Error Alert "Something went wrong, please try again or contact us.." will be shown.
  11. KOD-14322: Unable to Search & Filter on Invoice Date
    • Filtering by Invoice Date field should work
  12. KOD-14342: PIM Import Notification Update - Product Code vs Line Number
    • There are four cases to test when import Products:
    • Adding new product which is the same as existing one:
      • Create a simple csv file with fields: 'code' and 'name'
      • Add two lines with two codes that don't exist in the system and any names.
      • In employee portal go to PIM > Products, than on the tab Data click on File->Import->...Create Only and select your csv file.
      • Wait for a while and check the email of the user you used to log in. Make sure that 'Error lines' section of email contains record with explanation what the problem was and product code
    • Adding new product with empty code:
      • Using a csv file with the same structure, put inside one record with an empty code and any name.
      • In employee portal go to PIM > Products, then on the tab Data click on File->Import->...Create Only and select your csv file.
      • Wait for a while and check the email of user you used to log in. Make sure that 'Error lines' section of email contains record with appropriate error explanation.
    • Updating non-existing product:
      • In csv file put one record with non-existing code and any name.
      • This time use File->Import->...Updated Only to import your csv file.
      • Make sure that the 'Error lines' section of email contains record with appropriate error explanation and product code.
    • Updating with empty product code:
      • 1. In csv file put one record with an empty code and any name.
      • 2. Use File->Import->...Updated Only to import your csv file
      • 3. Make sure that 'Error lines' section of email contains record with appropriate error explanation and product code.
    • Regression test:
      • Check any other kind of import (e.g. for SubscriptionList) to make sure all works as usual and email with import result is sending.
  13. KOD-14378: Attach Uploaded PDF on CMS Form inputFile to Generated Email
  14. KOD-14451: Configuration - Install & brand website & customer portal
  15. KOD-14468: Adjust Customer Number to Display New External ID in Customer Portal
    • Go to customer account portal -> click on your customer dropdown and try to switch company -> now if company has externaID it should be displayed instead of company code (externalID - companyName)
    • You can set an externalID to company in Operations Portal -> Companies -> choose your company -> development tab -> find externalID field and change it
  16. KOD-14515: Website UX Setup
    • Please check splash page, login, account retrieval and reset password pages, admin and customer password emails, and customer portal branding
  17. KOD-14533: Configuration - Enable customer app upgrade page
  18. KOD-14530: Configuration - Install & brand website & customer portal
  19. KOD-14569: Link Invoices Listed on Payment Details Screen
    • Flow 1
      • Login into Employee portal
      • Case 1
        • Open AR/AP -> Account Receivable page -> Open any "Web Account Payment" Transaction Type item -> Open Details -> See the "Invoice #" column item displayed as a link.
        • Click on "Invoice #" link.
        • Make sure you're redirected to the right invoice page and "Customer Comments" open by default.
      • Regression:
        • Open AR/AP -> Account Receivable page -> Open any "Web Account Payment" Transaction Type item -> Open Details.
        • Make sure layout is not changed.
  20. KOD-14572: Update Password Needs Reset Code to Trigger Message
  21. KOD-14605: Throw Error if Customer Short Pays but doesn't Select a Short Pay Reason
    • Verify that non-Short Pay flow still works.
    • Verify that when shortPayReasons global setting is empty invoices with amountToPay smaller than invoice, amount can be paid even if they don't have paymentReason.
    • Verify that when shortPayReasons global setting is set to some value, invoices with amountToPay smaller than invoice amount can't be paid and will show an error.
  22. KOD-14620: Expected Monthly Sales Volume on Companies Search Tab
    • Go to Companies, Expected Monthly Sales Volume column should be available
  23. KOD-14643: Pricing Discrepancy
  24. KOD-14644: Update Inventory Display
    • Go to Product Category page.
    • Inventory level should be displayed next to the 'In Stock' / 'Out of Stock' title.
    • Company name should not be displayed anymore.
    • If inventory level is 0 - 'Out of Stock' should be displayed, otherwise 'In Stock' should be displayed.
    • Check for both List and Grid Views, and for Product page.
  25. KOD-14673: Fix Reset Lost Password in Operations Portal
    • Recheck resetting password, if administratorPasswordRequiresSpecialCharacter setting enabled, password should support all symbols mentioned in the story
    • Test resetting pass without administratorPasswordRequiresSpecialCharacter setting enabled. You should be able to use special characters or you should be able to leave them out.
    • If administratorPasswordRequiresSpecialCharacter is enabled, make sure you can also use lowercase, uppercase letters, and numbers, as well as special characters.
  26. KOD-14675: Product code change tool broken due to bad data
  27. KOD-14704: Different Product Price Product Page vs. Cart
    • Tested on site and regression testing done.
  28. KOD-14706: CMS Page Template Code Updates
    • Go to CMS -> Page Templates
    • Now Code columns should be editable
    • When you add new template generated code should be equal to File column
  29. KOD-14708: Copy Template and Other Fields when Creating Page from Page Layout
    • Create new page, and select some template from the list
    • Check all fields in the sidebar, those should be filled like in the selected template
  30. KOD-14709: Exclude Page Templates from Parent Category Selection
    • Go to Pages -> Choose page -> select Parent Page field -> pages with subType "pageTemplate" must be excluded from the list
    • Go to Pages -> Choose page -> open page in gutenberg editor -> Check Parent category field in sidebar -> pages with subType "pageTemplate" must be excluded from the list
  31. KOD-14719: New User Added to Your Account Email Logos Not Visible in Outlook
    • To test, please add a new employee via customer portal.
    • Go to Events and copy the eventID
    • Use swagger to trigger email
  32. KOD-14733: Should be able to delete Parent Order ID# on Quotes Data Grid
    • Go to quotes -> Data screen -> show Parent Order ID column -> now it should be editable
  33. KOD-14734: Send Emails
    • Go to the product list on customer side -> select some product -> add the item to the cart -> go to the cart -> start checkout process -> pay for order -> check if email regarding order pay is sent.
    • Test checking out as public user and logged in user. Be sure you get the thank you emails. And make sure these thank you emails are multi-lingual. Make sure the emails look right and work fine.
    • Test the contact form and make sure you get the email
  34. KOD-14735: Supplier Portal - Add Vendor User Roles
  35. KOD-14736: Tag Scheduler Settings with Type
    • Go to setting list tab ? find the record by name: Events and then check which type it has, should be type: DAILYJOB
  36. KOD-14744: Emails Using Host Branding when Triggered Through Sites
    • Confirm emails have correct company logo.
  37. KOD-14745: Order Email in Portal not Pulling Remit Settings
  38. KOD-14748: Update Theme/Branding
  39. KOD-14749: Employee Portal: Update Assignee Names and IDs in Search grid
    • Delete assignee from ticket
    • Check search tab and confirm it has been removed.
  40. KOD-14766: Platform Module Page - Mobile
  41. KOD-14769: Getting admin access error when generating files
    • Add at least templateView role for user
    • If at least templateView role is not added to permissions template field should be hidden for generating PDFs and Emails
    • We need to recheck this behavior for PDF (internal/customer) generation, and configuring email
    • Need to recheck it on Order/Quote/Cash-quote because we have this template field on those views
  42. KOD-14771: ync mappings for apsv, wteh, and wteh
  43. KOD-14776: Add conversion factor for square footage
    • GET /api/user/product/{productID}/footageConversionFactor should return the conversion factor for square footage of the specified product.
  44. KOD-14781: Call Calculate Totals on Shipping Option Select
    • Go to delivery and payment step in checkout process
    • Try to change shipping option or change pickup location -> calculateTotals endpoint should be called
    • Test that you can checkout successfully as both public and logged in user
  45. KOD-14782: Short Pay - Save Amount to Pay Regardless of Reason Value
    • All cases to perform on Open Invoices screen with shortPayReasons setting value set.
    • Case 1:
      • Focus the amount to pay field.
      • Make sure Reason field was not highlighted.
    • Case 1.1:
      • Set amount to pay.
      • Open the Reason select, don’t select any value.
      • Make sure Reason field is not highlighted.
    • Case 1.2:
      • Make sure amount to pay is empty.
      • Open the Reason select, don’t select any value.
      • Make sure Reason field is not highlighted.
    • Case 2:
      • Enter the amount to pay.
      • Click outside the field.
      • Make sure amount to pay was saved.
    • Case 3:
      • Select some invoices:
        • Some with amount to pay + reason.
        • Some with amount to pay + no reason
      • Try to pay selected invoices.
      • Make sure that:
        • An error that encourages to provide a reason is shown in the bottom left corner .
        • A dialog that encourages to provide a reason is shown.
    • Case 4:
      • Perform Case 3.
      • Press Got It dialog button.
      • Make sure that all empty reason fields are highlighted in selected rows where amount to pay was set.
    • Case 5:
      • Make sure there are some rows with amount to pay + no reason.
      • Select all across pages.
      • Try to pay selected invoices.
      • Make sure that:
        • An error that encourages to provide a reason is shown in the bottom left corner .
        • A dialog that encourages to provide a reason is shown.
        • When dialog is closed - reason fields will be highlighted only on first page.
    • Case 6:
      • Perform Case 5.
      • Set reasons where needed.
      • Make a successful payment.
      • Make sure the reason fields are not highlighted any more.
      • Perform Case 1.1.
      • Perform Case 1.2.
    • Regression:
      • Make sure it’s possible to perform a short pay when there are no shortPayReasons(setting shortPayReasons).
      • Make sure it’s possible to set Reason with no amount to pay set.
      • Make sure short pays work as expe?ted.
    • Regressions 2:
      • Test without short pay on
      • Make sure you can select, view, search, and pay invoices
  46. KOD-14784: Can't set up a company to pay via Card on the sites
    • Make sure that companies that have parentCompanyID equal to zero can be updated
  47. KOD-14792: Surface subType field on page tree
  48. KOD-14797: Configure Dealer Brands
  49. KOD-14885: Cloud - fix payment setting logic error about global settings for processing
    • Test paying a COD payment
    • Test paying via ACH in the customer portal
    • Make sure you can still pay via ACH in the customer portal even if you do not have ACH turned on at the company level
    • Test paying via card in the customer portal. Make sure you can if you have card turned on at the company level.
    • If you do not have card turned on at the company level. Make sure you cannot pay via card in the customer portal
    • Test checking out via card
    • Test paying by ACH in customer portal
    • Test paying by card in the customer portal