May 31, 2022 — 1.2220 Service Update

Production Tenant Features

Due to Memorial Day, the production deployment will occur on Wednesday, June 1 instead of Tuesday.

eCommerce & Order Management Functionality

  • Shipping Manifest Error Message: When an attempt to create shipping manifests for Canada Post fails, the error response will now include a list of affected shipment(s) that are causing the issue. Previously, you would have had to test generating the manifest for one shipment at a time to determine which were at fault. The error message also now prompts you to refresh the page, which is the recommended action in this scenario.
  • Fulfiller UI Advanced Search: Additional search parameters have been added to the Advanced search options of the Fulfiller UI for Shipment Number, Order Number, and UPC (which maps to the Product Code). While you could already search by shipment and order numbers in the quick search, adding them to the Advanced menu allows for more fine-tuned queries. For instance, using the Advanced menu to filter by Shipment Number will restrict the results to only those with a matching Shipment Number but the quick search may have returned matches from other fields as well.
  • Subscription Enhancements: More enhancements have been made to Subscriptions.
    • When a subscription is created from an order, the initial order is saved as parentOrderId in the subscription data.
    • Validation has been added to ensure that if an item is set up as subscription-only, then it cannot be bought as a one-time purchase and attempting to do so will result in an error.
    • Item-level and order-level subscription discounts are now appropriately displayed in subscription details in a similar format to B2B quotes, including the discount name.
    • When editing a subscription from the Customers page and adding a configurable product, a modal will now appear that allows you to select a product variation. 
    • Validation has also been added to product attributes to ensure that the Separate Product Extras During Subscription Creation attribute used for configurable bundles can only be enabled if Distribute Pricing to Extras on Shipment Creation is also enabled. This may also be called “Split Extras in Subscriptions.”

Production Sandbox Features

eCommerce & Order Management Functionality

  • Alternate Pickup Contact: BOPIS and Curbside orders can now support multiple pickup persons, allowing the customer to designate a second contact who can pick up the order at checkout. This additional contact is displayed with the order/shipment details in the Order Admin and Fulfiller UI, though it can only be edited in the Admin. The alternate contact will receive fulfillment emails and SMS about the order, including Order Confirmation and all Curbside notifications, in addition to the primary contact.
    To support this, an alternateContact object that includes the firstName, lastNameOrSurname, emailAddress, and phoneNumbers fields is now available on the Order API so that this information can be set when creating the order. There are also new endpoints to update and remove the alternate contact on an order. The alternateContact object is passed to the Shipment API data as well, though the Shipment API schemas are not yet updated in documentation.
  • Unique Shipment Notes in Order Admin: Shipment-level notes can now be viewed and edited in the Order Admin. A new "Internal Shipment Notes" tab is displayed when viewing shipment details on an order and will include a table of internal notes with a button to add a new note to the list. These are similar to order notes, but recall that they are unique to the individual shipment and will not carry over to the order level or other shipments on the same order.
  • UPS SurePost Validation: In location group shipping settings, validation has been added to ensure that imperial unit types are used for UPS SurePost packages. If unit types are not set to imperial, then an error will be returned and a message will prompt you to update the units.
  • Subscription Core Theme Updates: The core theme has been updated to include sections in storefront page templates for subscription functionality. The subscription pricing and supported frequencies are now displayed on product details pages along with a Subscribe option that adds the item to the cart (and can be toggled between Subscribe and One-Time Purchase, in which case the subscription price and frequency will not be displayed).
  • Order Admin UI Enhancement: Clickable links are now highlighted in green instead of black to make them more clearly visible in the Order Admin UI. 

Fulfiller Functionality

  • Shipment Manifest Window: The window of time in which the system looks for shipments to manifest has been extended from one day to one week, with approval from Canada Post and EasyPost. For example, this means that you are able to print a manifest on Monday that includes shipments that were fulfilled on Friday through Monday morning. You can select the range of time between 1 and 7 days that you wish to generate a manifest for on the Create Manifests page of the Fulfiller UI.
  • Fulfiller Settings Update: The "Action on BOPIS Reject" fulfiller configuration in the general site settings has been renamed to "Action on BOPIS/STH-C Reject" in order to support STH Consolidation. This setting determines whether items rejected during customer pickup or STH consolidation should be cancelled or sent to Customer Care.
  • Grouped Pick Wave Items: The Fulfiller UI will now display pick waves with similar items grouped together across shipments. Similar items will be listed under a collapsible parent row, with a child row for each shipment. For example, if 5 shipments have 1 quantity of Product 123, the pick sheet will show one parent row for Product 123 with a quantity of 5 and display child rows beneath it for each individual shipment that has a quantity of 1. This makes picking items more efficient and the sheet easier to reference. 

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsWhen viewing the mobile Fulfiller UI, page elements were offset and pushed to the left side which caused words to wrap around and make the page difficult to read. This has been fixed so that tables and other elements are properly displayed on mobile.
Targeted for Production TenantsOrders canceled by Cybersource during the fraud review process did not trigger Order Cancel email notifications. This has been corrected so that cancellation emails are properly sent to the customer when Cybersource cancels their order.
Targeted for Production TenantsTransfer shipments were not visible on the Admin order details page if the order had more than 50 shipments. This has been fixed by changing the limit to 80 shipments for now, though paging may be added in the future for better support. Currently, there may be performance issues on the page if the order has more than 50 shipments.
Targeted for Production TenantsThe Import/Export tool was experiencing errors in sandbox environments when the user attempted to download any export job. This was due to the cache not refreshing and returning old data when retrieving a job. This has been corrected so that exports can be successfully downloaded.  
Targeted for Production TenantsThe GBP currency was being incorrectly displayed as USD in price lists and when selecting products to order on the storefront. This has been corrected so that the configured currency is displayed in price lists as expected.
Targeted for Production TenantsWhen configuring a product type for digital gift cards, the Advanced option for “This product type is a digital gift card” did not properly map the goodsType value in API data. The interface has been updated to list all of the possible options with proper mapping: physical items, service items, digital items, digital credit items, and digital gift cards.
Targeted for Production TenantsMerchandizers were able to edit the spell correction and whitespace fields on the Search Settings configuration page, which should not have been allowed for the merchandizing role. Attempting to change those fields still resulted in the proper error, but the UI has now been updated so that these configurations are disabled from interaction in the first place.
Targeted for Production TenantsWhen there were a large number of facets in a catalog, changes to these facets could not be saved from the Site Editor due to timeout errors. This prevented adding and removing facets as well. Optimizations have been made so that facet edits can now be successfully saved without timing out.
Targeted for Production TenantsAdding the same subscription product to a subscription twice with different frequencies merged the line items when they should have stayed separate. This has been fixed so that the product remains as a separate line item if it is re-added to the subscription with a different frequency. This fix also applies to trial products (where re-adding the same trial product with a different frequency will keep it as a separate line item) and when the same product is added as both a subscription and one-time purchase on the order.
Targeted for Production TenantsSelecting a saved address to be a customer's new primary address was not successful, as the account details would still display the old primary address after clicking Save. This has been fixed so that primary addresses will properly update with the selected address.
Targeted for Production TenantsOn Order Management-only implementations, all completed orders were displaying the "This order is an imported historical order and cannot be edited" message even when it was not an imported order. This has been corrected so that the message is only displayed on applicable orders and shipments.
Targeted for Production TenantsAttempting to refresh inventory was returning a "foreign key" error from the database. This process has been updated so that refreshes can be successfully performed without this error.
Targeted for Production SandboxesTracking number information that used to be included in the shipment history on the Fulfiller UI was no longer displayed on some shipments. This has been fixed so that tracking number change events will always be included in shipment history as expected.
Targeted for Production SandboxesDuplicate item cancelation emails were being triggered when a transfer shipment was canceled, because it would create notifications for the item on both the parent shipment and the transfer. This has been corrected so that these emails are only triggered from the parent shipment and duplicates are not received from transfers.
Targeted for Production SandboxesThe Auto Reassign API was not behaving like the Auto Reassign action in the Admin UI, as it would put the shipment into Customer Care instead of a new fulfillment location as expected. This has been fixed so that you can successfully auto reassign shipments to new locations via API.
Targeted for Production SandboxesTransfer shipments were not being captured in pick waves when the STH order type was selected. This has been fixed so that applicable transfer shipments are properly included in pick waves for both STH and BOPIS order types.
Targeted for Production SandboxesChanging a location's hours of operation in the Admin UI did not successfully update the label associated with that day of the week in API data. While this could be updated with the Update Location API, this behavior has been improved so that the label is synced with the hours of operation in the Admin UI and will update to reflect edits. If a location is marked as Closed for a day, the label will be cleared.
Targeted for Production SandboxesAggregate inventory values were not being correctly calculated and displayed in the Inventory UI. This has been fixed so that the proper aggregate inventory levels are displayed.
Targeted for Production SandboxesAttempting to edit a customer address on an order through the Admin UI resulted in a validation error, even though the address was correct. This has been corrected so that addresses can be successfully updated on orders.
Targeted for Production SandboxesChanges made to the email options in General Settings were being wiped after clicking Save. This has been fixed so that these settings are able to be properly updated and the changes will not revert.
Targeted for Production SandboxesA particular user was no longer appearing as an option when querying the Discounts UI with the "Created By" filter, due to there being more users than the maximum received by the UI. This has been updated so that the users are paginated instead, allowing them all to be available in filtering.
Targeted for Production SandboxesThe Search spell check did not work if more than one facet was added to the search string, as the misspelled word would be queried for instead and return zero results. This has been fixed so that spell checking supports multiple facets and filters and search results will be returned correctly.


Restricted Content

Internal Release Notes

Production Tenant Features

Due to Memorial Day, the production deployment will occur on Wednesday, June 1 instead of Tuesday.

Client-Facing Updates

  • Shipping Manifest Error Message (FFMT-3110): When an attempt to create shipping manifests for Canada Post fails, the error response will now include a list of affected shipment(s) that are causing the issue. Previously, you would have had to test generating the manifest for one shipment at a time to determine which were at fault. The error message also now prompts you to refresh the page, which is the recommended action in this scenario.
  • Fulfiller UI Advanced Search (FFMT-3051): Additional search parameters have been added to the Advanced search options of the Fulfiller UI for Shipment Number, Order Number, and UPC (which maps to the Product Code). While you could already search by shipment and order numbers in the quick search, adding them to the Advanced menu allows for more fine-tuned queries. For instance, using the Advanced menu to filter by Shipment Number will restrict the results to only those with a matching Shipment Number but the quick search may have returned matches from other fields as well.
  • Subscription Enhancements: More enhancements have been made to Subscriptions.
    • (COM-5686) When a subscription is created from an order, the initial order is saved as parentOrderId in the subscription data.
    • (COM-5649) Validation has been added to ensure that if an item is set up as subscription-only, then it cannot be bought as a one-time purchase and attempting to do so will result in an error.
    • (COM-5632) Item-level and order-level subscription discounts are now appropriately displayed in subscription details in a similar format to B2B quotes, including the discount name.
    • (COM-5620) When editing a subscription from the Customers page and adding a configurable product, a modal will now appear that allows you to select a product variation. 
    • (COM-5566) Validation has also been added to product attributes to ensure that the Separate Product Extras During Subscription Creation attribute used for configurable bundles can only be enabled if Distribute Pricing to Extras on Shipment Creation is also enabled. This may also be called “Split Extras in Subscriptions.”

Internal Updates

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

  • COM-5688: New internal-only APIs have been created to support converting an order to a subscription and setting a price list. The Convert Order To Subscriptions endpoint (…/subscriptions/convertOrderToSubscriptions) will accept an orderID in the URL and generate a subscription for it, allowing engineers to retry subscription creation in the event of a failure. The Change Pricelist On Subscription API (…/subscriptions/changePricelistOnSubscription) will update the pricelist code on a subscription and reprice the subscription.
  • VAMP-948: When an endpoint threw an exception and was called again with the same parameters, the stack trace would not be displayed for the second exception which made troubleshooting difficult. Now, the stack trace will be retained for each exception.
  • CHAR-3509: Optimizations have been done to the DataProvider process which include allowing a partial cache response to be used. Previously, when the cache returned with a partial response then it was counted as a miss and the database was re-queried which could possibly cause slow performance.
  • VAMP-1661: Localization has been added to Mozu.AppDev.
  • TECH-513 and COM-5749: The SiteBuilder Admin has been migrated to .NET 6. Also, QA has been done on the Mozu.SiteSetting .NET 6 upgrade.
  • SU-2405: Further back-end work has been done to support better role behaviors in Search APIs. SearchSynonymRead is now a required behavior in order for the user to hit the List and Update Synonyms endpoints.
  • CHAR-3594: An inventory job has been built that will delete old inventory records, improving location and aggregate exports by allowing the includeNegativeInventory flag to be enabled where those exports would otherwise take forever and use a lot of memory. This job runs once a day, but its time threshold can be configured at the tenant level (as well as turning this job off).

Production Sandbox Features

Client-Facing Updates

  • Alternate Pickup Contact (COM-5580): BOPIS and Curbside orders can now support multiple pickup persons, allowing the customer to designate a second contact who can pick up the order at checkout. This additional contact is displayed with the order/shipment details in the Order Admin and Fulfiller UI, though it can only be edited in the Admin. The alternate contact will receive fulfillment emails and SMS about the order, including Order Confirmation and all Curbside notifications, in addition to the primary contact.
    To support this, an alternateContact object that includes the firstName, lastNameOrSurname, emailAddress, and phoneNumbers fields is now available on the Order API so that this information can be set when creating the order. There are also new endpoints to update and remove the alternate contact on an order. The alternateContact object is passed to the Shipment API data as well, though the Shipment API schemas are not yet updated in documentation.
  • Unique Shipment Notes in Order Admin (COM-5218): Shipment-level notes can now be viewed and edited in the Order Admin. A new "Internal Shipment Notes" tab is displayed when viewing shipment details on an order and will include a table of internal notes with a button to add a new note to the list. These are similar to order notes, but recall that they are unique to the individual shipment and will not carry over to the order level or other shipments on the same order.
  • UPS SurePost Validation (COM-5261): In location group shipping settings, validation has been added to ensure that imperial unit types are used for UPS SurePost packages. If unit types are not set to imperial, then an error will be returned and a message will prompt you to update the units.
  • Shipment Manifest Window (FFMT-3161, requested by Laura Canada): The window of time in which the system looks for shipments to manifest has been extended from one day to one week, with approval from Canada Post and EasyPost. For example, this means that you are able to print a manifest on Monday that includes shipments that were fulfilled on Friday through Monday morning. You can select the range of time between 1 and 7 days that you wish to generate a manifest for on the Create Manifests page of the Fulfiller UI.
  • Subscription Core Theme Updates (PROM-53, PROM-58, PROM-59, PROM-60, PROM-61, and PROM-63): The core theme has been updated to include sections in storefront page templates for subscription functionality. The subscription pricing and supported frequencies are now displayed on product details pages along with a Subscribe option that adds the item to the cart (and can be toggled between Subscribe and One-Time Purchase, in which case the subscription price and frequency will not be displayed).
  • Fulfiller Settings Update (COM-5495): The "Action on BOPIS Reject" fulfiller configuration in the general site settings has been renamed to "Action on BOPIS/STH-C Reject" in order to support STH Consolidation. This setting determines whether items rejected during customer pickup or STH consolidation should be cancelled or sent to Customer Care.
  • Grouped Pick Wave Items (FFMT-3008): The Fulfiller UI will now display pick waves with similar items grouped together across shipments. Similar items will be listed under a collapsible parent row, with a child row for each shipment. For example, if 5 shipments have 1 quantity of Product 123, the pick sheet will show one parent row for Product 123 with a quantity of 5 and display child rows beneath it for each individual shipment that has a quantity of 1. This makes picking items more efficient and the sheet easier to reference.
  • Order Admin UI Enhancement (COM-5722): Clickable links are now highlighted in green instead of black to make them more clearly visible in the Order Admin UI. 

Internal Updates

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

  • FFMT-3140: Error handling has been improved for exceptions on Fulfillment pods, ensuring that 500 Internal Server Errors are used and logged appropriately so that they can be caught by Kibo monitoring.
  • CHAR-3841: The amount of logs that are generated during performance testing has been reduced and unnecessary logs have been removed.
  • CAT-1347: Upgrading from the previous version of eCommerce to KCCP resulted in a conflict with the scheduled categories feature, in which the upgraded categories did not receive the default date ranges and thus seemed inactive. The category database schema has been updated to replace these empty values with defaults and improve the upgrade process.
  • CAT-1390: The import/export process that previously used REST APIs has been changed to the flat file import service for customers, catalogs, and CMS. This improves logging, performance, and means that doing an import is no longer required prior to an export. This is part of overall Import/Export updates.
  • CHAR-3757: Order routing suggestion logs were piling up and causing problems with the nightly MySQL dump, particularly for large clients. A cleanup job has been implemented to remove old records and improve this log.
  • COM-5482: The payment service now accepts and stores the isContinuityOrder and recurringPaymentId values used with subscriptions.
  • COM-5703 and COM-5766: Further validation have been enforced on Subscription APIs to support the functionality. Cart items can only be updated if the product supports subscriptions and the selected frequency, and trial products must be a valid product code that supports subscriptions and the selected frequency. Configurable bundle items must also support subscriptions.
  • FFMT-3234: A bulk delete API (DELETE .../shipments/{shipmentId}/packages/bulk) has been implemented to support deleting multiple shipment packages at a time.
  • Note that additional tickets for the Future Available To Promise inventory feature have been completed and will be displayed in the full Jira list, but these are not included in release notes yet as that feature is still a work in progress.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsFFMT-3132 (reported by United Hardware)When viewing the mobile Fulfiller UI, page elements were offset and pushed to the left side which caused words to wrap around and make the page difficult to read. This has been fixed so that tables and other elements are properly displayed on mobile.
Targeted for Production TenantsCOM-5724 (reported by Ace Hardware)Orders canceled by Cybersource during the fraud review process did not trigger Order Cancel email notifications. This has been corrected so that cancellation emails are properly sent to the customer when Cybersource cancels their order.
Targeted for Production TenantsCOM-5716 (reported by Giant Tiger)Transfer shipments were not visible on the Admin order details page if the order had more than 50 shipments. This has been fixed by changing the limit to 80 shipments for now, though paging may be added in the future for better support. Currently, there may be performance issues on the page if the order has more than 50 shipments.
Targeted for Production TenantsCOM-5578 (reported by Pearson)The Import/Export tool was experiencing errors in sandbox environments when the user attempted to download any export job. This was due to the cache not refreshing and returning old data when retrieving a job. This has been corrected so that exports can be successfully downloaded.  
Targeted for Production TenantsCAT-1254 (reported by Athletic Greens)The GBP currency was being incorrectly displayed as USD in price lists and when selecting products to order on the storefront. This has been corrected so that the configured currency is displayed in price lists as expected.
Targeted for Production TenantsCAT-1228 (reported by Sun & Ski)When configuring a product type for digital gift cards, the Advanced option for “This product type is a digital gift card” did not properly map the goodsType value in API data. The interface has been updated to list all of the possible options with proper mapping: physical items, service items, digital items, digital credit items, and digital gift cards.
Targeted for Production TenantsSU-1985Merchandizers were able to edit the spell correction and whitespace fields on the Search Settings configuration page, which should not have been allowed for the merchandizing role. Attempting to change those fields still resulted in the proper error, but the UI has now been updated so that these configurations are disabled from interaction in the first place.
Targeted for Production TenantsCAT-1172 (reported by United Hardware)When there were a large number of facets in a catalog, changes to these facets could not be saved from the Site Editor due to timeout errors. This prevented adding and removing facets as well. Optimizations have been made so that facet edits can now be successfully saved without timing out.
Targeted for Production TenantsCOM-5378Adding the same subscription product to a subscription twice with different frequencies merged the line items when they should have stayed separate. This has been fixed so that the product remains as a separate line item if it is re-added to the subscription with a different frequency. This fix also applies to trial products (where re-adding the same trial product with a different frequency will keep it as a separate line item) and when the same product is added as both a subscription and one-time purchase on the order.
Targeted for Production TenantsSE-935 (reported by Home Hardware)Selecting a saved address to be a customer's new primary address was not successful, as the account details would still display the old primary address after clicking Save. This has been fixed so that primary addresses will properly update with the selected address.
Targeted for Production TenantsCOM-5828 (reported by Laura Canada)On Order Management-only implementations, all completed orders were displaying the "This order is an imported historical order and cannot be edited" message even when it was not an imported order. This has been corrected so that the message is only displayed on applicable orders and shipments.
Targeted for Production TenantsCHAR-3910 (reported by AM Retail)Attempting to refresh inventory was returning a "foreign key" error from the database. This process has been updated so that refreshes can be successfully performed without this error.
Targeted for Production TenantsTECH-740KPP Google Catalog imports failed when over 26mb, due to a Kestral limit of 30k bytes. This limit has been changed to 60 with an environment variable override.
Targeted for Production TenantsCHAR-3784Some inventory tests passed when running in isolation but failed when run together or when running system tests. This has been fixed so that the results of these tests is the same regardless of whether they are run in isolation or in a test suite.
Targeted for Production SandboxesFFMT-3224 (reported by Laura Canada)Tracking number information that used to be included in the shipment history on the Fulfiller UI was no longer displayed on some shipments. This has been fixed so that tracking number change events will always be included in shipment history as expected.
Targeted for Production SandboxesFFMT-3220 (reported by Ace Hardware)Duplicate item cancelation emails were being triggered when a transfer shipment was canceled, because it would create notifications for the item on both the parent shipment and the transfer. This has been corrected so that these emails are only triggered from the parent shipment and duplicates are not received from transfers.
Targeted for Production SandboxesFFMT-3211 (reported by Proactiv)The Auto Reassign API was not behaving like the Auto Reassign action in the Admin UI, as it would put the shipment into Customer Care instead of a new fulfillment location as expected. This has been fixed so that you can successfully auto reassign shipments to new locations via API.
Targeted for Production SandboxesFFMT-3079 (reported by London Drugs)Transfer shipments were not being captured in pick waves when the STH order type was selected. This has been fixed so that applicable transfer shipments are properly included in pick waves for both STH and BOPIS order types.
Targeted for Production SandboxesCOM-5719 (reported by Sun & Ski)Changing a location's hours of operation in the Admin UI did not successfully update the label associated with that day of the week in API data. While this could be updated with the Update Location API, this behavior has been improved so that the label is synced with the hours of operation in the Admin UI and will update to reflect edits. If a location is marked as Closed for a day, the label will be cleared.
Targeted for Production SandboxesCOM-5235 (reported by London Drugs and Giant Tiger)Aggregate inventory values were not being correctly calculated and displayed in the Inventory UI. This has been fixed so that the proper aggregate inventory levels are displayed.
Targeted for Production SandboxesCOM-5175Attempting to edit a customer address on an order through the Admin UI resulted in a validation error, even though the address was correct. This has been corrected so that addresses can be successfully updated on orders.
Targeted for Production SandboxesCOM-4954Changes made to the email options in General Settings were being wiped after clicking Save. This has been fixed so that these settings are able to be properly updated and the changes will not revert.
Targeted for Production SandboxesCAT-1385 (reported by Ace Hardware)A particular user was no longer appearing as an option when querying the Discounts UI with the "Created By" filter, due to there being more users than the maximum received by the UI. This has been updated so that the users are paginated instead, allowing them all to be available in filtering.
Targeted for Production SandboxesCAT-1309Dictionary insert errors were being experienced in the search indexer. Search has been re-indexed and this issue fixed.
Targeted for Production SandboxesCHAR-3816The Test Connection tool for the inventory service was not functioning and returned errors or null data instead. This has been corrected so that the tool will return the expected results.
Targeted for Production SandboxesSU-2452 (reported by Ace Hardware)The Search spell check did not work if more than one facet was added to the search string, as the misspelled word would be queried for instead and return zero results. This has been fixed so that spell checking supports multiple facets and filters and search results will be returned correctly.
Targeted for Production SandboxesFFMT-3297Unleash server metrics have been disabled on the FeatureFlag service and a new index has been added to help reduce load.