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
CMS-14788
  Get URL to page with "Shortcut to another content item"
Steps to reproduce:

1. Add new page property to Article page type (ArticlePage.cs):

public virtual ContentReference RelatedPage { get; set; }

2. Add the following to Article page view file (/Views/ArticlePage/Index.cshtml):

<strong>PropertyFor</strong>
<p>@Html.PropertyFor(m => m.CurrentPage.RelatedPage)</p>

<strong>ContentLink</strong>
<p>@Html.ContentLink(Model.CurrentPage.RelatedPage)</p>

<strong>ContentUrl</strong>
<p>@Url.ContentUrl(Model.CurrentPage.RelatedPage)</p>

3. Create three new page instances of Article page type:

  • Article A
  • Article B
  • Article C

4. On Article A, set the value of new property added in step1 to point to Article B.

5. On Article A, edit property MainBody and add a link to Article B.

6. On Article B, Settings tab, locate property Shortcut, click Manage and select:

  • Shortcut type: shortcut to another content item
  • Open in: - (leave empty)
  • Internal Shortcut/Fetch Data from: Article C

7. Visit Article A, click Options and View on website (not in edit view).

Expected result: All links should point to Article C.
Actual result: Url.ContentUrl links to Article B instead of Article C.

Fix Version/s: EPiServer.CMS.Core 11.20.1;
Oct 27, 2020
CMS-16988
  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.
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."

Fix Version/s: EPiServer.CMS.Core 11.20.1;
Oct 27, 2020
CMS-15213
  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".

Fix Version/s: EPiServer.CMS.Core 11.20.1;
Oct 26, 2020
FIND-6184
  SiteDefinition.Current is not set in IndexingJobService

Error in EPiServer.Find.Cms.IndexingJobService.Start(Action<string> statusNotification).

Details
SiteDefinition.Current was set to the site definition that was being indexed during Find indexing job in 13.0.5 and earlier versions. Setting SiteDefinition.Current is missing in 13.2.1, and should be added again.

Fix Version/s: EPiServer.Find 13.2.10;
Oct 23, 2020
COM-11747
  Support extensibility for CSR app

Added ability to extend the Order Management module by adding placeholders in which partner developers can put their code.

Placeholder examples:

  • Top of Cart/Order list.
  • Top and bottom of Cart/Order list.

  • New tab in Cart/Order details view.
  • New tab in Contact Details view.

 

For more information, see the the Quicksilver site sample code and documentation (released with Commerce 13.26.0)
https://github.com/episerver/Quicksilver/blob/master/Sources/EPiServer.Reference.Commerce.Site/CSRExtensibility/react-app/README.md

Fix Version/s: EPiServer.Commerce 13.26.0;
Oct 23, 2020
COM-12053
  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.
Fix Version/s: EPiServer.Commerce 13.26.0;
Oct 23, 2020
COM-12113
  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)
            {
                orderRepository.Delete(cart.OrderLink);
            }
            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
            orderRepository.Save(cart);
            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

source: https://pastebin.com/3e48Lihr

Fix Version/s: EPiServer.Commerce 13.26.0;
Oct 23, 2020
COM-12163
  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.

Fix Version/s: EPiServer.Commerce 13.26.0;
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