All Releases
View all releases

November 16, 2023 release notes

Highlights

Commerce

Add item replacements

As part of the powerful Kodaris PIM module system, you can now add cross references to denote replacement items for products that have been phased out, or are no longer sold in your commerce store. These replacements can be added by either manually importing or via syncing from your ERP, and are particularly useful if your customers have product lists that contain the old items.

The mechanics of this feature are quite simple: a web_replacement record will need to be imported or mapped from your ERP with the following fields filled in.

As an example, if item # HYD06878 is being replaced by item # KRADW733, the Product Code field will contain HYD06878 and the Alt Product Code field will contain KRADW733.

757_current_replaced_items.png

To do this via manual import, you will need to have the information set up in a .CSV file; a sample import sheet is below. Note that the type column needs to be set to web_replacement.

757_web_replacement_cross_reference_import_.png

After your .CSV file is completed, navigate to the Cross References screen in the PIM section. Go to File, then Import, and select the type of import you would like to complete.

757_import_replacement_items_manually.png

Once the replacement cross references have been created and a customer adds the original item to their cart, the new item will automatically be added instead. A note will also automatically be added to the item notifying the customer of the change.

757_add_to_cart_replaced_item.png
757_message_automatically_displayed_to_customer.png

A custom message can also be added instead of the default one. To do this, simply go to the replacement cross reference you would like to add custom information to, go to the Details screen, and enter the custom message into the Alt Product Description field.

757_add_custom_message_on_description.png
757_custom_message_displaying_to_customer.png

Display recently ordered products

As part of the robust Kodaris commerce platform, you now have the capability to display to customers their recently ordered products. As part of this feature, you can display both items purchased online and offline, meaning your customer will receive a full picture of their recent purchases.

To enable this feature, first go to the System > Settings screen and search for jobPopulateRecentlyOrderedItems. Click on the Details icon; on the following screen, set the Value field to "1". Click Save in the upper right corner to save this change.

757_display_recently_ordered_items_setting.png

After enabling, a Recently Ordered catalog will appear as an option in the Categories menu; the customer will need to be logged in to see this option.

757_enabled_recently_ordered_items.png

After clicking the Recently Ordered category, all recently ordered items will display to the customer.

757_recently_ordered_products_display.png

Operations Portal

Create a SKU

As part of the latest enhancements to Kodaris' PIM and Pricing features, you are now able to generate a SKU directly from your Kodaris Operations Portal rather than from within your ERP.

To use this new feature, simply navigate to Products in the PIM section of the Operations Portal, then locate the product you would like to generate a SKU on. Click the Details icon; on the following screen, click More and select Generate SKU. Select the warehouse you would like the SKU to fall under, click Generate and voila, the new SKU is created!

757_select_generate_sku.png
757_click_generate_on_sku.png
757_generated_sku.png

Tickets

  1. KOD-11821: Error on Search Products API When Using Contains Operator in Query Fields
    • Regression Tests
    • Case 1:
      • Make sure Products search is working as before
    • Tests
    • Case 1:
      • Check {{/api/system/product/search}} with queryFields and operation {{CONTAINS}}. *Value should include whitespaces*
  2. KOD-15434: Style Sample Punchout Success Page
  3. KOD-15827: DeliveryID on Delivery Screen Doesn't Filter
    • Regression Tests
    • Case 1:
      • Log in to Operations Portal
      • Go to Deliveries screen
      • Check if page looks good
    • Case 2:
      • Log in to Operations Portal
      • Go to Deliveries screen
      • Try to add, edit, and delete a record
    • Case 3:
      • Log in to Operations Portal
      • Go to Deliveries screen
      • Try to find a record using different rows
    • Case 4:
      • Log in to Operations Portal
      • Go to Deliveries screen
      • Try to sort records using different rows
    • Case 5:
      • Log in to Operations Portal
      • Go to Deliveries screen
      • Try to sort records using different rows
    • Case 6:
      • Log in to Operations Portal
      • Go to Deliveries screen
      • Try to go to Details page and check if everything looks good
  4. KOD-16174: Fix the Color of Confirm Email Button
    • Tests
    • Case 1:
      • Log in using a customer account that has not been used/logged in for the past >24 hrs to trigger the email.
      • Check the email in the Operations Portal > Emails screen. It should have the color branding of the site.
  5. KOD-16186: Confirmation Email Not Using Host Branding - UX to Update Templates
  6. KOD-16299: CenPOS Payment Provider - Credentials Per Host
    • DO all regression tests
    • Test guest checkout with credit card
    • Regression Tests
    • Case 1:
      • Check if customer still can make payment using CenPOS provider without any host-specific setup.
    • Case 2:
      • Check if customer still can make payment using CenPOS provider without any host-specific setup even if assigned to some host.
    • Case 3:
      • Check if customer still is able to make order payment using old CenPOS ERP setting when cenposUseGlobalSettingByDefault setting is off.
    • Tests
    • Case 1:
      • Check if CenPOS integration can be configured on global settings level.
    • Case 2:
      • Check if CenPOS integration can be configured on specific customer’s host.
  7. KOD-16490: Characters in SEO Fields Converted to HTML Codes in Layouts
    • Regression Test
    • Case 1:
      • Go to Operations Portal
      • Go to CMS → Pages
      • Choose one of available pages
      • Click on preview
      • Check if page load without any problems
      • On this page click on ‘view page source’
      • Check if everything looks good
    • Tests
    • Case 1:
      • Go to Operations Portal
      • Go to CMS → Pages
      • Create your page
      • In these fields put name with symbol &:
        • Name
        • Meta Title
        • Meta Description
        • Keywords
      • Save this page and click on button ‘preview’
      • On this page, click on ‘view page source’
      • Check if this_(title, description, keywords)_ meta data looks good
  8. KOD-16755: Make ScheduledPaymentCreated-EJS Template Pretty
    • Tests
    • Case 1:
      • Test if scheduled payment email sent when customer schedules a payment has the pretty layout.
  9. KOD-16978: Sale Pricing
    • Regression Tests
    • Case 1:
      • Please check that we can see product list/grid view and product page displayed correctly with prices and inventory where it is available for both guest and logged in users
    • Tests
    • Case 1:
      • Please check that we have sale price flag on products with promo prices (and where onSale:true)
      • We also want to see "Valid until" message (end date for promo price)
    • Case 2:
      • We want to see sale flag and "Valid until" on list/grid view and product page
  10. KOD-17007: Item Replacements
    • Regression Tests
    • Case 1:
      • Add items to cart from Category, Search, Quick Order List, Product List, Company Catalog, and Checkout
      • Make sure all is same as normal
    • Case 2:
      • Need to test receiving an Order from Punchout if possible
  11. KOD-17046: Confirm Email Button Color Branding
    • Tests
    • Case 1:
      • Log in using a customer account that has not been used/logged in for the past >24 hrs to trigger the email.
      • Check the email in the Operations Portal > Emails screen. It should have the color branding of the site.
  12. KOD-17140: B2C Orders Not Linking to Company Account
    • Regression Tests
  13. KOD-17311: Add Delete Endpoints for Company Address Files
    • Tests
    • Case 1:
      • Check new delete customer/internal file endpoints for companyAddress
        • For uploading customer/internal file, you can use UI side, go to companyAddress list, select some companyAddress, go to customer/internal File tab and then upload some file
        • Go to Swagger side and use endpoints for getting ID of customer/internal file:
          • [/api/system/company/address/{companyAddressID}/internalFile/list
          • [api/system/company/address/{companyAddressID}/customerFile/list
        • Use new delete endpoints:
          • [/api/system/company/address/{companyAddressID}/customerFile/{customerFileID}
          • [/api/system/company/address/{companyAddressID}/internalFile/{internalFileID}
          • Should return customer/internal file with *deleted: true (marked as deleted)*
        • Re-use endpoints to double check the value *deleted: true*:
          • [/api/system/company/address/{companyAddressID}/internalFile/list
          • [api/system/company/address/{companyAddressID}/customerFile/list
  14. KOD-17331: Create the Customer Side API for a New Customer Catalog
    • Regression Tests
    • Case 1:
      • POST /api/account/companyProductCategory/customer/list
      • Should return only categories that are assigned to company (customer, companyAddress and customerGroup IDs are null)
    • Case 2:
      • GET {{/api/account/company/category}}
      • Should return error if category is not assigned to company (e.g. to customer)
    • Tests
    • Case 1:
      • POST /api/system/companyProductCategory/customer/{customerID}
    • Case 2:
      • GET /api/system/companyProductCategory/customer/{customerID}/companyProductCategory/
        {companyProductCategoryID}
    • Case 3:
      • PUT /api/system/companyProductCategory/customer/{customerID}/companyProductCategory/
        {companyProductCategoryID}
    • Case 4:
      • PATCH /api/system/companyProductCategory/customer/{customerID}/companyProductCategory/
        {companyProductCategoryID}
    • Case 5:
      • POST /api/system/companyProductCategory/customer/{customerID}/list
    • Case 6:
      • DELETE /api/system/companyProductCategory/customer/{customerID}/companyProductCategory/
        {companyProductCategoryID}
    • Account API
    • Case 7:
      • POST /api/account/companyProductCategory/customer
    • Case 8:
      • GET /api/account/companyProductCategory/customer/companyProductCategory/
        {companyProductCategoryID}
    • Case 9:
      • PUT /api/account/companyProductCategory/customer/companyProductCategory/
        {companyProductCategoryID}
    • Case 10:
      • PATCH /api/account/companyProductCategory/customer/companyProductCategory/
        {companyProductCategoryID}
    • Case 11:
      • POST /api/account/companyProductCategory/customer/list
    • Case 12:
      • DELETE /api/account/companyProductCategory/customer/companyProductCategory/
        {companyProductCategoryID}
  15. KOD-17359: Update Call for Pricing for Public User Checkout
    • Regression Tests
    • Case 1:
      • Make sure that cart page is functioning as usual (adding items, changing quantity, removing items and adding notes)
  16. KOD-17370: Add a Button to Create a SKU for a Product
    • Regression Tests
    • Case 1:
      • Log in to Operations Portal
      • Go to Products page
      • Go to product Details page
      • Check if everything looks good
    • Case 2:
      • Log in to Operations Portal
      • Go to Products page
      • Check if everything looks good
    • Tests
    • Case 1:
      • Log in to Operations Portal
      • Go to Products page
      • Go to product Details page
      • You should see new button ‘More’ with option ‘Generate SKU’
      • Click on this button
      • You should see form 'Generate SKU'
      • Fill in the form
      • Click on ‘Generate’
      • You should be redirected to SKUs tab
    • Case 2:
      • Log in to Operations Portal
      • Go to Products page
      • Go to product Details page
      • You should see new button ‘More’ with option ‘Generate SKU’
      • Click on this button
      • You should see form 'Generate SKU'
      • Fill in field ‘Warehouse Code’ with data that exist in skus tab
      • Click on ‘Generate’
      • You should see error
  17. KOD-17397: Operations Portal Latest Releases Goes to Incorrect Link
    • Tests
    • Case 1:
      • Go to Operations Portal
      • Find Latest Releases in Resources
      • Click on Latest Releases
      • You should be redirected to site mentioned in descriptions
  18. KOD-17416: Display Stocking Notes in Cart
    • Regression Tests
    • Case 1:
      • Add some product to company wish product list and then create order from current wish product list with *locations*
        • Go to customer page, create some company wish product list
        • Add some product to wish product list
        • On Swagger side use endpoint: [/api/system/companyWishList/{companyWishListID}/product/{productID}
          • {noformat}{
          • "note": "{\"note\":\"\",\"locations\":[{\"location\":\"Basement\",\"floor\":null,\"qty\":\"50\",\"justAdded\":true},{\"location\":\"Main\",\"floor\":null,\"qty\":\"50\"}]}"
          • }{noformat}
        • Go back to current company wish product list page, then start the order
    • Case 2:
      • Add some product to *customer* wish product list and then create order from current wish product list with *locations*
        • Do the same action as in previous case but use customerWishList side endpoint: [/api/system/customerWishList/{customerWishListID}/product/{productID}
  19. KOD-17417: Issue with Back Button
    • Regression Tests
    • Case 1:
      • In the product list page, pagination arrows (prev and next) should work properly
    • Tests
    • Case 1:
      • In the product list page, browser back button should take you to the previous screen and the pagination input should reflect the page you were previously viewing before using the browser back button
  20. KOD-17461: Create Custom Pages in the Angular Customer Portal
    • Tests
    • Case 1:
      • Log in as a customer
      • Copy any URL from website without hostname (/spcu/contact)
      • Go to Customer Portal
      • Now create URL using {hostname}/c/{url from website}
      • Open this URL
      • Make sure page displays the same as on webpage
  21. KOD-17472: Ticket CustomerWishList APIs
    • Tests
    • Case 1:
      • Test Create for Ticket CompanyWishList
      • POST {{/api/system/ticket/{ticketID}/companyWishList}}
    • Case 2:
      • Test Read for Ticket CompanyWishList
      • GET {{/api/system/ticket/{ticketID}/companyWishList/{companyWishListID}}}
    • Case 3:
      • Test Update for Ticket CompanyWishList
      • PUT {{/api/system/ticket/{ticketID}/companyWishList/{companyWishListID}}}
    • Case 4:
      • Test Patch Update for Ticket CompanyWishList
      • PATCH {{/api/system/ticket/{ticketID}/companyWishList/{companyWishListID}}}
    • Case 5:
      • Test Delete for Ticket CompanyWishList
      • DELETE {{/api/system/ticket/{ticketID}/companyWishList/{companyWishListID}}}
    • Case 6:
      • Test List for Ticket CompanyWishList
      • POST {{/api/system/ticket/{ticketID}/companyWishList/list}}
    • Case 7:
      • Test Create Ticket Wish List
    • Case 8:
      • Test Read Ticket Wish List
    • Case 9:
      • Test Update Ticket Wish List
    • Case 10:
      • Test Patch Update Ticket Wish List
    • Case 11:
      • Test Delete Ticket Wish List
    • Case 12:
      • Test List Ticket Wish Lists
    • Case 13:
      • Test Create Ticket Wish List Product
    • Case 14:
      • Test Update Ticket Wish List Product
    • Case 15:
      • Test Patch Update Ticket Wish List Product
    • Case 16:
      • Test Delete Ticket Wish List Product
    • Case 17:
      • Test List Ticket Wish List Product
  22. KOD-17478: Related and Complementary Products Part 2
    • Tests
      • Note: Please make sure that RelatedProduct and Complement are in the {{relatedProductTypes}}
    • Case 1:
      • Check Related Products Slider Updates
      • In product page where product has related products assigned:
        • Title has been updated to Item # same as in other parts of the site
        • Slider would only show up for logged in users
        • Only products with type 'RelatedProduct' (assigned in Operations Portal) will show up in the related products slider
        • Appropriate userN, based on host, is displayed in the item #
        • Products with no userN for appropriate host will not show in the slider
        • If there are no products assigned to the slider, the slider will not show up
    • Case 2:
      • Check Complementary Products Slider
      • In product page where product has complementary products assigned:
        • Title has been updated to Item # same as in other parts of the site
        • Slider would only show up for logged in users
        • Only products with type 'Complement' (assigned in Operations Portal) will show up in the complementary products slider
        • Appropriate userN, based on host, is displayed in the item #
        • Products with no userN for appropriate host will not show in the slider
        • If there are no products assigned to the slider, the slider will not show up
  23. KOD-17483: Remove Validation on Federal Tax I.D. in Digital Credit App
    • Regression Tests
    • Case 1:
      • Sign up for credit application
      • You should be able to fill in all the required fields and submit the credit application successfully
    • Tests
    • Case 1:
      • Sign up for credit application by following the steps in the video
      • Once you complete those steps in the _CREDIT APPLICATION FORM_ go to the *Federal Tax I.D* field
      • You should be able to input any value and don’t get any format error when you leave the field
  24. KOD-17515: UX - Fix Related Products Slider
    • Tests
    • Case 1:
      • Check Related Products slider to make sure that it is showing and there are no errors
  25. KOD-17529: Email Confirmation Error Message
    • Regression Tests
    • Case 1:
      • Check that the whole functionality about confirm user email is still working
    • Tests
    • Case 1:
      • Try to log in with a not confirmed email user and you should get this payload in the response:
      • {noformat}{
      • "success": false,
      • "code": 400,
      • "messages": [],
      • "errors": [
      • "Please check your email for your verification link."
      • ],
      • "data": null
      • }{noformat}
  26. KOD-17560: Scheduled task Errors
    • Regression Tests
      • Case 1
        • Check whether endpoints return populated {{customFields}} from DTO
          • Use endpoint: POST: [*/api/system/product/list*
          • Result => should return empty field: *customFields*
          • Use endpoint: POST: [/api/account/productList/companyList/{companyProductListID}/
          • Result => should return *not* empty field: *customFields*
  27. KOD-17566: Customer Portal - Edit Order Process
    • Regression Tests
    • Case 1:
      • Check whether Customer Portal works well
    • Tests
    • Case 1:
      • Check customer order edit process
      • Check whether return the new value ({{customerEditableOrderFields}}) form customer configuration endpoint: [/api/account/customer/configuration
  28. KOD-17574: Review Add Recently Purchased Products to a Platform Default Option
    • Regression Tests
    • Case 1:
      • {{DailyIntervalJob}} should still working as always with new setting {{populateRecentOrders}} = 0
    • Tests
    • Case 1:
      • Check new interceptor {{populateRecentOrders}}.js and new setting {{populateRecentOrders}}
      • The filter should not contain this block of code:
      • {noformat}{
      • "boost": null,
      • "fuzzy": null,
      • "name": "hostCode",
      • "not": false,
      • "operation": "IS",
      • "tagged": true,
      • "value": "3"
      • },{noformat}
    • Case 2:
      • New endpoint [POST]{{/api/system/order/populateRecentlyOrderedItems}} should not run interceptor {{populateRecentOrders.js}} with setting {{populateRecentOrders}} = 0
    • Case 3:
      • New endpoint [POST]{{/api/system/order/populateRecentlyOrderedItems}} should run interceptor {{populateRecentOrders.js}} with setting{{populateRecentOrders}} =1 and no parameters provided.
    • Case 4:
      • New endpoint [POST]{{/api/system/order/populateRecentlyOrderedItems}} should run run interceptor {{populateRecentOrders.js}} with setting{{populateRecentOrders}} = 1 and parameters provided
    • Note: startTime and endTime parameters should follow next format: 'yyyy-mm-dd'
  29. KOD-17581: Add Site to Google Maps, Tinymce, and Recaptcha