Appearance
Assortments
Some use cases exist where you may need to separate your products into distinct groups to ensure that certain users only see certain results in search and recommendations. This is what Assortments are for.
Assortments are a way to define groups on the product-level, which can then be used in a filter to limit the results shown to a certain user. There are two ways to supply a product with an assortment: By assigning it an Assortment value, or by providing a distinct datakey that can be used in the filter.
Assortment Value
The default assortment value is an integer, which is added to the product directly using the assortments property. A product can have any number of assortment values associated with it, and these will be displayed in My Relewise under the Product Entities page.

With assortment values added to the products, you can use a ProductAssortmentFilter to limit certain users to whatever assortments they are allowed to see.
The benefit to using a list of assortment values, rather than the datakey method outlined below, is that assortment values, being integers, perform faster. This is primarily relevant for scenarios where you have hundreds of assortments at once.
Assortment via Datakey
The alternative to using the assortment value outlined above is to use a datakey, typically a StringList. Similar to the assortment value, there is no functional limit to how many assortments may be provided in a single datakey, but performance may suffer if the number exceeds a few dozen.

With the data integrated to the products, you can then use a ProductDataFilter to specify what assortments are allowed to be shown.
Using a StringList allows you to specify the assortments as names, such as languages, currencies, B2B users, or similar. This may make it easier to work with, since the nature of the assortment is understandable at a glance.