March 21, 2023 — 1.2310 Service Update

Production Tenant Features


  • Substitution Partial Quantity Setting: Substitutions will now respect the "Do Not Allow Partial Quantity at Validate Stock" location group setting. If this setting is enabled, then fulfillers can only substitute the full quantity of the original product. They will not be able to substitute only part of the original quantity. More than one substitute product can be used, as long as they add up to the entire original quantity.
  • Scan Substitute Quantity: When substituting an item in the Fulfiller UI, you can now use your scan gun to enter the substitute quantity instead of typing it in. This works the same way as scanning quantity in the standard Validate Stock step, and requires the theme level setting to allow scan guns (isItemUPCScanAllowed) to be enabled. 
  • Mobile UI Enhancement: Better support has been added for the mobile version of the Fulfiller UI, providing a more responsive UI that will not break during the substitution process.

Production Bug Fixes

CatalogWhen a product attribute of the "list" type was assigned as a variant property with the multi-select option enabled, it wasn't possible to actually select more than one option when applying the attribute to a product. This has been corrected so that multiple values can be selected as expected when the option is enabled for a list.
InventoryAfter clicking the Manage Inventory link from a configurable product's detail page in the Admin UI, a generic error message would be displayed. Attempting to search for inventory by the base product code would return an error saying that the code was invalid. This was due to the master catalog context of the Inventory UI being reset to the default even if the product was located in a different catalog. This has been corrected so that the proper catalog will be retained when navigating from the product to its inventory.
Order RoutingFor a particular implementation's routing configuration, products that were expected to be assigned to a particular group based on their prefix were not doing so during multi assignment. Order Routing only provided a suggestion for the first line item, and then skipped the remaining order items, resulting in shipment creation failures and the order going into the Validated state. This has been fixed so that all products in an order are evaluated and assigned appropriately.
SearchWhen editing the list of blocked products in Merchandizing Rules, the modal would experience an error if there were more than 200 product types in the implementation. This has been updated so that the system can better handle a large amount of product types when fetching products to display.
SearchIt appeared that more than 20 products could not be added to the Blocked Products list from the Merchandizing Rules UI, even though additional products would be saved in the backend. This was due to only 20 results being returned from the API after performing the update. This has been fixed so that the full list of updated products is returned and displayed in the UI. Note that the UI still has a maximum limit of 100 limits.
StorefrontA Reverse Proxy error was experienced when clicking on a discount from a certain catalog in the Admin UI. This has been corrected so that you can successfully view and search for discounts in the affected catalog(s).

Restricted Content

Internal Production Details

Find more information about the client-facing updates at these Jira tickets:

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

  • FFMT-3507 and FFMT-3506: A custom transfer shipment workflow has been created for The Level Group, with a Waiting for Payment Confirmation step in between Validate Stock and Print Packing Slip.  Likewise, the same step has been added to a custom BOPIS workflow between the Validate Stock and Waiting for Transfer steps. These work similarly as the same step that was added to TLG's custom Ship to Home workflow.
  • CHAR-4586: The heap size for the Maven-Surefire plugin did not have a restriction to prevent it from using up a large amount of memory, so it has been updated with a memory limit to prevent Jenkins from being taken down.
  • CHAR-4406: The Cache Invalidation APIs used for RIS have been updated to support the modified fulfillment type cache.
  • TECH-1095:  Documentation links in the Dev Center have been updated to point to the new knowledge base URLs. While these are exposed to clients in the UI, there is no visible change to their behavior (besides correcting any possible 404s) so this update don't need to be announced in the public notes.

Find more information about the client-facing bug fixes at these Jira tickets:

  • Order Routing Behavior: CHAR-4551 (reported by Tourneau)
  • Reverse Proxy Error: CAT-2418 (reported by
  • Blocked Products Limitations: CAT-2417 (reported by Proactiv)
  • Multi-Select List Attribute: CAT-2385 (reported by Fortis Life Sciences)
  • Blocked Products and Product Types: CAT-2380 (reported by Ace Hardware)
  • Product Inventory Errors: CAT-2202 (reported by

The following bug fixes are internal-only and not exposed to clients:

  • TECH-1058: A gradual memory leak was experienced in the Reverse Proxy Web API, occasionally causing errors as memory was depleted. This has been fixed to prevent this in the future.
  • CHAR-4677: Ssense could not use S3 inventory file exchange for fetch files, as an error would be returned that the system was unable to unzip the file. This process has been updated to ignore duplicated file directories and skip any instances of characters that seemed to be causing problems.

Production Sandbox Features


  • Removed Product Ranking: Product ranking rules have been hidden on the Category edit page as well as from the Main > Marketing navigation menu, as that functionality is now available via Search Merchandizing Rules and has been migrated out of the Category service. The tooltip for sort definitions has now been updated to explain that they have been replaced by merchandizing rules.
  • Do Not Apply Discounts to Handling: Previously, free shipping discounts applied to order-level handling fees which was not compatible with how some free shipping discounts were intended to be used. For example, a product with a $10 handling fee would receive both free shipping and free handling when the discount was applied. Now, a new tenant attribute (DoNotApplyDiscountsToHandlingFees) can be enabled to exclude handling when calculating order-level shipping discounts. Contact Kibo Support or your enablement team for assistance enabling this if you need this behavior on your tenant.


  • Substitutes in Return Receipts: When an item has been substituted for another in a shipment, the substitute will now be displayed in a separate table on the return receipt. This table will give the name of the original item that was substituted, as well as the substitute item itself and the quantity. This makes it easier to identify substitutes in more aspects of the fulfillment process.
  • Reallocation Error Message: If inventory for an originally-ordered product quantity is not available when a store associate attempts to remove its substitute(s), an error message will be displayed and the substitute quantity will not be removed from the shipment.
  • Support for Substitutes with Assembly: If a substitute item requires preparation (aka assembly), then the Fulfiller UI will handle it appropriately during the fulfillment process. This means that it those items will be identified as both substitutes and assembly items, go into the Order Preparation step, and can also be transferred or split into another shipment as needed. 


  • Item-Level Segmentation: Previously you could only apply tags at the order level when using inventory segmentation, meaning that the tag was applied to all order items. Now, tags are supported in item-level data instead. This allows you to specify different tags for each item in an order through the API. 
  • Segmentation in Order Admin: You can now select the inventory segmentation tags for order items when creating a new order through the Admin UI, as well as when creating a new shipment on an order. You can also view tags from the Order Details and edit them on Pending orders that have not been submitted yet. Additionally, validation has been added for specifically OMS-Only tenants so that if a tag name is provided for an item, then a value for that tag is required.

Note: When testing inventory segmentation in Release 1.2310, please ensure that all tag values are specified in the order created. This restriction will be removed in the upcoming Release 1.2312.


  • Search Schema Relocation: The link for Search Schema in the Admin navigation menu has been removed from the System tab. You should access the schema through Main > Search > Schema instead.  
  • Delete Merchandizing Rule: Previously, the only way to delete a merchandizing rule was from the action menu on the Merchandizing Rules page. Now, when you click a merchandizing rule to go to its individual configuration page then a Delete option will also be available in the dropdown menu in the top right of the page.
  • Merchandizing Rule Limits: A limit has been set to restrict the amount of products included in one merchandizing rule to 100. This limit applies separately to ranked, buried, and blocked products, meaning that you can have up to 100 products in each of those three groups.

Sandbox Bug Fixes

CatalogThe Get Product API did not consistently return the system~price-list-entry-type property for items with extras, as well as where promotions had expired. This has been fixed so that this property is always returned in the product data for these items as expected.
OrdersFor implementations upgraded from the previous version of OMS and making API calls through the translation layer, duplicate orders were created when multiple Create Order API requests were received for the same External Order ID. This process has been updated so that a duplicate request will not be passed through to generate a second order.
OrdersIf a refund needed to be made for an amount of 0.01, there was a rounding issue that resulted in an error when that amount was entered in the UI. This has been fixed so that values of 0.01 can be successfully validated, as well as similar numbers in three-decimal currencies.
Order RoutingThe Suggestion Logs API did not return the expected location while testing a particular implementation's filter configuration, due to issues with the inventory service cache. This has been corrected so that the process is more efficient and reduces the number of inventory calls made.
Transaction LogsShipping data in the Sales Tlogs did not contain the customer phone number, as expected based on the previous version of OMS. This has been corrected so that the appropriate phone number will be included in the log.

Restricted Content

Internal Sandbox Details

Find more information about the client-facing updates at these Jira tickets:

  • Removed Product Ranking: CAT-1722
  • Substitutes in Return Receipts: FFMT-3648
  • Reallocation Error Message: FFMT-3546
  • Support for Substitutes with Assembly: FFMT-3712
  • Itemized Segmentation: CAT-2383 and COM-7210
  • Hide Product Ranking Rules: CAT-1722
  • Search Schema Relocation: CAT-2431
  • Delete Merchandizing Rule: CAT-2500
  • Merchandizing Rule Limits: CAT-2487
  • Segmentation in Order Admin: Items marked with only INV.SEG in COM-6821. Items marked with INV.SEG (RIC) and INV.SEG (Subs) are projected for an upcoming release.

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

  • CHAR-4592: The carrier service has been migrated to Spring Boot and updated to use embedded Tomcat.
  • CAT-2475: The MZBoost plugin has been removed from Solr, now that Product Ranking Rules have been migrated to Merchandizing Rules.
  • TECH-1093: To improve search relevancy, enhancements have been made to Solr behavior. Previously, multiple field analysis caused Solr to use field-centric query behavior and impact both minMatch and relevancy scoring. For more information, see the ticket.
  • CHAR-2288: After an issue where Boscov's wasn't receiving notifications due to their server ending the connection with Kibo, an additional action has been added into our notification process. When the connection is severed, the system will attempt to resend the notification where previously it did not.

Find more information about the client-facing bug fixes at these Jira tickets:

  • Product API Missing Property: CAT-2383 (reported by Ace Hardware)
  • Phone Number in TLogs: CHAR-4657 (reported by Tourneau)
  • Suggestion Logs Issue: CHAR-4542 (reported by The Level Group)
  • Duplicate Translated Orders: CHAR-4468 (reported by Rue 21)
  • 0.01 Refunds Not Valid: COM-7205 (reported by Ace Hardware)