August 23, 2022 — 1.2232 Service Update

Production Tenant Features

eCommerce & Order Management Functionality

  • Quick Edits Catalog Filter: When assigning catalogs in Quick Edits, you can now use the advanced filter to search for products by child catalog. A catalog picker has been added to the top of the filter list, and allows you to select one or more catalogs to filter the displayed products by.
  • Clickable Order Audit Links: When viewing the order audit log on the order details page, subscription numbers are now clickable. This will immediately navigate you to the subscription details page, where previously you had to note the subscription number and navigate there yourself. These are usually the logs where a subscription was created for the initial order, as well as when a continuity order was converted into an order.
  • Segmentation for Pending Items: Pending items (where inventory is not yet available but will be allocated once available) have been reworked to support segmentation. Where pending item data in the inventory model was previously based on the Product ID and Bin ID, it now supports an Inventory ID instead of the Product ID. Inventory segmentation requires this Inventory ID field to monitor which tagged inventory the pending item is associated to.
  • Recalculate Dynamic Categories: A new filter parameter, recalculateDynamicCategories, has been added to the storefront Add to Cart APIs, as well as the Get Product and Validate Product APIs. When set to true, this will recompute dynamic categories which is required in order to apply discounts at the product variant level (since product variants are associated to those categories). This flag is applied to the request path such as in ?recalculateDynamicCategories=True
  • Get All Product Properties: A new filter parameter, mapIsProductDetailsOnlyProperties, has been added to the storefront Get Products API call. When set to true, the API will ignore the isProductDetailsOnly field while generating the response. This means that the call will return all properties associated with the product, where previously it would exclude some properties. This makes it easier to retrieve the property attributes for multiple products at once, and makes it more consistent with the Get Product API (which already returns all attributes by default). This flag is applied to the request path such as ?mapIsProductDetailsOnlyProperties=True
  • Return Enhancements: Several updates have been made to returns.
    • When a return has been cancelled, the buttons to Receive Package, print the Return Label, Resend Email, and Refund to New Gift Card are now disabled because these actions are not supported for cancelled returns.
    • Pop-ups will now ask for confirmation after clicking Initiate Refund or Issue Refund from the return or order details pages. This allows you to confirm or cancel the action before it is performed by the system.
    • The “Items Refunded” label when viewing return details has been reworded to “Quantity Refunded.”
    • The internal notes that can be added during the Issue Refund and Ship Replacement actions, as well as directly from the return details page, are now input as text boxes and positioned better in the Issue Refund modal.

Fulfiller Functionality

  • Clickable Links in Notes: In the Fulfiller UI, links in the shipment notes and order notes were not actually clickable but instead required you to copy and paste the URL plaintext into your address bar. Now, the UI can detect when text in these notes is a link and convert it into a clickable hyperlink. The same has been done for order notes in the Order Admin UI.

Search Functionality

  • Search Merchandizing Rules: The concept of Search “Campaigns” (not to be confused with the eCommerce marketing campaigns feature) is being replaced with “Merchandizing Rules.” To support this, several changes have been made to the Search UI. Merchandizing rules implement the same functionality as campaigns, but with some additional behavior as listed below. For more details, see the Merchandizing Rules guide.
    • Search configurations have been moved to their own Configurations page (where previously they were listed with campaigns on the Search Settings page) and a new page for Merchandizing Rules is now accessible where all rules will be listed.
    • On this Merchandizing Rules page, you can create and manage all merchandizing rules and conditions as well as preview site search results. This includes assigning boost/bury values.
    • Pin products so that they will always display at that exact location in the search results on your storefront, as well as manually rank them via drag and drop.

Production Sandbox Features

eCommerce & Order Management Functionality

  • Product Option Images: When adding a product to an order or creating a new shipment in the Order Admin UI, images for product options are now displayed. The default product image will be shown first, with clickable images of each option listed below the dropdown menu of option names. You can select a product option from either the dropdown or by clicking the option image. After confirming your selections, the option image will be displayed in the order and shipment details tabs of the Admin UI.
  • Site Settings UI Rework: Site settings on the General Settings page have been rearranged into new tabs and sections within the existing page for better organization.

Fulfiller Functionality

  • Canada Post Credentials: Canada Post credentials have been redesigned in the shipping and carrier integration service for better implementation. Additional improvements will be done in the future, but test credentials from Canada Post should now work better and experience fewer issues.

Bug Fixes

The following list summarizes resolved issues for this release.

StatusResolution
Targeted for Production TenantsThe My Account page was not receiving shipment data from the API for any order history beyond the first page. This was due to the Get Order call not receiving Shipment API data for those cases, breaking the page templates that required that shipment information. This has been fixed so that order history will properly include all shipment data.
Targeted for Production TenantsIf a user deleted an address from the My Account page during the checkout process, a “cannot read properties of undefined” error was experienced when placing the order. This was due to the checkout referencing the deleted address. This has now been corrected so that an error will not be displayed during checkout, but the order will be placed and the address will be treated as a new address (meaning that it will be re-added to the address book afterwards).
Targeted for Production TenantsWhen a subscription had multiple items with the same frequency, attempting to update the frequency did not display any options in the drop-down menu. This has been fixed so that this menu displays all frequency options as expected.
Targeted for Production TenantsWhen editing the Next Order Date of a subscription, KCCP experienced an error upon clicking Save and logged the user out of the system. This only occurred if changing the Next Order Date was the first action that the user did on the page, but has now been fixed so that the date can be changed and saved successfully.
Targeted for Production TenantsWhen creating a new shipment, the product name search did not return any results. This has been corrected so that exact matches will be returned as expected, but note that at least 4 characters must be entered in the search bar to begin displaying results.
Targeted for Production TenantsA particular implementation used the stringBarcode field to enable the long tracking number for international shipping partners. However, this field occurred in different locations between the KCCP Fulfiller UI (within packages data) and translated OMS APIs (within packages.attributes data). The translation layer has now been updated so that the stringBarcode field can be supported between the KCCP UI and translated OMS APIs without causing errors.
Targeted for Production TenantsImages in webp format did not display thumbnails in the File Manager, just the text “no image” even though they displayed properly on the site. This has been corrected so that thumbnails can be successfully displayed for this image type.
Targeted for Production TenantsA validation error was encountered when trying to use a negative number as a boost, even though boosts within the range of -100 and 100 were expected to be accepted. This has been corrected so that boosts with a value of less than 0 can now be applied for Site Search, Product Search, and listings through both the API and Search Configurations UI.
Targeted for Production TenantsA 500 error was encountered while searching the storefront if one of the categories in the category tree had a null value. Improvements have been made so that the search can handle this scenario and still return appropriate results instead of an error.
Targeted for Production SandboxesThe Fulfiller user quick search stopped working in a certain implementation’s production and pre-prod environments, returning zero results due to 500 server errors encountered while typing the search term. This was due to a spacing problem with the Fulfiller UI that caused an invalid search request, and has now been fixed so that user searches are successful.
Targeted for Production SandboxesCanada Post manifests were unable to be printed for a particular implementation due to timeouts. The timeout limit has been increased so that bigger batches of manifests can be generated.
Targeted for Production SandboxesThe search function on the Custom Schema page was not working, as the API returned a “missing or invalid parameter” error and no results were displayed. This has been corrected so that entities can be successfully searched.
Targeted for Production SandboxesProduct bundles with extras were not being displayed on the production storefront, instead showing a 500 Error. This has been fixed so that bundles and extras are displayed successfully.
Targeted for Production SandboxesSome of the fields returned in the GET Category Tree API response were in pascal case instead of camel case. This has been corrected so that all field names are in camel case as expected.


Restricted Content

Internal Release Notes

Production Tenant Features

Client-Facing Updates

  • Quick Edits Catalog Filter (QE-443 and QE-454): When assigning catalogs in Quick Edits, you can now use the advanced filter to search for products by child catalog. A catalog picker has been added to the top of the filter list, and allows you to select one or more catalogs to filter the displayed products by.
  • Clickable Order Audit Links (COM-6053): When viewing the order audit log on the order details page, subscription numbers are now clickable. This will immediately navigate you to the subscription details page, where previously you had to note the subscription number and navigate there yourself. These are usually the logs where a subscription was created for the initial order, as well as when a continuity order was converted into an order.
  • Segmentation for Pending Items (CHAR-1891): Pending items (where inventory is not yet available but will be allocated once available) have been reworked to support segmentation. Where pending item data in the inventory model was previously based on the Product ID and Bin ID, it now supports an Inventory ID instead of the Product ID. Inventory segmentation requires this Inventory ID field to monitor which tagged inventory the pending item is associated to.
  • Recalculate Dynamic Categories (COM-6136, requested by Specialty Commerce): A new filter parameter, recalculateDynamicCategories, has been added to the storefront Add to Cart APIs, as well as the Get Product and Validate Product APIs. When set to true, this will recompute dynamic categories which is required in order to apply discounts at the product variant level (since product variants are associated to those categories). This flag is applied to the request path such as in ?recalculateDynamicCategories=True
  • Get All Product Properties (COM-1644, requested by Ace Hardware): A new filter parameter, mapIsProductDetailsOnlyProperties, has been added to the storefront Get Products API call. When set to true, the API will ignore the isProductDetailsOnly field while generating the response. This means that the call will return all properties associated with the product, where previously it would exclude some properties. This makes it easier to retrieve the property attributes for multiple products at once, and makes it more consistent with the Get Product API (which already returns all attributes by default). This flag is applied to the request path such as ?mapIsProductDetailsOnlyProperties=True
  • Clickable Links in Notes (FFMT-3386 and COM-6137, requested by The Level Group and Peavey): In the Fulfiller UI, links in the shipment notes and order notes were not actually clickable but instead required you to copy and paste the URL plaintext into your address bar. Now, the UI can detect when text in these notes is a link and convert it into a clickable hyperlink. The same has been done for order notes in the Order Admin UI.
  • Return Enhancements: Several updates have been made to returns.
    • COM-6119: When a return has been cancelled, the buttons to Receive Package, print the Return Label, Resend Email, and Refund to New Gift Card are now disabled because these actions are not supported for cancelled returns.
    • COM-6104: Pop-ups will now ask for confirmation after clicking Initiate Refund or Issue Refund from the return or order details pages. This allows you to confirm or cancel the action before it is performed by the system.
    • COM-6097: The “Items Refunded” label when viewing return details has been reworded to “Quantity Refunded. 
    • COM-6030: The internal notes that can be added during the Issue Refund and Ship Replacement actions, as well as directly from the return details page, are now input as text boxes and positioned better in the Issue Refund modal.
  • Search Merchandizing Rules (SU-2252, SU-2264, SU-2580, SU-2272, SU-2218, SU-2219, and SU-2367): The concept of Search “Campaigns” (not to be confused with the eCommerce marketing campaigns feature) is being replaced with “Merchandizing Rules." To support this, several changes have been made to the Search UI. Merchandizing rules implement the same functionality as campaigns, but with some additional behavior as listed below. For more details, see the Merchandizing Rules guide.
    • Search configurations have been moved to their own Configurations page (where previously they were listed with campaigns on the Search Settings page) and a new page for Merchandizing Rules is now accessible where all rules will be listed.
    • On this Merchandizing Rules page, you can create and manage all merchandizing rules and conditions as well as preview site search results. This includes assigning boost/bury values.
    • Pin products so that they will always display at that exact location in the search results on your storefront, as well as manually rank them via drag and drop.

Internal Updates

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

  • TECH-813: The Solr Schema Manager now includes a POST Suggest API at /commerce/catalog/admin/searchSchema/terms?name=default&format=csv/tsv/json, which accepts a .tsv document.
  • FFMT-3312: Shipment service code has been refactored and improved when creating future shipments. This process reads future inventory when the transfer suggestion is unavailable. Repetitive methods and code have been removed, as has a deprecated API.
  • COM-6138: The Prod-SB continuity order task interval has been updated to 30 minutes.
  • CHAR-4035: To support the real-time inventory service, fetch files are processed and emit batch events. If there are more than 500 location codes that go in or out of stock for a given product code, they will be placed into a batch. These batch events are not published if real-time inventory is not enabled. In that case, only normal events are published.
  • SU-2242 and SU-2635: Pre-existing Search campaigns (which are being replaced by merchandizing rules) can now be migrated with API endpoints. When a tenant has pre-existing campaigns, migrating them generates a merchandizing rule with the same configuration.
  • SU-2411: Search merchandizing rules have been added to the Solr index for faster lookups.
  • Various updates have been made to add new Reservation APIs and support the upcoming Allocate Inventory in Cart feature. While you can view these tickets in the Jira list, they are not individually listed here because documentation will be provided for this feature upon completion.

Additionally, the following setting has been added to UIs but does not currently affect behavior. In an upcoming release, functionality will be updated to respect this setting and the enhancement will be announced in client-facing release notes.

  • COM-6068: A new site setting is now dedicated to Ship to Home Consolidation, under the Transfer Shipments section of the general settings. This toggle is disabled by default, but can be enabled to allow STH Consolidation on your site (meaning that transfer shipments can be created for STH parent shipments). Previously, this was enabled with the same settings as BOPIS. The “Always Create Transfer Shipment” setting has also been renamed to “Always Create BOPIS Transfer Shipments” to better clarify these settings.

Production Sandbox Features

Client-Facing Updates

  • Product Option Images (COM-6020): When adding a product to an order or creating a new shipment in the Order Admin UI, images for product options are now displayed. The default product image will be shown first, with clickable images of each option listed below the dropdown menu of option names. You can select a product option from either the dropdown or by clicking the option image. After confirming your selections, the option image will be displayed in the order and shipment details tabs of the Admin UI.
  • Site Settings UI Rework (COM-6114): Site settings on the General Settings page have been rearranged into new tabs and sections within the existing page for better organization. 
  • Canada Post Credentials (COM-6045): Canada Post credentials have been redesigned in the shipping and carrier integration service for better implementation. Additional improvements will be done in the future, but test credentials from Canada Post should now work better and experience fewer issues.

Internal Updates

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

  • TECH-858 and TECH-857: Improvements have been made to the Product Runtime and Site Builder caches, upgrading cores and changing the output cache to use compression.
  • CHAR-4111: A location backfiller has been added to the API translation layer that publishes messages to the inventory and order routing queues for synching.
  • CHAR-3962: An existing job that deletes old inventory records for specific tenants has been updated so that it can run across all tenants as well.
  • CHAR-3946: Improvements have been made to the Future Available to Promise inventory feature to avoid potential race conditions. Previously, it was possible for Order Routing to suggest a future inventory record that gets released before allocation. This would cause problems as no allocation would be able to occur. Now, if there is no record for the given future date then allocations will be made against current inventory instead to avoid this issue.
  • TECH-888: Overnight hours/limits are now supported on the profile rules for API rate limiting. For instance, if hours are 12 AM to 5 AM then an overnight rate limit of 2.0 can be enforced.
  • CAT-1574: Additional improvements have been made to support the real-time inventory service, in which the catalog handles in stock and out of stock events that are emitted from RIS in batches. Batches reduce performance issues with high loads of inventory data.
  • Additional updates are still being made to support the upcoming Allocate Inventory in Cart feature. While you can view these tickets in the Jira list, they are not individually listed here because the feature will be announced upon completion.

Additionally, the following settings have been added to UIs but do not currently affect behavior. In an upcoming release, functionality will be updated to respect these settings and the enhancements will be announced in client-facing release notes.

  • COM-6204: As part of improvements being made for the real-time inventory service, a new site setting has been added called Location Fulfillment Types. Select "In Store Pick Up" or "Direct Ship" to use that fulfillment type when checking inventory availability on the location filter in the Search and Category pages. If nothing is selected, these pages will reference In Store Pick Up inventory levels by default. 
  • COM-6218 and CHAR-4085 (requested by Tourneau): A new option has been added to the UPS settings of location group configurations, called Use Declared Value. Implementations that need to use a declared value for UPS shipments can enable this option (which is disabled by default).

Bug Fixes

The following list summarizes resolved issues for this release.

StatusJIRA TicketResolution
Targeted for Production TenantsCOM-6125The My Account page was not receiving shipment data from the API for any order history beyond the first page. This was due to the Get Order call not receiving Shipment API data for those cases, breaking the page templates that required that shipment information. This has been fixed so that order history will properly include all shipment data.
Targeted for Production TenantsCOM-6124 (reported by Juvenescence)If a user deleted an address from the My Account page during the checkout process, a “cannot read properties of undefined” error was experienced when placing the order. This was due to the checkout referencing the deleted address. This has now been corrected so that an error will not be displayed during checkout, but the order will be placed and the address will be treated as a new address (meaning that it will be re-added to the address book afterwards).
Targeted for Production TenantsCOM-6123 (reported by Athletic Greens)When a subscription had multiple items with the same frequency, attempting to update the frequency did not display any options in the drop-down menu. This has been fixed so that this menu displays all frequency options as expected.
Targeted for Production TenantsCOM-6102 (reported by Athletic Greens)When editing the Next Order Date of a subscription, KCCP experienced an error upon clicking Save and logged the user out of the system. This only occurred if changing the Next Order Date was the first action that the user did on the page, but has now been fixed so that the date can be changed and saved successfully.
Targeted for Production TenantsCOM-6083When creating a new shipment, the product name search did not return any results. This has been corrected so that exact matches will be returned as expected, but note that at least 4 characters must be entered in the search bar to begin displaying results.
Targeted for Production TenantsCHAR-4039 (reported by AM Retail)A particular implementation used the stringBarcode field to enable the long tracking number for international shipping partners. However, this field occurred in different locations between the KCCP Fulfiller UI (within packages data) and translated OMS APIs (within packages.attributes data). The translation layer has now been updated so that the stringBarcode field can be supported between the KCCP UI and translated OMS APIs without causing errors.
Targeted for Production TenantsCAT-1472Images in webp format did not display thumbnails in the File Manager, just the text “no image” even though they displayed properly on the site. This has been corrected so that thumbnails can be successfully displayed for this image type.
Targeted for Production TenantsCAT-1679A cache split introduced a “collection was modified, enumeration operation may not execute” error on mapping attributes. This has been fixed so that the Product Runtime service can properly handle scenarios where a property value maps to a generic property value and the property needs to be added to the product dynamically.
Targeted for Production TenantsCAT-1685Some sandboxes experienced validation errors due to task deadlock on the Get Category Tree call in Product Runtime. This call has been reworked to avoid these errors.
Targeted for Production TenantsSU-2753A validation error was encountered when trying to use a negative number as a boost, even though boosts within the range of -100 and 100 were expected to be accepted. This has been corrected so that boosts with a value of less than 0 can now be applied for Site Search, Product Search, and listings through both the API and Search Configurations UI.
Targeted for Production TenantsTECH-880The Catalog cache was creating a price list tag to invalidate all products associated with a price list when the high level definition of a price list changed. This is only feasible in lower environments and tenants with less than 10k products per price list. This tag has been updated to respect the limitTagForTenants setting and not create tags when the limit is enabled.
Targeted for Production TenantsVAMP-1996 (reported by Calendars)A 500 error was encountered while searching the storefront if one of the categories in the category tree had a null value. Improvements have been made so that the search can handle this scenario and still return appropriate results instead of an error.
Targeted for Production TenantsTECH-844The JDBC driver in the catalog flyaway was consistently failing in production and took many attempts to deploy successfully. This driver has now been updated to prevent connection issues.
Targeted for Production SandboxesFFMT-3276 (reported by Home Hardware)The Fulfiller user quick search stopped working in a certain implementation’s production and pre-prod environments, returning zero results due to 500 server errors encountered while typing the search term. This was due to a spacing problem with the Fulfiller UI that caused an invalid search request, and has now been fixed so that user searches are successful.
Targeted for Production SandboxesFFMT-2658 (reported by Laura Canada)Canada Post manifests were unable to be printed for a particular implementation due to timeouts. The timeout limit has been increased so that bigger batches of manifests can be generated.
Targeted for Production SandboxesCAT-1504 (reported by Calendars)The search function on the Custom Schema page was not working, as the API returned a “missing or invalid parameter” error and no results were displayed. This has been corrected so that entities can be successfully searched.
Targeted for Production SandboxesCAT-1703 (reported by Wolters Kluwer)Product bundles with extras were not being displayed on the production storefront, instead showing a 500 Error. This has been fixed so that bundles and extras are displayed successfully.
Targeted for Production SandboxesTECH-901 (reported by Ace Hardware)Some of the fields returned in the Get Category Tree API response were in pascal case instead of camel case. This has been corrected so that all field names are in camel case as expected.