Managed lists

Abstract

Overview of managed lists that you can use to organize commerce entities.

A managed commerce list represents a core mechanism for organizing and relating commerce entities. Sitecore XC supports simplistic named lists as well as more tightly managed lists. Lists can be curated by selecting individual members of the list or implemented as expressions against the search provider for dynamic listing.

Lists can be iterated using common paging metaphors or treated as a queue with push and pop semantics. Lists can also be used as work queues for commerce minions to traverse and perform work against. Lists can have policies that govern what kind of entities can access the list, how many entities, caching, and so on.

For example, a policy must define whether an entire list is retained in memory once loaded, or whether to iterate as a search list.

The following table describes commerce list actions, commands, and pipelines:

Action/Command/Pipeline

Description

AddRelatedManagedListAddRelatedManagedListCommandAddRelatedManagedListPipeline

Creates a relationship between two managed lists.

The parameters are:

listName: name of the parent lists (string).

childListName: the new child list name (string).

CreateManagedList CreateManagedListCommandCreateManagedListPipeline

Creates a new managed list.

The parameters are:

  • name: the name of the list (string).

  • displayName: a displayable name of the list (string)

  • relatedListNames: a list of related lists by name (list<string>).

  • policies: a list of policies appling to the managed list (list<policy>)

  • components: a list of components to add to the new managed list (list<component>)

GetManagedListGetManagedListCommandGetManagedListPipeline

Retrieves a new managed list.

The parameter is:

  • listName: name of the list (string)

LogListMetadataLogListMetadataCommand (no pipeline)

Logs the count of a list to the logging system.

The parameter is:

  • listName: name of the list (string)

IFindEntitiesInListPipeline

Queries the database for entities that have been associated with a certain list (e.g. SellableItems).

Input argument: FindEntitiesInListArgument, which allows to specify the expected entity type, the list name, and parameters for pagination (skip and take).

During the execution of the pipeline, the final block executes the [sitecore_commerce_storage].[SelectListEntitiesByRange] stored procedure to query the required items. The stored procedure itself takes care of finding the most recent version according to the settings of the current environment, and the presence of the IgnorePublishedPolicy.

Note

It is generally expected that all IDs that are referenced in lists are valid entities. If an entity cannot be found, it will be omitted from the results. Once the results have been returned to the Commerce Engine, localization is applied if necessary.