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.
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.
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 > CompanyDetails. 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.
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.
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.
Tickets
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'
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 :
Test adding item to portal and on customer side when logged in.
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.
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.
KOD-14159: Alt Price Not Populating Yet
KOD-14182: Add Schema Markup for Content Pages
Schema script should be present on content pages
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
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.
KOD-14322: Unable to Search & Filter on Invoice Date
Filtering by Invoice Date field should work
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.
KOD-14378: Attach Uploaded PDF on CMS Form inputFile to Generated Email
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
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
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.
KOD-14572: Update Password Needs Reset Code to Trigger Message
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.
KOD-14620: Expected Monthly Sales Volume on Companies Search Tab
Go to Companies, Expected Monthly Sales Volume column should be available
KOD-14643: Pricing Discrepancy
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.
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.
KOD-14675: Product code change tool broken due to bad data
KOD-14704: Different Product Price Product Page vs. Cart
Tested on site and regression testing done.
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
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
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
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
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
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
KOD-14735: Supplier Portal - Add Vendor User Roles
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
KOD-14744: Emails Using Host Branding when Triggered Through Sites
Confirm emails have correct company logo.
KOD-14745: Order Email in Portal not Pulling Remit Settings
KOD-14748: Update Theme/Branding
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.
KOD-14766: Platform Module Page - Mobile
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
KOD-14771: ync mappings for apsv, wteh, and wteh
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.
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
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
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
KOD-14792: Surface subType field on page tree
KOD-14797: Configure Dealer Brands
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