April 5, 2022 — 1.2212 Service Update

Production Tenant Features

eCommerce & Order Management Functionality

  • Pickup SMS Updates: The default SMS template of the Ready for Pickup notification did not include the external order ID or the store's number, address, and phone number. This template has been updated along with the Ready for Pickup Reminder and Partial Ready for Pickup notifications as well.
  • API Performance Optimization: Some updates have been made to the Catalog and Product APIs to improve performance, specifically by adjusting how internal audit logs were tracking changes.

Fulfiller Functionality 

  • Default Buttons for Custom BPMs: Adjustments have been made to the fulfillment process buttons in custom BPM flows to allow them to better support different BPMs. These buttons now use generic verbiage by default ("Return to Previous Step" and "Proceed to Next Step") which means they will always correctly represent that steps that they navigate the user to. These buttons may be customized in the FFUI theme to edit this text as needed.
  • Advanced Filter Update: The Advanced Filter on the search bar of the Fulfiller UI now returns an exact match of the term entered using the search syntax. For example, entering "Smi" as the customer last name will only return results for "Smi" and not include "Smith."

Production Sandbox Features

eCommerce & Order Management Functionality

  • Subscriptions: When subscriptions are enabled for products, customers are able to sign up for recurring orders of those products at checkout - such as a scheduled shipment of body wash every month. These orders can only be fulfilled via Ship to Home, but the customer is able to select their desired order frequency and opt into a trial period if offered for that product. You can also configure subscription-specific discounts and customer email templates. Subscriptions are supported as part of an eCommerce+OMS implementation or as a standalone solution. For more information about this feature, see the new Subscriptions user guide and the API documentation.
  • Discount Updates: New discount options have been added. When creating a discount, you must now select whether the discount applies to one-time purchases or subscriptions in the discount general settings. Subscription discounts will display additional configurations for frequency or continuity order requirements. In both cases, you can also configure order-level discount conditions to require a minimum total quantity and/or minimum number of distinct products in order for the discount to be applicable.
  • Variant Properties Optimization: Improvements have been made to the caching of variant properties to improve performance when retrieving this product data through the Admin UI and the API.
  • Email Title Updates: The Welcome and Password Reset email titles have been updated to replace "Mozu" with "Kibo."

Fulfiller Functionality 

  • STH Consolidation: A new variant of Ship to Home can now be enabled on locations, in which transfer shipments send STH items to a centralized location to be fulfilled together instead of splitting the shipment. This adds a Waiting For Transfer step to the STH fulfillment flow and saves on the customer's shipping costs. For more details and information about how order routing logic handles consolidation of these items, see the STH Consolidation documentation.
  • Default Buttons for Custom BPMs: As a continuation of the FFUI button changes made in Version 1.2210, more buttons in custom BPMs now use generic verbiage by default ("Proceed to Next Step") which means they will always correctly represent that steps that they navigate the user to. These buttons may be customized in the FFUI theme to edit this text as needed.
  • Aramex Support: Support for the "Aramex" custom carrier has been added to the Fulfiller UI, so that users of an implementation integrated with Aramex are now able to select the Aramex carrier option and generate labels from the FFUI without any errors being returned from the carrier service.
  • Order Reference Number: The order reference number is now passed from the Commerce service (where it is called the parentCheckoutNumber) to shipment data in the Fulfiller service. This allows the order reference number to be queried in the FFUI's search bar and return the shipment results associated with that order.
  • Custom BOPIS BPM: A custom BPM has been created for a particular implementation that includes a Wait for Payment Confirmation state added to the BOPIS flow before Customer Pickup. This only affects the implementation that requested this custom BPM and does not change any existing BOPIS processes.

Search Functionality

  • Schema Editor Update: After clicking the Save or Publish button in the schema editor, the Publish button will now be disabled until the saving or publication process is complete. As that action may take a few seconds, this prevents a user from clicking multiple times and causing errors. The button will only be reenabled if the action was unsuccessful or additional changes are made in the editor.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsThe ApplyHandlingAdjustment API call did not distribute order level handling to the orderItem level, causing a mismatch between the order and shipment totals. This has been fixed so that handling is properly distributed and those totals will be equal.
Targeted for Production TenantsThe KCCP application was not always showing the proper resolution for the current device, because there were different fields for "tablet" and "mobile" that were not supposed to be flagged at the same time. The logic behind this has been updated so that it will properly handle iPad and other tablet cases by automatically setting the mobile flag to false.
Targeted for Production TenantsThe Inventory page of the Admin UI did not show some expected products, and searching for that product code resulted in an error stating that no results were returned. This has been corrected so that affected products can now be managed in the Inventory UI.
Targeted for Production TenantsThe tender total was not being calculated properly in transaction logs when the interaction type was "AUTHORIZEANDCAPTURE" as those interactions were not being added up. This has been fixed so that TLogs will accurately include the values from those transactions when adding up captured totals.
Targeted for Production TenantsIntermittent validation errors were experienced when adding or removing discounts on a campaign, and attempting to delete a discount from the Discounts page after experiencing this error was not possible as the button would be disabled. This has been fixed so that discounts can be successfully managed for campaigns without this occasional error.
Targeted for Production TenantsA security issue regarding EntityLists being exposed through the storefront has been corrected. This change means that you must update any entities that require storefront access by updating your EntityList to set the isVisibleInStorefront field to true.
Targeted for Production TenantsFedEx Cross Border occasionally displayed an error after clicking Generate Documents in the Prepare for Shipment step, even though the documents were actually generated in FedEx's system. This prevented any further attempts to re-generate the documents. This has been fixed so that this error will not be erroneously experienced and the fulfillment step will be able to be completed. All stuck shipments have also been progressed.
Targeted for Production TenantsThe stringBarcode field of the Get Shipment API call, used for the FedEx long tracking number in some implementations, was being returned as empty even though tracking had been added to that shipment. This was due to the Fulfiller UI not saving this value correctly to the shipment data, which has now been fixed.
Targeted for Production TenantsSome return receipts and Get Return API responses displayed the incorrect subtotal and tax amounts, which was due to different tax loss amounts between states such as when an order was picked up in Texas and returned in California. The calculation of these values has been improved so that the values will be consistently correct even across states.
Targeted for Production TenantsSandbox and pre-production sites occasionally experienced errors when loading category and product pages, with the message "our software encountered an error it couldn't resolve." This has been corrected so that these pages will successfully load.
Targeted for Production TenantsAfter the 1.2208 release, selecting a product size on the storefront's product details page made all other sizes unselectable which prevented shoppers from changing their size or other product option selections. This has been fixed so that selecting a product option will not disable the other options and the shopper can successfully switch between options.
Targeted for Production SandboxesWhen a BOGO item and a product with a line item discount was added to the cart, an error was experienced that prevented the user from proceeding to checkout. This has been corrected so that shoppers can properly advance to the checkout page with BOGO items and the expected discounts.
Targeted for Production SandboxesOn the Discounts page, the Advanced Filter did not reflect changes to the search fields made in the search bar and vice-versa. For instance, adding three filters via the Advanced Filter and then removing two from the search bar and reopening Advanced Filter resulted in all three still being shown as active. This has been corrected so that the Advanced Filter and search bar will update when the other is changed, so that the current query is always reflected.
Targeted for Production SandboxesThe user was unable to add a bury value for an attribute in the Search schema editor, as an error would be encountered upon saving. This error also happened when attempting to add the value via API. This has now been fixed so bury values can be successfully added in Search.


Restricted Content

Internal Release Notes

Production Tenant Features

Client-Facing Updates

  • Pickup SMS Updates (COM-2920, requested by Cost Plus World Market and PGA): The default SMS template of the Ready for Pickup notification did not include the external order ID or the store's number, address, and phone number. This template has been updated along with the Ready for Pickup Reminder and Partial Ready for Pickup notifications as well.
  • API Performance Optimization (CAT-1248): Some updates have been made to the Catalog and Product APIs to improve performance, specifically by adjusting how internal audit logs were tracking changes.
  • Default Buttons for Custom BPMs (FFMT-3096): Adjustments have been made to the fulfillment process buttons in custom BPM flows to allow them to better support different BPMs. These buttons now use generic verbiage by default ("Return to Previous Step" and "Proceed to Next Step") which means they will always correctly represent that steps that they navigate the user to. These buttons may be customized in the FFUI theme to edit this text as needed.
  • Advanced Filter Update (FFMT-3052): The Advanced Filter on the search bar of the Fulfiller UI now returns an exact match of the term entered using the search syntax. For example, entering "Smi" as the customer last name will only return results for "Smi" and not include "Smith."

Internal Updates

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

  • VAMP-1452: Some JavaScript errors were encountered when using the Discount Folders dropdown introduced from merging a branch, which have now been fixed.
  • TECH-651: Some features including SiteBuilder and Search Configuration were not working with the custom en-AE locale. Support has been extended to these elements.
  • TECH-420: An internal API has been created to manage the supported tenant types on developer accounts in AppDev.
  • CHAR-3645: The translated Change Gift Information API was never actually built. This has now been created so the documented API can be used to update gift details.
  • CHAR-3613: The pending items handler sometimes caused never-ending cycles to occur when inventory was out of sync. This process has been improved to reduce this in the future and improve pending item performance.
  • CHAR-3464: Inventory update events have now been fully implemented so that they will properly update the cache to reflect a new inventory quantity after changes are made.
  • CAT-1246: The Mozu.Events retry logic has been updated to change retry delays by queueing the next execution date for 5 minutes, 1 hour, 6 hours, 24 hours, and 24 hours again.
  • CAT-1110: QA has now been completed on the Bulk PriceListEntries API that allows updating 5000k price entries at a time.
  • I18N-794 and I18N-777: Improvements have been made to the Mozu.Content and AdminUser APIs to support localization.
  • Various schema and database builds have also been created: TECH-599, TECH-551, TECH-550, TECH-549, and TECH-546.

Production Sandbox Features

Client-Facing Updates

  • Subscriptions (COM-5041, COM-5042, COM-5043, and COM-5304): When subscriptions are enabled for products, customers are able to sign up for recurring orders of those products at checkout - such as a scheduled shipment of body wash every month. These orders can only be fulfilled via Ship to Home, but the customer is able to select their desired order frequency and opt into a trial period if offered for that product. You can also configure subscription-specific discounts and customer email templates. Subscriptions are supported as part of an eCommerce+OMS implementation or as a standalone solution. For more information about this feature, see the new Subscriptions user guide and the API documentation.
  • Discount Updates ( PROM-42, PROM-7, PROM-1, and PROM-25 plus additional supporting tickets—see full list of tickets for all PROM issues): New discount options have been added. When creating a discount, you must now select whether the discount applies to one-time purchases or subscriptions in the discount general settings. Subscription discounts will display additional configurations for frequency or continuity order requirements. In both cases, you can also configure order-level discount conditions to require a minimum total quantity and/or minimum number of distinct products in order for the discount to be applicable.
  • Email Title Updates (COM-4731): The Welcome and Password Reset email titles have been updated to replace "Mozu" with "Kibo."
  • Default Buttons for Custom BPMs (FFMT-3113): As a continuation of the FFUI button changes made in Version 1.2210, more buttons in custom BPMs now use generic verbiage by default ("Proceed to Next Step") which means they will always correctly represent that steps that they navigate the user to. These buttons may be customized in the FFUI theme to edit this text as needed.
  • Aramex Support (FFMT-3111, requested by Al-Futtaim Group): Support for the "Aramex" custom carrier has been added to the Fulfiller UI, so that users of an implementation integrated with Aramex are now able to select the Aramex carrier option and generate labels from the FFUI without any errors being returned from the carrier service.
  • Order Reference Number (FFMT-3103): The order reference number is now passed from the Commerce service (where it is called the parentCheckoutNumber) to shipment data in the Fulfiller service. This allows the order reference number to be queried in the FFUI's search bar and return the shipment results associated with that order.
  • Custom BOPIS BPM (FFMT-3033, requested by Al-Futtaim Group): A custom BPM has been created for a particular implementation that includes a Wait for Payment Confirmation state added to the BOPIS flow before Customer Pickup. This only affects the implementation that requested this custom BPM and does not change any existing BOPIS processes.
  • Schema Editor Update (SU-1965): After clicking the Save or Publish button in the schema editor, the Publish button will now be disabled until the saving or publication process is complete. As that action may take a few seconds, this prevents a user from clicking multiple times and causing errors. The button will only be reenabled if the action was unsuccessful or additional changes are made in the editor.

Internal Updates

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

  • SU-2281: QA has been done on the recent fix where some features including SiteBuilder and Search Configuration were not working with the custom en-AE locale.
  • I18N-951: The CreateDiscount endpoint set a default for a tagCode and required that field; this has been changed so that it is optional and ignored if not provided.
  • I18N-795: Mozu.Provisioning was checked for rebasing and merged.
  • I18N-793: API localization was added to Mozu.SiteSettings.
  • CHAR-3637: A global standard error response has been implemented to the Realtime Inventory Service so that the appropriate error messages are returned in response to API error codes.
  • CHAR-3615: As a follow-up to the pending items handler update in Version 1.2210, behavior has been added to detect the autoAssign flag in the rabbit event from the allocate request and respond accordingly. If false, handling the event will be ignored because the system should only handle pending item events from the auto-assign triggers and not manual assignments.
  • CHAR-3593: A new API endpoint, .../inventory/blockAssignment, has been added to the Inventory service and allows the user to temporarily block shipments from being assigned to the location code given in the request. Previously, blocking assignment could only be done through the Deallocate API. Note that this may be moved to the client-facing enhancements section if/when the API documentation is updated to include the schema for this endpoint.
  • CAT-1253: Mozu.Events retry logic has again been improved so that sandboxes only check once and do not retry events. This prevents sandbox events from overwhelming the event service that is also supporting production tenants.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsCOM-5450 (reported by City Furniture)The ApplyHandlingAdjustment API call did not distribute order level handling to the orderItem level, causing a mismatch between the order and shipment totals. This has been fixed so that handling is properly distributed and those totals will be equal.
Targeted for Production TenantsCOM-5351 (reported by Francesca's)The KCCP application was not always showing the proper resolution for the current device, because there were different fields for "tablet" and "mobile" that were not supposed to be flagged at the same time. The logic behind this has been updated so that it will properly handle iPad and other tablet cases by automatically setting the mobile flag to false.
Targeted for Production TenantsCOM-5080 (reported by Jelly Belly)The Inventory page of the Admin UI did not show some expected products, and searching for that product code resulted in an error stating that no results were returned. This has been corrected so that affected products can now be managed in the Inventory UI.
Targeted for Production TenantsCHAR-3612The tender total was not being calculated properly in transaction logs when the interaction type was "AUTHORIZEANDCAPTURE" as those interactions were not being added up. This has been fixed so that TLogs will accurately include the values from those transactions when adding up captured totals.
Targeted for Production TenantsCAM-309Intermittent validation errors were experienced when adding or removing discounts on a campaign, and attempting to delete a discount from the Discounts page after experiencing this error was not possible as the button would be disabled. This has been fixed so that discounts can be successfully managed for campaigns without this occasional error.
Targeted for Production TenantsCOM-3329A security issue regarding EntityLists being exposed through the storefront has been corrected. This change means that you must update any entities that require storefront access by updating your EntityList to set the isVisibleInStorefront field to true.
Targeted for Production TenantsFFMT-3157 (reported by AM Retail)FedEx Cross Border occasionally displayed an error after clicking Generate Documents in the Prepare for Shipment step, even though the documents were actually generated in FedEx's system. This prevented any further attempts to re-generate the documents. This has been fixed so that this error will not be erroneously experienced and the fulfillment step will be able to be completed. All stuck shipments have also been progressed.
Targeted for Production TenantsFFMT-3148 (reported by AM Retail)The stringBarcode field of the Get Shipment API call, used for the FedEx long tracking number in some implementations, was being returned as empty even though tracking had been added to that shipment. This was due to the Fulfiller UI not saving this value correctly to the shipment data, which has now been fixed.
Targeted for Production TenantsCOM-5322 (reported by Ace Hardware)Some return receipts and Get Return API responses displayed the incorrect subtotal and tax amounts, which was due to different tax loss amounts between states such as when an order was picked up in Texas and returned in California. The calculation of these values has been improved so that the values will be consistently correct even across states.
Targeted for Production TenantsCAT-1329 (reported by Home Hardware and Proactiv)Sandbox and pre-production sites occasionally experienced errors when loading category and product pages, with the message "our software encountered an error it couldn't resolve." This has been corrected so that these pages will successfully load.
Targeted for Production TenantsCAT-1317 (reported by Francesca's and Giant Tiger)After the 1.2208 release, selecting a product size on the storefront's product details page made all other sizes unselectable which prevented shoppers from changing their size or other product option selections. This has been fixed so that selecting a product option will not disable the other options and the shopper can successfully switch between options.
Targeted for Production TenantsTECH-633The import process caused null references in the Admin UI when mapping mismatched attribute product types.
Targeted for Production TenantsCHAR-3527MySQL syntax errors were experienced due to a setting in the schema initializer class that did not check whether an index existed before attempting to query it. 
Targeted for Production TenantsCAT-1311 and CAT-1313The Get Product For Indexing process was bypassing the cache for API Extensions, causing substantial load, and was not using a secondary connection string.
Targeted for Production SandboxesCOM-5155When a BOGO item and a product with a line item discount was added to the cart, an error was experienced that prevented the user from proceeding to checkout. This has been corrected so that shoppers can properly advance to the checkout page with BOGO items and the expected discounts.
Targeted for Production SandboxesCAT-1029On the Discounts page, the Advanced Filter did not reflect changes to the search fields made in the search bar and vice-versa. For instance, adding three filters via the Advanced Filter and then removing two from the search bar and reopening Advanced Filter resulted in all three still being shown as active. This has been corrected so that the Advanced Filter and search bar will update when the other is changed, so that the current query is always reflected.
Targeted for Production SandboxesSU-1851The user was unable to add a bury value for an attribute in the Search schema editor, as an error would be encountered upon saving. This error also happened when attempting to add the value via API. This has now been fixed so bury values can be successfully added in Search.
Targeted for Production SandboxesTECH-668 (reported by Pearson)Security concerns in which event endpoints exposed internal infrastructure have been fixed so that these are no longer vulnerable.