All Releases
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
View all releases

September 4, 2025 release notes

Highlights

Commerce

"Add All to Cart" for Catalog Order Processing

We've introduced a new "Add All to Cart" feature that enables users to add entire catalogs to the shopping cart in a single action, streamlining the order preparation process.

The feature works seamlessly with both Company and Customer Catalogs. When viewing any catalog, users can now select "Add All to Cart" from the Actions dropdown menu to instantly add all products to their cart. The system intelligently preserves any product notes and custom quantities that were specified beforehand, ensuring order accuracy while saving time.

This functionality particularly benefits users who regularly work with complete catalogs or need to create large orders quickly. By eliminating the need to add products individually, the feature reduces repetitive actions and minimizes the potential for missed items during order creation.

The "Add All to Cart" feature is now available to all users across the Commerce platform. For a step-by-step demonstration of how to use this feature, please refer to our instructional video.

https://youtu.be/VIklJLyklBs

Operations Portal

Employees can now be restricted to only view and edit tickets assigned to them

This targeted access is managed through two new roles: "ticketViewAssigned" and "ticketEditAssigned." Administrators can apply these roles to any employee account through the Employees screen by accessing the employee's details and navigating to the Roles tab. Once configured, employees will only see tickets where they are listed as the assignee.

With this permission structure, employees maintain full editing capabilities for their assigned tickets, including updating ticket information and adding internal comments.

Available now in the latest system update. For a detailed walkthrough of configuration and functionality, please refer to our demonstration video.

https://youtu.be/kVJLPeu412E

Territory-Based Company Assignments for CRM Users

The Sales Territory Assignment feature streamlines how organizations manage CRM user access to company records. By implementing a territory-based assignment system, administrators can efficiently control which companies each CRM employee can view and manage. The feature works by assigning territory codes to both companies and employees, automatically creating the appropriate visibility relationships.

Implementation requires enabling two settings (crmUseEmployeeAssignments and crmUseSalesTerritory) and then adding territory codes to company records and employee profiles. CRM employees can be assigned to multiple territories by adding comma-separated values to their Sales Territory field, instantly granting them access to all companies within those territories.

The Sales Territory Assignment feature is available now in the latest system update. For a detailed walkthrough of the setup process, please refer to our demonstration video.

https://youtu.be/lMVlIUwqloI

Tickets

  1. KOD-24342: Scoping Order Transfer for Direct Ship
  2. KOD-24597: UX to be Able to Manage Employee Sales Territory Code Assignment
    • Tests
    • Case 1
      • Operations Portal → Employee details screen.
      • Expected result:
      • There is a new field available: "Sales Territory".
      • It’s possible to edit the field.
  3. KOD-25413: Support Viewing XML Internal/Customer Files
    • Tests
    • Case 1
      • Operations Portal:
      • Customer Files
      • Internal Files
      • Expected result:
      • It’s possible to preview xml files.
    • Case 2
      • Operations Portal:
      • Order, Cash-Quote, Quote → Customer Files.
      • Order, Cash-Quote, Quote, Vendor Invoices →
      • Internal Files
      • Expected result:
      • It’s possible to preview json, xml files.
      • It’s possible to side view xml, csv, tsv files.
  4. KOD-25501: Scope Testing National Flow
  5. KOD-26824: Trending Stats replacing Business System Events
  6. KOD-26855: Kodaris - Apply no-index
  7. KOD-26868: Global parser From Ticket 29257
  8. KOD-26921: Master order/budgets - Add ability to create budget from quote in customer portal
    • Regression Tests
    • Case 1
      • Go to the operations portal → companies.
      • Locate your company and click on the button to generate a quote. Generate some quotes, ensuring they are created successfully (a new screen with the quote appears).
    • Tests
    • Case 1
      • Go to the operations portal → companies.
      • Locate your company and click on the button to start a quote.
      • When the new quote screen opens, fill the location type, and endDate. Then click the button to setup a location.
      • Login to the website with your company and open swagger and find this endpoint: /api/account/companyAddressBudget/quote/\{quoteID}.
      • Post using the number of the quote you created. You should get a 200 (budget created).
  9. KOD-26922: Master order/budgets - Scope budgets at the company level
    • Tests
    • Case 1
      • Validate company budget calculation is still working as expected when hit the new endpoint POST -/api/system/companyBudget/company/{companyID}/{companyBudgetID}/calculate which is about calculating budgets solely based on company (the ones created from Company Budgets screen).
      • Pre-requirements:
      • To have at least one order whose status matches the company "Budget Restriction Type" field value and its invoiced date (extra3 field) must be between CompanyBudget Start Date and End Date.
      • A budget created based solely on a company.
      • Steps:
      • From Kodaris operations portal go to Company Budgets screen and create a new budget without Company Address and with type Total Spend (The companyBudget must have Start Date and End Date)
      • Go to swagger and look for an endpoint POST /api/system/companyBudget/company/{companyID}/{companyBudgetID}/calculate in the Company Budget API.
      • Pass the company and budget ids and then click on Execute.
      • Go back to the Company Budgets screen.
      • If refresh, you will see screen you must see that the Parent Budget’s Current Spend Amount field is equals to the total of your order (or the total of all you’re implied order together) and the in the line items, this line items will be the total by products, total in taxes and total discounts.
  10. KOD-27038: Remove business event
  11. KOD-27046: System Fails to Send Email
  12. KOD-27058: How to delete custom columns added in the Customer Portal
  13. KOD-27083: Guest checkout text update
  14. KOD-27166: Request Payment in CSD
    • Regression Tests
    • Case 1
      • Make sure that the COD payment flow still works as expected without issues.
    • Tests
    • Case 1
      • The COD payment flow should now have the correct surcharge messaging (if that is turned on) and the thank you page should display the receipt as well as surcharge messaging there as well.
  15. KOD-27195: Kitbuilder - Set up all three product options and rules
  16. KOD-27243: Block selection of a Kodaris only parent account
    • Regression Tests
    • Case 1
      • Check that the product is added to the cart correctly, the cart page opens without the popup if the customer has selected a company which is not a Kodaris only parent company. (Kodaris only parent company does not have parent company and trendCompiledSettings, in the videos the company criteria is a bit different, but the example will work).
    • Tests
    • Case 1
      • Check that the customer, with the selected company being a Kodaris only parent company, when navigating to cart, opens a pop-up window.
      • Check that the pop-up window contains functionality that allows you to change the company. Check that the company change works correctly.
      • Check that the pop-up window is displayed correctly on different screen widths, the layout does not break.
      • Check that the popup text is translatable.
  17. KOD-27268: Permissions - Tickets assigned to user
    • Regression Tests
    • Case 1
      • Open swagger, check endpoints with:
      • /api/system/ticket/{ticketID}/settings
      • Do the same tests from Case 1, using profiles ticketSettingView and ticketSettingEdit.
      • GET /api/system/ticket/{ticketID}/settings
    • Case 2
      • Open swagger, check endpoints with:
      • /api/system/ticket/{ticketID}/customerFile
      • Do the same tests from Case 1, using profiles ticketCustomerFileView and ticketCustomerFileEdit.
      • GET /api/system/ticket/{ticketID}/customerFile/list
    • Case 3
      • Open swagger, check endpoints with: /api/system/ticket/{ticketID}/internalFile
      • Do the same tests from Case 1, using profiles ticketInternalFileView and ticketInternalFileEdit.
      • GET /api/system/ticket/{ticketID}/internalFile/list
    • Case 4
      • Open swagger, check endpoints with:
      • /api/system/ticket/{ticketID}/emaill
      • Do the same tests from Case 1, using profiles ticketEmailView and ticketEmailEdit.
      • GET /api/system/ticket/{ticketID}/email/list
    • Tests
    • Case 1
      • Add permissions ticketViewAssigned and ticketEditAssigned for an employee with no other permissions.
      • Only for POST, the permission is ticketEdit.
      • Assign a ticket to this employee.
      • You should be able to execute all CRUD methods from:
      • /api/system/ticket/{ticketID}
      • GET, PUT, PATCH, DELETE /api/system/ticket/{ticketID}
      • POST /api/system/ticket
      • LIST /api/system/ticket/list
    • Case 2
      • Using another ticket with no assign to the employee. Do the same tests from the previous test case, except LIST.
      • You should not be able to execute.
  18. KOD-27323: Add a new endpoint to update pricing configuration instead of running daily job
  19. KOD-27351: First Name, Last Name and Position Fields
    • Tests
    • Case 1
      • Preconditions: Customer missing First Name/Last Name/Position.
      • Login to the application as a customer.
      • Navigate to any page.
      • Expected result: Popup with First Name, Last Name, Position fields should appear.
      • Make sure that the fields correspond to those filled in on the operations portal.
    • Case 2
      • Open popup with missing fields.
      • Leave one or several fields empty.
      • Click "Save & Continue".
      • Expected result: empty field should highlight in red with error message "field is required"
    • Case 3
      • Open popup with missing fields.
      • Fill all required fields with valid data.
      • Click "Save & Continue".
      • Expected: Popup should disappear immediately and the data must be saved on the server.
      • Refresh the page.
      • Expected: Popup should NOT reappear (profile now complete).
  20. KOD-27381: Delivery Address Not Populating
  21. KOD-27401: Vendor Invoice Parser
  22. KOD-27404: Implement Consumer Returns Process
    • Regression Tests
    • Case 1
      • Make sure you can still submit a Return on the consumer flow without issues.
    • Tests
    • Case 1
      • Submit a consumer return, one with all the items on the order and one with only some items on the order.
      • After submitting, both should display the correct amount of items.
  23. KOD-27444: Parser - Missed last line of PO
  24. KOD-27457: Fraud detection - Hold suspicious orders to release to ERP - UX
    • Regression Tests
    • Case 1
      • Check that the Fraud Configuration page looks good.
      • Check that the Fraud Сonfiguration page allows you to change the settings values. The values ​​are saved after refreshing the page.
      • Check that there are no errors in the console.
    • Tests
    • Case 1
      • Check that the “Hold Suspicious Orders“ field appears on the Fraud Configuration page.
      • Check that the field accepts only integer and floating point values.
      • Check that the field saves the entered value.
      • Check that after entering the value and saving the changes - the same value is specified in the fraudDataKodarisHoldThreshold setting.
  25. KOD-27460: UX updates for fetching order from SX directly to call in js interceptor
  26. KOD-27471: AP-Invoice Parsing for New Vendor
  27. KOD-27472: Parser
  28. KOD-27483: Tariffs on website
  29. KOD-27488: Import Invoice and Statements email addresses
  30. KOD-27492: Retail Price Issue Created From Ticket 33040
  31. KOD-27499: Ship-to is not matching pdf Created From Ticket 33074
  32. KOD-27500: Parser From Ticket 33068
  33. KOD-27503: Modifying shipto API data
  34. KOD-27510: Parser update from Ticket 29257
  35. KOD-27512: Implementation - Install Applications
  36. KOD-27514: Fields update on the Orders/Cash Quotes screens
    • Tests
    • Case 1
      • Enter the Operations Portal, and open the Orders page.
      • Open an order, then click the Items tab.
      • In the grid, click to Show / Hide Columns.
      • The dropdown should not display any options for General Ledger fields.
      • It should not display an option labelled Department either.
      • Instead, it should display a Customer Department label. Select it.
      • Check the grid: it should display a column labelled Customer Department.
    • Case 2
      • Enter the Operations Portal, and open the Cash Quotes page.
      • Open a quote, then click the Items tab.
      • In the grid, click to Show / Hide Columns.
      • The dropdown should not display any options labelled Project or Project Urgency Level.
      • Instead, it should display the Customer Project and Urgency labels. Select them both.
      • Check the grid: it should display these just selected columns.
  37. KOD-27517: Add startEventDate and endEventDate to content pages
    • Tests
      • Case 1
      • Go to content page API: /api/system/contentPage
      • Create some content pages with fields startEventDate and endEventDate, the format for both should be like this: “2025-09-02 15:30:47" (do not use other formats, they won’t work).
      • Then, run some updates (PATCH), and also GET/LIST.
      • You need to ensure that:
      • You can find new fields startEventDate and endEventDate. For those that you set a new value for , you should get the field filled.
  38. KOD-27520: AP: Credit Memo
  39. KOD-27521: AP French Language Invoices Created From Ticket 33340
  40. KOD-27527: Add "refer" to Filters in Pricing: Created From Ticket 19387
  41. KOD-27532: Kodaris - Company Imports: add companyCanUseCreditCards settings to be importable
  42. KOD-27536: Email Translation Questions
  43. KOD-27540: New user role needed updates from Ticket 29927
    • Regression Tests
    • Case 1
      • Go to the customer portal. search for any products. Check if the list is displayed as expected, without the Remove button.
    • Case 2
      • Make sure you have a companyAdmin or companyCatalogEdit role.
      • Go to the catalogs screen. Check if you can see catalogs as expected.
    • Case 3
      • Click the View button for any company catalog. Check if it is displayed as expected.
    • Tests
    • Case 1
      • Make sure you have a companyCatalogEdit role and do NOT have a companyAdmin role.
      • Go to the catalogs screen. Check if there is "Add Catalog" button for company catalogs. Try to add a new catalog here.
    • Case 2
      • Open a new catalog. Check if you see the same text as with the companyAdmin role. Go to products and add some for new catalog.
    • Case 3
      • Go back to the catalog that you created. Try to remove some products that you added here.
    • Case 4
      • On the top right corner of the company catalog click "Action/Delete." Check if that catalog was deleted.
  44. KOD-27543: Add the ability to copy prices for Cash Quotes
    • Tests
    • Case 1
      • For this test, we have to go to the Cash Quotes screen in the operations portal and select a Cash Quote.
      • Add some items to your cash quote, preferably one that has a price greater than 0.
      • Now, we will change the Sell Price of the item to anything different than original.
      • That should mark the Hand Priced field on the item to true.
      • If you open the Copy modal, you should see a checkbox for “Copy pricing”.
      • If you click on that checkbox and click on the Copy button, you should see the flag “withPricing” being sent as “true”, otherwise it should be false.
      • You should be taken to a new Cash Quote which is a copied version of the original one you were on.
      • If you check the line items, you should see the Hand Priced field on the item should also be true for this line item.
    • Case 2
      • For this case, we will repeat the steps of the last case but we won’t check the Copy pricing box.
      • Make sure the withPricing flag is being sent as “false”.
      • Even when in the original quote the item had its “Hand Priced” field set to true, if we don’t check the box the value of that field in the new Quote line item should be false.
  45. KOD-27552: Note in CSD not on Invoice from Kodaris
    • Regression Tests
    • Case 1
      • Make sure that the Order PDF, Order Email, and Order Details still work as expected without issues.
    • Tests
    • Case 1
      • For the order in the description, check that the notes are now showing on each template.
  46. KOD-27558: Parser Invoice
  47. KOD-27559: Parser Invoice
  48. KOD-27560: Invoice Parser
  49. KOD-27569: Update all active records with vendor numbers
  50. KOD-27570: Update comment format From Ticket 27573
  51. KOD-27572: Parser fix From Ticket 27562
  52. KOD-27575: Copy Over Saved Quantities & Notes when Adding All to Cart
    • Tests
    • Case 1
      • Open the website.
      • Navigate to Catalogs.
      • In both Customer and Company catalogs, do the following:
      • Change the quantity of any product and add a note if it is missing.
      • Click Actions -> Add all to cart.
      • Go to the cart and verify that the products were added with the correct quantities and notes.
  53. KOD-27578: CMS Update
    • Regression Tests
    • Case 1
      • Confirm that when a page is updated in the editor, the changes will be reflected on the live site.
    • Case 2
      • Confirm that when the content of a page is updated in a translation for another language, the changes will be reflected on the site.
    • Case 3
      • Confirm that we can switch between languages and the content will change accordingly.
  54. KOD-27579: Product page optimization - H3 headers should have same font weight as H1
    • Tests
    • Case 1
      • Enter the commerce site, and open a product page.
      • It should display the "Purchase" and the "Product Attributes" headings both with the same font weight as the product name heading.
      • To double check this, right click the product title, and select to Inspect.
      • In the Elements tab, check the product title element: it should be a h1 tag.
      • Click this h1 tag to select it, then in the Styles, click the Computed tab and check the font-weight attribute: it should be 400.
      • Do the same check for the "Purchase" and the "Product Attributes" headings: both should be h3 tags, with the font-weight attribute value equals to 400.
  55. KOD-27580: Update Blog Template to include Page Content
  56. KOD-27582: Implementation - Branding
  57. KOD-27583: country and state changes
  58. KOD-27585: Implementation - Countries / States
  59. KOD-27587: Add ability to select all and/or add all to cart to company catalog ux to base repo
    • Regression Tests
    • Case 1
      • Open the website.
      • Log in.
      • Navigate to the catalogs (check both company and customer catalogs).
      • Select any catalog.
      • In Company Catalogs, the user should not be able to perform any of the following actions: [Edit, Delete, Export Price List], unless they have the following setting: customerCanModify (companies screen in the operations portal → your category → Edit Category → customer can modify: false) and permission: companyAdmin.
      • In Customer Catalogs, the user should not be able to perform any of the following actions: [Edit, Delete], unless they have the following setting: customerCanModify (customers screen in the operations portal → your category → Edit Category → customer can modify: false).
    • Tests
    • Case 1
      • Open the website
      • Log in.
      • Navigate to the catalogs (check both company and customer catalogs).
      • Select any catalog
      • Click the Actions → “Add all to cart” button and check that all products from the catalog have been added to “My cart”.
      • Verify that the user sees the correct button state.
      • If requests are still being processed, the button should display “Adding to Cart…”.
      • Once the requests are completed, it should display “Added” and the dropdown should close.
      • On the next click on the actions button, the initial state “Add all to Cart” should be displayed again.
      • Verify mobile view.
    • Case 2
      • Open the website.
      • Log in.
      • Navigate to the catalogs (check both company and customer catalogs).
      • Select any catalog.
      • Click the “Add all to cart” button.
      • Open DevTools → Network tab.
      • Right-click on the relevant request.
      • Select Block request URL.
      • Click the “Add all to Cart” button again, the request should be blocked, and an error should appear.
      • Verify all related requests and ensure proper error handling is triggered.
    • Case 3
      • Open the website.
      • Navigate to Catalogs.
      • In both Customer and Company catalogs, do the following:
      • Change the quantity of any product and add a note if it is missing.
      • Click Actions -> Add all to cart.
      • Go to the cart and verify that the products were added with the correct quantities and notes.
  60. KOD-27592: Attach Avalara System Events to an Order
    • Regression Tests
    • Case 1
      • Setup global setting taxEngine to Avalara(where Avalara is configured) and verify tax calculation still working as expected (from the Operations Portal - calculate totals on order and from Cart - proceed to Checkout step.
    • Tests
    • Case 1
      • Setup global setting taxEngine to Avalara and verify request/response to Avalara are saved as System Event (in global System events screen and under System events tab of your particular order).
  61. KOD-27593: Add Return Templates
    • Regression Tests
    • Case 1
      • Check that the order templates still work as expected:
      • Order Email
      • Order PDF
      • Order Details
    • Tests
    • Case 1
      • Check that now when you generate an email, pdf or the order details for a return, the order template shown now has return info.
      • The label should be ‘Return’ and each order item should now show the Return Reason and Return Comment if it exists.
  62. KOD-27595: Extend getFileExtension support for advanced MIME types
    • Regression Tests
    • Case 1
      • Confirm that the page and the form on the career.ejs template page load without errors.
    • Case 2
      • Confirm that if you try to attach a file with an unsupported extension, the user will not receive it in the email.
    • Case 3
      • Confirm that the file extension will be the same as the one you sent.
    • Tests
    • Case 1
      • Confirm that we can attach files to the form and that they will be sent along with the email as actual files. Confirm that this will work with PDF, image, .docx, and .doc file extensions.
  63. KOD-27596: New Customer Form
  64. KOD-27602: Kodaris - Support TSV format as Internal File Type
  65. KOD-27603: Parser From Ticket 33802
  66. KOD-27605: Parser request From Ticket 33744
  67. KOD-27609: Single Word Text Search
  68. KOD-27610: Attach Vertex/Sovos System Events to an Order
    • Regression Tests
    • Case 1
      • Setup global setting taxEngine to Sovos (env where Sovos is configured) and verify tax calculation still working as expected (from the operations portal - calculate totals on order and from Cart - proceed to Checkout step.
    • Case 2
      • Setup global setting taxEngine to Vertex (env where Vertex is configured) and verify tax calculation still working as expected (from the operations portal - calculate totals on order and from Cart - proceed to Checkout step.
    • Tests
    • Case 1
      • Setup global setting taxEngine to Sovos and verify request/response to Sovos are saved as System Event (in global System events screen and under System events tab of your particular order).
    • Case 2
      • Setup global setting taxEngine to Vertex and verify request/response to Vertex are saved as System Event (in global System events screen and under System events tab of your particular order).
  69. KOD-27613: Skip second tab during the PunchOut checkout
  70. KOD-27614: Confirm UX has punchout updated layout
    • Regression Tests
    • Case 1
      • Сheck that the order is created successfully (by guest | user).
      • Сheck that the checkout page layout looks correct.
      • *Сheck that there are no errors in the console while on the checkout page.
    • Case 2
      • In the cart:
      • When checking out normally (for users who don't use the Punchout feature),
      • Make sure you see the navigation buttons at the top. Clicking on each one will take you directly to the corresponding tab.
      • The Next and Previous buttons should work without any issues and not skip the second Location tab.
    • Tests
    • Case 1
      • Check that when a guest logs in, the “Pay with Punchout” section is not displayed on the checkout page
      • Check that when a user logs in and cartService.isPunchOut() is enabled, the “Pay with Punchout” section appears on the checkout page
      • Check that when clicking on “Place Order” in the “Pay with Punchout” section, a request is sent to /api/account/punchOut/cart
      • Check that there are no errors in the console when clicking on “Place Order” in the “Pay with Punchout” section.
      • Check that if Punchout is enabled, the checkout transition occurs from tab 1 to tab 3 and 2 tab is skipped.
  71. KOD-27621: Localize "Add to Quote" and "Add to Cart" buttons
    • Tests
    • Case 1
      • Open the website.
      • Log in.
      • Navigate to any category.
      • Verify that the "Add To Quote" and "Add To Cart" buttons are displayed with French translation.
      • Check the buttons in Quick Order.
      • Check the buttons on the product detail page.
  72. KOD-27622: Implementation - Configure Customer Portal
  73. KOD-27628: Push orders to ERP
  74. KOD-27638: Order confirmation email template update
    • Regression Tests
    • Case 1
      • Make sure the Order PDF, Order Email, and order details in the customer portal still work correctly without issues.
    • Tests
    • Case 1
      • On all the order templates, check that the Terms text now doesn’t have the bad character (?) and that the extra unit of measure is gone from the Unit Price on the items.
  75. KOD-27646: Update templates to display the external product code
    • Regression Tests
    • Case 1
      • Make sure that the Order PDF, Order Email, and customer portal order details still work as expected without issues.
    • Tests
    • Case 1
      • On a Cash Quote generate the order email, pdf, and customer portal details.
      • Check that if the Product Type field is set to Product Line and the externalProductCode field is populated, then that value will show for the item code instead of the Code field value.
    • Case 2
      • On a normal order (without Product Type and external product code populated) check that the normal item code is displayed for each item.
  76. KOD-27651: Parser update From Ticket 31527
  77. KOD-27654: Issue with Quick Order on Kodaris Employee App Created From Ticket 34094
  78. KOD-27670: Kodaris-Fix Failed Email Sending
    • Regression Tests
    • Case 1
      • Turn ON global setting - isEmailSendingFromJob and test sending regular email, like order confirmation email or any type of subscription event emails.
    • Case 2
      • Turn ON global setting - isEmailSendingFromJob and test re-sending existing emails.
    • Tests
    • Case 1
      • Turn ON global setting - isEmailSendingFromJob and test re-sending failed email from EmailSendingJob.