Virtual Happy Hour this month, Jun 28, we'll be getting a sneak preview at our soon to launch SaaS CMS!

Try our conversational search powered by Generative AI!

Episerver - update 339

Release summary

New features for Episerver Commerce and Episerver Product Recommendations. Bug fixes for Episerver CMS Core and Episerver Search & Navigation.

Released items Oct 27, 2020

Area ID Type Description Released
  Calling convention must be VarArgs exception thrown for properties on generic classes

ContentModelILCompiler throws an exception if an interceptable property is declared on a generic class. For example: 


public class Content : BaseContent<int> { }
public abstract class BaseContent<TModel> : ContentData
{     public virtual bool Boolean \{ get; set; }


The thrown exception is an InvalidOperationException: "Calling convention must be VarArgs."

EPiServer.CMS.Core 11.20.1; (Or a related package);
Oct 27, 2020
  Get URL to page with "Shortcut to another content item"

Get URL to referenced content by using Shortcut should points to the referenced content.


EPiServer.CMS.Core 11.20.1; (Or a related package);
Oct 27, 2020
  Typo in the documentation of Episerver.Framework.Cache.ReadStrategy.Wait
Issue Description

Fixed typo in meta document of the enum Episerver.Framework.Cache.ReadStrategy.Wait

Documentation says:
/// <summary>Will wait for pending updates to finish</summary>
/// <remarks>
/// <para>Typically used for scenarios where there is likely that several calls are done concurrent for an item
/// that is costly to load. In that case only one will perform the actual load while others will wait.
/// When the loading is done the waiting threads will be singnalled.</para>
/// <para>This option adds a marker object to the cache to signal that data is being loaded, do not use the same
/// cache key with other API's that do not take <see cref="T:EPiServer.Framework.Cache.ReadStrategy" /> since they will return the marker object
/// if called for example during a costly database operation.</para>
/// </remarks>

There is a spelling error in the paragraph for the word "singnalled", should be "signalled", also the word "concurrent" should be "concurrently".

EPiServer.CMS.Core 11.20.1; (Or a related package);
Oct 26, 2020
  Remove Beta in some APIs

Removal of Beta stamp for these features.

  • For EPiReportController, the check for EPiBetaUsers role has been removed.
  • For IOrderSearchService, the Beta stamp has been removed.
EPiServer.Commerce 13.26.0; (Or a related package);
Oct 23, 2020
  Cart - CreateOrderForm - wrong calculate OrderFormId

For the multiple order forms in cart as below code, the CreateOrderForm() are returning same OrderFormId (-2)

var orderRepository = ServiceLocator.Current.GetInstance<IOrderRepository>();
            var orderGroupFactory = ServiceLocator.Current.GetInstance<IOrderGroupFactory>();
            var currentMarket = ServiceLocator.Current.GetInstance<ICurrentMarket>();
            ICart cart = orderRepository.LoadOrCreateCart<ICart>(CustomerContext.Current.CurrentContactId, "Default", currentMarket);
            if (cart != null)
            cart = orderRepository.LoadOrCreateCart<ICart>(CustomerContext.Current.CurrentContactId, "Default", currentMarket);
            cart.Forms.Remove(cart.GetFirstForm()); // We always remove the form provided by default form in a new cart as we need to populate all order forms with a bunch of custom property values later on.
            cart.Forms.Add(orderGroupFactory.CreateOrderForm(cart)); // Expected orderformid is -2, which it is
            cart = orderRepository.LoadOrCreateCart<ICart>(CustomerContext.Current.CurrentContactId, "Default", currentMarket);
            cart.Forms.Add(orderGroupFactory.CreateOrderForm(cart)); //Expected orderformid is -3 which it is in 13.18.2, but in 13.24.0 this is assigned -2 which leaves us with two order forms with the same id
            cart.Forms.Add(orderGroupFactory.CreateOrderForm(cart)); // 13.18.2 assigns -4 and 13.24.0 assigns -3, here the incrementation seems to be working again


EPiServer.Commerce 13.26.0; (Or a related package);
Oct 23, 2020
  Missing success message for Collect Report Data Job

Fixed "Missing success message for Collect Report Data Job"

Steps to reproduce:

  1. Go to CMS Admin view.
  2. Succesfully run the scheduled job "Collect Report Data".
  3. Once completed, look at the "History" tab (see attached image).

Expected: A message indicating a succesfully completed job.

Actual: Empty field.

EPiServer.Commerce 13.26.0; (Or a related package);
Oct 23, 2020

    Personalization_32.svgEpiserver Personalization 2020.40.0

    New feature

    • Change approvals and individual user permissions
      In Product Recommendations, when an editor makes changes to a merchandizing campaign, a reviewer can accept or reject the changes. See the Episerver User Guide: Approving campaign changes.

    More on releases

    Related topics

    Last updated: Oct 27, 2020