Select a delivery location when starting a general return
The Customer Portal now supports creating general returns based on delivery location. When starting a new return, users can enter the delivery location they would like to return items under. After choosing a delivery location for the return, items can be returned from multiple orders for that delivery location.
When searching for items that don't belong to orders with the matching delivery address, the system displays a clear error message, preventing incorrect return submissions.
This feature is now live in the Customer Portal Returns section. Access it through Actions > Start New Return. You can view our demo video for a complete demonstration of this feature.
Check new columns: PIMStatus, PIMReason and Display in response for API endpoint: api/system/product/listWithFacetGroups
KOD-25971: App listing
KOD-26291: AP- Invoice Add on Charge Editing and Cross Reference Update
Tests
Case 1
Check update vendor invoice discount flow.
Create a vendor invoice record from the vendor.
Add some items.
Add some discount charge.
If you don’t have any discount charge for the vendor invoice, please add it on the discount page.
Then also create the second one discount charge record for coping values from fields: discountID, name, discountCode to original vendorInvoiceDiscount.
Add a discount charge.
Use updated swagger endpoint: /api/system/vendorInvoice/{vendorInvoiceID}/discount/{discountID}
KOD-27122: Returns w/ Shipto and PO Update Created From Ticket 30918
Regression Tests
Case 1
If no delivery address was selected on starting the return, you should still be able to find items to add to the return (as long as the order is in invoiced or paid status).
Tests
Case 1
In the customer portal, when you go to the returns screen, click the start a return button → notice a popup appears now asking to select a location for the return.
You should be able to search for delivery addresses that your customer has access to (similar to how it is when a customer is checking out in the cart).
Select a location and click start → this will bring you to the return you just created.
Case 2
On that return, you will notice under return details, you will now see the location and location name.
Case 3
Search for an item from an order that has the same deliveryAddressCode (and is in invoiced or paid status, as well as hasn’t been added to a return yet) and add the item to the order → the item should be added successfully.
Case 4
Now search for an item that isn’t from an order with that delivery address code → you should get an error and it won’t be added.
Case 5
Select a return reason and click submit return.
Now go into the operations portal and find that return → notice the PO is set to Return as well as there is a deliveryAddressCode associated with the return.
You should be able to release the return to the ERP successfully.
Case 6
Now go back to the customer portal and start a new return → this time don’t select a location and the return should be started successfully.
You won’t see the location and location name under the return details since they don’t exist.
KOD-27211: Set up Development Access
KOD-27697: Log Out/Session Expiry Alert
KOD-27724: Add a custom button to check all the compliance status
Regression Tests
Case 1
Check that the portal still loads without issues.
Case 2
Go to the tickets detail screen. It should load correctly, Actions dropdown should be populated with items that were there before.
Tests
Case 1
In the Tickets > Detail page, in the Actions menu, there should be an option to ‘Create Custom Action’.
You should be able to enter a label, type (just User Script for now) and then enter the user script you’d like to have run.
Click create.
Now when you open the Actions dropdown again, you should see a new button with your label.
Case 2
After the previous step, you should be able to click on your new action item, and the user script should run without issues.
Case 3
Also try editing and deleting custom actions from the menu.
Case 4
If you don’t have admin or superuser permissions, you should still be able to see any custom actions added, but you shouldn’t be able to add or edit them.
KOD-27766: UX - Resend receipt off of a payment
KOD-27786:Create mappings to csd for build sheets
KOD-27802: UX for Custom Ticket Indexed Fields
Regression Tests
Case 1
Make sure that the layout on the company detail tab is correct and there are no errors in the console.
Case 2
Make sure that the layout of the pages from the list looks correct, and that there are no errors in the console.
Tests
Case 1
Make sure that a new tab has appeared - Custom Fields in Company -> Detail, after the Detail tab.
Ensure that the inputs in this form correspond to the integrationIndexedCompanyFields setting, settingCode - value, name - label (if any), otherwise label - settingCode.
Ensure that when inputs are changed in the form, the values are entered into the developer fields tab (created, deleted, changed).
Make sure that if there are no fields in the settings, the custom tab is not displayed.
Case 2
Ensure that the tab name and URI key have been changed on the pages listed below, from Custom Fields to Developer Fields.
KOD-27869: Parser Fix From Ticket 35244
KOD-27984: Order / Invoice Documents
KOD-27997: Responsive menu on tablet Created From Ticket 3037
Regression Tests
Case 1
Please check if the header and shop by category button works as usual.
Tests
Case 1
Please test that for smaller screens and tablets the shop by category is not overlaying the page.
KOD-28006: AP Automation-Extend details functionality to include AP invoice type similar to order type
KOD-28060: Update Returns functionality
KOD-28113: Pricing Issue
KOD-28129: Clear Declined Attempts from Payment Attempts
Regression Tests
Case 1
Go to Orders → Orders, select a random order.
If there’s not a “Potential Fraud” alert on the top of the page, go to “Custom Fields” tab.
Create a record in the table with “Code/Name/Description” fields equal to “declinedAttempts” , “Type” field equals to “PAYMENTS” , “Value Type” field equal to “integerValue” and “Value” field is 2 or more .
Go back to the “Detail” page. Reload it.
Check the “Potential Fraud” alert at the top of the page. Test its responsiveness, see that everything works good.
Tests
Case 1
Go to Orders → Orders.
Select a random order, go to the Custom Fields tab and create a declinedAttempts record there.
Go to the details page and see the potential fraud alert.
Click on the reset button. See that the Fraud Alert disappeared.
Reload the page to see that it’s not appearing after reload.
Go to the “Custom Fields” page, try to find the record with code “declinedAttempts” there and see that this record is completely deleted.
Case 2
Go to Customers → Companies.
Select a random company, go to the Custom Fields tab and create a declinedAttempts record there.
Go to the details page and see the potential fraud alert.
Click on the reset button. See that the Fraud Alert disappeared.
Reload the page to see that it’s not appearing after reload.
Go to the “Custom Fields” page, try to find the record with code “declinedAttempts” there and see that this record is completely deleted.
KOD-28150: Replatform - Create App Listing
KOD-28182: Load the entire catalog from ICSC table
KOD-28218: Scope Unique Link & Company Identification Created From Ticket 30550
KOD-28248: Search on user3 filed in customer order history
Tests
Case 1
In the setting orderItemUserFieldsToIndex we can specify which columns (user1 to user10) from the Order Item we want to index in Solr.
Choose a user column and put it in the setting.
Edit the Order Item column, it will be indexed to Solr if it matches the setting.
Check in /orders/search screen in the DevTools if the correct indexed columns are being picked for that specific Order.
Case 2
In the Customer Portal it is now possible to search for an Order that contains at least one user column with the searched query string. E.g.:
Order A has an Item with user3 column ABC123.
So if you search an Order in /account/orders by ABC123 in the search box it will bring that Order because it has an Item with that column value.
KOD-28251: ERP Configuration
KOD-28280: Setup for email sending
KOD-28295: Order Change Interceptor Code
KOD-28305: Qty payload update Created From Ticket 38157
KOD-28330: Add Standard Email Template Example to Code Samples Repository
KOD-28345: Update Order Templates
KOD-28349: Mapping Products to ICSP
Regression Tests
Case 1
Open the Operations Portal.
Go to Pricing.
Select any pricing record from the list.
Trigger ERP error and verify modal window.
Click the Save To ERP button.
If no error occurs, modify the response manually to force an error response.
Expected result:
An error is triggered.
A modal window appears displaying the ERP error message.
The modal is properly formatted and clearly communicates the issue.
Tests
Case 1
Open the Operations Portal.
Go to the Products page.
Create or select a product not in ERP.
Either create a new product or select an existing one that has not been synced to ERP.
Click the “Save To ERP” button.
Click the Save To ERP button on the product detail page.
Expected result:
Only one request is sent to the /api/system/product/{productID}/addProductToErp endpoint.
The product is successfully synced to the ERP system.
Verify request in System Events.
Navigate to System Events in the Operations Portal.
Check request data related to addProductToErp .
Verify “Update In ERP”.
Return to the same product and modify the Description field.
Click Save To ERP again.
Expected result: Two ERP-related requests are triggered first addProductToErp, then updateInERP and second complete successfully.
Verify updated value in System Events.
Open System Events again.
Expected result: The updateInERP event is logged with the updated product data (including the new description).
Case 2
Open the Operations Portal.
Go to Products.
Select any product from the list.
Trigger ERP error and verify modal window.
Click the Save To ERP button.
If no error occurs, modify the response manually to force an error response.
Expected result:
An error is triggered.
A modal window appears displaying the error message.
KOD-28382: Remove Company from Cono
KOD-28415: Kits showing labour details on invoice
Regression Tests
Case 1
Please test if order items are still available on the order templates and on the items table in the customer portal.
Tests
Case 1
Please test that we don’t show labor items on the items table in the customer portal. Basically the amount of items on the order templates should be the same as on the items table.
KOD-28433: Register form & account retrieval flow updates
KOD-28434: Copy Updates to Account Retrieval flow
KOD-28455: Update Vendor Invoice Manage Cross Reference Dialog to only allow numbers for conversion factor
Regression Tests
Case 1
Verify that the layout on the vendor invoice -> items page looks correct.
Verify that the form for creating and updating cross-references opens, closes, and submits successfully.
Ensure that cross-references are successfully created and updated on the Cross References screen after submitting the form.
Ensure that there are no console errors related to cross reference functionality.
Tests
Case 1
Verify that creating/updating a cross-reference through the vendor invoice -> items form with empty fields - unitStandard, pricingUnitStandard - is successful.
Verify that creating/updating a cross-reference through the vendor invoice -> items form with invalid values (anything other than integers and numbers with a decimal point and comma: example - 1, 1.01, 1000.00001, 100,001) - unitStandard, pricingUnitStandard - is unsuccessful (expected behavior: you cannot enter an invalid value into the input).
Verify that creating/updating a cross-reference through the vendor invoice -> items form with valid values (integers and numbers with a decimal point, comma: example - 1, 1.01, 1000.00001, 1000,0001) - unitStandard, pricingUnitStandard - is successful.
Please check that if you enter an invalid product code when creating a cross-reference (not from a suggestion), the productCode field will be cleared and you will not be able to create a crossReference with an invalid code.
KOD-28461: AP-Invoice Exception Due to Discount Miscalculation Created From Ticket 39970
KOD-28467: Hide $0 Usage on Customer Facing Analytics
KOD-28470: Fix mapped sync error responses
KOD-28474: UX - Add "Invoice Type" field to vendor invoice details and grids
Regression Tests
Case 1
Navigate to the Vendor Invoices page.
On both the Search and Data pages, confirm that the grids display correctly.
Verify that adding or hiding columns works properly.
Ensure that the search and filter functionality works as expected.
Case 2
Go to the Details page of a vendor invoice.
Confirm that the page layout looks correct.
Check that all fields display saved data correctly.
Make sure the page loads properly and all functions work as expected.
Case 3
Navigate to the Vendor page, then to the Vendor Details page.
Verify that all data is saved correctly.
Confirm that grids function properly.
Ensure that all inner tabs display correctly and function as expected.
Tests
Case 1
Go to the Vendor Invoices Details page.
On the right side, in the Status section, confirm that there is a new field “Invoice Type.”
Verify that filtering works by selecting an option from the dropdown , not by manual entry.
Open the dropdown and choose one option to confirm it functions correctly.
Case 2
Return to the Vendor Invoices Search page.
In the top bar, find and add the new column “Invoice Type.”
Confirm that filtering on this column can be done by selecting options instead of typing manually.
Confirm that the column displays correctly in the grid with the updated information. (You may need to refresh the page to see the latest data).
Case 3
Go to the Data page of Vendor Invoices.
Add the “Invoice Type” column.
Confirm that the data displayed is correct.
Case 4
Go to the Vendors page, then to the Data page.
Search for your item using Vendor ID . (You may need to add the Vendor ID column to confirm.)
Navigate to the Details page of the selected vendor.
Go to the Invoices page from the Vendor Details page.
Find and add the “Invoice Type” column.
Confirm that the data displays correctly.
Verify that on the Invoices Details page , the Invoice Type field shows the same information as on the Vendor Invoices page.
KOD-28478: Guest orders are being charged select County tax
KOD-28480: Freight Charges Exempt for Specific Customers
KOD-28481: Update Order Parser
KOD-28482: Parser updates from Ticket 40059
KOD-28484: New Parser from Ticket 40072
KOD-28493: Update Parser for Missing Line Item in Drag and Drop Order Automation
KOD-28503: Configure Email for Quote Automation
KOD-28504: Blind Drop Ship via OEEH.user3 updates
KOD-28516: French Translations for Returns in the Customer Portal
KOD-28518: Kodaris Dev Examples: Customer Entity
KOD-28520: Credit invoices not being parsed correctly
KOD-28525: Change "Content" to "Machinery" on search bar
KOD-28530: Update payment made email template
Regression Tests
Case 1
Make payments on the deposit screen as a customer. You will receive a message about successful payment. In the operations portal on the email screen you can see a new email created with title “Payment made by …” and verify that this email still looks good.
Case 2
Make payments on an open invoices screen as a customer. You will receive a message about successful payment. In the operations portal on the email screen you can see new email created with the title “Payment made by …” and verify that this email still looks good.
Case 3
Make payments on cod link for order. In the operations portal on the email screen you can see a new email created with the title “Payment made by …” and verify that this email still looks good and the order number is still shown.
KOD-28533: Inventory Display in Kodaris
Regression Tests
Case 1
For this regression test, we will enter a product list page, we can do that by selecting a category of your liking.
Make sure the product cards are being displayed properly on both non-logged in and logged in users.
As a logged in user and still in the product list page, we need to test the “Other Locations” fly out by clicking on the “Check Other Locations” button.
Make sure the fly out is displayed correctly and nothing breaks.
Tests
Case 1
We are going to test this as a logged in user.
Go to a product list page.
Open the fly out by clicking on the “Check Other Locations” button.
FLY OUT TESTING:
The flyout title should be “Closest Available Inventory”.
The “Search by zip code” section should not be displayed in the fly out.
A maximum of 6 warehouses will be shown in the flyout (the selected warehouse + 5)
Only warehouses that have inventory will be displayed in the list, except for the customer’s selected warehouse, that one will always be displayed even if there’s no stock if there are more warehouses in the list.
If there are no warehouses with stock, the following message should be displayed: “ Please contact your local resource center for assistance ”.
As far as the sorting of the warehouses, we should be sorting them by proximity to the customer’s selected warehouse.
Case 2
We are going to test this as a non-logged in user.
The guest user should be able to use the Shop By Store functionality. Make sure everything works and looks good and that you can select warehouses from the list.
Now, we will go to a product list page.
Open the fly out by clicking on the “Check Other Locations” button.
FLY OUT TESTING:
Everything should work the same as in the previous test, except that we are not displaying the actual inventory of the warehouse, but a “In Stock” or “Out Of Stock” message.
PRODUCT CARD TESTING :
For non-logged in users, instead of displaying the inventory number, we are displaying an “In Stock” or “Out Of Stock” message in the product card. Also, the messaging should be changed from “In Stock” to “Stock” before the warehouse.
Case 3
In the fly out, we should not display the distance in miles of the customer’s selected warehouse.
The message we display when there’s no availability should be: Please contact your local resource center for assistance.
In the product card, the message for when the user is not logged in should say “Login to View Pricing”.
KOD-28538: Employee Login/Google SSO
KOD-28544: Content search results page mockup
KOD-28547: Parser Update Created From Ticket 38662
KOD-28555: French Search Defaulting to AI Results Created From Ticket 40584
KOD-28556: Parser Update from Ticket 39344
KOD-28557: Price Check Discrepancy Created From Ticket 40412
KOD-28560: Make the search case-insensitive on the business events screen
Regression Tests
Case 1
Ensure that the filters "Contains," "Doesn't contain," "Starts with," and "Ends with" work correctly in the Business Events screen.
Tests
Case 1
Ensure that the filters "Contains," "Doesn't contain," "Starts with," and "Ends with" are case-insensitive on the Business Events screen.
KOD-28564: Fix Oversized Logo and Format Issues
Tests
Case 1
Open the Operations Portal.
Go to Orders -> Order.
Click on “Email Order” icon.
Search and select the Order PDF -> Click on Configure.
Verify that the logo is displayed at the correct size (250px).
Expected Result:
The logo appears clearly and is correctly sized (250px) in the PDF Order.
KOD-28568: Respect time in showing scheduled pages
Regression Tests
Case 1
Go to CMS → Pages.
Check “Start Date” and “End Date” cells. Check that the values are rendered properly and the dates have the correct format.
Tests
Case 1
Find an empty date cell.
Try to open a date picker and select time in it. Check that the value of input is correct, there’s actual date and time.
Try to save it, reload the page and see that data is saved correctly.
Case 2
Select cell with the value already selected, and try to change input value directly, try to set the invalid date or just a random string. Try to save it.
Check that the validation of the field works properly and you see that red corner in the cell that indicates that the cell value is invalid.
Try to open a date time picker. Check that it’s rendering properly.
Try to set the valid date through a date picker. See the value selected.
Check that after saving our changes are saved properly.
Case 3
Open the Developer Tools Network tab.
Try to change the start date for the specific page and save it, in the PATCH request check that in the payload startDate field has a time value that equals UTC time.
Check that after saving in the field you see the right time that you selected. Try to reload the page and see that the value is the same for this page.
Try to go to the single page entity view. On the right side check that the “Start Date” field has the right datetime.
Test the same flow with the “End Time” field.
KOD-28570: Abandoned Cart Feature - Next steps
Regression Tests
Case 1
Setting enableGuestSavedCarts is ON.
Test new cart creation: create new guest cart, add items, close browser and re-open so your cart should be back .
Case 2
Try creating a new cart in another browser and check that everything related to the cart works properly, create a brand new cart, add items and try to checkout.
Case 3
Create a guest cart and try to migrate it to your customer.
Tests
Case 1
This can be tested fully when the abandoned cart email template will be ready so we can redirect customer/guest users to the abandoned cart.
KOD-28572: Modify Invoice
Regression Tests
Case 1
Confirm that we can open the order detail page in the Customer Portal,
And confirm that we can view order emails through the Operations Portal.
Tests
Case 1
Confirm that in the templates:
wrappedOrderCSDExtensionCODEmail-EJS
wrappedOrderHTML-EJS
wrappedOrderEmail-EJS
wrappedOrderPDF-EJS
if we render them in the Send Email modal, they are displayed correctly.
(except for the HTML template, which should be opened in the Customer Portal)
if an order has values in any of the user3 , user4 , or user5 fields, we will display the Delivery Contact section along with the fields that are populated.
Also, confirm that if one of these fields is missing (for example, user4 ), there will be no empty line between user3 and user5 .
KOD-28573: Set User as "sys" for Orders Created From Ticket 40583
KOD-28575: Pricing and Availability APIs Created From Ticket 35997
KOD-28581: Update so Financial Accounts Tab Stays Under Company
Regression Tests
Case 1
Go to the Companies page.
Confirm that the grid looks good and works as expected.
Case 2
Go to the Company Details page.
After that, navigate to the Financial Accounts section.
Also confirm that the grid looks and works as expected.
Tests
Case 1
Go to the Company page.
Search for the company by ID 1261 .
Go to the Details page.
Navigate to the Financial Accounts tab.
Open the Financial Account Details page.
Confirm that you remain on the same page but now see the financial account data .
Switch between tabs and confirm that everything works correctly.
Try navigating using the breadcrumbs and confirm that everything works as expected.
Case 2
In another browser tab, open the Financial Accounts page.
Find the item with FI Account ID 551 and open its Details page.
Confirm that the data is the same here as on the previous page.
KOD-28583: Store Credit UX Tweaks
Regression Tests
Case 1
Go to the Operations portal, Finance Accounts /operations/fi-accounts .
Check if the grid displayed fine.
Tests
Case 1
Go to /operations/fi-accounts .
Check if there are such available columns for grid:
Reserved Balance
Statement Balance
Credit Limit
Check if data is displayed in these columns.
Case 2
Go to /operations/fi-accounts/{fiAccountID}/detail.
Check if all data inputs are displayed according to this screenshot.
Check if System UUID and Password fields are removed from the screen.
KOD-28586: Logo Removal
KOD-28587: Update integration to set to not display the new ICSP product
KOD-28598: Add new columns to Required Attribute Assignment screen
Regression Tests
Case 1
Go to the Categories Page → Details page → Required Attribute Assignment tab.
Confirm that the data is displayed correctly and that the grid functions as expected.
Tests
Case 1
Go to the Categories Page.
Find the item "window_single" (this item contains the necessary data) and open its Required Attribute Assignment tab.
In the top bar menu , confirm that the following new items are available:
PIM Status
PIM Reasons
Display
Select each of them and confirm that they appear in the grid.
Verify that the data from the "window_single" item is correctly displayed in the respective cells.
If any of them are not displayed, go to the Product page, find the item by its code , and adjust the necessary data there.
KOD-28609: Return extra3 field on product list > item list endpoint
KOD-28612: Kodaris Dev Examples: ClientIP
KOD-28622: Bulk load OEEHP table and sync continuously
KOD-28625: UX update to discounts screen in the operations portal
Regression Tests
Case 1
Make sure that the discounts screen still functions without any errors. Also need to make sure that the reward type field can be set to the previous values that were in the dropdown.
Tests
Case 1
In the scope of this ticket we have added a new option to the “reward type“ dropdown on discounts screen “AddToCart“, we need to test if it can be set on the field. Also we added a new column “ Reward Value “, and need to make sure that it can be updated from the discounts screen.
KOD-28630: Update csd Add/Update product to ERP methods
Tests
Case 1
Setting erpLogicEngine should be InforCSD.
Setting inforCono should have any integer value.
Execute /api/system/product/{productID}/addProductToErp with some product, so that response for this product is successful.
On successful response you should see Cono on the product’s summary page to be set to the value of inforCono setting.