April 19, 2022 — 1.2214 Service Update

Production Tenant 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.
  • Email Title Updates: The Welcome and Password Reset email titles have been updated to replace "Mozu" with "Kibo."

Fulfiller Functionality 

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

Production Sandbox Features

eCommerce & Order Management Functionality

  • Inventory Export Filename: When exporting inventory files, a custom filename is no longer required when the files are zipped. This means that the automatically generated filename that includes the export date-time will be used by default and a custom name will not have to be set.
  • 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.
  • Discount Folders Update: When viewing discount folders, clicking the Create New Discount option will open the discount creation page in a separate tab. This new discount will still be created in the current folder the user is in, as well as respect the selected catalog.
  • Case-Sensitive Attribute Option: A new configuration has been added to product attribute settings that will indicates whether the attribute value is case-sensitive for filtering and faceting (which defaults to not case-sensitive). This is a new checkbox called "Index Value With Case" which when enabled will make the attribute case-sensitive and prevent inconsistency in the capitalization of facets.
  • Import Completed Shipments: A new field, isHistoricalImport, has been added to the Shipment API to allow completed shipments to be imported into KCCP. When a shipment is created with this flag enabled, it should be placed directly into the Fulfilled state and shipment events will not be triggered for it. However, fulfiller users will still be able to process returns and refunds on the shipment from the Fulfiller UI. This addition supports an upcoming enhancement in which importing historical orders will create fulfilled shipments for those orders.

Fulfiller Functionality

  • Custom STH Consolidation BPM: Support for a custom BPM based on the upcoming STH Consolidation fulfillment process has been created for a particular implementation. This custom flow adds Waiting for Payment Confirmation and Out for Delivery steps.

Search Functionality 

  • Merchandiser Role Update: Users with the Search Merchandiser role can now edit search synonyms, where previously they did not have the appropriate permissions to do so. 

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsWhen 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 TenantsOn 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 TenantsThe 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 SandboxesReturn URLs are now blocked on implementations that allow redirects within their URLs, improving security and preventing phishing pages from creating fake pages off of the storefront.
Targeted for Production SandboxesThe search functionality in the Custom Schema page was not working in either the previous version of eCommerce or KCCP, as no search results would be displayed after attempting to search the entities. This has been corrected in both versions of the platform.
Targeted for Production SandboxesShipment numbers were still not displaying on courier labels alongside the external order numbers after previous fixes were released. This has been fixed so that shipment numbers are properly reported on these labels for carriers such as Canada Post.
Targeted for Production SandboxesInventory refresh and adjust calls were unable to be made to inactive locations via API, even though inventory needs to be adjusted before locations are reactivated. This has been fixed so that these calls can be successfully made to inactive locations. Deallocation and inventory fulfillment calls can also be made, but allocation calls cannot be.
Targeted for Production SandboxesA particular implementation experienced products with negative availability, preventing those products from being sold even though they had on hand inventory. This was due to reserved inventory not being cleared, but has now been corrected so that inventory levels will properly update after reserves are released.
Targeted for Production SandboxesCustomers did not receive the pickup message when a BOPIS shipment was ready for pickup. This was due to the template in the theme being out-of-date, which has now been updated for email and SMS.


Restricted Content

Internal Release Notes

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

Production Sandbox Features

Client-Facing Updates

  • Inventory Export Filename (CHAR-3667): When exporting inventory files, a custom filename is no longer required when the files are zipped. This means that the automatically generated filename that includes the export date-time will be used by default and a custom name will not have to be set.
  • Variant Properties Optimization (CAT-1296): 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.
  • Discount Folders Update (CAM-268): When viewing discount folders, clicking the Create New Discount option will open the discount creation page in a separate tab. This new discount will still be created in the current folder the user is in, as well as respect the selected catalog.
  • Case-Sensitive Attribute Option (CAT-1199): A new configuration has been added to product attribute settings that will indicates whether the attribute value is case-sensitive for filtering and faceting (which defaults to not case-sensitive). This is a new checkbox called "Index Value With Case" which when enabled will make the attribute case-sensitive and prevent inconsistency in the capitalization of facets.
  • Import Completed Shipments (FFMT-3319): A new field, isHistoricalImport, has been added to the Shipment API to allow completed shipments to be imported into KCCP. When a shipment is created with this flag enabled, it should be placed directly into the Fulfilled state and shipment events will not be triggered for it. However, fulfiller users will still be able to process returns and refunds on the shipment from the Fulfiller UI. This addition supports an upcoming enhancement in which importing historical orders will create fulfilled shipments for those orders.
  • Custom STH Consolidation BPM (FFMT-3160, requested by Al-Futtaim): Support for a custom BPM based on the upcoming STH Consolidation fulfillment process has been created for a particular implementation. This custom flow adds Waiting for Payment Confirmation and Out for Delivery steps.
  • Merchandiser Role Update (SU-2206 and SU-2306): Users with the Search Merchandiser role can now edit search synonyms, where previously they did not have the appropriate permissions to do so. 

Internal Updates

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

  • TECH-718: Catalog import jobs have been added for Update/Create/Delete Category and Product events to support search indexing on import changes.
  • TECH-712: A cache warmup routine has been added for Site Builder.
  • TECH-711: The Image Processing element of the Content service has been split into its own separate deployment to improve performance.
  • TECH-658: Emails from the Dev Center (including invitations to tenants and sandboxes, password reset, etc.) now come from the external configuration used in the implementation's sender email address override instead of Mozu support.
  • FFMT-3020: As a follow-up to the autoAssign flag update in 1.2212 to reduce  pending items handler performance issues, the flag is now passed to Inventory on allocation calls.
  • FFMT-2071: Retry logic has been added to the JbpmBusinessProcessManagementService and external services such as Order Routing to attempt resending failed calls. This defaults to 3 retries.
  • COM-5524: Unnecessary SQL has been removed from the Catalog service, validation stories have been rebased, and the Configure API is no longer used on the sandbox (Get Product is used instead).
  • CHAR-3765: The Tenant ID and Site ID have been added to logging when available.
  • CHAR-3685: A new docker image and authentication plugin has been added to support the Mac m1 processor.
  • CHAR-3597: The HTTP client code has been updated in upstream services to make them compatible with regenerated SDKs (excluding inventory). Java projects that use a Java SDK have also been updated to the latest version.
  • COM-5523: Cleanup has been done to Site Builder to remove duplicate and unnecessary code.
  • I18N-796, I18N-684, and I18N-861: The Mozu.MZDB, Categories in the ProductAdmin, and ProductTypes/ProductAttributes API services have been updated for localization.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsCOM-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 TenantsCAT-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 TenantsSU-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 TenantsTECH-668Security concerns in which event endpoints exposed internal infrastructure have been fixed so that these are no longer vulnerable.
Targeted for Production SandboxesTECH-671 (reported by M&Ms)Return URLs are now blocked on implementations that allow redirects within their URLs, improving security and preventing phishing pages from creating fake pages off of the storefront.
Targeted for Production SandboxesSE-967The search functionality in the Custom Schema page was not working in either the previous version of eCommerce or KCCP, as no search results would be displayed after attempting to search the entities. This has been corrected in both versions of the platform.
Targeted for Production SandboxesFFMT-2857 (reported by London Drugs and Giant Tiger)Shipment numbers were still not displaying on courier labels alongside the external order numbers after previous fixes were released. This has been fixed so that shipment numbers are properly reported on these labels for carriers such as Canada Post.
Targeted for Production SandboxesCHAR-3760Inventory refresh and adjust calls were unable to be made to inactive locations via API, even though inventory needs to be adjusted before locations are reactivated. This has been fixed so that these calls can be successfully made to inactive locations. Deallocation and inventory fulfillment calls can also be made, but allocation calls cannot be.
Targeted for Production SandboxesCHAR-3699 (reported by French Toast)A particular implementation experienced products with negative availability, preventing those products from being sold even though they had on hand inventory. This was due to reserved inventory not being cleared, but has now been corrected so that inventory levels will properly update after reserves are released.
Targeted for Production SandboxesCHAR-3427Customers did not receive the pickup message when a BOPIS shipment was ready for pickup. This was due to the template in the theme being out-of-date, which has now been updated for email and SMS.