January 9, 2024 — 1.2352 Service Update

Announcement: Code Freeze

The holiday season "code freeze" has now ended and features pushed to sandbox with Version 1.2342—1.2348 are being released to production. The comprehensive list of features from these sandbox releases has been compiled below.

Production Tenant Features 


  • Change Product Type for Configurable Products: Previously, you could not change the product type on configurable products via Quick Edits because the system couldn't update the product type of every variation on the product as well. Support for this has now been added, so you are no longer restricted from changing product types on configurable products and their variations will be automatically updated as well.
  • Google Feed Currency Toggle: The Google Feed integration now allows you to indicate whether or not to add a currency symbol to the export. For example, this would allow displaying $55.66 instead of 55.66. This is toggled via a boolean includeCurrencySymbol field in the resource configuration data. Documentation for Google Feed will be available soon.


  • Order Now Restriction: A new site setting, "Allow order all or partial items now once every _ days," has now been added to Subscription settings. When set, performing either the Order All Items Now or Order Partial Items Now subscription action will result in both actions being unavailable for the configured number of days.
  • Gift Messages and Receipts: You can now specify both order-level gift messages and individual item-level gift messages, which can be printed on a dedicated gift receipt that does not display the price paid. While gift messages can be viewed and updated in the Admin UI, the receipts can only be printed via the Fulfiller UI during the Provide to Customer or Prepare Shipment steps. See the Gift Orders and Items guide for more details.
  • Reprice Substitutions: You can now enable repricing to occur when a product is substituted during fulfillment. When a reprice occurs, the substitute's item price will be applied and the shipment total will be recalculated. Any discounts, shipping, and handling on the original item will be copied to the substitute item as-is. For more information about repricing behavior and how to enable it, see the Substitute Products guide.
  • Location Groups Update: The BPM workflow names displayed in Location Group configurations now display the more readable workflow name, instead of the ID field. This makes the options more user-friendly while selecting a group's preferred BPM.


  • Future Inventory External IDs: You can now provide External IDs for future inventory records. When setting up your records, they must be unique by either their UPC-Location-Future Delivery Date or their UPC-Location-External ID. For example, if you have three future inventory updates for the same product on August 7 and do not have unique delivery date-times, then external IDs of PO1, PO2, and PO3 could identify each record. See the Future Inventory documentation for more information.
  • Receive Processing Time: A new field, Receive Processing Time, has been added to the available processing times used for accurate fulfillment dates. This value represents the time taken by a location to receive incoming inventory and make it ready to fulfill, such as by unloading a truck and processing the inventory. However, the value is not directly used in any calculations returned by Kibo. It will be included in Inventory API responses if set alongside the other fields for you to use as needed in your own calculations.


  • Print Return Labels on SRT: As part of the migration of all carrier accounts from the previous carrier service (CARS) to the Shipping Runtime (SRT) service, the Print Return Labels functionality has also been updated to SRT. This does not require any additional work on your end and return labels should continue to work as expected with migrated carrier data.
  • Carrier Label Consistency: Canada Post and FedEx carrier labels had inconsistent sizing, with Canada Post labels being generated in portrait orientation and FedEx in landscape. Now, carrier labels will default to a size of 4x6 to improve consistency and make label printing more efficient.
  • Shipping Manifest Settings: New tenant settings are now available in the Fulfiller UI theme to support a selectable time frame when creating shipping manifests. To utilize these settings, Kibo Support should first enable a dropdown on the Create Manifests page that allow the user to filter eligible shipments from within the selected number of days. The tenant settings will determine the default selection and the maximum number of days available in the dropdown. See the documentation for more details.


  • Boost-Bury Enhancements: Additional options have been added to the available merchandizing fields, allowing you to now boost or bury products based on their Margin, Sales Rank, and First Available Date. These enhancements originally required Kibo to enable them in sandboxes for testing, but Margin and First Available Date are now live. Sales Rank still requires Kibo enablement and may not be ready for all clients, so it is disabled by default. Please contact Kibo Support if you're interested in trying out Sales Rank right now. 


  • Payment Recycling: This feature allows subscription order payments to automatically be retried, allowing previously errored payments to go through if the shopper has fixed the payment issue since the error occurred. It can be used both alongside installment plans and without installments. For information on how to set up recycling, see the user guide.
  • Subscriptions UI: A subscriptions dashboard is now available at Main > Subscriptions, allowing you to more easily access subscriptions without having to go through the order or customer details first. This UI displays a searchable grid of all subscriptions on your tenant, which you can click to view and edit the subscription details. For more information, see the Manage Subscriptions guide.

Production Bug Fixes

CatalogWhen viewing the Discounts UI on Google Chrome, the advanced filter icon would disappear when the window was resized in and out of full screen. This was due to the browser overriding Kibo's CSS, and has now been corrected so that the filter icon is displayed properly.
CatalogProducts were not updating in the category expression preview, even though they appeared as expected on the site. This was related to an issue updating sales price fields, which has now been fixed so that products can be previewed properly.
CatalogThe Google Feed file was showing encoded characters for Arabic text and fetching English names in feed files for Arabic attributes. This has been corrected so the proper Arabic text is displayed and returned in feed files.
CatalogProduct image references were changing unexpectedly after editing and saving a product in the Admin UI. This has been fixed so that the original image URLs are preserved as expected after other edits.
CatalogSelected products on the Quick Edits page would be unselected when changing to the next page of products. This has been fixed so that you can select products across multiple pages without losing selections.
CatalogThe Google Feed integration for English and Arabic locales was missing long description fields, as well as not feeding into the google sheet properly (such as not reflecting variant products). This has been corrected so that Google Feed includes the appropriate long descriptions and product information.
CommerceWhen manually reassigning shipments, locations with inventory weren't being displayed in the Inventory tab. This has been fixed so that locations with available inventory will be displayed as expected.
CommerceWhen a location was enabled to allow fulfillment without stock on hand, BOPIS orders were still being cancelled when the inventory of an item was 0. This has been corrected so that this setting will be properly respected and the BOPIS order will go into the Ready status instead.
CommerceWhen manually reassigning an order, some locations were duplicated in the list of options. This has been fixed so that results are not duplicated.
CommerceIn certain scenarios where customers ordered multiples of a product and a shipment reassignment happened at some point, users were unable to initiate replacement shipments due to a duplicate line error. This has been corrected so that replacements can be successfully shipped when required.
CommerceThe Add Group button was not displayed under the System > Permissions > Groups menu where it was expected to be found. This has been fixed so that the group button is visible again.
EventsThe customeraccount.deleted event notification was not received when an account was deleted, though customeraccount.created and customeraccount.updated messages were working as expected. This has been corrected so that the deletion event notification is properly sent.
FulfillmentOrders were being put in the Errored state after Validated due to a "task was canceled" error, even though payment was collected and shipments were created. This was due to conflicts in the back-end with shipment numbers being accessed from multiple requests and causing locks, and has now been fixed so that orders will not be erroneously errored.
FulfillmentWhen a line item was adjusted to a price of $0, return labels would experience an error and could not be printed. This has been fixed so that labels can be successfully generated and printed for $0 line items.
FulfillmentAfter cancelling a line item via API in an OMS-Only implementation, the Cancelled By field displayed in the Admin UI shipment details was not populated. This has been fixed so that the responsible user or application ID is displayed as expected.
FulfillmentWhen attempting to create a transfer shipment for STH shipments caused an 400 Bad Request response while validating shipment stock, the shipment still progressed to Waiting for Transfer despite not being a valid step for STH shipments without consolidation enabled. This has been fixed so that STH shipments in this scenario will not be erroneously moved to transfer states.
FulfillmentProduct extra values were not being displayed on the Fulfiller UI unless the stringValue field was populated in API data, which was optional and not always provided. This has been fixed so that the UI will display the expected value field for product extras if a stringValue is not provided.
Order RoutingRouting Suggestion API calls were failing sporadically with internal server errors. Optimizations have been made to improve these responses going forward and improve error logging.
SearchAfter sorting several pages' worth of merchandizing rules by their End Date, the sort option would not persist after moving through a few pages. This was due to the system becoming confused by rules with no end date. This has been fixed so that merchandizing rules that are sorted by their end date will remain sorted, with empty end dates being treated as the earliest possible options.
SearchWhen pinning products in merchandizing rules, products pinned to the bottom of pages past the first page showed inconsistent ranking. They would appear at the bottom of the first page, but their ranking value would still reflect the listing on the original page. This has been corrected so that pinning products on subsequent pages works as expected, meaning that the product will only be pinned on that page.

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-3959: Scripts have been created  to clean up all data for terminated business process instances over 60 days old.
  • CAT-3464: The Mighty service has been made deployable to other environments, as needed for Vector Search.
  • COM-7941 and COM-8031: SRT has been upgraded to .NET 6.
  • CAT-3446: Rate limiting has been applied to the Batch Import API to improve performance, based on platform load.
  • CAT-3968: Validation has been improved on the Merchandizing Rules API to ensure that clean data is provided when updating a merchandizing rule, such as not allowing products past position 100 to be pinned and not duplicating positions. This will reduce the frequency of odd behavior being experienced on the storefront and preview grid.
  • CHAR-4622: Sonar Cube integration has been added to the Jobs service.
  • CAT-3445: The batch import execution service now monitors metrics like Solr CPU and queue length for indexing queues.
  • COM-8127: SRT's error handling has been improved while generating shipping manifests and now includes the existing manifest ID as well. This allows FFMT to handle the response.
  • COM-8101: Error messaging has also been improved in the label creation process of SRT, where previously the error was consumed and always returned a 200 response code. Now, it will reflect any errors that appeared and those will be logged in Kibana as well.
  • CAT-3145, CAT-3146, and CAT-3519: The Kibo.CampaignManager, Kibo.PageVariationManager, and SolrSchemaManager processes have been upgraded to .NET6.
  • CAT-3953: A new column in the NotificationProcessHistory table now tracks the response duration in milliseconds, helping to identify slow endpoints and improve troubleshooting.
  • FFMT-3904: All internal fulfillment calls being made to PHP Get Inventory API have been moved to the Java Get Inventory API instead.

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

  • CAT-3894: The BatchProcessorQueueFilter was not properly queueing the Operation metadata in S3 or Mongo in certain environments. This caused the operation to be applied to the system instead of being added to a batch, which has now been corrected.
  • CAT-3977: Errors were experienced when the resolver was hitting Solr9 for legacy tenants during indexing. This process has been improved so that the tenant will be verified before performing indexing.
  • CHAR-5237: RIS automation tests were often failing due to issues such as environment, performance, data, and memory loss. These tests have now been improved to reduce the amount of unnecessary failures and improve performance.
  • CHAR-5215: Sonar scanner support broke after moving RIS to a new structure. This has been corrected so that Sonar scanners are functioning as expected again.
  • CHAR-5191: Optimizations have been done to the getGroupAvailableLocations cache, as some events were causing system issues when the cache took time to be invalidated. Now the cache will be expired instead of invalidating all keys on events.
  • CAT-3937: Merchandizing rules were not deleted from Solr when a rule was disabled, as the search indexer was calling ProductAdmin instead of ProductRuntime. This has now been fixed.
  • CHAR-5228: Fixed an issue where inventory was emitting messages with mismatched types for implementations using inventory tags.
  • CAT-4040: Fixed an issue where attribute values in API Extensions were not being validated, causing SQL to break.
  • CAT-3987: Fixed an issue where excessive noise was being experienced on 404 errors from merchandizing rules.

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

  • Discounts Icon on Chrome: CAT-3887
  • Category Expression Preview: CAT-3860 (reported by AFG)
  • Google Feed Not Supporting Arabic: CAT-3486 (reported by AFG)
  • Image References Changing: CAT-3815 (reported by Specialty Commerce)
  • Reassignment Locations Not Displayed: COM-8010
  • Orders in Errored Status: FFMT-4023 (reported by Ace Hardware)
  • BOPIS Orders Being Cancelled: COM-8009 (reported by Wildfork)
  • Routing Suggestion Failures: CHAR-5155 (reported by Ace Hardware)
  • Duplicate Reassignment Locations: COM-8026 (reported by Ace Hardware)
  • Duplicate Line Error: COM-8005 (reported by Reeds and Ignitiv)
  • Return Labels for $0 Products: COM-7902
  • Customer Account Deleted Event: COM-7769
  • Quick Edit Product Selections: CAT-3932 (reported by Calendars)
  • Google Feed Missing Data: CAT-3910 (reported by AFG)
  • Cancelled By Not Populated: FFMT-4007
  • STH Shipment Waiting for Transfer: FFMT-4006
  • Merchandizing Rule Sorting: CAT-3926 (reported by Ace)
  • Pinning Products Error: CAT-3962 (reported by Calendars)
  • Add Group Button Not Displayed: COM-7970
  • FFUI Not Displaying Extras: FFMT-4099 (reported by Reeds)

Production Sandbox Features 


  • Google Feed Update: After the addition of currency to the Google export (listed above in the Production Tenant Features), the location of the currency field in the export file has been swapped with the decimal to improve readability. 
  • Application IDs in Admin: When viewing canceled items in the shipment details of the Admin UI, the Application ID will now be displayed to indicate who or what performed the cancelation if a User ID (username) cannot be found instead. This means that either an application or individual user may be reported depending on which best matches the Updated By field in the audit information.
  • Duty Fees in Admin: To better support managing duty fees on internationally-traded products (which are set via API Extension) you can now view those duty fees in the Order Admin. When viewing shipment details, the Duty column of the shipment item table is not displayed by default but can be toggled on in the table column options. Duty will also be displayed when creating a new order or shipment and calculated into the amount of Price & Tax Paid that can be refunded for returns. The ability to make shipment-level adjustments to duty fees is not yet available, but will be added in an upcoming release.
  • Single Cart for Multiple Sites: If you have multiple sites and enable this feature, cart items will be retained if the customer switches between sites. This will result in one order that is associated with multiple sites and can be viewed or edited from any of your sites. This may be useful for implementations where each site supports a different language, as it allows the language to be changed while in the cart without losing any items or creating a second order.

Sandbox Bug Fixes

CatalogIf using a global override while updating image alt text, it would change the alt text for the master catalog instead of only editing the alt text on that child catalog. This has been corrected so that overrides will only set the alt text within the intended child catalog and not overwrite the master catalog text.
CommerceErrors were experienced with Avalara when the location code field was empty. This has been fixed so that missing location codes won't cause errors to be thrown if not necessary.
CommerceBoth BOPIS and STH orders were being canceled by Order Routing due to internal server errors, even though stock was available at fulfillment locations. This has been fixed so that orders will go into Customer Care when inventory requests fail, instead of being canceled.
FulfillmentThe number of Pending Shipments displayed in the Fulfiller UI reported an incorrect result for all locations of some implementations. This has been corrected so that the shipment count is accurately calculated.
InventoryWhen adjusting the delivery date of a future inventory arrival via refresh, the future date of applicable shipments was not automatically changed as expected. This has been fixed so that shipments that rely on future inventory will always reflect the updated dates for their inventory.
SubscriptionsAfter migrating subscription data, the expected shipping cost was being calculated correctly in the subscription summary details but then became $0 when creating a continuity order. Additionally, the tax information was being refreshed but not reflected in the order. This has been fixed so that the shipping and tax values of a continuity order are correct.
SubscriptionsWhen searching the Subscriptions dashboard by email address, the page would have a long loading time and then display an error message instead of search results. The API search also resulted in incorrect results. This has been corrected so that subscriptions can be successfully searched by email.
SubscriptionsA 403 Error was returned when attempting to search subscription events via either UI or the GET Event API request. This has been fixed so that subscription events can be successfully searched.

Restricted Content

Internal Sandbox Details

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

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

  • COM-8233: The conversion constant for ounces has been changed to 35.272 (a change of -0.002) to account for EasyPost conversion resulting in odd labels for kilogram weights.
  • CHAR-5068: Optimizations have been made to improve the performance time of real-time inventory service tests on both local and deployed environments.
  • CAT-4170: New backend settings have been added to support an alternate username/password connection for when a tenant is configured to get its source data from another tenant.
  • CAT-4020: The Search Redirects service has been updated to re-index nightly.
  • CAT-3522, CAT-3521, CAT-3518, and CAT-3520: The Catalog.InventoryIngestionService, Mozu.Event, ScheduledEvent, and SearchIndexing services have been updated to .NET6.

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

  • COM-8221: A fault email is rendered for checkouts if no orders are returned by the GET request.

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

  • Avalara Errors: COM-8230
  • Alt Text Overriding Master: CAT-4115 (reported by Canada Post)
  • Orders Being Canceled: CHAR-5303 (reported by Home Hardware)
  • Incorrect Pending Shipment Count: FFMT-4056 (reported by Laura Canada)
  • Future Shipment Dates Not Updating: CHAR-5304 (reported by Conn's)
  • Subscription Shipping and Tax: COM-8206 (reported by Proactiv)
  • Subscription Email Search: COM-8224
  • Subscription Event Search: CAT-3975 and CAT-4152