Skip to content

Choice fields

Choice fields let customers pick instead of type, so answers stay consistent.

Block Use it for Plan
Select A dropdown, such as “How did you hear about us?” Free, Business
Checkbox One yes-or-no box, such as agreeing to terms Free, Business
Multiple checkboxes Several boxes, any number of which can be ticked Free, Business
Radio Several options, only one of which can be picked Free, Business

All need Shopify Plus. Read how form fields work first.

A Radio block asking ‘How did you hear about us?’ with four options, one selected

Setting What it does
Label The dropdown’s label. Plain text.
Options One Label per option. The label is also the saved value.
Exclude empty option Removes the blank first option, so the first real option is shown selected.
Use metaobject for options Load options from a metaobject instead of typing them. See below.
Customer must fill field to proceed in checkout Makes a choice required.
Apply effect when value changes Includes Apply value to city shipping address field, which fills in the shipping city with the chosen option.

Load a long list of options from a metaobject

Section titled “Load a long list of options from a metaobject”

Typing hundreds of options, such as store locations or schools, is slow. Store them in a metaobject instead.

  1. In Shopify admin, go to Settings → Custom data → Metaobjects and add a definition with a JSON field, for example options. Turn on Storefront access.

  2. Add an entry. Its JSON must be a list of objects with label and value:

    [
    { "label": "Downtown store", "value": "downtown" },
    { "label": "Airport store", "value": "airport" }
    ]

    If your list is in a spreadsheet, a free CSV-to-JSON converter can produce this format.

  3. In the Select field, tick Use metaobject for options and enter the entry’s Metaobject handle, the definition’s Metaobject type, and the Metaobject field (options).

Options you type in the block show first, then the metaobject options.

A single checkbox. It saves true when ticked and false when unticked. If the customer never touches it and there’s no default value, nothing is saved.

Setting What it does
Subheading Optional text above the checkbox. Supports links, formatting, and order variables.
Checkbox label The text next to the box. Supports links, such as a link to your terms. Other formatting shows as plain text.
Apply default value Enter true to start checked.
Customer must fill field to proceed in checkout The box must be ticked to continue.

This is the block to use for a required “I agree to the terms and conditions” checkbox. See the terms checkbox recipe.

Both show a question with a list of options. Multiple checkboxes allows any number of ticks; Radio allows one.

Setting What it does
Subheading The question. Supports links, formatting, and order variables.
Options Each has a Label (supports links and formatting) and an optional Value. The value is saved instead of the label when set.
Apply default value The value of the option to select at the start, or its label if it has no value. Multiple checkboxes supports one default.
Customer must fill field to proceed in checkout At least one option must be picked.

Multiple checkboxes saves every ticked option, separated by commas. Setting a Value for each option keeps saved answers short and consistent, for example newsletter instead of “Sign me up for the newsletter”.

To add a border around Multiple checkboxes (or a Checkbox), choose Misc. appearance → Show border around checkboxes on the app block. Radio fields don’t have a border option.

  • Translations change the saved answer when an option has no Value. Set values if you translate options and rely on the answer in Flow or emails.
  • A default value is saved as the answer right away, even if the customer never touches the field.
  • Old blocks named “Checkboxes” in the app are the same as Multiple checkboxes.