All Releases
View all releases

April 11, 2024 release notes

Highlights

Customer Portal

Search without case-sensitivity in the customer portal

In the customer portal, customers can search order history, open invoices, shiptos, etc to find what they are looking for. In this release, we've enhanced the search to ignore case when searching. This means your customers can search using either lowercase or uppercase search terms and any matching results will display, regardless of case. Check out the video for a demonstration!

https://youtu.be/OFuTmlV500Y

Tickets

  1. KOD-9632: Add delete functionality to sync services that do not have it
    • Regression Tests
    • Case 1
      • In the operations portal, run Import for the following entities:
        • Attributes
        • ERPSettings
        • BasicTaxRate
        • Category
        • Customer
        • Icss
        • Manufacturer
        • PricingType
        • ProductCrossReference
        • ProductPrice
      • Perhaps there isn't an import feature available from the frontend for all the mentioned entities. However, we should only verify the existence of the 'mapped-basic UploadCreateOnly' setting. Then we can use the general import. If there's no mapping, then there's no need for regression testing for that particular entity.
    • Tests
    • Case 1
      • We need to test the deletion functionality for all entities listed in the regression test. In this case, we will utilize the import feature to do so. To proceed, we simply need to execute a standard import process, ensuring that the import file contains two special columns:
        • isSourceDeleted → true.
        • sourceModifiedTime → YYYY-MM-dd hh:mm:ss:SSS
      • The value 'true' for the 'isSourceDeleted' column should not be enclosed within quotes, while the dateTime values for 'sourceModifiedTime' should be enclosed within quotes.
  2. KOD-13948: Refactor SKU Service
    • Regression Tests
    • Case 1
      • Navigate to the operations portal and access Skus.
      • Export records and check if everything can be exported without any exceptions
    • Case 2
      • Access the Operations portal, navigate to Skus, and click on a specific SKU → Check the Custom fields section to ensure that settings and UI function without any exceptions.
  3. KOD-14756: Solr errors dealing with naming of facet groups and dynamicFields
  4. KOD-15976: Solr reindex tool needs to use same filtering as the job does
    • Tests
      • On a test system, this process can be QA'd by first ensuring that there is at least one order in the system that is NOT completed. This can be achieved by navigating to the Data tab for Orders in the portal and filtering by the completed column. For testing purposes, we just need at least one incomplete order.
      • Next, ensure that the order is not already in the Solr index by searching for it on the Search tab. It should NOT appear on that tab.
  5. KOD-16432: Make Filters on Customer Order Screen Non Case-Sensitive
  6. KOD-17049: Operations Portal: Add Deposit payment functionality
    • Regression Tests
    • Case 1
      • Login on operations portal.
      • Navigate to Companies and open any company detail screen.
      • Check if switching between tabs works fine as expected. Changes of screen and highlights are required.
    • Tests
    • Case 1
      • Login to operations portal.
      • Navigate to Companies, choose one and go to it’s detail screen.
      • Switch to ‘Deposit’ tab.
      • Set amount, add any description and choose ACH payment method and proceed.
    • Case 2
      • Login to operations portal.
      • Navigate to the Companies section, select one, and proceed to its detail screen.
      • Switch to ‘Deposit’ tab.
      • Set amount, add any description and choose card payment method, enter CVV code and proceed.
    • Case 3
      • Login to operations portal.
      • Navigate to the Companies section, select one, and proceed to its detail screen.
      • Switch to ‘Deposit’ tab.
      • Set NaN amount that cannot be handled and choose any payment method and proceed.
    • Case 4
      • Login to operations portal.
      • Navigate to the Companies section, select one, and proceed to its detail screen.
      • Switch to ‘Deposit’ tab.
      • Do not set any amount and proceed.
      • Expected error message that amount cannot be empty.
    • Case 5
      • Login to operations portal.
      • Navigate to the Companies section, select one, and proceed to its detail screen.
      • Switch to ‘Deposit’ tab.
      • Set possible amount, do not choose any payment and proceed.
      • Expected error message that you have to choose payment method.
  7. KOD-17653: Impl- Kickoff
  8. KOD-17668: Add dashboard to analytics for new home page tracking
  9. KOD-18561: Angular App View for B2C Users
  10. KOD-18640: Payment methods
  11. KOD-19007: Create server side export and import for Product Attribute Language API - BE
    • Tests
    • Case 1
      • Test export endpoint: /api/system/productAttributeLanguage/export
      • Test import endpoint: /api/system/mapped/any/file/{mappingCode}/{importType}/{fileType}
      • Test in three different ways:
        • basicCategoryLanguageUpload
        • basicCategoryLanguageUploadCreateOnly
        • basicCategoryLanguageUploadUpdateOnly
      • check page: operations/attribute-languages
  12. KOD-19142: Display Unit Price for Back-Ordered Items
    • Regression Tests
    • Case 1
      • Add some products to the shopping cart and proceed to checkout to place an order.
      • Navigate to Orders → Ensure that the order is displayed correctly.
    • Tests
    • Case 1
      • Add products with 'directShipping' set to 'yes' and 'no' to the shopping cart. Proceed to place the order. Then, navigate to Orders, click on the Split order button, and verify that a backorder is created. Ensure that the order is created correctly and that the backordered products contain unitPrice.
  13. KOD-19158: Base Branding
  14. KOD-19161: Drag and Drop Template for Quoting
  15. KOD-19176: AD PIM Integration
  16. KOD-19181: Convert simple data exports to use high speed approach
    • Regression Tests
    • Case 1
      • Verify that the following list of exports is functioning properly. Remember to always utilize the Data tab.
        • Export Tickets
        • Export Employees
        • Export Categories
        • Export Filter Categories
        • Export Attributes
        • Export Product Cross Reference
        • Export Shipping Methods
        • Export Shipping Methods Rate
        • Export Locations
        • Export Tax Rates
    • Case 2
      • Verify that the following list of exports is functioning properly. Remember to always utilize 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
      • Note: When exporting Product With Categories and Product with Attributes, ensure that the category# and attribute# match what is displayed in the UI.
    • Tests
    • Case 1
      • Export ticket using an employee with role: ticketViewAssigned and/or ticketEditAssigned
      • Check that you shouldn’t be able to export ticket if you have at least one of these roles.
  17. KOD-19208: Add endpoints for language changing
    • Tests
    • Case 1
      • To test these endpoints you should have an employee with the same username, as customer and role: customerPortalCustomize.
      • Navigate to swagger, Account API schema, Customer System Customizer API.
  18. KOD-19252: Fix swagger issues - follow up
    • Regression Tests
    • Case 1
      • Ensure that Swagger operates as expected, with no deviations from its previous functionality.
    • Tests
    • Case 1
      • Tests swagger.json spec.
  19. KOD-19279: Update layout and theme
    • Tests
    • Case 1
      • Check the following pages to see if the following have been updated:
        • color theme
        • fonts
        • favicon
        • logos
        • Welcome page
        • spcu/login
        • spcu/checkout
        • spcu/checkout-thank-you
        • spu/cart
        • spcu/credit-application-register
        • spcu/credit-application-thank-you
        • spcu/credit-application-password
        • spcu/quick-order
        • spcu/registration-successful
        • spcu/account-retrieval
        • spcu/account-activation
        • spcu/account-password
        • spcu/reset-password
        • spcu/sitemap
        • spcu/cod-payment-thank-you
        • spcu/saved-for-later
        • spcu/terms-use
        • spcu/sds-list
        • spcu/catalogs
        • product list/search pages
  20. KOD-19285: Add Customer Product Code Feature
    • Regression Tests
    • Case 1
      • Check that placing order, email Order and generating Order PDFs works as usual.
    • Case 2
      • At store check that category grid and list, product and cart pages look as usual. You should still be able to check out info, edit quantity, add to a cart.
    • Tests
    • Case 1
      • Check category grid and list views and cart pages. Try editing customer product codes on category pages.
    • Case 2
      • Check product page and cart page. Try editing customer product code on the product page.
    • Case 3
      • Try Placing the Order. Check checkout page.
      • For the same order check it within the employee portal orders. Try email this order and generating PDFs for it. Check emails and PDFs.
    • Case 4
      • Check without the "companyAdmin" role for your customer. If you don’t have this role, you shouldn’t be able to edit customer product codes. And instead of the word "Add",_ you’ll see just
        "---".
  21. KOD-19305: CompanyAddress Ticket Customer and Internal file view endpoints
    • Tests
    • Case 1
      • Test downloading CompanyAddress Ticket CustomerFiles.
    • Case 2
      • Disclaimer: After latest updates in PR - list of roles who can download Internal Files will be 'administrator', 'superuser', 'companyInternalFileView', 'companyInternalFileEdit'.
      • Test downloading CompanyAddress Ticket InternalFiles.
  22. KOD-19316: Sellmult - UX
    • Regression Tests
    • Case 1
      • Check products for which intervalOrderQuantity, minimumOrderQuantity and maximumOrderQuantity are not configured.
    • Tests
    • Case 1
      • Check product page for product which has intervalOrderQuantity, minimumOrderQuantity and maximumOrderQuantity set up.
      • Example: interval = 5, minimum = 5, maximum = 20
    • Case 2
      • Check product page for product which has intervalOrderQuantity and maximumOrderQuantity set up. But not maximum.
      • Example: interval = 5, minimum - , maximum = 30
    • Case 3
      • Check product page for product which has minimumOrderQuantity and maximumOrderQuantity set up. But not interval.
      • Example: minimum = 3, maximum = 24
    • Case 4
      • Check category page with products that have intervalOrderQuantity, minimumOrderQuantity and maximumOrderQuantity set up.
  23. KOD-19319: Superseded products
    • Regression Tests
    • Case 1
      • Add a row in crossReference with type “I”, an existent productCode and some test value in altProductCode field.
      • Then go to the existent product used in the crossReference table and do some modification in order to trigger the reindex of that product.
      • Go to customer portal and check that you can search for the previous product using the altProductCode that you used above.
    • Tests
    • Case 1
      • Go to setting and turn on the new setting addCrossReferenceTypeToIndex.
      • Having the regression test done, now you have to add a new row in crossReference table, but this time with type “P”, be sure to use a different altProductCode and the same productCode that was used in the regression test.
      • Go to the existent product and perform some modification to ensure that the product is reindexed.
      • Check that the product can be found using the altProductCode for crossReferenceType “I” and “P”.
  24. KOD-19380: update all companies to pay via card
  25. KOD-19404: Minimum Order Quantity - Message Displayed if Manually Update Number Below Minimum Interval
    • Regression Tests
    • Case 1
      • Configure for product intervalOrderQuantity, minimumOrderQuantity.
      • Check on category page, product page and at cart.
      • Configure for product intervalOrderQuantity, minimumOrderQuantity and maximumOrderQuantity.
      • Check on category page, product page and at cart.
    • Tests
    • Case 1
      • Configure for product only minimumOrderQuantity. Check it on caterogy page, product page and at cart.
  26. KOD-19406: Fix the issue with displaying label in column
    • Tests
    • Case 1
      • Login to operations portal.
      • Open any data-grid (CRM → Companies → Data).
      • Click on any Column heading → Edit.
      • Change column type to Select.
      • Setup options.
      • Click Save.
      • Check in Column cell labels displayed instead of values.
    • Case 2
      • Login to operations portal.
      • Open any data-grid (CRM → Companies → Data).
      • Make sure you have some custom column setup.
      • Make sure in column cells labels displayed instead of values.
      • Click on column Heading → Edit.
      • Change column type to Default.
      • Click Save.
      • Check in Column cell values displayed instead of labels.
    • Case 3
      • Login to operations portal.
      • Open any data-grid (CRM → Companies → Data).
      • Choose some column and fill cells with values.
      • Click on column Heading → Edit.
      • Change column type to Select.
      • Setup options with values you’re add previously.
      • Click Save.
      • Check in Column cell labels displayed instead of values.
  27. KOD-19410: UX - Fix registration page
  28. KOD-19436: CMS Form Checkbox Hyperlink
  29. KOD-19448: Custom parser
  30. KOD-19465: Stocking Note Quantities not Updating on Sites
  31. KOD-19468: Edit footer content
  32. KOD-19469: Edit header content
  33. KOD-19478: AP automation parsers
  34. KOD-19482: Move Product Rank Method to JS Interceptor
    • Regression Tests
    • Case 1
      • Use the API: [POST] /api/system/product/updateProductOrderFromOrderItemsQuantityShippedSum
        • ordersCreatedLessThanDaysAgo = 100
        • rateByFrequency= true
        • orderStatuses= Received
      • You will notice that the update will be performed by filtering the orders with a status of 'Received' with a creation date greater than today - 100 days.
      • Also, now we are not performing a sum of all amount of product inside the order, instead of that we are calculating the popularity, it means that if the product appear 1 or 400 times in one orderItem, then it is going to be taken as 1 always.
      • You can test this modifying the value for orderStatus, adding more statuses. Also, you must to check that if you do not select nothing, always for default you are going to have Paid,Invoiced.
      • Note: "rateByFrecuency" was removed.
    • Case 2
      • Here you must to test the same thing described in the previous test, but now using the server side endpoint.
      • Remember that all new params are request params:
      • orderStatus is a list of string, while rateByFrecuency was removed.
      • For example:
        • var resultPatch = scriptServiceUtils.runAPIMethod("post", "/api/system/product/updateProductOrderFromOrderItemsQuantityShippedSum",
          null,
          {
          "ordersCreatedLessThanDaysAgo":250]
          },
          null);
    • Case 3
      • Be sure that the setting jobUpdateProductOrderFromOrderItemsQuantityShipped is turn on and run the monthlyInvervalJob.
      • Check that now this job is going to run the same function than the API mentioned above.
      • Also, you can set the parameter for this job using the next json variables:
        • updateProductOrderWithOrdersCreatedLessThanDaysAgo: number of days before today.
        • orderStatuses: comma separated list (without spaces) with the status that you want to include in the filter to calculate max or popularity.
      • Note: "rateByFrecuency" was removed.
    • Tests
    • Case 1
      • Check that new Interceptor exist: updateProductOrderFromOrderItems.js
    • Case 2
      • Parameter rateByFrequency was deleted.
  35. KOD-4271: Customer Mobile App - status bar does not appear on login screen
  36. KOD-4263: Customer Flutter App - iPad login screen inputs and button stretched across entire screen
    • Regression Tests
    • Case 1
      • Login to the app should work fine.
    • Case 2
      • You should not see any changes on the regular (not tablet) device in portrait mode.
    • Tests
    • Case 1
      • Use iPad or any other tablet device (android suitable as well).
      • Your Input fields and buttons should be constrained by some max width.
  37. KOD-19500: Mobile app branding
  38. KOD-19508: Public category APIs adjustments
    • Regression Tests
    • Case 1
      • Search product by category code should still working in customer portal.
    • Case 2
      • Search product by company category code should still working in customer portal.
    • Tests
    • Case 1
      • Now you should be able to search by seoCode in the customer portal.
  39. KOD-19509: Platfrom -kodaris journal updates - add generalLedger* fields
    • Tests
    • Case 1
      • Check endpoint: /api/system/product
      • Add new product with new fields via swagger.
      • Check product page:
      • Verify if it is indexed in the product document.
    • Case 2
      • Check order item side.
      • Create order and add some items to order on operations side on UI.
      • Then use swagger endpoint: /api/system/order/{orderID}/orderItem/{orderItemID} to updated current fields.
  40. KOD-19511: Adjust Invoicing Process
  41. KOD-19512: Availability based on region
  42. KOD-19514: Add region field to warehouses
    • Regression Tests
    • Case 1
      • Creating or updating a warehouse should still function properly.
    • Case 2
      • Create or update a SKU with a warehouse attached should still working fine.
    • Case 3
      • In the customer portal, while navigating the store, the call to retrieve prices should continue to function properly.
    • Tests
    • Case 1
      • You should be able to see and update a new field “region” from Locations menu (using developer tab).
    • Case 2
      • You should be able to see the warehouse’s region when we call to get productPrices in customer portal. For logged users.
      • To get it working, be sure that you are listing a product which has a sku associated with a warehouse relation and the field region populated in the warehouse entity.
      • Setting showInventoryPublic=1
  43. KOD-19519: Code is displayed instead of customer ticket type
  44. KOD-19521: Migrate Customer Product Code Cross References to Kodaris
  45. KOD-19522: Update integration to automatically migrate cross references to web_customer
  46. KOD-19524: Add API User flag to dtos and endpoints
    • Tests
    • Case 1
      • Verify if the boolean field 'apiUser' exists in the endpoints /list, /search, and /readDetails.
      • Select some customers, for example, retrieve some users from the /api/system/customer/list endpoint, and confirm if the field 'apiUser' exists.
      • Attempt to update the 'apiUser' field via the PATCH endpoint and then verify if the field has been updated.
      • Additionally, check if the 'apiUser' field is indexed in the endpoint: /api/system/customer/search.
      • Lastly, ensure that the field exists in the endpoint: /api/system/customer/readDetails.
  47. KOD-19528: Add permission to endpoint
  48. KOD-19535: Service Request Form
    • Regression Tests
    • Case 1
      • Ensure that other forms are functioning correctly.
    • Tests
    • Case 1
      • Test the functionality of the new form, including tickets and emails in both English and French.
      • URL: /spcu/form-installation-service.
  49. KOD-19537: Make Sure Line Items have Hand Pricing - Add Platform Fields
    • Regression Tests
    • Case 1
      • Add or modify items from an Order or Quote should still working fine.
    • Tests
    • Case 1
      • New Fields to check:
        • quantityReceived
        • quantityCustomerReceived
        • sscReceivedNote
      • Check that new fields exist in development tab.
      • Use Patch endpoint to test new fields: /api/system/order/{orderID}/orderItem/{orderItemID}
      • example payload:
        {
        "quantityReceived": 2,
        “quantityCustomerReceived": 2,
        "sscReceivedNote":"test received Note field"
        }
  50. KOD-19541: Digital Products should be Free Shipping
    • Regression Tests
    • Case 1
      • Verify if the checkout process functions correctly.
    • Case 2
      • Verify if the pages are functioning correctly.
        • Customer side.
        • Employee side.
    • Tests
    • Case 1
      • Check if the new boolean field 'digital' exists.
      • Initially, select an old product to update 'digital' to true or add a new product with the 'digital' field set to true.
      • On the customer side or employee side, create an order and add an item (the current product with 'digital' set to true).
      • Use the Swagger endpoint GET: /api/system/order/{orderID}/orderItem/{orderItemID} to verify if the 'digital' field is copied from the product.
  51. KOD-19542: Digital Products should be Free Shipping - UX
    • Regression Tests
    • Case 1
      • Go to PIM → Products → Search Tab.
      • Ensure that the page appears correctly and that you can assign or unassign fields as needed.
    • Case 2
      • Go to PIM → Products → Data Tab.
      • Ensure that the page appears correctly and that you can assign or unassign fields as needed.
    • Case 3
      • Go to PIM → Products → Category Assignment Tab.
      • Ensure that the page appears correctly and that you can assign or unassign fields as needed.
    • Case 4
      • Go to PIM → Products → details page.
      • Check if you can update here information.
    • Case 5
      • Go to companies → Start Order → Order Items.
      • Check if you can assign products and update some fields.
    • Tests
    • Case 1
      • Go to PIM → Products → Search Tab
      • Check that you can see new field → Digital.
    • Case 2
      • Go to PIM → Products → Data Tab.
      • Check that you can see new field → Digital.
    • Case 3
      • Go to PIM → Products → Category Assignment Tab.
      • Check that you can see new field → Digital.
    • Case 4
      • Go to PIM → Products → details page.
      • Check that you can see new field under Digital.
    • Case 5
      • Go to Orders → Details page → Order Items
      • Check that you can see new field → Digital
    • Case 6
      • Go to Companies → Details page → Orders → Choose order → Order Items
      • Check that you can see new field → Digital.
    • Case 7
      • Go to External Orders → Details page → Order Items.
      • Check that you can see new field → Digital.
  52. KOD-19546: Updates to Employee Portal Screens
    • Regression Tests
    • Case 1
      • Check that the vendor invoices > search screen > created date still shows and is now formatted same as on the orders screen.
    • Case 2
      • Same as Case 1 but with total, subtotal, and taxableSubtotal.
    • Tests
    • Case 1
      • Vendor Invoices should be renamed to AP Vendor Invoices (also check breadcrumbs) and it should be moved above the AP Emails.
  53. KOD-19551: Fix swagger issues - follow up 2
    • Regression Tests
    • Case 1
      • Verify you can navigate across different API definitions in Swagger and you don’t have any error during the process.
    • Case 2
      • You should still see correctly: /api/user/sitemap/download and /api/user/sitemap/download/fileName}} endpoints.
    • Tests
    • Case 1
      • Some fix related to spec. Validate the json spec.
      • You shouldn't see any error similar to '/definitions/CustomerCompanyProductCategoryProductModelEdit does not exist in document'
      • You still might see some different ones.
  54. KOD-19552: Mobile app listing creation and screenshots
  55. KOD-19558: Ampersand in company catalog codes throwing error
    • Regression Tests
    • Case 1
      • Create/edit Company Catalog.
      • Also check that you are able to see the catalogs in the customer portal.
    • Tests
    • Case 1
      • Create a new company catalog with a non safe character in the code field.
      • You must not be able to enter the new catalog, instead of that, you are going to see an error message.
  56. KOD-19565: Re-Index Products
  57. KOD-19570: Move customer app config API to the user section
    • Tests
    • Case 1
      • Verify: /api/user/system/customerMobileAppConfiguration endpoint returns customerMobileAppConfiguration setting value.
      • Also verify: /api/account/customer/customerMobileAppConfiguration doesn’t appear anymore in swagger.