July 12, 2022 — 1.2226 Service Update

Production Tenant Features

eCommerce & Order Management Functionality

  • Configurable Shipping/Handling Refunds: You can now configure whether shipping/handling fees should be refunded by default when initiating a return refund. Previously, the Admin and FFUI used different defaults for this option when initiating a refund. A new site setting ("Refund Shipping and Handling") now determines whether shipping and handling should be refunded by default, and the selection will apply to both UIs. With the release of this setting, shipping and handling will be reset to NOT refunded by default. If this is not your preferred behavior, please update the setting appropriately to ensure that there are no changes to your existing business process. 
  • Future Available to Promise Inventory: A new inventory quantity type for Future inventory can now specify the projected inventory you will receive within a certain time frame. This allows you to calculate the amount that is "available to promise," in which you can allocate against that future inventory when placing orders. Current inventory levels will always be prioritized when assigning orders to fulfillment locations, and any shipments created using future inventory will be placed in a "Future" state and will be unable to be fulfilled until the inventory arrives and the shipment moves into Ready. See the Inventory documentation for more details.
  • Real-Time Inventory Service: The inventory service can now be switched to a real-time version, which provides accurate and real-time inventory visibility to your site using a single source of truth. Kibo must enable this feature in your tenant settings, so please contact Kibo Support if you would like to opt in. It will be applied to all sites in future releases. See the Inventory documentation for more details.
  • Product Search API Update: The Catalog Storefront APIs now support a filter for locationsInStock, where locationsInStock references the array of all location codes where the product is in stock. Querying the Product Search API with filter=locationsInStock eq locationCode will return products that are in stock at the given location. Querying the API with filter=locationsInStock in [locationCode, locationCode, ...] will return products that are in stock at any of the given locations. This filter is case insensitive.
  • Core jQuery Update: The jQuery version used in the Core theme has been updated for improved security. If you need to update this in your implementation, you can follow this pull request and then update or replace any other jQuery packages or plugins you may be using.
  • Rate Limits in Dev Center: Rate limiting rules are now displayed for each affected API route in the Dev Center, along with your current statuses. This provides an easier way of checking whether you are operating within the allowed API request rate across your sandboxes and for each individual production tenant.
  • Subscription Enhancements: Further updates have been made to the Subscriptions feature.
    • When a configurable bundle is flattened in a subscription, the editable item adjustment field will be available on shipments in the Fulfiller UI. When viewing shipment details for a shipment that belongs to a subscription, a column for Item Adjustment will be visible for each individual line item and the user will be able to add/subtract from that item’s unit price.
    • If no line item adjustments have been made to a subscription, then the "line item adjustment" data column will not be displayed in subscription details. This column will only be displayed if there are line items on the subscriptions that do have an adjustment applied.

Fulfiller Functionality

  • Filtering by Multiple UPCs: It is now possible to search for multiple UPC codes through the "UPC" filter of the Advanced Search in the Fulfiller UI. In this field, enter UPC values separated by a comma to query for shipments that include at least one of those UPCs. You can use this in combination with other filtering options as well.

Search Functionality

  • Site Picker UI Updates: The Search Merchandizing Rules page now displays a site picker at the top, allowing you to select which site you are editing rules within. This is similar to the existing catalog and site picker on other KCCP pages. However, the site picker previously displayed on the Search Schema page has been removed, as it was unnecessary for those configurations.
  • Search Redirects UI Limit: Following the API update to increase the maximum allowed number of search redirects to 1000, the new limit is now reflected in the user interface as well.

Production Sandbox 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.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsPressing the Enter key after adding search synonyms did not successfully save the synonym value, and instead returned a 409 Error. This synonym would also disappear after refreshing the page. This has been fixed so that synonym values can be properly entered and saved.
Targeted for Production TenantsAfter deactivating a location, all the orders that were shipped or picked up from that location were no longer returnable. This has been corrected so that returns are still supported for shipments after the original location is no longer active.
Targeted for Production TenantsErrors were occasionally returned for orders during acceptance even if order validation was disabled, preventing those orders from moving to the next step. This has been corrected so that valid orders can be successfully accepted.
Targeted for Production TenantsTracking numbers could not be copied and pasted when splitting packing slips, even though they could be copied and pasted when using a single packing slip. This has been fixed so that tracking numbers can be copied and pasted for multiple packing slips.
Targeted for Production TenantsEntering a single slash (/) as a coupon code on the Cart page resulted in an incomplete error message. This has been updated so that a proper error message will be displayed, indicating that the request failed without a response.
Targeted for Production TenantsThe "use retailer exclusion list" toggle in the Order Routing location groups configuration had no effect, as this behavior is not supported in the Kibo Composable Commerce Platform. This option has now been removed.
Targeted for Production TenantsAttempting to active a paused subscription with the Perform Action API resulted in a 409 Error, indicating that a checkNumber and purchaseOrderNumber were required even though those payment methods did not apply to the subscription. This validation has been fixed so that payment data is not required to make this call if it doesn't apply to the subscription.
Targeted for Production TenantsOutputs were not being displayed for functions in the Dev Center action logs. This has been corrected so that logs are properly documenting output and providing development data.
Targeted for Production SandboxesDelivery 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 SandboxesThe 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 SandboxesCanceling 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 SandboxesThe 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.


Restricted Content

Internal Release Notes

Production Tenant Features

Client-Facing Updates

  • Configurable Shipping/Handling Refunds (COM-5780): You can now configure whether shipping/handling fees should be refunded by default when initiating a return refund. Previously, the Admin and FFUI used different defaults for this option when initiating a refund. A new site setting ("Refund Shipping and Handling") now determines whether shipping and handling should be refunded by default, and the selection will apply to both UIs. With the release of this setting, shipping and handling will be reset to NOT refunded by default. If this is not your preferred behavior, please update the setting appropriately to ensure that there are no changes to your existing business process. 
  • Future Available to Promise Inventory (CHAR-3773): A new inventory quantity type for Future inventory can now specify the projected inventory you will receive within a certain time frame. This allows you to calculate the amount that is "available to promise," in which you can allocate against that future inventory when placing orders. Current inventory levels will always be prioritized when assigning orders to fulfillment locations, and any shipments created using future inventory will be placed in a "Future" state and will be unable to be fulfilled until the inventory arrives and the shipment moves into Ready. See the Inventory documentation for more details. 
  • Real-Time Inventory Service (CHAR-3114): The inventory service can now be switched to a real-time version, which provides accurate and real-time inventory visibility to your site using a single source of truth. Kibo must enable this feature in your tenant settings, so please contact Kibo Support if you would like to opt in. It will be applied to all sites in future releases. See the Inventory documentation for more details. 
  • Product Search API Update (CAT-1486 and CAT-1485): The Catalog Storefront APIs now support a filter for locationsInStock, where locationsInStock references the array of all location codes where the product is in stock. Querying the Product Search API with filter=locationsInStock eq locationCode will return products that are in stock at the given location. Querying the API with filter=locationsInStock in [locationCode, locationCode, ...] will return products that are in stock at any of the given locations. This filter is case insensitive.
  • Rate Limits in Dev Center (SB-90, SB-91, and SB-93): Rate limiting rules are now displayed for each affected API route in the Dev Center, along with your current statuses. This provides an easier way of checking whether you are operating within the allowed API request rate across your sandboxes and for each individual production tenant.
  • Core jQuery Update (COM-5846 requested by Ace Hardware): The jQuery version used in the Core theme has been updated for improved security. If you need to update this in your implementation, you can follow this pull request and then update or replace any other jQuery packages or plugins you may be using.
  • Filtering by Multiple UPCs (FFMT-3273): It is now possible to search for multiple UPC codes through the "UPC" filter of the Advanced Search in the Fulfiller UI. In this field, enter UPC values separated by a comma to query for shipments that include at least one of those UPCs. You can use this in combination with other filtering options as well.
  • Subscription Enhancements: Further updates have been made to the Subscriptions feature. 
    • (FFMT-3241) When a configurable bundle is flattened in a subscription, the editable item adjustment field will be available on shipments in the Fulfiller UI. When viewing shipment details for a shipment that belongs to a subscription, a column for Item Adjustment will be visible for each individual line item and the user will be able to add/subtract from that item’s unit price.
    • (COM-5900 and COM-5806) If no line item adjustments have been made to a subscription, then the "line item adjustment" data column will not be displayed in subscription details. This column will only be displayed if there are line items on the subscriptions that do have an adjustment applied.
  • Search Updates: Several changes have been made to the Search UI.
    • (SU-2536, SU-2458, SU-2535, and SU-2319) The Search Merchandizing Rules page now displays a site picker at the top, allowing you to select which site you are editing rules within. This is similar to the existing catalog and site picker on other KCCP pages. However, the site picker previously displayed on the Search Schema page has been removed, as it was unnecessary for those configurations.
    • (SU-2534 and SU-2481) Following the API update to increase the maximum allowed number of search redirects to 1000, the new limit is now reflected in the user interface as well.

Internal Updates

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

  • TECH-781: Searching action logs displayed a picker for Start Date but did not allow sorting, meaning that it would always show the most recent entries but it was difficult to see the entries closer to the chosen Start Date. A new filter for End Date has now been added to make it easier to search this log.
  • TECH-572 and COM-5804: QA has been completed for the Mozu.Content and Mozu.ShippingAdmin upgrades to .NET 6.
  • FFMT-3250: The code for printing packing slips has now been optimized and functional test cases have been created for reprinting slips.
  • CHAR-3917: All shipment queries have been moved into their own redshift schema after errors caused a data loss of shipment items.
  • CAT-1516: A message that caused the entire site to re-index has been removed.
  • CHAR-3822: The location caching in the inventory service has been improved so that the location code converts to the location ID where possible, among other changes such as removing the cache write on location sync and reducing the data retrieved for export logic. This optimizes the inventory location query response time and will help prevent the inventory service from going down in the future.

Production Sandbox 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. 

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsSU-2472 (reported by Consumer Reports)Pressing the Enter key after adding search synonyms did not successfully save the synonym value, and instead returned a 409 Error. This synonym would also disappear after refreshing the page. This has been fixed so that synonym values can be properly entered and saved.
Targeted for Production TenantsFFMT-3246 (reported by Ace Hardware)After deactivating a location, all the orders that were shipped or picked up from that location were no longer returnable. This has been corrected so that returns are still supported for shipments after the original location is no longer active.
Targeted for Production TenantsCOM-5950 (reported by Proactiv)Errors were occasionally returned for orders during acceptance even if order validation was disabled, preventing those orders from moving to the next step. This has been corrected so that valid orders can be successfully accepted.
Targeted for Production TenantsCOM-5898 (reported by Athletic Greens)Tracking numbers could not be copied and pasted when splitting packing slips, even though they could be copied and pasted when using a single packing slip. This has been fixed so that tracking numbers can be copied and pasted for multiple packing slips.
Targeted for Production TenantsCOM-2782Entering a single slash (/) as a coupon code on the Cart page resulted in an incomplete error message. This has been updated so that a proper error message will be displayed, indicating that the request failed without a response.
Targeted for Production TenantsCHAR-3957 (reported by Peavey)The "use retailer exclusion list" toggle in the Order Routing location groups configuration had no effect, as this behavior is not supported in the Kibo Composable Commerce Platform. This option has now been removed.
Targeted for Production TenantsCHAR-3931The Order Routing UI leaked secure admin cookies. This UI has been updated to improve security and no longer expose cookies.
Targeted for Production TenantsCOM-5941Attempting to active a paused subscription with the Perform Action API resulted in a 409 Error, indicating that a checkNumber and purchaseOrderNumber were required even though those payment methods did not apply to the subscription. This validation has been fixed so that payment data is not required to make this call if it doesn't apply to the subscription.
Targeted for Production TenantsTECH-826 (reported by Jelly Belly)Outputs were not being displayed for functions in the Dev Center action logs. This has been corrected so that logs are properly documenting output and providing development data.
Targeted for Production SandboxesFFMT-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 SandboxesCOM-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 SandboxesCOM-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 SandboxesCOM-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 SandboxesCHAR-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 SandboxesCHAR-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 SandboxesCHAR-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.