## Configuration
### Value Lists
By default, value lists for selection fields are managed through resource bundle documents in the [Content Application](🔗).
To create a resource bundle document:
In Bloomreach Commerce Experience Cloud, open the Content application.
Browse to a folder, or create a new one, e.g. myproject/administration.
Add a new document, choose document type "Resource Bundle".
In the new Resource Bundle document enter a _key_ and a _label_ for each value.
Save the document.
**Note:**
Resource Bundle documents have no workflow. They are not published and changes have an immediate effect when saved.
### Add a Selection Field to a Content Type
The following field types are available in the [Content Type Editor](🔗):
**Static Dropdown**
A single value dropdown widget populated from a static value list specified as comma-separated values in the field properties.

The values are specified in the selectable.options property.
Each option can be a key/label pair, delimited by the first '='.Â
If no key/label pair delimiter ('=') is found, the key value is used for the label as well.
**Dynamic Dropdown**
A single value dropdown widget populated from a value list service.

The location of the resource bundle document is specified as an absolute JCR path in the source property in the right column of the editor, e.g.

Other field properties available in the right column are optional. A full list is provided below.
Column Title | Column Title | Column Title |
valuelistProvider | The optional name of a CMS service that provides the list of values to the selection widget. When missing, it defaults to service.valuelist.default, which refers to the DocumentValueListProvider. |  |
source | A String property to be used as input to the configured valuelist provider. For the default DocumentValueListProvider, it should point to the desired value list document by its absolute path (starting with '/') or the UUID of the value list document's handle. |  |
sortComparator | An optional fully qualified class name of an implementation of org.onehippo.forge.selection.frontend.plugin.sorting.IListItemComparator. <br>A standard implementation is org.onehippo.forge.selection.frontend.plugin.sorting.DefaultListItemComparator that sorts alphanumerically. |  |
sortOrder | Optional. Either 'ascending' or 'descending', defaults to 'ascending'. |  |
sortBy | Optional. Either 'key' or 'label', defaults to 'label'. |  |
showDefault | Used by org.onehippo.forge.selection.frontend.plugin.DynamicDropdownPlugin and defines whether the default value "Choose One" should be shown. |  |
observableId | A optional, user defined observable id. If this id is provided, the dropdown creates a service in the background, containing an observable model of it's value. <br>The id should be unique per document editor instance by prefixing it with ${cluster.id}. |  |
observerId | A optional, user defined observer id that should match another dropdown's observableId (including the ${cluster.id}). The observer dropdown will start listening for changes on the observable dropdown's model and will use that value to get a value list to redraw itself. |  |
nameProvider | Fully qualified class name of an implementation of org.onehippo.forge.selection.frontend.provider.IValueListNameProvider that will turn a given (observed) value into a value list name (i.e. path or uuid). <br>The resulting name will be used to get the value list from the configured value list provider service. When missing, the BasePathNameProvider is used. <br> <br>Standard implementations are: <br>org.onehippo.forge.selection.frontend.provider.BasePathNameProvider (the default): <br>concatenates sourceBasePath plus the observed value. This requires that the value list item keys of the observable dropdown's value list match the node names of the chained value lists. <br>org.onehippo.forge.selection.frontend.provider.ConfiguredNameProvider: <br>looks up value list names in the configuration, using as key: 'source.' + (observed value). <br>org.onehippo.forge.selection.frontend.provider.NOOPNameProvider: no look up: just returns the observed value as value list name, useful in combination with a custom value list provider. |  |
sourceBasePath | Used by org.onehippo.forge.selection.frontend.provider.BasePathNameProvider and defines the abolute base path where dependent value list documents are located. |  |
**Radio Group**
A radio button group widget populated from a value list service.

The location of the resource bundle document is specified as an absolute JCR path in the _source_ property, for example:
Other field properties are optional. A full list is provided below.
Column Title | Column Title |
valuelistProvider | The optional name of a CMS service that provides the list of values to the selection widget. When missing, it defaults to service.valuelist.default, which refers to the DocumentValueListProvider. NOTE: if a custom valuelistProvider is used, this field will not be shown in the [Visual Editor](🔗) |
source | A String property to be used as input to the configured valuelist provider. For the default DocumentValueListProvider, it should point to the desired value list document by its absolute path (starting with '/') or the UUID of the value list document's handle. |
sortComparator | An optional, fully qualified class name of an implementation of org.onehippo.forge.selection.frontend.plugin.sorting.IListItemComparator. <br>A standard implementation is org.onehippo.forge.selection.frontend.plugin.sorting.DefaultListItemComparator that sorts alphanumerically. |
sortOrder | Optional. Either 'ascending' or 'descending', defaults to 'ascending'. |
sortBy | Optional. Either 'key' or 'label', defaults to 'label'. |
orientation | Optional. Either 'vertical' or 'horizontal', defaults to 'vertical'. |
**Boolean Radio Group**
A boolean value radio button group widget. The labels for true and false can be populated from a resource bundle document.

The location of the resource bundle document is specified as an absolute JCR path in the source property, for example:
All field properties are optional. A full list is provided below.
Column Title | Column Title |
source | A String property pointing to the value list document by its absolute path (starting with '/') or the UUID of the value list document's handle. From the value list, two keys are read, "true" and "false". Other and duplicate entries are ignored. If not found, the default labels "true" and "false" are used. |
orientation | Optional. Either 'vertical' or 'horizontal', defaults to 'vertical'. |
trueLabel | 🚧This property is deprecated. Use a resource bundle document specified in the source property instead.<br><br>String property to override the default 'true' label. |
falseLabel | 🚧This property is deprecated. Use a resource bundle document specified in the source property instead.<br><br>String property to override the default 'false' label. |