September 20, 2022 — 1.2236 Service Update

Production Tenant Features

eCommerce and Order Management Functionality

  • 15 Day Subscription Frequency: An additional subscription frequency option for 15 Days is now available, allowing subscribed products to be ordered every 15 days if selected.
  • Site Settings UI Rework: As a follow-up to the site settings reorganization in the previous release, some minor corrections have been made to the capitalization of labels such as email templates and setting names.
  • Search Orders by Shipment Number: The Advanced Filter menu of the Order Admin search barnow supports searching for orders by shipment number. This is an exact search that will return orders that contain a shipment with that exact number.
  • Get Inventory Response Update: The Get Inventory response now returns the taggedInventory list with the default tag displayed first. This means that the inventory record for the default tag (such as if STH is the default tag for the OrderType category) will always be displayed at the top of the list instead of at the end. This makes it easier to identify which inventory record is the default and select the ideal future inventory.
  • Rate Limit Update: Some UI adjustments have been made to the API rate limit tables in the Dev Center. The table headers have been changed to "API Request Limits" and statuses have been changed to "Throttled" and "Ok." Additionally, the RPM/RPH line has been removed from the production tenant limits.

Fulfiller Functionality

  • Ship to Home Consolidation Setting: A new site setting is now dedicated to Ship to Home Consolidation, under the Transfer Shipments section of the general settings. This toggle is disabled by default, but can be enabled to allow STH Consolidation on your site (meaning that transfer shipments can be created for STH parent shipments). Previously, this was enabled with the same settings as BOPIS. The “Always Create Transfer Shipment” setting has also been renamed to “Always Create BOPIS Transfer Shipments” to better clarify these settings. These site settings were added to the UI in a previous update but did not affect the fulfillment behavior – they have now been fully implemented and will determine the behavior of STH-C shipments.
  • UPS Declared Values: A new option has been added to the UPS settings of location group configurations, called Use Declared Value. Implementations that need to use a declared value for UPS shipments can enable this option (which is disabled by default) and must then provide Kibo with the maximum value they want to insure. This value is currently set to $7500 and can only be changed by contacting the Kibo team. Then, the declared value will be defined as:
    • If the shipment value is less than the maximum insured value, then the shipment value will be used as the declared value.
    • If the shipment value is greater than or equal to the maximum insured value, the maximum insured value will be used as the declared value.

Search Functionality

  • Merchandizing Rules API Filter: The Get Search Merchandizing Rules API now supports filters to search the rules by their startDate or endDate. Both filters support gt (greater than), ge (greater than or equals), lt (less than), and le (less than or equals). You can apply this filter with the standard filter format, such as in /?filter=startDate gt DATE.

Production Sandbox Features

eCommerce and Order Management Functionality

  • Bundled Item Images: Images can now be displayed for bundled items when viewing order and shipment details tabs, as well as modals for editing orders and creating shipments. Adding a product bundle will display the images of the components if available, where previously nothing would be displayed. If there are multiple images available, then the first one will be shown. Any product extra images will also be displayed in a lower section, and clicking one of these images will add the extra to the order/shipment.
  • Editable Refund Quantity: When issuing a refund on a return, you can now edit the quantity of the line items being returned and refunded. The product table now displays three columns for the Returned Quantity, Refunded Quantity, and Refund Quantity. The Refund Quantity defaults to the difference between the Returned Quantity and the Refunded Quantity, but is an editable field. However, validation will ensure that the edited quantity is not greater than the returnable quantity on the order. The system will then calculate the appropriate refund amount based on that quantity.
  • Refund Status Updates: The Partially Refunded and Fully Refunded refund statuses have been updated. Previously, the status was determined based on how many line items had completed refunds. Now, these statuses compare the total refund that has been made against the total price and tax amount of the order. If the total refund is greater than or equal to the total price and tax, the return is Fully Refunded. If the total refund is less than the total price and tax, the return is Partially Refunded.
  • Returnable Item Update: After rejecting a return, the item quantity is no longer considered returnable for the order. When viewing the Returnable Items tab of return details after a rejection, the quantity is longer listed in the Returnable column and is instead moved to the Rejected column. This prevents any future returns from being created for that quantity.
  • Future Inventory in Aggregate: The Aggregate Inventory API, which returns the total inventory across all locations for a given site(s) and product(s), has been updated to include Future inventory when an includeFutureInventory field is included in the request. This parameter can be set to “futureAndCurrent” or “futureOnly” and if not provided, only current inventory will be returned without Future inventory.

OMS-Only Functionality

  • Reserve Inventory in Cart: This new feature allows you to reserve inventory for products in a shopper's cart for a specified amount of time, during which the inventory will be allocated for that customer even if the order is not yet placed. This allows you to guarantee inventory for low inventory items, such as concert tickets or other popular items. This feature is currently only supported for OMS-only implementations, who must leverage the new Reservation API service to create and manage reservation requests from an external checkout, but support for eCommerce implementations will be added in a future release. 
  • Product Bundle Support: Support for product bundles has been added to OMS-only implementations that include catalogs. When a product bundle is added to an order, the individual components of the bundle will be retrieved. OMS will then calculate item pricing based on those components, in which the difference between the bundle price and the sum of the items’ catalog prices is subtracted from the prices of each item based on the item's percentage of the overall price. For more information about how this works and how inventory is determined for bundles, see the Product Bundles inventory guide.

Search Functionality

  • Case Insensitive Search Terms: Search terms are no longer case sensitive in API queries, allowing Search to match any merchandizing rules that are configured with that term regardless of capitalization.
  • Search Merchandizing Updates: More enhancements have been done to support the change from Search Campaigns to Search Merchandizing Rules, ensuring that the Merchandizing Rules UI and APIs support sorting, searching, and create/update/delete actions in addition to the updates below.
    • Minor visual enhancements such as greying out invalid start dates, removing mentions of campaigns, the ability to scroll when picking categories, and adjustments to tables and fonts.
    • Support for the searchType filter has been added to the Get Search Merchandizing Rules API, allowing you to retrieve rules only for specific search types. For instance, appending ?filter=searchType eq CategorySearch will only return rules for category searches.
    • The Search Merchandizing page is now properly localized and will be displayed in the browser language, if a localized version of the page exists for that language. Error messages in the Product Suggestion and Listing sections are also now localized.
    • Pagination has been added to the search results preview, with a default page size of 100 results per page.
    • You now have the ability to clone a merchandizing rule from either the UI (the Clone button in a rule’s dropdown action menu) or API (…/commerce/catalog/admin/searchmerchandizingrules/{code}/clone). This will create a new merchandizing rule with the same configurations as the existing rule.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsTax codes were unable to be added in the Avalara Tax Calculator and Address Validator, as nothing would happen after clicking “add” in the tax code table. This has been corrected so that tax codes can be successfully added.
Targeted for Production TenantsErrors with item quantities were experienced after performing a short pick on a parent shipment that had transfers created prior to the pick. The parent shipment still displayed the original quantity amount, while the quantity that was not picked was incorrectly cancelled off of the transfer shipment. This has been improved so that parent shipment quantities will be properly reduced if the entire amount isn’t picked, and a new transfer shipment will be created for that quantity.
Targeted for Production TenantsThe sorting function was not working as expected on the Customers UI. This has been fixed so that sorting by that column will correctly order the customers in the table based on that field.
Targeted for Production TenantsIf a customer entered their credit card and then also selected Gift Card on the checkout page, the credit card information would disappear. This required customers to re-input their credit card if they wanted to use both payment methods. This has been corrected so that applying a gift card in checkout will not remove any existing credit card information.
Targeted for Production SandboxesNew fulfiller users could not be added if they already existed as a fulfiller user at some point (even in another sandbox), due to their email address already being in use. Improvements have been made to user management processes to ensure that if a user record already exists but is disabled or deleted, it can be reactivated successfully.
Targeted for Production SandboxesRedirects were not being uploaded from CSV files, even though the import gave a successful response. This has been fixed so that redirects are properly uploaded and existing redirects are modified based on the import file.
Targeted for Production SandboxesThe wrong location attribute ID would be updated while attempting to edit a location, preventing the location from being saved. This has been corrected so that locations can be properly saved with the proper attribute definition ID and to prevent this issue from recurring in the future.
Targeted for Production SandboxesA sale item was conflicting with discounted items, in which adding the sale item to the order caused other items to lose their applied discounts. The logic for applying discount redemptions has now been fixed so that adding a sale item will not remove valid discounts on other items.
Targeted for Production SandboxesThe modal to create a new boost expression in Search Settings did not display the expected attributes to choose from, often returning no results even though valid attributes existed. This has been corrected so that attributes are properly displayed and selectable as options for boost expressions.
Targeted for Production SandboxesAfter adding a facet to a category, the category image was removed if the image had been uploaded and mapped directly through the API via middleware. Category images uploaded from the Admin UI were not affected. This has been fixed so that images uploaded this way are better supported and will be retained after a category is updated.
Targeted for Production SandboxesCalling the Site Search API with a search term included in a merchandizing rule would not return fieldList data, and relevancy scores would be populated under the productCode. This has been fixed so that search merchandizing the fieldList and product data are returned as expected.
Targeted for Production SandboxesWhen creating a continuity order from a subscription, custom data for billing data would overwrite general payment data. This has been fixed so that billing data remains in the billing object and payment data is maintained onto new orders.
Targeted for Production SandboxesPrice facet ranges were not updating correctly, as the interface still displayed old price ranges in the search results template after attempting to change the facet’s configuration. This has been corrected so that price range changes are properly saved.


Restricted Content

Internal Release Notes

Production Tenant Features

Client-Facing Updates

  • Ship to Home Consolidation Setting (FFMT-3382 and FFMT-3366): A new site setting is now dedicated to Ship to Home Consolidation, under the Transfer Shipments section of the general settings. This toggle is disabled by default, but can be enabled to allow STH Consolidation on your site (meaning that transfer shipments can be created for STH parent shipments). Previously, this was enabled with the same settings as BOPIS. The “Always Create Transfer Shipment” setting has also been renamed to “Always Create BOPIS Transfer Shipments” to better clarify these settings. These site settings were added to the UI in a previous update but did not affect the fulfillment behavior – they have now been fully implemented and will determine the behavior of STH-C shipments.
  • UPS Declared Values (FFMT-3402 and FFMT-3283, requested by Tourneau): A new option has been added to the UPS settings of location group configurations, called Use Declared Value. Implementations that need to use a declared value for UPS shipments can enable this option (which is disabled by default) and must then provide Kibo with the maximum value they want to insure. This value is currently set to $7500 and can only be changed by contacting the Kibo team. Then, the declared value will be defined as:
    • If the shipment value is less than the maximum insured value, then the shipment value will be used as the declared value.
    • If the shipment value is greater than or equal to the maximum insured value, the maximum insured value will be used as the declared value.
  • 15 Day Subscription Frequency (COM-6278, CAT-1700, and CAT-1701): An additional subscription frequency option for 15 Days is now available, allowing subscribed products to be ordered every 15 days if selected.
  • Site Settings UI Rework (COM-6221): As a follow-up to the site settings reorganization in the previous release, some minor corrections have been made to the capitalization of labels such as email templates and setting names.
  • Get Inventory Response Update (CHAR-3977): The Get Inventory response now returns the taggedInventory list with the default tag displayed first. This means that the inventory record for the default tag (such as if STH is the default tag for the OrderType category) will always be displayed at the top of the list instead of at the end. This makes it easier to identify which inventory record is the default and select the ideal future inventory.
  • Search Orders by Shipment Number (COM-5989 and COM-5883): The Advanced Filter menu of the Order Admin search bar now supports searching for orders by shipment number. This is an exact search that will return orders that contain a shipment with that exact number.
  • Merchandizing Rules API Filter (CAM-318): The Get Search Merchandizing Rules API now supports filters to search the rules by their startDate or endDate. Both filters support gt (greater than), ge (greater than or equals), lt (less than), and le (less than or equals). You can apply this filter with the standard filter format, such as in /?filter=startDate gt DATE.
  • Rate Limit Update (TECH-913): Some minor UI adjustments have been made to the API rate limit tables in the Dev Center. The table headers have been changed to "API Request Limits" and statuses have been changed to "Throttled" or "Ok." Additionally, the RPM/RPH line has been removed from the production tenant limits.

Internal Updates

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

  • VAMP-2023 and VAMP-2022: The descriptions for the locationsInStock and validPriceLists fields have been updated in the ProductSearch API schemas. This change is visible in Swagger and will be reflected in the client-facing API docs the next time those are regenerated.
  • FFMT-3372: A new API (/commerce/shipments/{shipmentNumber}/futureAllocatableItems) now supports creating BOPIS shipments for Future inventory when transfers are disabled. This will create future shipments from a specified set of allocatable future items, making code paths simpler when creating future shipments. This new behavior for BOPIS without transfers will only be triggered for Pickup and Delivery shipments in which allowsFutureAllocate is true and futureDate is not set.
  • COM-6227: Back-end changes have been implemented to support the upcoming ability to display images for bundled items and products with extras. The UI end of this work is expected to be completed in the next release and will be included with client-facing release notes.
  • CHAR-4102: To support the real-time inventory service, PartNumber and SKU fields have been added to the Get Group Availability at Locations API call to keep compatibility with the current version of inventory.
  • CAT-1638 and CAT-1593: API improvements have been made to support the migration from Product Sort Definitions and Search Merchandizing Rules, in which paging has been added to ensure that all rules are included in the migration.
  • CHAR-3899: Location cache behavior has been optimized to better handle partial cache responses in Get by Tenant Site ID and Get Location IDs for Location Codes calls. If some of the desired locations are received from the cache, then only the data for missing locations will be retrieved from the database. The mechanism for saving locations has also been improved to add to existing caches rather than delete it.
  • CAT-1699: A new flyaway script has been created for a tenant attribute, recomputePreComputedDynamicCategoriesOnAddToCart, to add it to databases when appropriate. This attribute was added to support Specialty Commerce by recomputing dynamic categories for variants when discounts are applied to the category.
  • CHAR-4166: RIS updaters have been disabled for non-RIS tenants to ensure that it will not take down Redis for clients who aren't using the real-time inventory service.
  • COM-6245, COM-6243, COM-6242, and COM-6244: Back-end API support has been added to make one-time changes to subscription shipping methods and products. When a one-time purchase product or shipping method is added to a subscription, the next continuity order will include that product or use that shipping method. When the continuity order is complete, the change will be removed and the subscription will return to its previous products and shipping method. These options are not yet available in the Subscriptions UI, and more information will be provided in the Subscriptions documentation and client-facing release notes when the UI work is complete.

Production Sandbox Features

Client-Facing Updates

  • Reserve Inventory in Cart (COM-5826): This new feature allows you to reserve inventory for products in a shopper's cart for a specified amount of time, during which the inventory will be allocated for that customer even if the order is not yet placed. This allows you to guarantee inventory for low inventory items, such as concert tickets or other popular items. This feature is currently only supported for OMS-only implementations, who must leverage the new Reservation API service to create and manage reservation requests from an external checkout, but support for eCommerce implementations will be added in a future release. 
  • Bundled Item Images (COM-6226 and COM-6201): Images can now be displayed for bundled items when viewing order and shipment details tabs, as well as modals for editing orders and creating shipments. Adding a product bundle will display the images of the components if available, where previously nothing would be displayed. If there are multiple images available, then the first one will be shown. Any product extra images will also be displayed in a lower section, and clicking one of these images will add the extra to the order/shipment.
  • OMS-Only Bundle Support (COM-6160 and COM-6159): Support for product bundles has been added to OMS-only implementations that include catalogs. When a product bundle is added to an order, the individual components of the bundle will be retrieved. OMS will then calculate item pricing based on those components, in which the difference between the bundle price and the sum of the items’ catalog prices is subtracted from the prices of each item based on its percentage of the overall price. For more information about how this works and how inventory is determined for bundles, see the Product Bundles inventory guide.
  • Editable Refund Quantity (COM-6100): When issuing a refund on a return, you can now edit the quantity of the line items being returned and refunded. The product table now displays three columns for the Returned Quantity, Refunded Quantity, and Refund Quantity. The Refund Quantity defaults to the difference between the Returned Quantity and the Refunded Quantity, but is an editable field. However, validation will ensure that the edited quantity is not greater than the returnable quantity on the order. The system will then calculate the appropriate refund amount based on that quantity.
  • Refund Status Updates (COM-6098): The Partially Refunded and Fully Refunded refund statuses have been updated. Previously, the status was determined based on how many line items had completed refunds. Now, these statuses compare the total refund that has been made against the total price and tax amount of the order. If the total refund is greater than or equal to the total price and tax, the return is Fully Refunded. If the total refund is less than the total price and tax, the return is Partially Refunded.
  • Returnable Items Update (COM-833): After rejecting a return, the item quantity is no longer considered returnable for the order. When viewing the Returnable Items tab of return details after a rejection, the quantity is longer listed in the Returnable column and is instead moved to the Rejected column. This prevents any future returns from being created for that quantity.
  • Case Insensitive Search Terms (SU-2850): Search terms are no longer case sensitive in API queries, allowing Search to match any merchandizing rules that are configured with that term regardless of capitalization.
  • strong>Future Inventory in Aggregate CHAR-4108): The Aggregate Inventory API, which returns the total inventory across all locations for a given site(s) and product(s), has been updated to include Future inventory when an includeFutureInventory field is included in the request. This parameter can be set to “futureAndCurrent” or “futureOnly” and if not provided, only current inventory will be returned without Future inventory.
  • Search Merchandizing Updates (SU-2615, SU-2253, SU-2480, SU-2367, SU-2738, and SU-2828): More enhancements have been done to support the change from Search Campaigns to Search Merchandizing Rules, ensuring that the Merchandizing Rules UI and APIs support sorting, searching, and create/update/delete actions in addition to the updates below. There are lots of individual tickets included with this release, so for the full list please refer to Jira.
    • Minor visual enhancements such as greying out invalid start dates, removing mentions of campaigns, the ability to scroll when picking categories, and adjustments to tables and fonts.
    • Support for the searchType filter has been added to the Get Search Merchandizing Rules API, allowing you to retrieve rules only for specific search types. For instance, appending ?filter=searchType eq CategorySearch will only return rules for category searches.
    • SU-2848 and SU-2765: The Search Merchandizing page is now properly localized and will be displayed in the browser language, if a localized version of the page exists for that language. Error messages in the Product Suggestion and Listing sections are also now localized.
    • SU-2833 and SU-2831: Pagination has been added to the search results preview, with a default page size of 100 results per page.
    • SU-2633 and SU-2569: You now have the ability to clone a merchandizing rule from either the UI (the Clone button in a rule’s dropdown action menu) or API (…/commerce/catalog/admin/searchmerchandizingrules/{code}/clone). This will create a new merchandizing rule with the same configurations as the existing rule.

Internal Updates

The following enhancements are internal-only and not exposed to clients. As with the client-facing updates, refer to the Search epics and full Jira list for the individual search enhancements done with the updated Search Merchandizing Rules system.

  • CHAR-4175: A flyway script has been added to Order Routing to automatically set the autoAssignLimit setting to null by default. Previously, some defaults were mistakenly set to 10 which caused failures during smoke tests. This script will prevent those issues from happening again by setting all defaults to the intended null value.
  • FFMT-3438: Retryable logic for acquiring shipment locks has been implemented, allowing for a maximum of three attempts for acquiring the lock.
  • CAT-1725: The number of locations and product codes has been restricted to a maximum of 200 each in the Location Inventory API calls of Product Runtime (POST …/storefront/products/locationinventory and GET …/storefront/products/{productCode}/locationinventory?locationCodes={locationCodes}). These limits are configurable in tenant configurations as inventories_endpoint_max_products and inventories_endpoint_max_locations.
  • COM-6236 and CAT-1669: Navigational changes have been made to support the updated Inventory UI, redirecting users after clicking Manage Inventory from product details and allowing the page to maintain the product context from the tenant.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsCOM-6192 (reported by Pearson VUETax codes were unable to be added in the Avalara Tax Calculator and Address Validator, as nothing would happen after clicking “add” in the tax code table. This has been corrected so that tax codes can be successfully added.
Targeted for Production TenantsFFMT-3411 (reported by Born)Errors with item quantities were experienced after performing a short pick on a parent shipment that had transfers created prior to the pick. The parent shipment still displayed the original quantity amount, while the quantity that was not picked was incorrectly cancelled off of the transfer shipment. This has been improved so that parent shipment quantities will be properly reduced if the entire amount isn’t picked, and a new transfer shipment will be created for that quantity.
Targeted for Production TenantsCOM-6269The sorting function was not working as expected on the Customers UI. This has been fixed so that sorting by that column will correctly order the customers in the table based on that field.
Targeted for Production TenantsCOM-6196 (reported by OMI Industries)If a customer entered their credit card and then also selected Gift Card on the checkout page, the credit card information would disappear. This required customers to re-input their credit card if they wanted to use both payment methods. This has been corrected so that applying a gift card in checkout will not remove any existing credit card information.
Targeted for Production TenantsTECH-879Cache tagging was too granular in production for more tenants. A feature had been added to limit the number of lookup tags on a given cache item to only those necessary, which was configured in the application settings for specific tenants. This was not the expected process and cloud configurations were not set up to handle it, so the local setting has been removed in ProductRuntime.
Targeted for Production SandboxesFFMT-3392New fulfiller users could not be added if they already existed as a fulfiller user at some point (even in another sandbox), due to their email address already being in use. Improvements have been made to user management processes to ensure that if a user record already exists but is disabled or deleted, it can be reactivated successfully.
Targeted for Production SandboxesCAT-1272 (reported by United Hardware)After adding a facet to a category, the category image was removed if the image had been uploaded and mapped directly through the API via middleware. Category images uploaded from the Admin UI were not affected. This has been fixed so that images uploaded this way are better supported and will be retained after a category is updated.
Targeted for Production SandboxesCOM-6224 (reported by Home Hardware and Nivel)Redirects were not being uploaded from CSV files, even though the import gave a successful response. This has been fixed so that redirects are properly uploaded and existing redirects are modified based on the import file.
Targeted for Production SandboxesCOM-6168 (reported by Home Hardware)The wrong location attribute ID would be updated while attempting to edit a location, preventing the location from being saved. This has been corrected so that locations can be properly saved with the proper attribute definition ID and to prevent this issue from recurring in the future.
Targeted for Production SandboxesCAT-1616 (reported by The Room Place)A sale item was conflicting with discounted items, in which adding the sale item to the order caused other items to lose their applied discounts. The logic for applying discount redemptions has now been fixed so that adding a sale item will not remove valid discounts on other items.
Targeted for Production SandboxesSU-2809The modal to create a new boost expression in Search Settings did not display the expected attributes to choose from, often returning no results even though valid attributes existed. This has been corrected so that attributes are properly displayed and selectable as options for boost expressions.
Targeted for Production SandboxesCOM-6501When creating a continuity order from a subscription, custom data for billing data would overwrite general payment data. This has been fixed so that billing data remains in the billing object and payment data is maintained onto new orders.
Targeted for Production SandboxesSU-2956Calling the Site Search API with a search term included in a merchandizing rule would not return fieldList data, and relevancy scores would be populated under the productCode. This has been fixed so that search merchandizing the fieldList and product data are returned as expected.
Targeted for Production SandboxesCAT-1764 (reported by Home Hardware)Price facet ranges were not updating correctly, as the interface still displayed old price ranges in the search results template after attempting to change the facet’s configuration. This has been corrected so that price range changes are properly saved.