September 2023 Release

  • Updated

Release: 5.1.2309.6450

The following is a list of the bug fixes and enhancements provided in the September 2023 Release. Some of the bug fixes listed below may address existing Support Articles. A comprehensive list is at the bottom of this page.

The September 2023 release is now available for developers to pull down and work with locally or to request for deployments.

Announcement

Beginning with the October 2023 release, Optimizely Configured Commerce versions will be marked with +STS for Short-Term Support or +LTS for Long-Term Support. Short-Term Support (STS) is the same as regular monthly releases, while Long-Term Support (LTS) branches will be released three times a year for more stability. LTS branches receive the previous month's new features that have already been tested on live environments and any hotfixes required on the LTS branch until one week before the next release. See Long-Term Support overview for more information.

September 2023 release highlights

  • Configured Commerce now allows for one page checkout, letting you provide your customers with a smoother checkout process and a more minimal design. Users can still access and edit items in their cart anytime during the checkout process and view cart items across multiple devices when logged in.
  • Website users can manage their store pickup location without being redirected to a different page using the new Store Pickup Overlay and corresponding widget.
  • Website users can manage their billing and shipping addresses without being redirected to a different page using the new Address Book Overlay and corresponding widget.

Breaking changes

Binary breaking changes do not necessarily require code changes but rather just a recompilation of the project. This section describes breaking changes to method signatures or to the behavior of methods in Optimizely Configured Commerce.

High-risk breaking changes

  • Added the following methods for the store availability message on the Store Pickup Overlay:
    • GetCartInventoryResult to non-extensible interface IRealTimeInventoryEngine
    • GetCartInventory to extensible interface IExternalInventoryService

      This method returns the availability for all cart lines, grouped by warehouse, from the local database inventory. Due to performance concerns, existing integration connectors do not support availability messaging for the Store Pickup Overlay.
      • You must implement this method if you plan to use the Store Pickup Overlay functionality. To fully implement this feature, consider the following:

You need to determine the best way to obtain product availability for every permutation in the lists of products and warehouses passed to the new function. Keep in mind how many cart lines your customers typically have, multiplied against how many warehouses you support on your website. This can easily result in a significant amount of data. If your external API does not have a performant endpoint that supports querying multiple products and multiple warehouses simultaneously, you might want to persist this data in your SQL database and calculate it from there instead. You can do this with an integration job refresh that writes to the commerce inventory tables.

      • The Store Pickup Overlay will still function without the availability messaging. If this messaging is not necessary for your implementation, you must do the following to partially implement this feature:

Add the following new method to your implementation of IExternalInventoryService that returns an empty GetCartInventoryResult object:

public GetCartInventoryResult GetCartInventory(
      GetCartInventoryParameter cartInventoryParameter
   )
   {
       return new GetCartInventoryResult();
   }
}

Low risk breaking changes for Spire

  • No significant changes.

Low risk breaking changes

  • Made the following methods from AssemblyInfoExtensions internal to allow for better logging of GetTypes exceptions:
    • AssemblyInfoExtensions.CompileDate
    • AssemblyInfoExtensions.GetAssemblyFolder
    • AssemblyInfoExtensions.TryGetTypesFromAssembly
  • Removed the following obsolete methods, properties, and types:
    • AspNetIdentityUserService.GetClaimsForAuthenticateResult
    • AspNetIdentityUserService.GetClaimsFromAccount
    • AssemblyLocator.GetBinFolderAssemblies
    • AssemblyLocator.GetDllFiles
    • AssemblyLocator.GetPotentialDependencyAssembliesWithoutExtensions
    • CertificateHelper.VerifyData
    • CertificateHelper.VerifyDataExtended
    • GetLanguageResult.Language
    • GetLanguageResult.WebsiteLanguage
    • IContentItemFieldRepository.GetContentItemFields
    • ICustomerRepository.GetAvailableCustomerCount
    • IDataProvider.ClearCache
    • IDataProvider.EagerLoad
    • IDataProvider.Expand
    • IDataProvider.ObjectContextTranslate
    • IDataProvider.Unproxy
    • IOrderLineUtilities.CalculatePrice
    • IPriceMatrixUtilities.GetCustomerKeyParts
    • IRepository.GetList
    • ITokenExUtilities.GetECheckTokenEx
    • ITokenExUtilities.GetTokenExDto
    • IUnitOfWork.EagerLoad
    • IUnitOfWork.SaveAsync
    • IUnitOfWork.Unproxy
    • IntegrationProcessorODataRefresh.ParseDataTable
    • MockPathProvider
    • NonCacheableAttribute
    • PaymetricUtilities.GetResponsePacketToken
    • ProductPrice.BreakQtyDisplay
    • QueryableExtensions.InsiteInclude
    • StringExtensions.FormatWith
    • NonCacheableAttribute

Partners/Developers: You can view a cumulative list of breaking changes, including Spire breaking changes, at the bottom of this page. The spreadsheet has two tabs: one for cumulative breaking changes and one for Spire breaking changes.

Database changes and updates

  • Added the following tables for list organization:
    • UserProfileWishListFavorite
    • UserProfileWishListHide
    • UserProfileWishListTag

Library changes and updates

No significant changes.

Enhancements and bug fixes

Spire enhancements

Other enhancements

  • Implemented HTTP Security Headers settings.
  • Added an Orders section to the VMI Product Detail page in Classic.
  • Added support for zero pricing when the Price Matrix provides $0 price for a product.
  • Added the location name to the VMI Order Detail page in Classic.
  • Updated the VMI_User role to access VMI pages on the website for the location they are assigned to in Classic.
  • Added an option to edit quantity on the VMI Product Detail page. Users can also enter the product quantity when adding a new product.
  • Updated the edit column in the Admin Console Categories page to display the edit icon instead of text.

Bug fixes

  • Fixed issues that occurred when trying to drag and drop the Basic/Row widget to another position in Spire.
  • Removed auto-generated lists as an option when adding a product to a list.
  • Fixed an issue where some administrators could not access users through User Administration after logging in with OpenIdConnect in Spire.
  • Fixed an issue where ItemOut.lineNumber did not map correctly to OrderLine.Line for an OrderRequest punchout session in Spire.
  • Fixed an issue where the Sign In Overlay did not display in the CMS page tree after enabling it using the setPostStyleGuideTheme function in your code in Spire.
  • Updated the Mobius Tooltip component to use percentage-based, position values instead of pixel-based margins in Spire. You should review any custom styling applied to the Tooltip component for visual consistency.
  • Fixed an issue where the EBizCharge payment authorization stored the wrong Name On Card after checkout if a previous order was submitted with the same card number but different name in Spire.
  • Fixed an issue where the Order Subtotal filter on the Saved Orders page did not work with large numbers in Spire.
  • Fixed an issue where the Submit button and order information displayed incorrectly on mobile with the out-of-box styling in Spire.
  • Fixed an upgrade issue some customers experienced with the previous release.
  • Fixed an issue where the sitemap did not include product lines under brands in Spire.
  • Fixed an issue where the blank spaces were not reflected in the site page title when entered in the Page Title Delimiter field on the Administration > Settings > Site Configurations page.
  • Fixed an issue where an unhandled exception was returned after saving a Marketing Message to multiple websites in Spire.
  • Fixed an issue where the product ordering was incorrect for the recommendations returned from the Product Recommendations connector.
  • Fixed an issue where some customers were redirected to an incorrect category after changing the language on the site.
  • Updated the Recipient Email field character limit on the Share Product window to 256 characters in Spire.
  • Fixed an issue where a customer received an error navigating to the Cart page after adding products whose Max Weight and Shipping Weight exceeded the Max Value of Int32.
  • Fixed an issue where a transaction error with Cybersource was generated after using the company name instead of a first and last name for the Bill-To address.
  • Fixed an issue where a timeout error occurred when trying to import a CMS file from production to sandbox.
  • Fixed an issue where the Original Text column was not included in the translated fields export after selecting it as a column to export in Spire.
  • Fixed an issue where a list was incorrectly marked as private when a Sales Rep user with no customers assigned to them shared the list to all users on the billing account in Spire.
  • Fixed an issue where duplicated shared content was created after importing new shared content from another site in Spire.
  • Updated the new package installation logic to add workspaces to the root package.json before running npm install.
  • Fixed an issue where the language translation did not display for the Basic Button widget's Button Link field after adding the Button Link then selecting a new language for the site.

Related Support Articles

Configured Commerce REST APIs

Cumulative breaking changes spreadsheet