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

November 27, 2025 release notes

Tickets

  1. KOD-24408: Templated orders
    • Regression Tests
    • Case 1
      • For the regression test, we will navigate to the following pages. Make sure they load properly:
      • Home Page (or any page where the header is included).
      • Cart page, on all three tabs.
      • Catalogs screen.
      • Company Catalogs details screen.
      • Customer Catalogs details screen.
      • Product List screen.
      • Product details screen.
    • Tests
    • Case 1
      • For this test, we need to check that the “Catalog” text has been replaced with “Order Templates” in the following places:
      • Header.
      • Left to Order History Status.
      • Logged-In: Next to Shop By Category.
      • Logged-In: Mobile menu, next to Order History Status.
      • Cart.
      • Actions dropdown.
      • Both modals.
      • /catalogs route
      • h1 h2 titles and paragraphs in both General and “My” section.
      • Add buttons.
      • Inside both “Add” modals.
      • /company-catalog details screen.
      • Breadcrumb.
      • Edit modal title.
      • Delete modal title and in the paragraph in 3 places.
      • /customer-catalog details screen.
      • Breadcrumb.
      • Edit modal title.
      • Delete modal title and in the paragraph in 3 places.
      • Product.
      • Details page productList “Add to Order Template” button in both grid and list views.
      • Make sure that when you click the button to Add, after the spinner disappears the text shows “Add to Order Template” again.
  2. KOD-25067: Integration
    • Regression Tests
    • Case 1
      • You need to perform a regression on the pricing screen in the operations portal.
    • Case 2
      • You need to perform a regression by releasing any order.
  3. KOD-26489: Payments - Canadian EFT
  4. KOD-26664: Business Central Integration
  5. KOD-28331: Customer Group Roles Issues
    • Regression Tests
    • Case 1
      • Check permission of page: http://localhost:8080/spcu/catalogs , try to check whether the button “add catalog“ appears when you have the right permission.
      • When we are assigning the “ companyAdmin “ role directly to the customer, the button “add catalog“ should appear.
      • When we are assigning a customer permission group which includes the role: “ companyAdmin “.
      • Go to page: http://localhost:8080/operations/customers/1024/group-roles and assign group: “ testCatalogGroup “ which has role: companyAdmin.
      • After assigning testCatalogGroup will automatically assign the companyAdmin role.
      • Then again check page: http://localhost:8080/spcu/catalogs whether button is appears on the current page.
  6. KOD-28457: CC payment type for web customer order
  7. KOD-28522: B2B tax validation with multiple customers (SASGE rules) Created From Ticket 32296
    • Regression Tests
    • Case 1
      • Have the new setting avataxRecalculateTaxabilityOnItemsForSpecialAddressCode disabled and taxEngine = Avalara.
      • Create an order and make sure you receive taxes from Avalara during checkout at this step:
      • Validate that no error appears on the screen or in the logs.
    • Tests
    • Case 1
      • Enable the new setting avataxRecalculateTaxabilityOnItemsForSpecialAddressCode.
      • Make sure also that the taxEngine setting is Avalara.
      • Follow the example on the video and validate the tax now is correct. In the logs you should be able to see the SASGE lines checked by the state used during the checkout process.
      • Do not create an order. We only need to validate taxes during checkout at step 3.
      • Steps:
      • Use credentials provided and add items to the order.
      • Use one single order address.
      • Select the corresponding state
      • Make sure that when moving from step2 to step3 we are taking that state into account when calculating taxes (In the logs we should see something like:
      • [JS] SASGE not found with shipto and state. Looking in SASGE table without shipto for code .. )
      • Also, based on the customer, one specific item is marked as non taxable using the SASGE records so we should not take that item into account during tax calculation on Avalara (Compare the cases that customer shows in the video).
  8. KOD-28585: Store Credit Batch Out Enhancement
  9. KOD-28623: Maintain the currency field on the payment records
  10. KOD-28781: Limit Characters in PO field on checkout
    • Regression Tests
    • Case 1
      • Please check if all 3 checkout pages look as usual.
    • Case 2
      • Please test that the PO input field works as usual and we can place the order.
      • Please check if the PO value is correct.
  11. KOD-28811: ERP User Credentials
  12. KOD-28822: Active field Integration with ICSP
  13. KOD-28828: PO field limit Created From Ticket 41730
    • Tests
    • Case 1
      • Enable inforEnablePurchaseOrderCharacterLimitExceptionOnOrders setting.
      • Open any order.
      • Put more than 22 chars on the Purchase Order field.
      • Go to /api/system/order/{orderID}/discrepancies endpoint.
      • Execute it.
      • You should see EXCEPTION in the result.
      • Also, do next:
      • Test exactly 22 chars. You should not see EXCEPTION.
      • Test 23 chars, You should see EXCEPTION.
      • Exception:
      • {
      • "success": true,
      • "code": 200,
      • "messages": [],
      • "errors": [],
      • "data": {
      • "exceptionCount": 1,
      • "warningCount": 0,
      • "order": [
      • {
      • "code": null,
      • "entityType": null,
      • "entityID": null,
      • "field": "purchaseOrder",
      • "type": "EXCEPTION",
      • "message": "Value exceeds the maximum ERP length"
      • }
      • ],
      • "orderItems": [],
      • "orderDiscounts": []
      • },
      • "requestId": "7OAYUZ-20251124225736"
      • }
    • Case 2
      • Disable inforEnablePurchaseOrderCharacterLimitExceptionOnOrders setting.
      • Open any order.
      • Put more than 22 chars on the Purchase Order field.
      • Go to /api/system/order/{orderID}/discrepancies endpoint.
      • Execute it.
      • You should not see any errors.
  14. KOD-28829: Add campaign UX update to web repo
    • Regression Tests
    • Case 1
      • Log out of the operations portal.
      • Go to any category page on the commerce site.
      • Verify that the Actions dropdown button does not render.
      • Log in to the operations portal.
      • Go to any category page on the commerce site.
      • Verify that the Actions dropdown button now renders.
      • Click Manage Category.
      • Verify that a dialog opens.
      • Make changes and save.
      • Verify that the changes are applied successfully.
    • Tests
    • Case 1
      • Log in to the operations portal.
      • Go to any category page on the commerce site.
      • Verify that the Actions dropdown button renders.
      • Verify that it contains two options: Manage Category and Create Campaign.
      • Click Create Campaign.
      • Verify that a dialog opens.
      • Enter a name and description, then save.
      • Verify that it successfully creates a public campaign using the correct endpoint.
      • Verify that the success dialog renders with the correct information.
  15. KOD-28840: Update product attribute cache when user updates order fields in the operations portal
    • Regression Tests
    • Case 1
      • Select or create some filter category on page: http://localhost:8080/operations/filter-categories.
      • Go to the selected filter category → go to the attribute tab → create an attribute record and assign some products.
      • Then change one of the current fields: code, name. order.
      • Go to the event list page: http://localhost:8080/operations/events/all , try to find the last new event with type: EventQueue-CategoryProductsReindexEvent.
      • The event contains categoryID of changed filter category attribute.
      • Go to Scheduler page: http://localhost:8080/operations/scheduler and run SolrReindexJob
      • On all products which are assigned to the filter category attribute will update the field: lastModified and the event mark as completed.
      • To check result please go to page: http://localhost:8080/operations/products/data/9904/custom-records , select updated attribute and go to terminal section of browser to find response of GET endpoint: http://localhost:8080/api/system/productDocument/9904/list to check whether updated the fields: code, name or categoryOrder.
    • Case 2
      • Try to update field: position for selected filter category, on page: http://localhost:8080/operations/filter-categories
      • Select some product which is assigned to the filter category and check whether it is updated on product.
  16. KOD-28847: Credit App - Add additional company fields to credit app dto
    • Tests
    • Case 1
      • Check whether it populates the new field: website on company side after populating it on credit application page.
      • Use swagger PATCH endpoint: api/account/creditApplication.
      • Check whether it populated on the company side on the operations portal.
  17. KOD-28881: Implementation Created From Ticket 42094
  18. KOD-28889: Add social link options for Instagram
    • Regression Tests
    • Case 1
      • For the regression test, make sure opening the Themer and changing the value of the storeInstagramURL setting doesn’t break the page.
    • Tests
    • Case 1
      • To test this ticket, you need to log into the operations portal.
      • Go to settings and make sure there is a storeInstagramURL setting created.
      • Still logged in, we will now go to the commerce site. Open the Themer component and scroll down to “Socials”. You should now see a field to enter an Instagram link.
      • Its value should always match the value of the setting after updating and reloading.
      • Now, if we scroll down to our page footer, you should see an Instagram icon next to the YouTube icon. Clicking it should redirect you to the link in the setting value.
      • When there’s no value in the setting, the Instagram icon should remain hidden.
    • Case 2
      • We will repeat the test cases of the previous test but now on a Blog Post page.
  19. KOD-28897: Events with Active set to "No" are still showing on website
    • Regression Tests
    • Case 1
      • For this test, we need to make sure that the events page in the commerce sites loads properly and that each event redirects you to its respective page.
    • Tests
    • Case 1
      • For this test, we need to go to the commerce site - Events screen.
      • You should only see events for Child pages from the Events Calendar page that are set to Active=Yes in the operations portal.
      • Child pages from the Events Calendar page that are set no Active = No should not be displayed.
  20. KOD-28898: Order Checkout Flow - Pickup/Contact Person
    • Tests
    • Case 1
      • For this test, we will go to the cart screen in the commerce site after we’ve added an item.
      • Above the Order Notes field, the new legend should say “Please list the name and phone number of the person we can call to ask any questions related to this order. You may also use this space to add notes or questions for our team.”
      • This should ideally fit in one line on regular desktops and break to two lines on tablets to lower width devices.
  21. KOD-28910: Pricing Discrepancies
  22. KOD-28914: Update to Customer Guide UX to hide the box if only one option is available
    • Regression Tests
    • Case 1
      • Make sure that the first step of checkout works without any bugs and errors for logged in users.
    • Tests
    • Case 1
      • Log in as a customer to the commerce site, add some items to the cart and proceed to checkout. The guide box behavior has been updated to follow these 3 cases:
      • If there already is a guide in the cart - show the “Remove option“.
      • If the user has already acquired one guide - hide the guide box, even if the other guide is available.
      • If the user can select both guides - show both options.
  23. KOD-28918: Have Storeroom Fields Selected on Cash Quote Persist
    • Regression Tests
    • Case 1
      • Go through the checkout flow and make sure everything works correctly both for spot buys and normal orders.
      • You should be able to add/edit information on the final checkout tab without issues along with placing the order.
    • Tests
    • Case 1
      • Create a spot buy order, add information to the following fields on the item in the operations portal:
      • Department
      • Gl Account
      • Customer Asset
      • Work Order Number
      • Then put the order in your cart as a customer, and then on the final checkout tab, check that you can see this information.
    • Case 2
      • After the previous step, continue to place the order. Check that everything works correctly without issues.
  24. KOD-28919: Update Terms on Credit App
    • Regression Tests
    • Case 1
      • Apply for a credit or use an existing account.
      • Confirm credit application loaded properly.
    • Tests
    • Case 1
      • On a credit application, clear out preferred payment method options.
      • Scroll to the signature section.
      • Confirm COD terms are displayed.
      • Select Credit Account option from the dropdown.
      • Scroll to the signatures section.
      • Confirm Credit Account terms are displayed.
      • Select COD/CASH option and scroll to the Signature section.
      • Confirm COD terms are displayed.
  25. KOD-28921: Limit PO characters at checkout
    • Regression Tests
    • Case 1
      • Make sure the PO input on the third step of checkout works fine and you can still checkout with a PO that is less than 21 characters.
    • Tests
    • Case 1
      • On the third page of checkout, type a PO that is more than 21 characters → try to checkout → you should not be able to checkout and get a message saying that the PO needs to be less than 21 characters.
    • Case 2
      • On an order, enter a PO longer than 21 characters. Reload the page and notice the PO has been trimmed to 21 characters.
  26. KOD-28942: Parser from ticket 42685
  27. KOD-28943: Parser request
  28. KOD-28946: Parser request
  29. KOD-28956: Parser update
  30. KOD-28978: Parser from Ticket 32140
  31. KOD-28983: Implementation
  32. KOD-29016: Payments update