October 17, 2023 — 1.2340 Service Update

Production Tenant Features


  • Customer Contact Limit: There is now a maximum limit of 20 contacts per B2C customer account. If a new contact is added when the limit has been reached, then the oldest contact that is not set as the primary billing or shipping address will be deleted and replaced by the new contact. For B2B, accounts with more than 20 users will allow more contacts to be created but any new non-primary contacts will replace the oldest non-primary contact. For example, if there are 21 primary contacts in a B2C account then you will be able to add a 22nd non-primary contact. But if you then add a 23rd contact, that 22nd contact will be deleted assuming it is still the oldest non-primary contact
  • Custom Flat Rate Shipping: You can now use a site setting (Retain Flat Rate Per Order) to enforce always charging customers the entire flat rate fee for orders from particular carriers. This means that if one shipment is cancelled then the fee is redistributed to another Active shipment, and if a reprice occurs on one shipment then the flat rate shipping will not be affected. For more details, see the Create a Custom Rate section of the Shipping Carrier documentation.
  • eCommerce Backorder Release: The backorder release job previously only ran for eCommerce+OMS and OMS-Only implementations, and was not supported on eCommerce-Only tenants. This prevented BOPIS backorders from being automatically released to their known pickup locations, as well as release of orders assigned to the single STH location allowed for these tenants. This process has now been updated so that this backorder release job can be run for these eCommerce-Only cases.
  • Synchronous Auth and Capture: When a credit card or third-party payment type is set to Auth and Capture on Order Placement, the auth and capture process will now be performed synchronously. This means that the customer will be immediately notified of a payment issue for them to address and the order will not be submitted. Previously, the order would be submitted even with incorrect payment information which caused order confirmation emails to be erroneously sent and required customer service representatives to contact the customer.


  • RIS Get Inventory Endpoint: The Get Inventory API should now be called via the endpoint /api/commerce/realtime-inventory/v5/inventory. This is the same POST request as the standard version of the API and returns all fields previously supported. It also returns additional fields for accurate fulfillment date features.
  • Future Inventory in the UI: You can now view future inventory levels in the Inventory UI when that information exists for an inventory item and a future date is selected. Once the date is chosen, inventory records will become expandable. Expanding a record will display a table breaking down the Total, Available, and Allocated inventory levels and a link that opens a pop-up with a list of all future inventory that is expected up to that date. This is supported for both non-segmented inventory and inventory segmented by tags. See the Future Inventory documentation for more details and a walkthrough of this UI.


  • Vector Search: Rather than matching words to a query, this new search method uses machine learning to associate documents with vectors (a series of numbers) and then the search query checks those vectors to find the most similar results. This provides the benefit of retrieving results based on the meaning of the search query, rather than simply matching words or phrases. This feature must be turned on via your tenant attributes, so contact Kibo Support if you are interested in using Vector Search. For more details, refer to the Vector Search guide.


  • Error Message and Retry Button: As a follow-up to the subscription action update in the previous release, an error message will now be displayed in a banner at the top of the subscription details when viewing an Errored subscription. This message will indicate the reason for the subscription's error. Additionally, a Retry button is now available on Failed and Errored subscriptions that allows you to quickly re-attempt creating a continuity order from the subscription. If the order creation is successful, then the subscription will be changed back to the Active state.

Production Bug Fixes

ApplicationsA particular implementation was unable to create a new application version for the ShipStation application, as attempting to do so resulted in a validation error. This has been corrected so that new versions of this application are able to be successfully created.
CommerceThe Update Inventory API was returning Forbidden errors when attempting to perform a restock return via direct API call, meaning that this behavior was only functional when done through the Admin UI. Support for direct API calls has been added, allowing restock returns to be made via these calls and inventory updated appropriately.
ContentFor clients using the eCommerce Content Editor (AKA Site Builder), the Edit Image widget resulted in an error message if the user clicked Select Existing. Then, the Edit Image window would appear blank if clicked again. This has been fixed so that these windows load properly and allow the user to edit the image and navigate back and forth as expected.
FulfillmentA particular implementation's serialNumber value was not being passed from a BOPIS transfer shipment to its parent shipment as expected. This has been corrected so that the associated serial number is populated on the parent shipment being picked up.
OtherComplexity and length requirements were not being enforced for a particular implementation's login page, as the system accepted setting a password that was not the appropriate length. This has been checked to ensure that passwords must have a minimum of eight characters with one number, one uppercased letter, and one special character.
SubscriptionsSubscriptions were being created with credit card payments in the Declined status instead of Valid or Authorized. This has been fixed so that subscriptions are created with new payments in the proper status.
SubscriptionsInitial and continuity orders for subscriptions did not properly track sequence numbers (also known as ordinals), as the initial order would have a sequence number of 0 and the first continuity order would have a number of 2. This affected discounts that were intended to apply to continuity orders in a specific sequence, preventing them from being applied and displayed properly. This has been correct so that continuity orders follow the proper sequence and discounts can be applied as configured.

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:

  • TECR-258: Reliance on ALB routing in home pod services (login and console routing) has been removed to support the GCP move.
  • TECR-259: The public graph for inventory routes has been updated to be more consistent with the Admin and Storefront route design.
  • TECR-273: Output caching has been disabled for Location API requests with the latitude-longitude filter, as it was adversely affecting the caching.
  • COM-7789: The Customer service has been updated to .NET 6.
  • CAT-3854: Support has been added to allow skipping a version for Solr migration files, as well as extension of other standard sized vector models.

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

  • ShipStation Validation Error: TECR-266 (reported by Ignitiv)
  • Restock Return Support: COM-7942 (reported by Positec and Wild Fork)
  • BOPIS Serial Number: FFMT-4008 (reported by Tourneau)
  • Edit Image Errors: CAT-3751 (reported by Cracker Barrel)
  • Password Complexity: TECR-256
  • Declined Subscription Payments: COM-7961 (reported by Proactiv)
  • Subscription Sequence Numbers: COM-7899 (reported by Proactiv)

Production Sandbox Features 

Note: The BPM Customization feature originally released with this version has been removed from sandboxes. It will be re-released after the code freeze.


  • Carrier Updates: As part of the migration from CARS to SRT, FedEx and UPS have been fully moved to SRT. Carrier accounts and credentials can be fully managed in the Admin UI, but if you choose to manage them via API then you should now use the .../api/commerce/shipping/admin/carriers/ endpoint as detailed in this guide.


  • Pay with Installments: You can now create installment plans that allow a subscription to be paid for in multiple installments, with a configurable initial payment amount and number of payment installments. When an order is created with an installment plan, the system will capture the first payment amount and then begin charging installments according to the configured frequency. For more information, see the Subscription Installments guide.

Sandbox Bug Fixes

CatalogAll subsequent variations were dropped from their product when one variation was missing from their pricelist. This has been expected so that variations will remain on the product as expected.
CommerceWhen a discount was applied in a cart with more than one quantity for a product with extras, the item was split into multiple line items upon order placement and extra item unit prices were replaced with $0. This has been fixed so that applying a discount in this case will reflect the expected prices on all items and extras.
CommerceCustomer notes would no longer be displayed in the Admin UI after receiving a return package. This was due to the "created date" and "created by" values of the note being removed by that action. This has been corrected so that customer notes and all of their associated data will be retained after marking an item as received, allowing them to be displayed.
CommerceWhen an item was split into multiple line items due to a BOGO price difference, the system was checking inventory for each quantity separately instead of together. This could result in scenarios where transfers were not created to fulfill enough missing quantity. This has been corrected so that quantities are better split up for BOGO cases and transfers can be made for the appropriate quantity amounts.
CommerceStore credits were not deducting correctly, allowing customers to use the same store credit for more than its issued amount on different orders. This has been fixed so that store credit balances are properly updated whenever an amount is redeemed or refunded.
Order RoutingOrder Routing timeouts were being experienced in OMS-Only sandbox environments. This caused slow behavior in viewing routing and logs and performing actions such as reassignments, as well as prevented reservations and shipments from being put back into the Ready status after Backorder. Some work has been done to correct this issue and enable logging again, but note that further work will be done to improve routing performance.
SubscriptionsChanging a subscription payment resulted in data bag values being dropped, causing issues due to lost Vantiv authorization information. This has been fixed so that the required data is retained on subscription data after updating a payment.

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:

  • CHAR-5148: Logging was broken after migrating RIS to Java version 17, but has now been fixed.
  • CHAR-5036 and CHAR-5038: RIS has been moved to a new project structure and migrated to Java Version 17.
  • CHAR-5195: Order Routing pointing to RIS has been updated so that the Kibo configuration is the default behavior, allowing the entire environment to be more efficiently turned off for specific tenants.
  • TECR-279: Missing catalog tables have been added to the product admin.
  • CHAR-5188: To support greying out inventory records in the UI if the location is disabled, a new boolean field called activehas been added to the Get Inventory response to indicate whether the location is disabled or not.

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

  • CHAR-5228: Fixed an issue where inventory was emitting messages with mismatched types, preventing RIS from processing them. This fix is currently only for implementations without inventory tags enabled.
  • CHAR-5061: Tests were failing in Jenkins with "too many connections" errors. Some tests were failing due to bad requests from Inventory, some from a timing issue with releasing pending item jobs, and others from gateway infrastructure errors. Tickets have been made for further work on the first two cases. A temporary fix increases the maximum connections.

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

  • Variations Dropped from Product: CAT-3935 
  • Discount Zeroing Prices: COM-7983 (reported by French Toast)
  • BOGO Discount Issues: COM-7725 (reported by Ace Hardware)
  • Store Credit Amounts: COM-7976 (reported by French Toast)
  • Customer Notes Disappearing: COM-7787 (reported by Yamaha Motors)
  • Order Routing Timeouts: CHAR-5177 (reported by SSense, Conns, and Reeds)
  • Subscription Payment Data: COM-7973 (reported by Proactiv)