October 16, 2024 — 1.2440 Service Update

Production Tenant Features 

Commerce

  • B2B Discount Attributes: Discount Extensibility can now support custom B2B attributes in addition to customer, order, and location attributes. These can be used as conditions for both line item and order-level discounts, but require the B2B user to be logged into their account in order to apply the discount.
  • Automatic Substitutions: You can now enable product substitutions to occur automatically upon shipment creation when the system finds that inventory isn't available. The order that substitutes are listed in the product settings determines the order of priority that automatic substitutions are attempted in, but the shopper can select a preferred substitute from that list during their cart or checkout instead. In this case, their preference will be attempted first. Shoppers can also opt out of substitutions entirely or restrict it to manual substitutions at fulfillment (allowing fulfillers to obtain their consent first).
  • Call Center UI: A new user interface for customer service representatives is now available. This dashboard allows CSRs to search across customers, orders, and returns all on the same page and perform management actions on them to resolve customer requests more quickly. CSRs can also optimize their workflow by organizing their tasks into multiple sessions with tabs. See the Call Center guides for more details.

Fulfillment

  • Package Consolidation: You can now combine shipments from multiple orders in the same package(s) to save on shipping costs and provide a better shopping experience, as long as each of the shipments fulfills certain requirements such as using the same shipping address and method. This is supported for Ship to Home, Ship to Home Consolidation, and Transfer shipments for both B2B accounts and B2C customers. See the Package Consolidation guide for more details about the shipment requirements and fulfillment process.
  • Fulfillment SLAs: SLAs, or Service Level Agreements, measure your actual fulfillment times against the time that is promised to customers. Once you define SLAs and assign them to locations, their shipments will be rated by three thresholds (Compliant, At Risk and Non Compliant) that indicate whether the promised time is on track to being met or exceeded. See Fulfillment SLAs for more information.
  • FFUI Dashboard Update: A new version of the Fulfiller UI dashboard is now available, which displays an interactive location map that can be toggled to an alternate Ready shipment listing view. Both views reflect current SLA statuses (if SLAs are enabled), in addition to being filterable by locations and shipment types. Kibo will be in contact with you to schedule a time to switch over to this dashboard. 

Inventory

  • Granular Inventory Fields: You can now enable SKU, Lot Code, Date, Condition, and Serial Number inventory fields to track more detailed location inventory in addition to the existing UPC. When any of these fields are set via the Inventory Refresh and Adjust API calls, current and future inventory records will be unique by on those values and additional columns will be displayed in the Inventory UI as well as Fulfiller UI shipment details. See the Inventory documentation for more information about using these fields.

Production Bug Fixes

Service Resolution
Commerce Generating a shipping label with updated FedEx settings resulted in a server error and only custom rates being returned on the checkout. This has been fixed so that FedEx labels can be successfully created and rates accessible on the storefront.
Commerce Inventory was being allocated for reservations even if the product wasn't enabled to track inventory, which caused discrepancies with deallocation and fulfillment. This has been corrected so that products will not be allocated or reserved if not enabled to track inventory or manage stock.
Inventory Inventory exports were not calculating amounts correctly, as Safety Stock was not being subtracted from On Hand inventory. This has been corrected so that the Safety Stock, LTD, Floor, and On Hand fields reflect accurate amounts.
Inventory Some inventory requests were timing out during Order Routing and have been fixed.

 

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-4537: New shipment workflow task changed events have been added to fulfillment event messaging to support SLAs.

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

  • FedEx Label Error: COM-8939 (reported by Sun & Ski)
  • Inventory Allocation and Reserve: COM-8846
  • Inventory Export Amounts: CHAR-5675
  • Inventory Timeout During Order Routing: CHAR-5681

Production Sandbox Features 

Catalog

  • Discount Enhancements: Discount configurations now allow you to set a discount's code and indicate whether it's public or not. The Discount UI's advanced search options can filter discounts by this code and public status.

    Public line item discounts can be accessed by your storefront or custom code via a new POST endpoint, .../commerce/catalog/storefront/discounts/products. Non-public ones can be accessed by users with the Discount Read behavior at POST .../discounts/secure/products. Provide a list of products in the request body (up to a maximum of 20) to retrieve discounts for those products. You can filter further with a pricelist in the header, or by providing a customerSegments field and list of values in the body.

    Another new endpoint, POST .../discounts/secure/orders, will return non-public order-level discounts for users with appropriate permissions. You can filter this API specifically for shipping or product discounts with targetType ("Shipping" or "Product") in the header.

    The API documentation will be updated soon with models for these requests. Additionally, some minor styling changes have been made to the Discount UI to better display attributes. 

Sandbox Bug Fixes

Service Resolution
Catalog Null errors during the pricelist file export process resulted in the file only containing a single row. This has been corrected so that the file is exported with all appropriate pricelist records as expected.
Catalog 500 Internal Server and 400 Bad Request errors were experienced from the Product Search API due to an formatting issue with a space in dates, preventing some merchandizing rules from being saved. This has been fixed so that dates are formatted correctly and no longer cause errors.
CatalogCustom theme changes were not being immediately reflected on the site or Kibo Admin due to caching. This process has been updated so that applying a new theme will prompt it to refresh and display the changes more quickly.
Commerce The Order Status API was throwing a 500 Internal Server Error when incorrect information was provided, instead of a 400 Bad Request. This has been fixed so that more accurate error information is provided.
Commerce Some Admin-Only order attributes of the "list" type were unable to be edited again after the initial save. This has been corrected so that attributes can be updated as expected.
FulfillmentFulfillers experienced errors when adding manual tracking numbers to packages that were not enabled for split packing slips. This has been fixed so that tracking numbers can be successfully added in this scenario going forward.
Inventory A number of connection errors, including request failures and timeouts, were intermittently experienced after migrating translated OMS implementations from the Get Inventory API to the real-time inventory service. Optimizations have been made to improve this integration and reduce connection issues going forward.
Inventory Some inventory imports were failing due to case sensitivity between ".CSV" and ".csv" file endings. This has been fixed so that files are successfully imported regardless of whether or not their type is capitalized or not.

 

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-5634: Inventory import files now support the granular Lot Code, Date, Condition, and Serial Number fields in addition to the SKU. Inventory records will be updated appropriately based on these identifiers. 
  • CAT-5555: Swagger documentation has been generated for PricingRuntime.
  • CAT-5505: The Sales Rank boost/bury field now uses BigQuery instead of Redshift.
  • CHAR-5219: A configurable TTL has been added to the AtLocation queries cache.
  • CHAR-5698: Adjustments have been made to address test mode migration issues, including changing the import expiration time to 1 hour, handling numbers greater than the maximum integer limit, and excluding UPCs that end with escape characters.
  • CHAR-5679: The backorder release job has been updated to work with granular inventory fields, now properly releasing orders that use those inventory records.
  • CHAR-5772: Allocation logic has been removed from the Inventory Pick Wave Suggestion API, as that was not necessary behavior for KCCP and caused some problems for clients.
  • CHAR-5715: The InventoryManagement module of Kibo.Inventory has been reviewed for deployment to production.

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

  • Pricelist Export Errors: COM-5557 (reported by Pearson VUE)
  • Product Search Errors: CAT-5588 (reported by Sun & Ski)
  • Theme Caching Update: CAT-5566 (reported by Proactiv) 
  • Order Status API Errors: COM-8891 (reported by Echidna)
  • Edit Order Attributes: COM-8800 (reported by French Toast)
  • Tracking Number Errors: FFMT-4579 (reported by Al Futtaim)
  • Translated OMS Inventory: CHAR-5682 (reported by Boscov's)
  • Inventory File Case Sensitivity: CHAR-5786 (reported by Tourneau)

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

  • CHAR-5678: Some Order Routing tests were failing in develop branches that have now been investigated and fixed.