Vulnerability in EPiServer.Forms

Try our conversational search powered by Generative AI!

Quan Mai
Jul 23, 2020
  1423
(4 votes)

New ReferenceConverter method in Commerce 13.21

As you might have heard - ReferenceConverter is your friend. It is very lightweight way to map between the ContentReference and code of catalog content, instead of having to load the content - which is both slow and expensive. Whenever you have chance, ReferenceConverter should be used.

But it is now even better. In Commerce 13.21, ReferenceConverter has a new method to get multiple codes at once. It looks like this

public virtual IDictionary<ContentReference, string> GetCodes(IEnumerable<ContentReference> contentLinks, CatalogContentType catalogContentType)

A common scenario for this new method is when you need to get all variants of a product (by using IRelationRepository), then get all prices or inventories for those variants. Instead of

var allVariantCodes = allVariantLinks.Select(x => _referenceConverter.GetCode(x));

You can now call

var allVariantCodes = _referenceConverter.GetCodes(allVariantLinks, CatalogContentType.CatalogEntry).Values;

The former can result in multiple database roundtrips - depending on how many variants you have. The latter always results in at most 1 database roundtrip. As we all know each roundtrip adds overhead, so there will be a performance improvement.

Jul 23, 2020

Comments

Stefan Holm Olsen
Stefan Holm Olsen Jul 23, 2020 10:43 AM

This is great news, Quan.

I have been wishing for this for some time.

Aria Zanganeh
Aria Zanganeh Jul 30, 2020 12:31 AM

woohoo .. now my schedule jobs that import catalog can run faster!

Mari Jørgensen
Mari Jørgensen Aug 4, 2020 11:05 AM

Great! Keep em coming! ;)

Stefan Holm Olsen
Stefan Holm Olsen Aug 15, 2020 05:03 PM

@Quan Mai: I have a similar optimization wish for batch loading CMS content without first loading core data.

I once raised this thread related to ContentAreaItem batch loading, which resulted in many roundtrips even when I called IContentLoader.GetItems on the content area items.

Do you know whether the CMS team has something planned for this?

Please login to comment.
Latest blogs
Google Read Aloud Reload Problems

Inclusive web experiences greatly benefit from accessibility features such as Google Read Aloud. This tool, which converts text into speech, enable...

Luc Gosso (MVP) | Dec 4, 2023 | Syndicated blog

Google Read Aloud Reload Problems

Inclusive web experiences greatly benefit from accessibility features such as Google Read Aloud. This tool, which converts text into speech, enable...

Luc Gosso (MVP) | Dec 4, 2023 | Syndicated blog

Import Blobs and Databases to Integration Environments

In this blog, we are going to explore some new extensions to the Deployment API in DXP Cloud Services, specifically the ability to import databases...

Elias Lundmark | Dec 4, 2023

Join the Work Smarter Webinar: Working with the Power of Configured Commerce (B2B) Customer Segmentation December 7th

Join this webinar and learn about customer segmentation – how to best utilize it, how to use personalization to differentiate segmentation and how...

Karen McDougall | Dec 1, 2023