November 27, 2025
November 20, 2025
November 13, 2025
November 6, 2025
October 30, 2025
October 23, 2025
October 16, 2025
October 9, 2025
October 2, 2025
September 25, 2025
September 18, 2025
September 11, 2025
September 4, 2025
August 28, 2025
August 21, 2025
August 14, 2025
August 7, 2025
July 31, 2025
July 24, 2025
July 17, 2025
July 10, 2025
July 3, 2025
June 26, 2025
June 19, 2025
June 12, 2025
June 5, 2025
May 29, 2025
May 22, 2025
May 15, 2025
May 8, 2025
May 1, 2025
April 24, 2025
April 17, 2025
April 10, 2025
April 3, 2025
March 27, 2025
March 20, 2025
March 13, 2025
March 6, 2025
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
October 30, 2025 release notes
Tickets
- KOD-21466: Abandoned Cart Feature
- KOD-23652: Payment records - Storing or attaching the receipt email
- Case 1
- Check that the tabs on the Account Receivable > Details page look correct (layout).
- Check that there are no errors in the console.
- Case 2
- Open CRM → Cash Quotes.
- Select the cash quote with a good total amount to be able test payment,
- In the quote page header click “Pay Quote”,
- Select a saved credit card that ends with 0002 and pay 1$ amount.
- After successful payment click on View Receipt and see that receipt rendered correctly, and print functionality works well.
- Also test Email functionality and see that payment receipt is sent.
- Case 3
- Go to Account Receivable.
- Open item with status “ScheduleFailed”.
- Check that in the actions Dropdown in the right top corner you have the “Process Scheduled Payment” button available.
- Click on to test that the modal opened correctly
- Go back to “Account Receivables” and open item with status “ScheduledPayment”
- Check that in the actions Dropdown in the right top corner you have “Process Scheduled Payment” button available. Click on to test that the modal opened correctly.
- Go through the items with other statuses and check that there’s no available “Process Scheduled Payment“ button in the Actions dropdown.
- Tests
- Case 1
- Open Account Receivable → Account Receivable.
- Find an account receivable with the option to View Receipt, since not all account receivables can have a receipt.
- Click on “View Receipt”.
- In the modal click on “Print” and see that the receipt is printing correctly.
- Test sending receipt to Email functionality by clicking on the “Email” button and then input your email and send it. Check that modal is working properly and you’re receiving payment receipt on your email.
- KOD-27414: OEEHEXTRA and OEELEXTRA GL codes and Department data for Analytics from data lake
- KOD-27431: Second round of credit app tweaks
- KOD-27531: Shipment Notifications
- KOD-27736: Option to add MRO Guide to Order
- Regression Tests
- Case 1
- Add some new global discounts in the operations portal, apply new or existing discount to order/cart, apply coupon code to cart, to to checkout step and submit your order with recalculated totals (including discounts).
- KOD-27789: Add UX for a metrics dashboard for ROI data from business events
- Case 1
- Make sure that the system menu looks correct.
- Tests
- Case 1
- Check that the menu items Business Events Types and Business Events appear and that the correct grid opens when you click on a menu item.
- Make sure that each grid item has a detail page.
- Make sure that all properties in the grids are read-only.
- Make sure that search and filtering work correctly.
- KOD-27800: Create endpoint to be able update vendor internalFile fields
- Tests
- Case 1
- Validate that thenew endpoint PATCH /api/system/vendor/{vendorID}/internalFile/{internalFileID} is updating the vendor internal file information.
- Go to swagger.
- Look for the endpoint PATCH /api/system/vendor/{vendorID}/internalFile/{internalFileID} under the system section.
- Patch some fields for a specific vendor internal file.
- The fields must be properly updated.
- KOD-27818: Long Term Updare
- KOD-27943: Parser From Ticket 36030
- KOD-27973: Update Pricing Screen for Implementations
- Case 1
- Navigate to the InforCSD Setup page and go to the Price Engine and confirm that all text and spacing is displayed correctly.
- KOD-27996: Roles to view Storeroom data on checkout
- Tests
- Case 1
- Validate the new POST endpoints are working as expected:
- /api/user/cart/customer/search
- /api/user/cart/department/list
- /api/user/cart/glAccount/list
- /api/user/cart/project/list
- /api/user/cart/customerAsset/list
- Important:
- Try this test with customers that don’t have any of the following roles: companyAdmin , viewEmployees , editEmployees , viewCustomerAsset , editCustomerAsset.
- Steps:
- From the customer portal’s swagger look at the endpoint to test it under the Cart API section.
- Pass a payload search payload.
- Click on the Execute button.
- The response must contain a list of customers, departments, projects, glAccounts, projects or customerAssets (according to the case) properly filtered.
- KOD-28008: Ticket "queue" display view does not match actual ticket content
- KOD-28072: Gift Cards
- KOD-28154: Add a setting to disable start return in the customer portal
- Regression Tests
- Case 1
- If the setting generalReturnsEnabled is not enabled or it doesn’t exist the Return creation should run normally.
- Tests
- Case 1
- With the new system setting generalReturnsEnabled when creating a Return it should throw a Forbidden Error.
- KOD-28163: Check Tracking Notification URLs Created From Ticket 37702
- 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:
- wrappedOrderHTML-EJS
- wrappedOrderEmail-EJS
- wrappedOrderPDF-EJS
- 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).
- Confirm that when opening an order with no associated orderShipments , the template loads correctly and the shipments section is not displayed.
- Confirm that when opening an order that has associated orderShipments (the order’s extra5 field equals the externalOrder# ), we can see the Order Shipments section showing their trackingNumbers . If the serviceMethod field matches one of the carriers listed above in the ticket, the URL should correspond to that carrier; if not, it should be displayed as plain text (not a link).
- KOD-28175: API Call for Price Created From Ticket 37075
- KOD-28177: Parser from Ticket 37817
- KOD-28215: Check Picture Stats for V3 App - Kodaris driver app Created From Ticket 38091
- KOD-28249: More than 1 matching import found error
- Regression Tests
- Case 1
- Go to Development → Importers. Find the script that is used in 2 or more Importers.
- Go to the entities data page where the importer that is using the script can be tested.
- Export the data sheet to have just a test doc through the File menu → Export.
- Try to import the exported data through the File menu → Import → The importer that you found in the importers table. See that there’s no any errors on import and the success notification was shown.
- KOD-28275: Create a controller endpoint on the vendor controller to upload products
- KOD-28278: Parser Testing Issues
- KOD-28281: Parser Created From Ticket 38662
- KOD-28306: Parser from Ticket 38804
- KOD-28324: Public Pricing Configuration
- KOD-28326: Parser from Ticket 39103
- KOD-28340: Name Displaying with Odd Characters on billing address
- Regression Tests
- Case 1
- In the operations portal : Find or add paragraph to address company name that you’re currently on.
- Note: you can edit the address name from the data grid in the “company addresses” screen.
- Check if your customer has an “adminCompany“ role, to be able to “ Search for a billing address “.
- Check the same thing for : Search for a shipping address.
- Tests
- Case 1
- Make sure you follow instructions from the regression tests.
- Check if auto selected name is displayed correctly - and not displaying things like on the screen from description but only sign that was provided to the address name.
- KOD-28343: Auto populate Company Address Code on record creation if not specified
- KOD-28356: Parser from Ticket 39079
- KOD-28358: Add Store Credit Option to Infor Integrated Payments
- KOD-28373: Parser issue from Ticket 30429
- KOD-28374: Update to show only the subtotal at checkout
- Case 1
- Verify that totals, shipping, and tax calculations appear correctly on the generated PDFs.
- Tests
- Case 1
- Check the note on the checkout.
- Check if only subtotal is displayed at the checkout.
- KOD-28378: Shipping Options in the operations portal
- KOD-28379: Create a script to get the company rank field populated on icsw
- KOD-28383: Resync order discounts
- KOD-28384: Remove green lines from H1
- Regression Tests
- Case 1
- Confirm that the site loads without any issues and that we can see the H1 tag with styles applied.
- Tests
- Case 1
- Confirm that there’s no line under the H1 tag anywhere it’s used.
- KOD-28385: Parser new update Ticket 29173
- KOD-28386: Adding Fi Accounts Development tab
- Regression Tests
- Case 1
- Navigate to the FI Account page.
- Confirm that the grid is displayed correctly and functions as expected.
- Case 2
- Go to the Details page.
- Confirm that you can switch between tabs , and that both the Details and Custom Fields pages look correct.
- Tests
- Case 1
- Go to the Details page and confirm that there is a new tab named "Development" .
- Navigate to the Development page.
- Confirm that the database record displays fields with some data, and on the right side there is a document with API information .
- Verify that the data in the fields matches the data in the API document .
- Confirm that the fields with Boolean values in the document are also Boolean in the UI, and that you can change their values only to “Yes” or “No” (e.g., billable ).
- Confirm that some fields are read-only and are marked with a “prohibition sign” (e.g., administratorID ).
- Confirm that some fields accept only numeric input (e.g., balance ).
- KOD-28387: Automated Tracking Emails Only For Orders
- KOD-28391: Order / Invoice Documents
- KOD-28392: LG-Freight Charges Appearing as Line Item
- KOD-28395: Gates-Subtotal Not Populating on Invoice in Kodaris
- KOD-28398: Kodaris Dev Examples: Product Entity
- KOD-28403: Add new column 'parentID' to sscInternalFile
- Case 1
- In Swagger go to PATCH /api/system/internalFile/{internalFileID}
- Insert an internalFileID and pass the parentInternalFileID in the payload (both IDs must exist) then go to the Operations Portal go to System->Internal Files and you should see in DevTools->Network the new field parentInternalFileID coming from the list endpoint.
- Case 2
- In Swagger go to POST /api/system/internalFile/list and search by parentInternalFileID . You can grab the post payload from the list endpoint mentioned in the previous test scenario and use it here, adding the new field to search.
- KOD-28405: Position field is not saved to the customer profile
- KOD-28406: Kit builder pricing issue
- KOD-28407: Launch a system to start working on P21 integration
- KOD-28412: Parser Created From Ticket 39073
- KOD-28413: Update for pricing tolerances feature to get discounted price from CSD if such exists
- Regression Tests
- Case 1
- We need to make sure that the updated interceptor runs without any errors. To check we can simply place an order from the website and monitor the logs, the changes would only take effect when there is a discount record for that product setup.
- Tests
- Case 1
- In the pricing tolerances feature we should now be applying a discount for the price record, this can also be checked in the logs after placing a test order.
- KOD-28417: Invoice Failures
- KOD-28418: Kodaris - Credit App - Ability to add custom fields to customers
- KOD-28445: Fix "X" icon in Catalogs
- Regression Tests
- Case 1
- Navigate to the catalog page.
- Switch between list view and grid view, and confirm that the page and all its items are displayed as expected.
- Tests
- Case 1
- On the catalog page, choose the list view and confirm that the "close" button is displayed correctly.
- KOD-28446: Include assignee name and assignee type data lake
- KOD-28447: Platform AP Automation - Implement pricing conversion and quantity conversion divide/multiply functionality
- KOD-28448: Platform - Google crawling, allow UX to provide host for generation
- Tests
- Case 1
- Have some hosts configured on your website.
- Provide those codes for endpoint /api/system/website/sitemap to generate side map.
- Open logs and wait for the generation to finish.
- Review site map in OPS → SEO → view site map, it should be generated for this particular host.
- KOD-28450: PO Character Limit at Checkout
- Regression Tests
- Case 1
- Generate order discrepancies.
- GET api/system/order/{orderID}/discrepancies
- Case 2
- Add an order discrepancy.
- POST api/system/order/{orderID}/discrepancy
- Case 3
- Add an order item discrepancy.
- POST api/system/order/{orderID}/{orderItemID}/discrepancy.
- Case 4
- Get order automation discrepancy configuration.
- GET /api/system/setting/orderAutomation/discrepancyConfiguration
- Case 5
- Update order automation discrepancy configuration.
- PUT /api/system/setting/orderAutomation/discrepancyConfiguration
- Tests
- Case 1
- Add an order discrepancy by code.
- DELETE api/system/order/{orderID}/discrepancy/{code}
- Case 2
- Place new order (use Purchase Order option) when ERP logic Integrator is InforCSD or Trend, and if PO number > 21 characters, verify new order discrepancy was created, order was hold from releasing to the ERP, and order’s employeeStatus set the to Exception.
- KOD-28451: Parser- Vendor
- KOD-28454: Add Group flow to PowerBI Dashboard
- KOD-28453: Kodaris pricing engine discrepancy
- KOD-28458: Implementation - Branding
- KOD-28471: Kodaris API Integration
- Tests
- Case 1
- Test new:
- POST /api/system/product/pricesByCodes
- Confirm it is working in the same way, as an old:
- GET /api/system/product/pricesByCodes
- The GET method was not changed, so just test if results are the same.
- KOD-28472: Parser from Ticket 38619
- KOD-28476: Rollout per-system globally
- KOD-28479: Vendor Invoice Grids - Make status and release status columns filterable by selection
- Tests
- Case 1
- Go to /operations/vendor-invoices/search screen. Try to filter Status and Release Status . These filters are now lists of statuses that are checkable. Check if they appear and are working as expected.
- KOD-28483: Shipping Rules (adjustments)
- Tests
- Case 1
- Open the website.
- Log in.
- Add a product to the cart.
- Go to the Checkout Page.
- Verify that the specified text is present on the page.
- Appropriate shipping charges will be added for any incoming shipping charges on items not in stock and any applicable shipping methods such as Next Day, or Second Day Air.
- KOD-28485: Parser from Ticket 40099
- KOD-28487: PDSC Record/Promo Price Issue
- KOD-28488: Parser from Ticket 40110
- KOD-28495: Parser from Ticket 40070
- KOD-28496: Kodaris Order not being put on E-hold in CSD
- KOD-28499: Priority Payments - Fix capture auth flow for compliance
- Case 1
- Make an auth payment with AMEX card on a non-surcharging virtual terminal.
- Capture auth.
- KOD-28501: Updates when orders released into CSD
- KOD-28502: Parser request From Ticket 31223
- KOD-28507: Create API to reset failedAttempts setting for Orders and Companies
- Regression Tests
- Case 1
- In Swagger to go POST /api/system/order/{orderID}/resetPaymentDeclinedAttempts passing the orderID should delete the declinedAttempts Order Setting.
- Case 2
- In Swagger to go POST /api/system/company/{companyID}/resetPaymentDeclinedAttempts passing the companyID should delete the declinedAttempts Company Setting.
- Case 3
- In Swagger go to GET /api/system/company/readDetails/{companyID}, you should see the new declinedAttempts field coming from the list.
- KOD-28511: Update to preventing returns for older orders
- Regression Tests
- Case 1
- We should validate that the start return order from the customer side continues working as before when the setting disableReturnOrdersOlderThanDays is off (set to 0).
- Tests
- Case 1
- Validate when try to start a return order from customer side and this was invoiced before the amount of days specified in the new setting disableReturnOrdersOlderThanDays, this action will not be allowed otherwise yes.
- Steps:
- Set a value in setting disableReturnOrdersOlderThanDays.
- Start a new return order from the customer portal.
- If the other order was invoiced before the current date minus the amount in setting (the extra3 field represents the ERP Invoiced date) disableReturnOrdersOlderThanDays, the action will not be allowed otherwise the return order will be started.
- NOTE : If the order does not have the ERP Invoiced date (extra3 field) set, the return order will be created normally.
- KOD-28512: Save index last time on all entities that are saved in OpenSearch
- KOD-28513: Shipping Options - Update UPS Ground code
- KOD-28514: Default site to Warehouse 0011
- Tests
- Case 1
- The setting trendDefaultWarehouse is now multi-host capable so each host can have different default warehouse codes.
- For 2 Orders each one with a different hostCode assigned and also 2 different trendDefaultWarehouse values for the hosts, change the delivery address on POST /api/system/order{orderID}/changeDeliveryAddress each Order should have the warehouseCode specified in the setting. Also the setting multiTenantMode must be enabled.
- KOD-28517: Parser request Created From Ticket 27562
- KOD-28519: Testing from ERP order # in Confirmation Configuration
- KOD-28521: UX for second round of credit app tweaks
- Regression Tests
- Case 1
- Navigate to the /spcu/credit-application-register page.
- Follow the process and confirm a new company is created with “Appling for Credit” status.
- Fill in all fields and submit the form.
- Confirm form is submitted.
- Confirm status of the new company has changed to “Applied for Credit”.
- Access internal file screen with “companyConfidentialInternalFileView“ role assigned to the employee.
- Confirm the pdf is generated properly.
- Case 2
- On the credit application page confirm Tax Exempt functionality works as expected:
- Under Business details locate “Tax Exempt” dropdown.
- Confirm there are two values provided: “Yes”/”No”.
- If “Yes” is selected two more blocks are displayed: “ Exempt Number ” and “Tax exemption certificate”.
- Confirm those fields are required.
- Upload file and refresh the page.
- Confirm file processed properly.
- Confirm the proper name of the file is displayed on the grayed out input without the ability of uploading a new file.
- Case 3
- On the credit application page locate “ EPA Certificate “ field under “ Business Details ”
- Confirm this field is required.
- Upload file.
- Confirm file is uploaded properly by refreshing the page.
- Confirm once a file is uploaded, it’s not allowed to reupload the file.
- Tests
- Case 1
- On the credit application page locate “ Preferred Payment Method ”.
- Confirm there are two options available: “Credit Account” and “Cash on Delivery”.
- Select “Credit Account”.
- Navigate to the owners section.
- Add a new owner.
- Confirm Driver License field is displayed.
- Upload file.
- Confirm file is uploaded by refreshing the page.
- Confirm after the file is uploaded it is not possible to reupload the file.
- Add a new owner and refresh the page.
- Repeat steps 5-8.
- Case 2
- On the operations portal navigate to the Companies screen.
- Select your company.
- Go to customers tab.
- Select a customer that has a file uploaded from the credit application.
- Navigate to its Internal files with companyConfidentialInternalFileView employee role.
- Confirm you can view the file from the operations portal and it’s available for download.
- KOD-28524: Ticket Number 25936 Created From Ticket 31048
- KOD-28526: Model Lookup Hide Buttons
- Regression Tests
- Case 1
- Navigate to /spcu/lookup by searching for a valid model number.
- Verify that the PartStream integration loads properly.
- Verify that remaining button styles are correct.
- Go to a valid product.
- Click View Details.
- Confirm the product panel displays correct information.
- Test Add to Cart to ensure the cart integration works.
- Tests
- Case 1
- Navigate to /spcu/lookup by searching for a valid model number.
- Verify buttons New Search and Change Brand don’t appear anymore.
- KOD-28527: List Price from Prices By Codes
- KOD-28529: Install application for the Customer site