February 22, 2023 — 1.2306 Service Update

Note: While 1.2306 sandbox updates are being released on February 22, the production tenant updates will be released on February 23 instead.

Production Tenant Features

Fulfiller

  • Laser Printer Size Update: Laser printer labels are now requested from Canada Post in a standardized 4x6 PDF, where previously it was an 8x10 HTML document that did not print well. This does not affect thermal printers.
  • Substitution Updates: A few small updates have been made to the Substitute Products feature in the Fulfiller UI. When creating and processing a return, a label is now displayed to more clearly indicate that a line item was a substitute instead of an originally-ordered item. Likewise, the Waiting for Transfer step now displays originally-ordered items and substitute items in two different sections. Finally, if a race condition between orders occurs during allocation of substitute quantity and a new order reduces the inventory to less than the expected quantity, then an error message will be displayed on the Validate Stock step saying that the “inventory for selected substitute no longer available.” The user can then select another substitute or transfer/reject/reassign the item.

Search

  • Cloned Sandbox with Search: When cloning a sandbox, the new sandbox will now also copy any search term redirects and merchandizing rules from the original sandbox.

Subscriptions

  • Partial Subscription Order: In addition to the existing ability to immediately convert a subscription to an order, you can now initiate an order for only some of the items in a subscription. When you click Order Partial Items Now in the subscriptions actions menu, you will be able to select the items you want to order (as long as there is always at least one subscription item in the resulting order) as well as add any additional one-time purchase items and change the shipping, payment, or coupon information. This will not change the Next Order Date on the original subscription.

Production Bug Fixes

ServiceResolution
FulfillerAfter the initial release, shipping manifests could not be created for Canada Post. A correction for this bug has been hotfixed in, allowing manifests to be successfully generated by fulfillers.
OrdersShipments were still being created for orders that went into the error state. This has been fixed so that shipments are deleted when there is an error creating them.
SearchWhen adding boost/bury conditions to merchandizing rules, the new conditions were not reflected in the results preview. This was due to issues with the boost/bury condition values being entered with capitalization, when the system expected them to be lowercase. This has now been corrected so that the system can handle this capitalization, unless Index Value with Case is set to true on a product attribute (as that setting enforces case sensitivity).
SearchWhen requesting a number type attribute from the Site Search API using the fieldList parameter, a string would be returned instead of the expected number. This was due to the return_only search analyzer being applied to a number attribute, as the system would then look for a generic string field instead of the one based on the attribute’s actual data type. This has been fixed so that strings are not returned for number/integer attribute values.
SearchThe Synonyms page failed to load on some non-English locales, such as Japanese and Russian. It was expected to default to English if a translation was not available, but a parsing error instead broke the page. Similar issues were found with additional pages in various sections across the Admin UI. This has been corrected so that the page will successfully load and display the English default.


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:

  • SU-3219: A display debug option has been added to the search preview endpoint (…/commerce/catalog/storefront/searchmerchandizingrules/previewsearchmerchandizingrule), allowing the team to better debug preview-related issues. To use this, use responseFields=SolrDebugInfo in the query parameters.
  • CHAR-4490: The getGroupAvailableLocations query has been optimized for better performance and improved response times.
  • CHAR-4473: If Export/SFTP connections fail due to bad configurations, then they will be disabled after a certain number of attempts in the lower environments (prod-sb and below). See the ticket for more details.
  • I18N-708 and I18N-702: The Orders and Returns APIs have now been localized.
  • SU-3259: Testing has been done on the migration endpoints that create new merchandizing rules, and some modifications made to improve the migration process’ behavior when handling rules with multiple categories.
  • CAT-2193: The internal Swagger docs have been updated with the GetOrderRoutingProperties endpoint in the Catalog API.

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

  • Site Search Returning Strings: SU-3058 (reported by Consumer Reports)
  • Synonyms Page Not Loading: CAT-2212
  • Boost/Bury Not Working: SU-3169 (reported by Francesca's)
  • Shipping Manifests Not Working: TECH-1049 (reported by Laura Canada)
  • Errored Orders Creating Shipments: COM-6899 (reported by Ace Hardware)

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

  • CHAR-4512: Issues were experienced with the Kubernetes worker node volume capacity being reduced and the kibo-jobs pods using up too much of the root file system. This has been fixed so that files will be removed after they’re sent to the destination, rather than keeping them on disk.
  • CHAR-4390: Inventory cron deployments occasionally stalled while waiting for the previous pod to terminate, which didn’t happen due to an ongoing fetch file process. This has been corrected so that fetch file processes can no longer continue indefinitely and will terminate when their task is complete, allowing other processes to run successfully.

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

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