March 7, 2023 — 1.2308 Service Update

In this release, the production tenant updates will be releasing to US tenants on Wednesday, March 8. They will still be released to EU tenants on Tuesday, March 7.

Production Tenant Features

Fulfiller

  • Substitutes in Packing Slips: Packing slips will now indicate that an item is a substitute with a small label underneath the product name, similar to what appears when creating or processing a return with substitutes. This label will give the name of the original item that was substituted, such as in “Substitute for: Example Product.”

Order Routing

  • Order Routing Filters: Additional fields have been added to the filter attributes available in Order Routing, allowing you to create routing filters based on those data points out-of-the-box. These fields are order type (Offline or Online), product name/title, taxable, weight, length, width, and height. Filter logic has also been updated to now support the “or” or “any of” conditions. 
  • Import Order Routing Attributes: To support Extensible Order Routing, you can now include a column called "AvailableForOrderRouting" when importing product attribute data with the Import/Export tool. This column supports Boolean values of true/false, indicating whether or not the given attribute is set up to be used in Extensible Order Routing filters.

Search

  • Blocked Product Price Ranges: When a collection has a possible price range instead of a set price, that information will now be displayed in the Blocked Products modal of the Merchandizing Rules page. The modal previously showed a blank space for the “Price” field, but now indicates the range (such as “1-234.09”) instead. This is similar to the price ranges already displayed in the search preview.
  • Three Decimals in Merchandizing Rules: Expanding upon the recent support for displaying three decimal places, those three decimals and the appropriate currency symbol or abbreviation will now be displayed in the Merchandizing Rule preview and Blocked Products modal for currencies such as KWD. Currencies that only use two decimals, such as USD, will not be affected.
  • Search Schema UI Updates: The Search Schema page has now been updated to adjust button, tooltip, and text colors to be more consistent with the rest of the UI.

Production Bug Fixes

ServiceResolution
CatalogAfter purchasing a product bundle, the order would experience errors while in the Accept state. These errors indicated that the product could not be converted into a shipment item, due to a null object in the extra item properties. This has been corrected so that orders with these products can be successfully processed.
OrdersThe Change Address button was not enabled when creating an order, preventing the customer’s address from being editable as expected. This has been fixed so that the button is clickable and will open the address change modal.
OrdersA particular implementation experienced an error when attempting to checkout an order for a valid location address, due to an error with an empty object in the tax service. This has been updated with a null check to avoid this error in the future and allow orders to be successfully placed for valid locations.
FulfillerThe fulfiller user search did not return all expected user results when they had a null or empty email address. This has been corrected so that the search will still return results when possible. If a user does not have an email address, then a first or last name must be searched for instead.
FulfillerFor a particular implementation, shipments in the Customer Care status were duplicated when they were expected to be reassigned by an API Extension. This has been fixed so that Customer Care shipments are only updated, not recreated, when this reassignment procedure runs.
SearchPersonalization scores in the merchandizing rules preview were always 0, even when there was a valid Monetate ID integrated and other scores were expected. These scores would be returned by API, but were not reflected in the Merchandizing Rules UI. This has been corrected so that the preview can properly utilize personalization scores.
StorefrontWhen a user logged into their account from the checkout page and entered a coupon code, they received a 500 Internal Server Error. This was due to an issue where the User ID and Cart ID were not updated upon login and the user no longer had access to the cart. This has been fixed so that users can log in and still access their cart.


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:

  • CHAR-4543: A new Commerce Java SDK module has been generated with the updated Swagger docs that will not break Fulfillment like a previous SDK regeneration. Jobs have been updated to point to this new dependency.
  • CHAR-4541: The process of deploying .war files has been updated to use embedded Tomcat with -jar deployments, to reduce boot up times and storage-based evictions.
  • CHAR-4443: Reserve Inventory in Cart is now configurable to use Redis Sentinel in order to reduce infrastructure costs for environments where RIS uses its own Redis cluster. Refer to the ticket for more information.
  • CAT-2242: Provisioning has been done so that Order Routing Extensibility can be applied to all existing customers with tenant attributes for OMS tenants. This is achieved with a new internal Tenant API endpoint for bulk updates of attributes and tenants. Refer to the ticket for more information.
  • TECH-1076: A default crawl-delay has been added to the robots.txt file, protecting against any future crawlers adding stress to the system.

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

  • Change Address Not Available: COM-7088 (reported by Boscov's and Calendars)
  • Checkout Order Errors: COM-7020 (reported by Sun & Ski)
  • Internal Server Error in Checkout: COM-6870 (reported by Crazy Shirts, Francesca's, and Sundance)
  • Fulfiller User Search Missing Results: COM-6621 (reported by Home Hardware)
  • Personalization Scores Always Zero: COM-2350 (reported by Nespresso)
  • Shipment Duplication: FFMT-3704 (reported by Zwilling)
  • Unable to Accept Product Bundles: COM-7248 (reported by French Toast)

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

  • TECH-1080: Wile sending out a large amount of events, catalog import jobs would stall due to memory becoming full. This has been fixed so that the process will wait on batches of 200 events and not allow them to pile up.
  • TECH-1048: When partially syncing a Monetate dataset via catalog .csv file, attributes that were omitted from the dataset were not deleted as intended. Neither were attributes marked with the "delete" keyword. This has been corrected so that partial syncs will appropriately remove attributes as it does during full syncs.
  • TECH-1090: The catalog import/export service was experiencing recurring crashes while deserializing configurations. This has been corrected so that the service can successfully run this process again.

Production Sandbox Features

Fulfiller

  • Substitute Partial Quantity Setting: Substitutions will now respect the "Do Not Allow Partial Quantity at Validate Stock" location group setting. If this setting is enabled, then fulfillers can only substitute the full quantity of the original product. They will not be able to substitute only part of the original quantity. More than one substitute product can be used, as long as they add up to the entire original quantity.
  • Scan Substitute Quantity: When substituting an item in the Fulfiller UI, you can now use your scan gun to enter the substitute quantity instead of typing it in. This works the same way as scanning quantity in the standard Validate Stock step, and requires the theme level setting to allow scan guns (isItemUPCScanAllowed) to be enabled. 
  • Mobile UI Enhancement: Better support has been added for the mobile version of the Fulfiller UI, providing a more responsive UI that will not break during the substitution process.

Sandbox Bug Fixes

ServiceResolution
CatalogWhen a product attribute of the "list" type was assigned as a variant property with the multi-select option enabled, it wasn't possible to actually select more than one option when applying the attribute to a product. This has been corrected so that multiple values can be selected as expected when the option is enabled for a list.
InventoryAfter clicking the Manage Inventory link from a configurable product's detail page in the Admin UI, a generic error message would be displayed. Attempting to search for inventory by the base product code would return an error saying that the code was invalid. This was due to the master catalog context of the Inventory UI being reset to the default even if the product was located in a different catalog. This has been corrected so that the proper catalog will be retained when navigating from the product to its inventory.
Order RoutingFor a particular implementation's routing configuration, products that were expected to be assigned to a particular group based on their prefix were not doing so during multi assignment. Order Routing only provided a suggestion for the first line item, and then skipped the remaining order items, resulting in shipment creation failures and the order going into the Validated state. This has been fixed so that all products in an order are evaluated and assigned appropriately.
SearchWhen editing the list of blocked products in Merchandizing Rules, the modal would experience an error if there were more than 200 product types in the implementation. This has been updated so that the system can better handle a large amount of product types when fetching products to display.
SearchIt appeared that more than 20 products could not be added to the Blocked Products list from the Merchandizing Rules UI, even though additional products would be saved in the backend. This was due to only 20 results being returned from the API after performing the update. This has been fixed so that the full list of updated products is returned and displayed in the UI. Note that the UI still has a maximum limit of 100 limits.
StorefrontA Reverse Proxy error was experienced when clicking on a discount from a certain catalog in the Admin UI. This has been corrected so that you can successfully view and search for discounts in the affected catalog(s).


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:

  • FFMT-3507 and FFMT-3506: A custom transfer shipment workflow has been created for The Level Group, with a Waiting for Payment Confirmation step in between Validate Stock and Print Packing Slip.  Likewise, the same step has been added to a custom BOPIS workflow between the Validate Stock and Waiting for Transfer steps. These work similarly as the same step that was added to TLG's custom Ship to Home workflow.
  • CHAR-4586: The heap size for the Maven-Surefire plugin did not have a restriction to prevent it from using up a large amount of memory, so it has been updated with a memory limit to prevent Jenkins from being taken down.
  • CHAR-4406: The Cache Invalidation APIs used for RIS have been updated to support the modified fulfillment type cache.
  • TECH-1095:  Documentation links in the Dev Center have been updated to point to the new knowledge base URLs. While these are exposed to clients in the UI, there is no visible change to their behavior (besides correcting any possible 404s) so this update don't need to be announced in the public notes.

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

  • Order Routing Behavior: CHAR-4551 (reported by Tourneau)
  • Reverse Proxy Error: CAT-2418 (reported by Calendars.com)
  • Blocked Products Limitations: CAT-2417 (reported by Proactiv)
  • Multi-Select List Attribute: CAT-2385 (reported by Fortis Life Sciences)
  • Blocked Products and Product Types: CAT-2380 (reported by Ace Hardware)
  • Product Inventory Errors: CAT-2202 (reported by Calendars.com)

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

  • TECH-1058: A gradual memory leak was experienced in the Reverse Proxy Web API, occasionally causing errors as memory was depleted. This has been fixed to prevent this in the future.
  • CHAR-4677: Ssense could not use S3 inventory file exchange for fetch files, as an error would be returned that the system was unable to unzip the file. This process has been updated to ignore duplicated file directories and skip any instances of characters that seemed to be causing problems.