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
November 13, 2025 release notes
Tickets
- KOD-24181: Automated Account Process
- KOD-24586: Add Company TermsTypeDescription to infor csd
- KOD-24665: Set display and active = false on whse by default
- KOD-25937: Do not display newly created products
- KOD-27486: Payment Methods
- KOD-27869: Parser Fix From Ticket 35244
- KOD-28089: Quantity Breaks on Product Pages
- Regression Tests
- Case 1
- Please check if we still can see pricing and the product details page looks good.
- Tests
- Case 1
- Please check that when the product has qty breaks we show the table with qty breaks and the information is accurate.
- KOD-28200: Library File Management
- KOD-28254: Implement disable start return setting for customer portal
- Regression Tests
- Case 1
- Check if If consumerReturnsEnabled is turned on, the customer should be able to:
- See the Returns tab in the Customer Portal.
- Start a return from the Order screen if the order status is “Paid” or “Invoiced.”
- See the Returns tab available on the Order screen.
- Tests
- Case 1
- If customerReturnsEnabled and generalReturnsEnabled are both turned on, the customer should be able to start a new return from the Returns screen in the Customer Portal.
- If consumerReturnsEnabled is turned on, the customer should be able to:
- See the Returns tab in the Customer Portal.
- Start a return from the Order screen if the order status is “Paid” or “Invoiced.”
- See the Returns tab available on the Order screen.
- If only generalReturnsEnabled is turned on, the customer should only see the Returns tab in the Customer Portal. In this case, the customer should not be able to start a new return.
- Case 2
- Pre-conditions:
- consumerReturnsEnabled: true
- generalReturnsEnabled: false
- Expected Result:
- The Returns panel is visible in the navigation menu.
- Can navigate to the Returns panel.
- "Start New Return" button is NOT visible in the Actions menu.
- Can click "Start Return" from the order screen and create a consumer return.
- KOD-28312: Error uploading image
- KOD-28329: Digital Credit Application Updates
- Case 1
- Check that authorization is working correctly.
- Check that there are no errors in the console after authorization.
- Check that files with the “Other” type are downloaded correctly, the preview looks correct.
- Check that adding an internal file works well.
- Tests
- Case 1
- Navigate to the /spcu/credit-application-register page.
- Follow the process and confirm a new company is created with “Applying 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”.
- Case 2
- On the credit application form confirm the following blocks are displayed.
- AP information.
- Business Financials.
- Owners etc.
- Confirm not filled required fields in those blocks are restricting user from submitting a credit application form.
- Confirm you can proceed with the credit application properly.
- Case 3
- On the credit application page locate the “Credit Information 2“ section.
- Confirm there are three suppliers input fields.
- Confirm you can not proceed without entering required information for the Supplier.
- Add one supplier.
- Confirm “x“ icon appears on each supplier.
- Click the “x“ button.
- Confirm section is removed and the “x” button is not visible.
- Confirm “x” button is visible when more than 3 Supplier information is provided.
- Provide some information in the fields and refresh the page.
- Confirm fields are populated.
- Add more than 3 Suppliers and fill some information in.
- Remove previously filled in sections.
- Confirm the proper supplier has been removed.
- Refresh the page.
- Confirm the information is populated properly.
- Check that if we have the “CompanyConfidentialInternalFileView” role, files with the “Confidential” type are downloaded correctly, the preview looks correct.
- Make sure that if there is no CompanyConfidentialInternalFileView role, files with type confidential are not displayed in the grid.
- KOD-28338: Replatform - Recently Ordered Page - Enable Sorting on Recently Ordered Page Created From Ticket 32507
- Regression Tests
- Case 1
- Confirm that the catalog page loads and displays correctly - we should see a list of both company and customer catalogs.
- Case 2
- Confirm that when opening either a company or customer catalog, we can see a list of products and are able to filter by in stock or search using the search field.
- Tests
- Case 1
- Confirm that when opening a company or customer catalog on the commerce site, the products are sorted by lastPurchaseDate , with the earliest purchased product shown first.
- Case 2
- Confirm that when opening a customer catalog or a company catalog on another host, this sorting logic should not be applied.
- KOD-28344: Add UX for Getting shipping charges to 'stick' Created From Ticket 36665
- Regression Tests
- Case 1
- Check that other fields still calculate correctly. Total value should be correct and respect manual changing of shipping cost.
- Check that there are no errors in the console.
- Tests
- Case 1
- In the order details, you need to change shipment cost and click on the Calculate button. Check that shipment cost doesn’t change after click and refresh
- 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.
- 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-28396: Order Automation Mapping Enhancement Created From Ticket 35275
- KOD-28409: Model Lookup Imports
- KOD-28439: Update Welcome Message
- Regression Tests
- Case 1
- In this ticket, I only replaced the text on the Login page, so as a regression, We can check that there are no errors in the console and everything is working as expected.
- Tests
- Case 1
- Go to the login page.
- Make sure text was changed from “Access the customer portal” to “Access your national account”.
- KOD-28463: Charts Next Steps
- KOD-28465: Platform help for UX for Budget Quoting Codes
- Regression Tests
- Case 1
- Be able to create a Company Budget from the company budget screen.
- Be able to add a new item from the customer side when the budget already exists.
- Go to locations and make sure to select any location that has a budget on it.
- Then, you can add an item from this button indicating the product code and the unit.
- Case 2
- Generate a Quote and assign required fields to set up a location (endDate, type, locationName, address fields).
- Assign some items to the quote. Make sure we have at least the following items:
- At least one quote code item (product which is technically display = false and has user4 value populated with 0,1 or 2).
- At least one product that is not a quote code (any product that can be bought in the commerce site).
- Make sure those items have a quotingPriceType assigned. In order to have the price type assigned we need the skus with priceType populated and that will be copied into the Items.
- In the quote should appear then:
- Then, set up the quote location and generate the budget after that.
- Expected result:
- The company budget items should contain the new lineType = “QuoteCode” and pricingType field populated for those items which are quote codes.
- Case 3
- Calculate budgets from the operation side and validate the amount is correct (You might notice that if there were some items added with the same quotingPriceType than a quoteCode then those are not going to show up. But it’s ok).
- You can visualize the total under ‘Details’ or in the customer side.
- We need to have orders with those invoiced/paid statuses so that we can do the calculations.
- After creating a budget for a specific address we need to create an order and have that address selected as the shipto. Then, the budget probably has the budgetRestrictionType as : Invoiced,Paid so that means you will have to change the order status in order to move to any of those statuses and then calculate budgets with the button.
- KOD-28495: Parser from Ticket 40070
- KOD-28500: Question Regarding Search Filters on Category and Search Pages
- KOD-28534: Additional tweaks to credit application
- Regression Tests
- Case 1
- Start a new Application process.
- Confirm the blank form is properly displayed.
- Log out and log-in.
- Confirm form is accessible.
- Change any value and refresh the page / reenter the account. Confirm changes are saved.
- Submit a form.
- Confirm form is properly submitted.
- Tests
- Case 1
- Navigate to the Account Application (Credit Application) page.
- Confirm title of the form says “Account Application“.
- Confirm all input labels without question mark has colon in the end.
- Add Owner and Supplier.
- Confirm they also have columns in the labels.
- Confirm the following text is under the form title “Please complete the form below. Your responses will be auto saved as you progress through the application to allow you to come back to the form at any time if you cannot complete the process in one session.”
- Open developer tools and toggle mobile debug mode.
- Confirm text is displayed properly.
- Locate “Preferred Payment Method:“ dropdown.
- Confirm there are two options:
- CASH/COD
- Credit Account
- Confirm the following fields are properly displayed:
- Federal Tax ID#/SSN#
- Florida CAC or CMC License Number:
- Do you require a PO on your orders?
- Remove value from “Charted In” field if present.
- Confirm “FL” is displayed as a placeholder.
- Case 2
- Navigate to the credit application.
- Locate Tax Exempt Status field.
- Enable it by setting value to “Yes”.
- Refresh the page and confirm that 2 fields under the Tax Exempt Status field named properly:
- Resale Certificate Number
- Resale Certificate
- Change value two times: Yes → No → Yes.
- Confirm the same names of fields are present.
- Case 3
- For Credit Account credit application type locate “Credit References“ section.
- Confirm new fields are displayed:
- Company Name
- Account Number
- Contact Name
- Edit those fields and refresh the page.
- Confirm values are stored properly.
- Repeat steps 3-4.
- Case 4
- For Credit Account application type confirm Credit References and Agreement sections are visible.
- For COD/CASH application - confirm those sections are not visible.
- Confirm you can submit a COD/CASH form without Suppliers value populated.
- Confirm you can submit a Credit Account form only when all required values are populated.
- Confirm email address is not getting required after the application type has changed from COD to Credit Application.
- Case 5
- Confirm Agreement for credit account application type matches to the provided in the document.
- Confirm for both application types “Signature“ section has the same text as provided.
- KOD-28537: Update Storeroom fields in the operations portal to be dropdowns
- Regression Tests
- Case 1
- Check that the Order > Items and Cash Quote > Items screen still works as expected without issues.
- Case 2
- You should be able to add/update the info for the Storeroom fields on those two screens as well:
- Department
- Customer Asset
- Employee
- GL Account
- Tests
- Case 1
- Check that all the Storeroom fields are dropdowns and only display data specific to the company attached to the order/quote:
- Department
- Customer Asset
- Employee
- GL Account
- Case 2
- If your employee only has CRM permissions, they should still be able to view/edit those dropdowns.
- crmCompanyCustomerView or crmCompanyCustomerEdit roles specifically.
- KOD-28536: Update Filters & Add Export to Analytics
- Regression Tests
- Case 1
- Check that the Usage page still loads correctly without issues and the filters are displayed correctly as well and work.
- Tests
- Case 1
- Check that the filters have data populated and now display in this format “Code - Name”.
- Can ignore any data issues with these, we are looking into that separately.
- Case 2
- Check that an export button has been added as well.
- You should be able to go ahead and export, and it should respect the filters you have on the grid.
- KOD-28541: Update Lockbox for Unapplied Cash Transactions Created From Ticket 39495
- KOD-28543: UX for checkout
- KOD-28563: Kodaris Dev Examples: Category Entity
- KOD-28566: Shipping Rates
- KOD-28576: AP: Invoice Parser
- KOD-28591: Changes to invoices - Add On Not Populating Consistently on Invoices/Add Tracking
- KOD-28593: Implementation - Order / Invoice Documents
- Regression Tests
- Case 1
- Check that the when generating order pdfs, order emails, or viewing the order details in the customer portal still works as expected without issues.
- KOD-28604: Products parser updates
- KOD-28612: Kodaris Dev Examples: ClientIP
- KOD-28613: Update where Cross References are stored
- KOD-28614: Invoices Coming via Email Updates
- KOD-28616: Add new URL link generator
- KOD-28620: AP- Invoice Date Not Populating for Vendor
- KOD-28626: Display Inventory by Customer's Ship To Location
- KOD-28635: Platform Updates for Storeroom Fields as Dropdowns in the Operations Portal
- Tests
- Case 1
- Check new swagger endpoints:
- api/system/companyTableRecord/listWithLimitedFields
- api/system/customerAsset/listWithLimitedFields
- /api/system/customer/listWithLimitedFields
- KOD-28636: AP Automation-Sales Tax Exception Rule Created From Ticket 41241
- KOD-28650: Update all existing records to not display the new ICSP products
- KOD-28653: Credit Application - Supplier Account Number
- KOD-28658: Display new Extra fields on the ticket > product lists > items grid
- Regression Tests
- Case 1
- Navigate to the Tickets page.
- Choose any item and go to the Details page.
- Switch to the Product List tab.
- Choose any item and go to its Details page.
- Switch to the Items tab.
- Confirm that the grid works as expected:
- All columns are displayed.
- You can add new items.
- You can show or hide columns.
- Pagination works correctly.
- Tests
- Case 1
- Navigate to the Tickets page.
- Choose any item and go to the Details page.
- Switch to the Product List tab.
- Choose any item and go to its Details page.
- Switch to the Items tab.
- In the Show/Hide Columns bar, confirm that there are 4 new columns:
- extra1 , extra3 , extra4 , extra5 .
- Show these columns and confirm that these fields are editable.
- Confirm that data in these fields is saved and displayed correctly.
- KOD-28674: Order Parser Updates
- KOD-28675: Replatform - Filter products by 'In Stock' in My Warehouse on PLPs Created From Ticket 32337
- Case 1
- Confirm that the search or category page loads correctly- we can see the product list, the list of filters, and one of those filters should be the "In Stock" filter.
- Case 2
- Confirm that by default, the checkbox in that filter is not selected , and all products are shown, including those that are not available in our store.
- Case 3
- Confirm that when this filter is selected, we only display products that are available in the selected store (and the URL should include inStockAtWarehouse = storeCode).
- Tests
- Case 1
- Confirm that the filter is named "In Stock in Store" and has only one option "Yes" , and that this filter does not change for guest or logged-in users.
- Case 2
- Confirm that if the filter is selected for, for example, the Sussex store, and we switch to another store, the filter should become inactive , and when we select it again, we should see products that are available in the new store.
- KOD-28676: Pull Addons
- KOD-28683: Add Payment PDF Generation Endpoint to Server side API
- KOD-28688: Library File Management
- KOD-28691: Customer Statement Update Created From Ticket 40932
- KOD-28693: API call update
- KOD-28700: A couple of order issues
- KOD-28701: Web Order Number in SX.e System
- KOD-28702: Guest Checkout PO Field in SX.e
- KOD-28709: Only Index Images in Shared Drive
- KOD-28711: UX - Update AP Automation Discrepancy Configuration to include 3 new rules - Duplicate Invoice Number, Tax, and invoice date
- Regression Tests
- Case 1
- Navigate to the AP Automation screen.
- Confirm that there are three tables displayed:
- Invoice
- Invoice Items
- Invoice Charges Discounts
- For each exception:
- If the tolerance value is set to false (according to the GET /api/system/setting/apAutomation/discrepancyConfiguration response), make sure no input fields are displayed for Tolerance $ and Tolerance % .
- If the tolerance value is set to true , verify that number inputs are displayed for that row.
- Verify that the displayed values match the data returned from the
- GET /api/system/setting/apAutomation/discrepancyConfiguration endpoint.
- Change one of the values, click Save , and confirm that the
- PUT /api/system/setting/apAutomation/discrepancyConfiguration endpoint is called with updated values.
- Reload the page and confirm that the new values are displayed correctly.
- Click Save again without making any changes — confirm that the PUT request is not triggered in this case.
- Tests
- Case 1
- Navigate to the AP Automation screen.
- Confirm that there are three new rules displayed in the Exceptions – Invoice table:
- Duplicate invoice number.
- Invoice date is missing or invalid
- Tax does not match the purchase order.
- Verify that the displayed values for these rules match the data returned from the
- GET /api/system/setting/apAutomation/discrepancyConfiguration endpoint.
- For each rule:
- If the tolerance value is set to false , make sure no input fields are displayed for Tolerance $ and Tolerance % .
- If the tolerance value is set to true , verify that number inputs are displayed for that row.
- Change one of the values, click Save , and confirm that the
- PUT /api/system/setting/apAutomation/discrepancyConfiguration endpoint is called with the updated values and that all data is saved correctly .
- Click Save again without making any changes — confirm that the PUT request is not triggered in this case.
- KOD-28722: Add auth amount fields to the Terminals screen
- Regression Tests
- Case 1
- Go to Account Receivable → Terminals.
- Check that the table is looking good and the data rendering properly.
- Tests
- Case 1
- Open “Show/Hide Columns” dropdown. Enable “Auth Extra Amount” and “Auth Extra Percentage” columns.
- Check that they appeared on the table.
- Try to input some data to these columns, check that the data is stored properly and it’s shown after page reload.
- Case 2
- Go to the specific Terminal Details page.
- Scroll down to the “Other Info” section.
- Check “Auth Extra Amount” and “Auth Extra Percentage” fields there. Try to input some data and check that everything is stored properly and data appears after page reload.
- Go to the Terminals Data page. Try to find the terminal that we changed recently and check that appropriate data shown in the new fields.
- KOD-28723: Do not include released orders on order automation exception report
- Regression Tests
- Case 1
- Validate orders that have not been released yet to ERP are being pulled to the exception report.
- Pre-requirements:
- Global setting sendAlertsForAutomatedOrdersInException must be enabled.
- An order which meets the next conditions:
- Order setting exceptionCount must be set with a value greater than 0.
- The order Employee status must be Automation Exception.
- Completed date must be:
- Earlier than the current date minus the amount of minutes defined in the job field completedMinutesAgo or 60 minutes if this field is not set.
- Was completed after the current date minus 90 days.
- Steps:
- From the operations portal go to the order details.
- Make sure extra5 field is empty (it has not been released to the ERP).
- Wait until HourlyIntervalJob runs (or go to schedulers and execute it manually).
- Then go to the Emails screen and look for the latest emails with a subject like automated order(s) containing unresolved discrepancies, the order tested must be there.
- Tests
- Case 1
- Validate orders already released to ERP are not being pulled to the exception report when extra5 field is populated.
- Pre-requirements:
- Global setting sendAlertsForAutomatedOrdersInException must be enabled.
- An order which meets the next conditions:
- Order setting exceptionCount must be set with a value greater than 0.
- The order Employee status must be Automation Exception.
- Completed date must be:
- Earlier than the current date minus the amount of minutes defined in job field completedMinutesAgo or 60 minutes if this field is not set.
- Was completed after the current date minus 90 days.
- Steps:
- From the operations portal go to the order details.
- Make sure extra5 field is not empty.
- Wait until HourlyIntervalJob runs (or go to schedulers and execute it manually).
- Then go to Emails screen look for the latest emails with a subject like automated order(s) contain unresolved discrepancies, the order tested must not be there (it is possible to not have any email generated since it could be there’re no other orders to pull)
- KOD-28735: Enabling AWS QuickSite
- KOD-28737: Integration Updates
- KOD-28745: Kodaris Quote Template Updates
- KOD-28755: OfficeSupplies Category Products issue
- KOD-28756: Quiet the log down for product page generation
- KOD-28758: Add categoryOrder field to product attribute model in /api/system/product/{parentProductCode}/relatedProducts/list response
- Tests
- Case 1
- Test if attributes on the related ConfiguratorVariant products are returning categoryOrder and position correctly.
- KOD-28760: Invoice updates
- Regression Tests
- Case 1
- Verify 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
- For catalog products we can see brand fields populated on all templates.
- The User3 field is no longer listed twice.
- KOD-28766: Parser Update Ticket 27562
- KOD-28769: Parser From Ticket 32194