July 26, 2022 — 1.2228 Service Update

Production Tenant Features

eCommerce & Order Management Functionality

  • Quick Edit Enhancements: You can now assign one or more catalogs to products within a master catalog from the Product Quick Edits, as well as remove catalogs that are already assigned. Additionally, various labels for assigning categories and updating attributes have been localized for French and the background/header color of the category panels has been adjusted. 
  • Inventory Site Settings: A new header called "Inventory Settings" has been added to the site settings page and some settings have been rearranged to organize all inventory options under this header. This makes the page easier to navigate and better distinguishes groups of related settings.
  • Capture Authorized Payments: The "Authorize and Capture on Order Submit" payment setting now captures on orders that are submitted with payments in the Authorized state, not only payments in the New state. This allows more accurate payment capture, particularly for Order Management-only clients who have already authorized payments before creating the order in Kibo. This also allows the capture to be automatically retried if it failed on order submit for any reason, where previously it would require manual intervention in the New status.
  • Future Inventory Exclusion List: The Order Routing Suggestion request has been modified so that the exclusionListLocationCode field only applies to normal inventory but not future inventory (which prevents a shipment from being reassigned to the same location that rejected it if that location still has future inventory). A new field, futureExclusionListLocationCode, is also now supported which will exclude locations for future inventory (meaning that additional shipments will not be created for future inventory at that location).
  • Get Future Routing Candidates: The Get Routing Candidates API, which previously only returned locations with current inventory, now also returns locations with future inventory quantities. It will only include locations with inventory up to the future date limit configured in your site settings.

Fulfiller Functionality

  • Custom Workflow Enhancements: The Print Pick List step has been added to a particular implementation's custom Ship to Home (and STH Consolidation) workflow. This step behaves the same as it does in the BOPIS flow, opening a print preview of the pick sheet, but appears between the Accept Shipment and Validate Items in Stock steps. Likewise, the button to reprint pick sheets has been added to the same implementation's workflow for fulfilled BOPIS shipments. 
  • Shipping Labels for Fulfilled Shipments: Following the 1.2222 update that allows you to edit the shipping address of fulfilled orders and shipments (such as for cases where a shipment was returned by the carrier and needs to be resent), new shipping labels can now be printed for these shipments using the updated address. This is available through a "Create New Shipping Label" button on the shipment details page of the Fulfiller UI. This button will open a modal allowing you to enter package information and input a new tracking number just like the Prepare for Shipment step of the STH workflow. If there were multiple packing slips for this shipment, you can select which slip you want to print the new label for. This new label will also be available for shipping manifests.

Production Sandbox Features

eCommerce & Order Management Functionality

  • Filter Products in Multiple Catalogs: You can now filter the Get Products API call for products in multiple catalogs using the IN filter. Previously, you could only filter products using EQ with a single catalog. Applying a filter such as ?filter=productInCatalogs.catalogid IN [1,2,3] will now return the products that are in at least one of those catalogs.
  • Clickable Subscription Links: The Subscription Details page now displays which price list is applied to the subscription (under a “Pricelist Applied” field) as well as displays the Initial Order ID as a clickable link. Clicking this Order ID will redirect you to the initial order’s details.
  • Future Shipment Date Update: An update has been made to improve the Future Available to Promise inventory feature, in which the shipment date will reflect any updates to the future inventory availability date. This allows you to have more accurate expected fulfillment dates for shipments that contain future inventory. Once the inventory record is updated with a new availability date, a shipment in the Future state that uses that inventory will be immediately updated with an appropriate date as well. If there were multiple future items on the shipment and only some updated (or they were changed to different dates), then the shipment will be split based on those dates. If all items changed to the same date, then the shipment date will update without splitting the shipment.
  • Unlock Account via API: It is now possible for administrators to unlock a user’s Admin UI account via API after they inputted the wrong password too many times and disabled their account. (Note that resetting the password will not unlock the account.) You can call the Accounts Unlock API at POST …/platform/adminuser/multi-scope/accounts/{userId}/unlock. This call will be added to the API documentation soon.
  • Orders Advanced Filter: A number of enhancements have been made to the Orders UI advanced filters.
    • The Orders page now allows you to search for shipments in the Future status using the Advanced Filter. The Shipment Status filter now supports the “Future” option in the drop-down menu and when selected, will return results wherever a Future shipment exists.
    • A new filter for “Order Number” has been added which will perform an exact search for an order number.
    • The Advanced Filter now provides options for Exact Search (which is selected by default) and Contains Search. This allows you to choose whether you want to perform an exact search or a contains search for all text fields you filter for (except for keyword search, which has not been changed). A minimum of three characters must be provided for each filter, and if then less than three characters are provided then that filter will not be considered in search results.
    • The fields in the Advanced Filter have been rearranged in a more logical sequence.
    • If no results were found, then an improved “No Data Available” message now displays and is centered in the space. There is also a Reset button that clears all of the selections from the Advanced Filter, and an X button on every text field to clear that individual field.
  • Admin UI Enhancements: A number of visual enhancements have been made to different pages across the Admin UI.
    • The Return to New Gift Card checkbox on the Return details page has been moved to better match the other options on the page, where previously it was in the bottom right.
    • If you search for a product on the Inventory page and then click Create New Inventory and create a new record, the interface will clear the search input and will not prepopulate the product code in your new inventory with the product code you searched for.
    • The Initiate Refund button sat over the header line of the Return details page and has now been moved to better fit the space.
    • If no results were found after searching the Location or Customer page, or the Customer Wishlists module within customer details, then an improved “No Data Available” message now displays and is centered in the space.
    • The Printer Type field is a required setting in location group configurations and previously caused an error if you did not select a value. Now, the printer type will default to “Laser” if no other value is specified.
    • The “Total” field in shipment adjustments has been renamed to “Shipments Total” and the message instructing to view a cancelled shipment’s items in the Cancelled Items tab has been reworded for more clarity. Additionally, clicking the Customer > Wishlist tab icon automatically navigates you to the Wishlist section of the page.
    • Order and Return Statuses in the order dashboard, order details, return dashboard, and return details pages now display different pill colors to help differentiate statuses.
    • Clickable links are now highlighted on the Returns page (including the customer name and order number) and the shipment number link on the order details page is now green to make it more visibly clickable. The return number is also displayed as green in order details.

Fulfiller Functionality

  • Sort By Order Date: The search results page in the Fulfiller UI now offers the ability to sort results by order placement date. The existing “Newest First” and “Oldest First” options, which refer to the shipment assignment date, have been renamed to “Shipment Assigned First” and “Shipment Assigned Last” for better clarity. The new options, “Order Placed First” and “Order Placed Last,” will organize the results with the oldest or latest order on top, respectively.
  • Localization Support: While the Fulfiller UI previously only supported English and French languages, it has now been extended to support any languages that are ordered left-to-right as long as that language file has been added to your custom theme. If a language file exists for the user’s browser language, then the FFUI and return menus inside the FFUI will automatically be displayed in that language. If a file does not exist, then the UI will be displayed in English. Kibo has not added translations, but if you wish to then you can upload your own .js file per the instructions in the customization guide. Additionally, note that the language files for the returns functionality within the FFUI is a separate folder in the theme and thus requires its own additional language file.

Search Functionality

  • Personalization Factor Limit: The validation and interface text of the Search Settings UI has been updated to allow you to select a value greater than 5 in the Personalization Factor configuration. You can now successfully select a range from 0.1 to 100.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsDelivery shipments with multiple items and a transfer were going to the Customer Care state if the transfer item was cancelled. This has been fixed so that the Delivery shipment will remain in the Ready state with the rest of the non-cancelled items.
Targeted for Production TenantsThe Admin UI displayed the wrong parent shipment number for some transfer shipments. This has been corrected so that the Admin UI will reference the correct shipment number for transfers and always display the appropriate parent shipment.
Targeted for Production TenantsCanceling some orders from the Admin UI sent them into the Processing state instead of Cancelled as expected. This was due to an initial declined payment putting the payment rollup status into Pending, which blocked the cancellation. This has been fixed so orders with these cases can be successfully cancelled.
Targeted for Production TenantsThe export button on the Redirects page resulted in an empty file, while the import had no effect. This has been corrected so that you can successfully export data and import a file to update redirects.
Targeted for Production SandboxesSTH Consolidation parent shipments got stuck on the Waiting For Transfer step after their transfer shipment had been fulfilled. This has been corrected so that parent shipments can successfully continue their workflow after receiving transfers.
Targeted for Production SandboxesAn error during the reassignment process of a shipment created a duplicate shipment that could not be removed or edited, causing the order amount to be doubled. This process has been improved to prevent this duplication from occurring in the future.
Targeted for Production SandboxesSome refund transactions were missing in the appeasements report, due to payment data not recording a create date field after refunding to a new gift card. This has been fixed so that this payment information is always populated and these transactions are able to be included in reporting.
Targeted for Production SandboxesThe Catalog and Product Runtime services did not reflect when an inventory record was deleted from a location, as the inventory was still displayed as in stock afterwards. This has been fixed so that inventory deletion accurately updates the catalog and product data.
Targeted for Production SandboxesErrors were experienced while searching on the storefront if one of the category notes in the tree had a null value. This process has been updated to better handle these scenarios and log the error without failing the search.
Targeted for Production SandboxesSandboxes were experiencing “Attempted to divide by zero” errors when viewing product pages with bundled products or adding a bundle to the cart. This was due to the quantity on a product extra not being mapped properly, which has now been fixed so that bundle products will not cause this page error.


Restricted Content

Internal Release Notes

Production Tenant Features

Client-Facing Updates

  • Quick Edit Enhancements (QE-422, QE-450, QE-448, QE-439, and QE-312): You can now assign one or more catalogs to products within a master catalog from the Product Quick Edits, as well as remove catalogs that are already assigned. Additionally, various labels for assigning categories and updating attributes have been localized for French and the background/header color of the category panels has been adjusted.
  • Inventory Site Settings (COM-5987): A new header called "Inventory Settings" has been added to the site settings page and some settings have been rearranged to organize all inventory options under this header. This makes the page easier to navigate and better distinguishes groups of related settings.
  • Capture Authorized Payments (COM-4715): The "Authorize and Capture on Order Submit" payment setting now captures on orders that are submitted with payments in the Authorized state, not only payments in the New state. This allows more accurate payment capture, particularly for Order Management-only clients who have already authorized payments before creating the order in Kibo. This also allows the capture to be automatically retried if it failed on order submit for any reason, where previously it would require manual intervention in the New status.
  • Custom Workflow Enhancements (FFMT-3290 and FFMT-3289, requested by Al Futtaim Group): The Print Pick List step has been added to a particular implementation's custom Ship to Home (and STH Consolidation) workflow. This step behaves the same as it does in the BOPIS flow, opening a print preview of the pick sheet, but appears between the Accept Shipment and Validate Items in Stock steps. Likewise, the button to reprint pick sheets has been added to the same implementation's workflow for fulfilled BOPIS shipments. 
  • Shipping Labels for Fulfilled Shipments (FFMT-3252 and FFMT-3275): Following the 1.2222 update that allows you to edit the shipping address of fulfilled orders and shipments (such as for cases where a shipment was returned by the carrier and needs to be resent), new shipping labels can now be printed for these shipments using the updated address. This is available through a "Create New Shipping Label" button on the shipment details page of the Fulfiller UI. This button will open a modal allowing you to enter package information and input a new tracking number just like the Prepare for Shipment step of the STH workflow. If there were multiple packing slips for this shipment, you can select which slip you want to print the new label for. This new label will also be available for shipping manifests.
  • Future Inventory Exclusion List (CHAR-3984): The Order Routing Suggestion request has been modified so that the exclusionListLocationCode field only applies to normal inventory but not future inventory (which prevents a shipment from being reassigned to the same location that rejected it if that location still has future inventory). A new field, futureExclusionListLocationCode, is also now supported which will exclude locations for future inventory (meaning that additional shipments will not be created for future inventory at that location).
  • Get Routing Candidates with Future Inventory (CHAR-3956): The Get Routing Candidates API, which previously only returned locations with current inventory, now also returns locations with future inventory quantities. It will only include locations with inventory up to the future date limit configured in your site settings.

Internal Updates

The following enhancements are internal-only and not exposed to clients.

  • CHAR-3903: MappingNotFound exceptions have been removed from the shipment status notification process and are now logged instead, as there are a number of KCCP statuses that don't have a matching event in the classic version. 
  • TECH-579: The Mozu.Tenant PR has been resubmitted as part of the .NET 6 cleanup and QA process.
  • COM-5809: Proxy controllers have been removed from the Commerce Runtime and SiteBuilder Admin services.
  • CHAR-3807: The Pending Items handler has been updated to handle future inventory events for ATP (available to promise) use cases. This follows the existing logic for normal pending item events, but queries inventory for values by future date and takes future inventory into account when verifying whether a location has sufficient inventory for reassignment.
  • CHAR-3789 and CHAR-3906: A new InventoryBatchComplete event has been created to optimize inventory events and improve performance problems when large amounts of events are published to the queue. This event signals that an entire batch of inventory was processed. This applies to both the existing and real-time inventory services.
  • CHAR-3988: To support the real-time inventory service, optimizations have been done to the location query's site cache to improve performance while receiving update events. 

Production Sandbox Features

Client-Facing Updates

  • Filter Products in Multiple Catalogs (QE-455): You can now filter the Get Products API call for products in multiple catalogs using the IN filter. Previously, you could only filter products using EQ with a single catalog. Applying a filter such as ?filter=productInCatalogs.catalogid IN [1,2,3] will now return the products that are in at least one of those catalogs.
  • Clickable Subscription Links (COM-6063): The Subscription Details page now displays which price list is applied to the subscription (under a “Pricelist Applied” field) as well as displays the Initial Order ID as a clickable link. Clicking this Order ID will redirect you to the initial order’s details.
  • Future Shipment Date Update (CHAR-3958): An update has been made to improve the Future Available to Promise inventory feature, in which the shipment date will reflect any updates to the future inventory availability date. This allows you to have more accurate expected fulfillment dates for shipments that contain future inventory. Once the inventory record is updated with a new availability date, a shipment in the Future state that uses that inventory will be immediately updated with an appropriate date as well. If there were multiple future items on the shipment and only some updated (or they were changed to different dates), then the shipment will be split based on those dates. If all items changed to the same date, then the shipment date will update without splitting the shipment.
  • Sort By Order Date (FFMT-3350): The search results page in the Fulfiller UI now offers the ability to sort results by order placement date. The existing “Newest First” and “Oldest First” options, which refer to the shipment assignment date, have been renamed to “Shipment Assigned First” and “Shipment Assigned Last” for better clarity. The new options, “Order Placed First” and “Order Placed Last,” will organize the results with the oldest or latest order on top, respectively.
  • Localization Support (FFMT-3358): While the Fulfiller UI previously only supported English and French languages, it has now been extended to support any languages that are ordered left-to-right as long as that language file has been added to your custom theme. If a language file exists for the user’s browser language, then the FFUI and return menus inside the FFUI will automatically be displayed in that language. If a file does not exist, then the UI will be displayed in English. Kibo has not added translations, but if you wish to then you can upload your own .js file per the instructions in the customization guide. Additionally, note that the language files for the returns functionality within the FFUI is a separate folder in the theme and thus requires its own additional language file.
  • Unlock Account via API (COM-6026): It is now possible for administrators to unlock a user’s Admin UI account via API after they inputted the wrong password too many times and disabled their account. (Note that resetting the password will not unlock the account.) You can call the Accounts Unlock API at POST …/platform/adminuser/multi-scope/accounts/{userId}/unlock. This call will be added to the API documentation soon.
  • Personalization Factor Limit (SU-2974): The validation and interface text of the Search Settings UI has been updated to allow you to select a value greater than 5 in the Personalization Factor configuration. You can now successfully select a range from 0.1 to 100.
  • Orders Advanced Filter: A number of enhancements have been made to the Orders UI advanced filters.
    • (COM-5924) The Orders page now allows you to search for shipments in the Future status using the Advanced Filter. The Shipment Status filter now supports the “Future” option in the drop-down menu and when selected, will return results wherever a Future shipment exists.
    • (COM-5921) A new filter for “Order Number” has been added which will perform an exact search for an order number.
    • (COM-5880) The Advanced Filter now provides options for Exact Search (which is selected by default) and Contains Search. This allows you to choose whether you want to perform an exact search or a contains search for all text fields you filter for (except for keyword search, which has not been changed). A minimum of three characters must be provided for each filter, and if then less than three characters are provided then that filter will not be considered in search results.
    • (COM-5878) The fields in the Advanced Filter have been rearranged in a more logical sequence.
    • (COM-5877) If no results were found, then an improved “No Data Available” message now displays and is centered in the space. There is also a Reset button that clears all of the selections from the Advanced Filter, and an X button on every text field to clear that individual field.
  • Admin UI Enhancements: A number of visual enhancements have been made to different pages across the Admin UI.
    • (COM-6059) The Return to New Gift Card checkbox on the Return details page has been moved to better match the other options on the page, where previously it was in the bottom right.
    • (COM-6036) If you search for a product on the Inventory page and then click Create New Inventory and create a new record, the interface will clear the search input and will not prepopulate the product code in your new inventory with the product code you searched for.
    • (COM-6023) The Initiate Refund button sat over the header line of the Return details page and has now been moved to better fit the space.
    • (COM-6022) If no results were found after searching the Location or Customer page, or the Customer Wishlists module within customer details, then an improved “No Data Available” message now displays and is centered in the space.
    • (COM-6021) The Printer Type field is a required setting in location group configurations and previously caused an error if you did not select a value. Now, the printer type will default to “Laser” if no other value is specified.
    • (COM-6015) The “Total” field in shipment adjustments has been renamed to “Shipments Total” and the message instructing to view a cancelled shipment’s items in the Cancelled Items tab has been reworded for more clarity. Additionally, clicking the Customer > Wishlist tab icon automatically navigates you to the Wishlist section of the page.
    • (COM-6011) Order and Return Statuses in the order dashboard, order details, return dashboard, and return details pages now display different pill colors to help differentiate statuses.
    • (COM-6009) Clickable links are now highlighted on the Returns page (including the customer name and order number) and the shipment number link on the order details page is now green to make it more visibly clickable. The return number is also displayed as green in order details.

Internal Updates

The following enhancements are internal-only and not exposed to clients.

  • FFMT-3381: The timeout setting has been doubled for the Shipping Runtime connection used by Fulfillment APIs, allowing more time for creating and printing large shipping manifests.
  • CHAR-3954: Integration tests have been replaced with the proper unit tests in the location Availability, Pickup Location, and Site Availability cache test suites.
  • FFMT-3357: The Shipment API model has been updated to include a cartId, items.cartItemId, and items.isReservedInventory to support the upcoming Allocate Inventory in Cart feature. More information about this feature will be included in the client-facing release notes at time of release.
  • COM-3952: The Get Export Settings API call now returns an improved response, in which fields have been renamed from underscore notation (such as file_format) to camel case (fileFormat) to better match other Kibo Composable Commerce Platform APIs. 
  • CHAR-3927: The inventory log has been optimized to handle a larger volume of transactions without generating an excessive amount of logs, for cases such as Peavey who generated 3 billion inventory logs and caused issues with a flyway script on deployment.
  • CAT-1538: The schema for the Update Product in Catalog API call has been updated to fix an error with how the API description was displayed in Swagger and on our API documentation. The fix is reflected in Swagger and will be applied to the documentation when it is next updated.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsFFMT-3314 (reported by Ace Hardware)Delivery shipments with multiple items and a transfer were going to the Customer Care state if the transfer item was cancelled. This has been fixed so that the Delivery shipment will remain in the Ready state with the rest of the non-cancelled items.
Targeted for Production TenantsCOM-5971The Admin UI displayed the wrong parent shipment number for some transfer shipments. This has been corrected so that the Admin UI will reference the correct shipment number for transfers and always display the appropriate parent shipment.
Targeted for Production TenantsCOM-5931 (reported by Proactiv)Canceling some orders from the Admin UI sent them into the Processing state instead of Cancelled as expected. This was due to an initial declined payment putting the payment rollup status into Pending, which blocked the cancellation. This has been fixed so orders with these cases can be successfully cancelled.
Targeted for Production TenantsCOM-5929The export button on the Redirects page resulted in an empty file, while the import had no effect. This has been corrected so that you can successfully export data and import a file to update redirects.
Targeted for Production TenantsCHAR-3796The inventory job queue was getting backed up with old jobs still waiting to process, due to a caching issue with tenant configurations. The process for updating tenant configurations has been improved to reduce this backup in the future.
Targeted for Production TenantsCHAR-3929The jobs service was producing an Order Routing-related error log for backorders from an eCommerce-only tenant that did not use Order Routing but did enable the backorder release job from their site settings. A check has been added so that this error log will not be returned for eCommerce-only or Curbside-only tenants.
Targeted for Production TenantsCHAR-4057Inventory Deleted events from a Future ATP API were referencing the wrong product code field name and preventing the real-time service from processing delete events. This has been fixed so that the proper field name is used.
Targeted for Production SandboxesFFMT-3316 (reported by Al Futtaim Group)STH Consolidation parent shipments got stuck on the Waiting For Transfer step after their transfer shipment had been fulfilled. This has been corrected so that parent shipments can successfully continue their workflow after receiving transfers.
Targeted for Production SandboxesFFMT-3247 (reported by Rue 21)An error during the reassignment process of a shipment created a duplicate shipment that could not be removed or edited, causing the order amount to be doubled. This process has been improved to prevent this duplication from occurring in the future.
Targeted for Production SandboxesCOM-6085 (reported by Ace Hardware)Some refund transactions were missing in the appeasements report, due to payment data not recording a create date field after refunding to a new gift card. This has been fixed so that this payment information is always populated and these transactions are able to be included in reporting.
Targeted for Production SandboxesCOM-5072The Delete Location API schema has been adjusted to indicate that it is a private API and not for public use. This call will be removed from our documentation when it is next updated.
Targeted for Production SandboxesCAT-1547The Catalog and Product Runtime services did not reflect when an inventory record was deleted from a location, as the inventory was still displayed as in stock afterwards. This has been fixed so that inventory deletion accurately updates the catalog and product data.
Targeted for Production SandboxesCAT-1547 (reported by Calendars)Errors were experienced while searching on the storefront if one of the category notes in the tree had a null value. This process has been updated to better handle these scenarios and log the error without failing the search.
Targeted for Production SandboxesCAT-1628 (reported by Proactiv)Sandboxes were experiencing “Attempted to divide by zero” errors when viewing product pages with bundled products or adding a bundle to the cart. This was due to the quantity on a product extra not being mapped properly, which has now been fixed so that bundle products will not cause this page error.