All Releases
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

May 2, 2024 release notes

Highlights

Operations Portal

Create customer group roles and assign the groups to customers

You can now create role groups within the Operations Portal and assign them to customers. This is particularly helpful if users need multiple capabilities or roles within the portal related to the same function. This can also come in handy if, for example, you need to limit a user to only having View permissions versus having editing and deleting permissions. You can add all View capabilities to one group, then assign that group to your customer instead of separately assigning all individual View roles that user.

This feature will save time because it allows you to create groups upfront and add any number of roles to a group instead of adding individual roles to a user’s account. It will also allow you to better organize users’ roles within the Operations Portal.

See how you can create role groups and assign them to users in this video.

https://youtu.be/UYy5URDV1WM

Tickets

  1. KOD-17463: Allow the employee to choose the first and second level filter groups
    • Regression Tests
    • Case 1
      • Make sure the product list pages still look fine as an employee and as a non-employee user.
    • Case 2
      • Logged in as employee:
        • Make sure the Manage Category button and popup work correctly, click around, make sure it looks normal.
        • Can also test setting up a banner to make sure that still works.
    • Tests
    • Case 1
      • Logged in as employee:
        • Check that the filter groups section is added to the manage category popup.
  2. KOD-17534: Impl - Commerce - Pricing
  3. KOD-17539: Impl - Checkout - Taxes
  4. KOD-17611: Check on Employee App to Be Able to Manage Activities
  5. KOD-17797: Kodaris Demo - Add Group, Company, & Customer Catalog Featureset
    • Regression Tests
    • Case 1
      • As customer and guest user:
        • Go to Category page.
        • Make sure layout is not broken and looks the same as previously.
    • Case 2
      • As customer and guest user:
        • Go to Search page.
        • Make sure layout is not broken and looks the same as previously.
    • Case 3
      • As customer and guest user:
        • Go to Product page.
        • Make sure layout is not broken and looks the same as previously.
    • Tests
    • Case 1: As a customer:
      • Go to the View All catalogs page and make sure all the catalogs are there.
        • Customer Catalogs
        • Company Catalogs
        • Company Group Catalogs
    • Case 2: As a customer:
      • Go to View All Catalogs page.
      • Make sure you can see “Add“ button.
      • Click on “Add“ button.
      • Make sure you see modal that allows to create new catalog.
      • Choose parent catalog, enter name and description and click “Add“ button.
      • Make sure you redirected on newly create catalog page.
      • Note: If user doesn’t have “companyAdmin” role, they should only be able to add a customer catalog not company.
    • Case 3: As a customer:
      • Go to a Catalog.
      • Make sure you can see “Edit“ button in top right corner.
      • Click on “Edit“ button.
      • Make sure you see modal that allows to edit catalog.
      • Make sure all values in modal are the same as catalog data.
      • Change parent catalog, name or description and click “Update“ button.
      • Make sure modal is closed and all catalog data updated with your new values.
    • Case 4
      • As a customer without “companyAdmin” permissions, they should only be able to edit their own customer catalogs.
      • Same with adding items.
    • Case 5: As a “companyAdmin” customer:
      • Go to Category, Search, and Product pages.
      • Make sure you can see “ADD TO CATALOG“ dropdown instead of “ADD TO LIST“ in all products tiles.
      • Click on “ADD TO CATALOG“ and choose catalog you’d like this product to be added.
      • Go to Catalog to which you add a product and make sure product is successfully added.
    • Case 6: As a customer:
      • Go to a Catalog.
      • Make sure your can see “Remove“ button on all product tiles.
      • Click on “Remove“ button.
      • Make sure product has been removed successfully.
    • Case 7: As a customer:
      • Go to a Catalog:
      • Make sure you can see “Delete“ button in top right corner.
      • Click on “Delete“ button.
      • Make sure you are redirected on “View All Catalogs“ page.
      • Make sure your catalog was remove successfully.
    • Case 8: As a customer:
      • If the catalog has CustomerCanModify set to false, you shouldn’t be able to:
        • Edit
        • Add items
        • Delete
    • Case 9: As a customer:
      • When adding a product to the same catalog twice, there shouldn’t be an error.
    • Case 10: As a customer:
      • Make sure that the Company Group catalogs are not editable at all for any user.
      • They also shouldn’t be in the “Add to Catalog” dropdowns.
      • Same for Recently Ordered Catalogs.
  6. KOD-18166: Slow Data Tab Searching
  7. KOD-18345: Automatically Display Customer Cross References from the ERP to Customers
  8. KOD-18766: Shop by category dropdown - Menu creates whitespace at bottom of page
    • Regression Tests
    • Case 1
      • The Shop by Category menu should have no errors/issues.
    • Tests
    • Case 1
      • Shop by Category menus that are longer than the set height of the menu should be scrollable for user to see the list of categories. Please check for both 2nd and 3rd level menus.
  9. KOD-18844: Driver Delivery App - Add flavor for V3 DDA
  10. KOD-19207: Configure DO via the V4 endpoint
  11. KOD-19283: Issue w/ Images Automatically Pushing to IDM
    • Tests
    • Case 1
      • Go to the Operations Portal → Product → Detail → add Primary Images.
      • Verify Last Modified date from Product was updated correctly.
  12. KOD-19286: List Pricing Not Always Displaying
  13. KOD-19315: Brand page creation
  14. KOD-19360: Filter by inventory during search (P1. Indexing)
    • Regression Tests
    • Case 1
      • When a product is modified or added, the indexing process should still work fine.
    • Case 2
      • When a SKU associated with a product is modified or added, both the product and SKU should continue to work properly.
    • Case 3
      • SolrReindexJob should still work fine
    • Case 4
      • In the customer portal, you should verify that all types of searches work correctly:
        • byCategory
        • ByProduct with text
        • ByCategory with text
    • Tests
    • Case 1
      • If you have a product with an SKU associated and the SKU record has value in the next fields:
        • sku.inventoryLevel
        • sku.quantityReserved
        • sku.quantityCommited
        • sku.productId
        • sku.warehouseId
      • Then, if you modify some value in the product, when the reindex is triggered for that product, you should see new fields in the 'development' tab of that product.
        "inventoryByLocation": {
        "2554": 484,
        "52545": 82
        },
        "inventoryTotal": 566,
      • In inventoryByLocation , you will see the quantity of inventory for a specific SKU in a specific warehouse,and inventoryTotal should be the sum of all previous numbers of inventories by warehouses.
      • If the 'showAvailableInventory' setting is turned off, the inventory amount will always be based on the value in the 'sku.inventorylevel' field
      • If the 'showAvailableInventory' setting is turned on, to calculate the inventory for each warehouse, you must:
        • inventory = sku.inventoryLevel
        • sku.quantityReserved
        • sku.quantityCommited
    • Case 2
      • Now we need to check if the SolrReindexJob is reindexing all products that have an SKU modified after the product was reindexed. We can follow the setup from the previous test, but in this case, we will not modify anything in the product directly. We can stop the job previously mentioned above to ensure that it is not reindexing the product we want to test. Then, we should modify an SKU associated with a product. After waiting for a while, perhaps 31 minutes, we can run the SolrReindexJob and wait for the product associated with the modified SKU to be reindexed. To ensure accuracy, it's a good idea to modify some of the values previously mentioned, such as 'sku.inventoryLevel'.
      • The criteria for reindexing a product based on the SKU are:
      • sku.lastModified < currentTime - 30min
      • and sku.productId not null
      • Note: Ensure that you modify one of the fields related to inventory: quantityReserved, quantityCommitted, or inventoryLevel. Also, make sure that the job did not run after the product you want to test was modified.
    • Case 3
      • There are two new parameters added to the search and category endpoints to identify products with or without stock in a specific warehouse or any warehouse. To test this, please navigate to Swagger and try out the endpoint.: api/user/search/product/text and the endpoint: /api/user/category/code
      • For both endpoints, you must check the following behavior:
      • If inStock = true and warehouseCode is sent in, in addition to filtering on warehouse, also make sure the inventory level is greater than 0 on the filter.
      • If inStock = true, but no locations are sent in, check that inventoryTotal > 0
      • if inStock = false and warehouseCode, then check that you see products that has that warehouseCode associated, does not matter what quantity is there.
      • NOTE: After update, we can filter for one warehouse code at a time.
  15. KOD-19383: Direct Items Front End
    • Regression Tests
    • Case 1
      • We need to make sure that product list page and product pages are still working as expected.
    • Tests
    • Case 1
      • Now we will check the product list page view of direct shipped products.
    • Case 2
      • In this case we should check the checkout changes. If the cart contains an direct shipped item, the shipping label on order totals should say 'Charges Apply'.
  16. KOD-19464: Polish Category Grouping
    • Regression Tests
    • Case 1
      • Go to any category that has no "groupingEnabled" and "infinitePagingEnabled".
      • Ensure that the page looks and functions as expected.
    • Tests
    • Case 1
      • Go to any category that has "groupingEnabled" and "infinitePagingEnabled".
      • Ensure that you do not have the ability to group or ungroup products.
    • Case 2
      • Make sure you don’t have "companyAdmin" role.
      • Go to any category that has "groupingEnabled" and "infinitePagingEnabled".
      • Ensure that you do not have the ability to group or ungroup products.
    • Case 3
      • Login as a user with the companyAdmin role.
      • Go to any category that has "groupingEnabled" and "infinitePagingEnabled" and has no grouping applied.
      • Ensure that you have the ability to group and ungroup products.
      • Check the behavior of product loading.
      • Ensure that there are no flickers during the process.
      • Verify that product scrolling functions as expected.
    • Case 4
      • Login as a user with the companyAdmin role.
      • Go to any category that has "groupingEnabled" and "infinitePagingEnabled" and has grouping applied.
      • Ensure that you have the ability to group and ungroup products.
      • Check the behavior of product loading.
      • Ensure that there are no flickers during the process.
      • Verify that product scrolling functions as expected.
  17. KOD-19507: UX to View Status on Customer & Internal Files
    • Regression Tests
    • Case 1
      • On the operations portal navigate to activities screen.
      • Select any activity and confirm proper navigation to this screen.
      • Navigate through all tabs from this screen.
    • Case 2
      • On the operations portal navigate to Vendors screen.
      • Select any company and navigate to it’s invoices.
      • Select any invoice and navigate to the emails tab.
      • Confirm that emails tab opens properly.
    • Case 3
      • On the operations portal navigate to the products screen.
      • Select any product and upload internal file.
      • Confirm that file is uploaded.
      • Repeat steps for product data and product category assignment screens.
    • Tests
    • Case 1
      • On the operations portal navigate to the cash-quotes screen.
      • Select any cash-quote that contains any customer and internal file.
      • Navigate to the details page of this cash-quote.
      • Navigate to the customer files tab.
      • Add column status.
      • Confirm this column is read-only, not filterable and sortable.
      • Repeat steps for internal-files tab.
      • Navigate to the emails tab.
      • Select any email and navigate to it’s detail page.
      • Repeat steps for customer and internal files under emails.
    • Case 2
      • On the operations portal navigate to the companies screen.
      • Select any company with customer and internal files
      • Navigate to this company details page.
      • Navigate to the customer files tab.
      • Add column status.
      • Confirm this column is read-only, not filterable and sortable.
      • Repeat steps for internal-files tab.
      • Select Emails tab.
      • Navigate to any email under this company.
      • Repeat steps for selected email.
      • Navigate to the company address tab.
      • Repeat steps for selected address.
    • Case 3
      • Navigate to the categories screen.
      • Select any category.
      • Navigate to public files.
      • Add “Status” column
      • Confirm that status column is read-only, not filterable and not sortable.
      • Repeat steps for internal files.
    • Case 4
      • Navigate to the pages screen
      • Select any page and navigate to it’s details page.
      • Open public files tab.
      • Add “Status” column
      • Confirm that this column is read-only, not filterable and not sortable.
      • Repeat steps for page drafts, page-layouts screens.
    • Case 5
      • Navigate to the customer files screen.
      • Add Status column.
      • Confirm this column is read-only, not filterable and not sortable.
      • Repeat steps for internal files.
      • Navigate to the customer screen.
      • Select any customer.
      • Navigate to it’s details page.
      • Navigate to the customer files.
      • Repeat steps for this customer.
      • Repeat steps for delivery, email and employee screens.
    • Case 6
      • Navigate to the orders screen.
      • Select any order.
      • Navigate to the customer files tab.
      • Add “Status” column.
      • Confirm this column is read-only, not filterable and sortable.
      • Repeat these steps for internal files.
      • Repeat this test case for order-emails, quotes, purchase orders, summary orders and quote-emails screens
    • Case 7
      • Navigate to the tickets screen.
      • Select any ticket.
      • Navigate to the customer files tab.
      • Add “Status” column.
      • Confirm this column is read-only, not filterable and sortable.
      • Repeat these steps for internal files.
      • Repeat this test case for vendors, vendor-invoices, vendor-invoice-email screens
    • Case 8
      • Navigate to the Accounts-receivable screen.
      • Select any payment.
      • Navigate to the customer files tab.
      • Add status column.
      • Confirm this column is read-only, not filterable and not sortable.
      • Repeat steps for internal files.
      • Repeat this test case for products screen.
    • Case 9
      • Navigate to the media screen.
      • Add status column.
      • Confirm this column is read-only not filterable and sortable.
    • Case 10
      • Navigate to the jobs screen.
      • Select any lead detail page.
      • Navigate to the internal files tab.
      • Add status column.
      • Confirm this column is read-only, not filterable and sortable.
  18. KOD-19536: Figure out why we can't parse and save the order number from response
  19. KOD-19597: Enable Paying Orders w/ Saved Cards
    • Tests
    • Case 1
      • Check paymentMethodSubmitted field is added to /api/system/order/readDetails endpoint.
    • Case 2
      • Check paymentMethodSubmitted field is added to /api/system/vendorInvoice/readDetails/{vendorInvoiceID} endpoint.
    • Case 3
      • Check paymentMethodSubmitted field is added to /api/system/vendorInvoice/readDetails/{vendorInvoiceID} endpoint.
  20. KOD-19617: Add ability to send in warehouse code and in stock out of stock flags to company catalogs
    • Regression Tests
    • Case 1
      • We want to make sure that the new filters doesn’t affect the endpoint when we don’t send them.
      • Steps:
        1. Log in as a customer in the portal.
        2. Select any company catalog which is linked to the company for the current customer (If there isn’t any, we need to create one from Operations Portal→ Companies → Catalog)
        3. Confirm that you receive all products regardless of the warehouse and stock availability.
        4. Also validate the same requests but using swagger: /api/account/company/category
    • Tests
    • Case 1
      • When viewing company catalog for a logged in customer, include the new parameter "inStock" in the URL and corroborate that the products which appears are actually in stock or out of Stock (If the Sku inventory Level is grather than 0, it means in Stock)
      • Example of the URL: /company-catalog?code={companyCatalog}&inStock={booleanValue}
        • Send inStock in true and verify only products in Stock appear.
        • Send inStock in false and verify only products which has inventoryLevel in null or 0 appear.
    • Case 2
      • When viewing company catalog for a logged in customer, include the new parameter "warehouseCode" in the URL and corroborate that the products which appears are from the specific warehouse.
      • Example of the URL: /company-catalog?code={companyCatalog}&warehouseCode={warehouseCode}&inStock=false
    • Case 3
      • For this case we want to tests both parameters at the same time. For example, products for specific warehouse which are out of stock. In this case url would be: /{company-catalog?code={companyCatalog}&warehouseCode={warehouseCode}
    • Case 4
      • In this feature tests we want to corroborate exactly the same cases before (1,2 and 3) but using swagger.
      • Go to swagger and use the new parameters defined for:
      • /api/account/company/category
      • This will print an HTML so after executing it, we can copy the URL which appears under ‘Request URL’ title and paste in the browser.
  21. KOD-19639: Requested Field Updates
  22. KOD-19650: Bring Back Log In Dropdown
    • Regression Tests
    • Case 1
      • Check if the header is still functioning properly.
    • Tests
    • Case 1
      • Ensure that the link in the account section does not navigate the user to a separate page; instead, a login dropdown should appear. Test whether the links within it redirect users to the correct pages. Additionally, attempt logging in with both correct and incorrect login information.
  23. KOD-19653: Updates to Services Form
  24. KOD-19655: Add UX to view and assign group roles
    • Tests
    • Case 1
      • In Operations portal → Customers → click Customer Group Roles.
      • The page should have a table of Customer Permission Groups/Group Roles.
      • You should be able to add/edit/delete permission groups here.
      • You should be able to click on the > arrow of a permission group to go to the detail page.
      • The detail page has 2 tabs:
        • "Details" where you can edit/update details.
        • "Roles" where you can add/delete customer roles in the permission group.
    • Case 2
      • In Operations portal → Customers → click Customers.
      • Click on a sample customer. There should be a new tab called Group Roles where you can assign the customer a group role. You can also delete group roles here.
      • To access, you need to have either of the following roles: 'administrator', 'superuser', 'customerView', 'customerEdit'.
  25. KOD-19663: Hidden products
  26. KOD-19674: Add Internal Comments to PDF
  27. KOD-19676: Cookies issue investigation
  28. KOD-19686: Wrong prices for rebate records
    • Tests
    • Case 1
      • Test swagger endpoints:
        • POST: /api/system/rebate
        • GET: /api/system/rebate/{rebateID}
        • PATCH: /api/system/rebate/{rebateID}
        • DELETE /api/system/rebate/{rebateID}
        • POST: /api/system/rebate/list
        • After creating a few rebate records, utilize the endpoint:
        • POST: /api/system/rebate/export
      • This endpoint retrieves all records and saves them in a CSV file. Ensure that you remove fields from the "fieldsToReturn" parameter to return all columns in the CSV file.
    • Case 2:
      • Attempt to import the current rebate records into the database.
        • basicRebateUpload
        • basicRebateUploadUpdateOnly
        • basicRebateUploadCreateOnly
      • Use the current endpoint: /api/system/mapped/any/file/{mappingCode}/{importType}/{fileType}
  29. KOD-19688: Default view for certain categories
    • Regression Tests
    • Case 1
      • Open any category on the customer portal and ensure that it functions properly.
      • Open any category details page on the operations portal and verify that it works correctly.
    • Tests
    • Case 1
      • Make sure the required setting is created;
      • Confirm that the "defaultViewLayout" field is available on the operations portal. - present in GET endpoint, may be updated.
    • Case 2
      • Ensure that the value of the setting is included in the operations portal configuration endpoint.
  30. KOD-19708: PIM Integrations
    • Regression Tests
    • Case 1
      • Test the functionality of adding and updating products in the operations portal.
    • Case 2
      • Test the import and export flows for products.
    • Tests
    • Case 1
      • Test the creation of products with vendorID included.
    • Case 2
      • Test the process of updating a product with an assigned vendor.
    • Case 3
      • Test product /list endpoint.
    • Case 4
      • Test the importing and exporting of products that are assigned to vendors.
    • Case 5
      • Test other modified endpoints.
  31. KOD-19727: Imp - Customer portal
  32. KOD-19732: UX for Save Order to ERP
    • Regression Tests
    • Case 1
      • Navigate to the orders screen.
      • Select any order and navigate to its details page.
      • Confirm page is opened properly.
      • Repeat this steps for cash-quotes and external-orders screens.
    • Tests
    • Case 1
      • Navigate to the orders screen.
      • Find “save to ERP” on the row actions list.
      • After this button pressed, confirm message “Order saved to ERP“ appears.
      • Select any order and navigate to its details page.
      • Find “Save to ERP“ button and repeat steps 2 and 3.
      • Repeat these steps for cash-quotes and external-orders screen.
  33. KOD-19741: Display & Recalculate Available Inventory on Order Items Screen - Platform
    • Tests
    • Case 1
      • Verify that the new POST /api/system/order/{orderID}/inventory endpoint correctly populates calculated inventory to the "stockQuantityOrdered" field on Order Items.
  34. KOD-19743: Configure multi-site and set up site
  35. KOD-19751: Update the link in Customer portal
  36. KOD-19755: Set default warehouse for orders
  37. KOD-19758: Driver Delivery App - Maintenance Updates
  38. KOD-19760: Delete drop-down in the header
    • Regression Tests
    • Case 1
      • Navigate to the homepage.
      • Ensure that the header loads correctly for both logged-out and logged-in users.
    • Tests
    • Case 1
      • Confirm that the multilingual dropdown is removed from the homepage.
      • Navigate to another page and verify that the multilingual dropdown is also removed
      • Repeat these steps for logged-in users as well.
  39. KOD-19764: Avalara - Enhance useProductTaxCodes logic
    • Tests
    • Case 1
      • Calculate taxes with "useProductTaxCodes" setting off and then with this setting off for order with taxable charge amount. Compare the tax amount (and total); they should be the same.
      • Preconditions:
        • taxEngine = Avalara (global setting)
        • Have at least one product with a "Tax Code" set (e.g., default code "U0000000").
        • Ensure that both the Company/ShipTo and the Order itself are taxable.
        • Taxable order charge should be added on Order.
    • Case 2
      • Calculate taxes with "useProductTaxCodes" setting off and then with this setting off for order with taxable discount amount. Compare tax amount (and total), should be the same.
      • Same order from Case 1 could be used. Now instead of charge amount - use discount.
  40. KOD-19771: Porting SASGE Logic to Kodaris
  41. KOD-19772: Locations page tweaks
    • Regression Tests
    • Case 1
      • Navigate to the locations page.
      • Verify that the map is loaded correctly with extra space under.
      • Ensure that the warehouses are displayed properly.
    • Tests
    • Case 1
      • On the operations portal. navigate to the locations screen.
      • Select any active location.
      • Navigate to its detail page.
      • Select custom fields tab.
      • Add new custom field.
      • Navigate to the locations page on the customer site.
      • Confirm location with set custom field has blue marked on the map.
    • Case 2
      • On the locations page open developer tools.
      • Resize screen and confirm there is always space under the map for any screen size.
      • If screen height is not enough to properly display map - map becomes not visible.
    • Case 3
      • Navigate to the locations page.
      • Select any warehouse.
      • Find this warehouse on the operations portal on the Locations screen.
      • Remove information for:
        • address1
        • state
        • city
        • postalCode
        • phone
        • weekdayHours
        • saturdayHours.
      • Confirm all data displayed properly.
  42. KOD-19776: Pricing Fix
  43. KOD-19785: Move Manufacturer Back to a Column
    • Regression Tests
    • Case 1
      • In the generated PDF using the "loadingListPDF-UPDATED" template, confirm that the PDF layout remains unchanged.
    • Tests
    • Case 1
      • On the Cash Quote generate internal PDF using loadingListPDF-UPDATED template.
      • In the generated PDF check that 2 changes were added:
        • Ship to block was added near the Sold To block.
        • Manufacturer field was moved to the Items Table and was removed from the table above the items table.
  44. KOD-19784: Fix Display Mobile App Icons on V2 Site Homepage
    • Regression Tests
    • Case 1
      • Hosts without any uploaded mobile app icons would not show any in the site.
    • Case 2
      • Mobile app icons uploaded in the 'Default' host will not appear on any of the host sites.
    • Tests
    • Case 1
      • In the Operations portal, navigate to CMS → Menus.
      • Select the desired host where you want the icons to appear.
      • Access the Mobile App Icons link and upload icons or URL.
      • Click Publish.
      • The uploaded icons should only be visible on the selected host.
  45. KOD-19793: Parser Request
  46. KOD-19796: Updates - Order confirmation layouts
    • Tests
    • Case 1
      • Ensure that there is no value set for the "orderTerms" setting in the commerce.
      • Add an item to the cart and proceed to checkout.
      • Verify that the following pages have been modified:
        • Checkout thank you page
        • Order email
        • Order details page
        • Order pdf
      • You should only see "Merchandise Total" instead of all the charges. Additionally, at the bottom of the page, you should see the message: "This is not an invoice. All applicable charges will apply on your final invoice!.
    • Case 2
      • Log into the commerce and ensure that there is a value set for the "orderTerms" setting.
      • Add an item to the cart and proceed to checkout.
      • Verify that the following pages have been modified:
        • Checkout thank you page
        • Order email
        • Order details page
        • Order pdf
      • You should only see "Merchandise Total" instead of all the charges. Additionally, at the bottom of the page, you will see what is set in the "orderTerms" setting.
  47. KOD-19798: Ndjson export option
    • Tests
    • Case 1
      • Run the endpoint /api/system/productFacet/export
      • With the option exportAsNdjson=true and check that we have the same data result as the normal import.
  48. KOD-19800: Level 3 quantity data issue on converge
    • Tests
    • Case 1
      • To test paying orders with Converge level 3 data turned on, follow these steps:
      • Ensure that the "convergeLevel3" setting is turned on with the value "saveAndSend".
      • Set up Product Groups: in ERPSettings, look for "kod" records (Code ID).
      • Navigate to the Company screen and open the Invoices tab.
      • Pay orders. The payment should go through successfully.
      • Check the Payment Attempts screen:
      • If there is not just a single pair of request-response, but 2 pairs like on the screenshot above - that would mean that first request with level 3 data has failed and only the second request (with amount only, w/o level 3 data) wend through.
  49. KOD-19808: Rounding Issue on UOM
  50. KOD-19812: Add controller method for json from webhook
  51. KOD-19814: Global Order notes - shipping instructions currently not included
  52. KOD-19816: Add ability to specify export row limit
    • Regression Tests
    • Case 1
      • Check that the next list of export is working properly, remember to use always the data tab:
        • Orders
        • Products With Categories
        • Products With Attributes
        • Products With warehouses filter
        • Company Product Category
        • Product Price
        • Pricing Type
        • Product Languages
        • Messages
        • Content Page
        • Customer
        • Tickets
        • Employees
        • Categories
        • Filter Categories
        • Attributes
        • Product Cross Reference
        • Shipping Methods
        • Shipping Methods Rate
        • Locations
        • Tax Rates
        • URL rewrite
        • SKU
    • Tests
    • Case 1
      • For all export mentioned in the regression test, now we have the ability to limit the number of row to export adding the attribute “limit” to the search params. Check that this attribute is working properly.
    • Case 2
      • If you run this endpoint POST /api/system/productFacet/export using "exportAsNdjson"=true, you must to check that there is a new field called lastModifiedEpoch, and the value should be the current date time for example: lastModifiedEpoch:1714440771170.
  53. KOD-19817: Spin Up System
  54. KOD-19822: Calculated Price not Matching CSD
  55. KOD-19828: Add a new url
  56. KOD-19831: Add ability to specify export row limit - UX
  57. KOD-19833: Add logo field on Vendor
    • Regression Tests
    • Case 1
      • In the Operations portal, navigate to the Companies screen and ensure that you can see results under the Search tab. Then, go into the details of a company and verify that no errors appear.
      • Do exactly the same validation but this time under Vendors screen (Both screens use the same object which I modified in the response)
    • Tests
    • Case 1
      • Navigate to the Operations portal, then go to Vendors. Check the network tab for the endpoint "api/system/vendor/search" and verify that the field 'logo' is included in the response with the corresponding data.
  58. KOD-19840: Sliders tweaks on home page
    • Regression Tests
    • Case 1
      • Please test if the home page works as usual.
    • Tests
    • Case 1
      • The price on products should be displayed in color #D11947.
    • Case 2
      • The guest user should see log in/ call for pricing.
    • Case 3
      • Logged in user should see call for pricing if price is not available.
  59. KOD-19853: Remove Part Text
  60. KOD-19854: PC - Setup system
  61. KOD-19863: Add Upload Logo endpoint to vendor api
  62. KOD-19869: Create new setting to populate order items in mobile app from shipment
    • Regression Tests
    • Case 1
      • For the scenario we need at least this related structure: 1 Trip code → 1 delivery → 1 OrderShipment - 1 or more OrderItemShipment.
      • With new setting in false: "driverDeliveryUseOrderItemsAsShipmentItems" go to swagger and hit endpoint: api/system/order/driverDelivery/getSingleTripDetails passing a trip code as a parameter.
      • We expect success result and the field ‘items’ under 'deliveries → shipments → items to be populated with information from OrderItemShipments
    • Tests
    • Case 1
      • For the scenario we need at least this related structure: 1 Trip code → 1 delivery → 1 OrderShipment → no orderItemShipment associated.
      • We need an Order with ExternalOrderNumber be the same than OrderShipment.externalOrderNumber.
      • We need that order to have at least 1 or more OrderItem associated.
      • With new setting in true: "driverDeliveryUseOrderItemsAsShipmentItems" go to swagger and hit endpoint:
      • api/system/order/driverDelivery/getSingleTripDetails passing a trip code as a parameter.
      • We expect success result and the field ‘items’ under ‘deliveries → shipments → items to be populated with information from OrderItems (from the Order).
      • If orderShipment.externalOrderNumber were null or with a value that doesn’t match to any Order from database, the items field should be empty.
      • If the OrderShipment has no OrderItemShipment and the setting was false, items field would be come empty
  63. KOD-19872: Change the way the profile is loaded
    • Regression Tests
    • Case 1
      • As a customer, log in and navigate to the Profile section. Confirm that the profile image is loaded correctly. If no image was uploaded previously, attempt to change the profile picture and verify if the change is reflected successfully.