> For the complete documentation index, see [llms.txt](https://docs.globo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.globo.io/options/option-types/selection-types/checkbox.md).

# Checkbox

A list where the customer can select several values, and the standard way to offer a menu of optional paid extras.

A list where the customer can select any number of values. This type is always multi-select, so there is no **Allow multiple** setting.

Use it for a menu of extras such as toppings, add-on services, accessories, or upgrades. Each value can have its own price, and the total increases as the customer selects values.

**Watch it done — 1:55.** Letting customers select several add-ons at once — something Shopify variants cannot do — and pricing each one.

{% embed url="<https://www.youtube.com/watch?v=3Yv7fGlKsyg>" %}

## What customers see

A list with a check box beside each value. With **Swatch style** set, each value can also display a color chip or a picture.

<figure><img src="https://3141646361-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkMyxhAk2ZlJa4wZQGfBI%2Fuploads%2Fgit-blob-8cb660ea4f9926e015f15a28e44eacfd60327ff2%2F2026-09-03_11-46-32.png?alt=media" alt="A checkbox list on a storefront product page with several values ticked and their prices shown"><figcaption><p>A checkbox list, where the customer can select any number of values.</p></figcaption></figure>

## Basic

<table><thead><tr><th width="250">Setting</th><th>What it does</th></tr></thead><tbody><tr><td><a href="/options/option-types/shared-settings/labels-and-visibility.md#label">Label</a> / <a href="/options/option-types/shared-settings/labels-and-visibility.md#name">Name</a></td><td>Customer-facing text, and the name on the order.</td></tr><tr><td><a href="/options/option-types/shared-settings/required-and-default-value.md#required-field">Required field</a></td><td>At least one value must be ticked.</td></tr><tr><td><a href="/options/option-types/shared-settings/labels-and-visibility.md#hidden-label">Hidden label</a></td><td>Hides the label.</td></tr><tr><td><a href="/options/option-types/shared-settings/swatch-style-and-previews.md#swatch-style">Swatch style</a></td><td><strong>Default</strong>, <strong>Color</strong>, or <strong>Image</strong>.</td></tr><tr><td><strong>Option values</strong></td><td>The choices, with prices and their own help text. See <a href="/options/option-sets/option-values.md">Working with option values</a>.</td></tr><tr><td><a href="/options/option-types/shared-settings/limits.md#min-and-max-selections">Min selections</a> / <a href="/options/option-types/shared-settings/limits.md#min-and-max-selections">Max selections</a></td><td>How many they must and may tick. Setting both the same means exactly that many.</td></tr><tr><td><a href="/options/option-types/shared-settings/placeholder-and-help-text.md#help-text">Help text</a></td><td>Guidance for the whole option.</td></tr><tr><td><a href="/options/option-types/shared-settings/required-and-default-value.md#default-value">Default value</a></td><td>Pre-ticks one or more values.</td></tr><tr><td><a href="/options/option-types/shared-settings/conditional-logic-and-add-on-fields.md#conditional-logic">Conditional logic</a></td><td>Show or hide based on other choices.</td></tr></tbody></table>

{% hint style="info" %}
**Min selections** and **Max selections** are displayed immediately for a Checkbox, unlike other multi-select types where they only appear after **Allow multiple** is enabled. This is because a Checkbox is inherently a multi-select option.
{% endhint %}

## Advanced

<table><thead><tr><th width="250">Setting</th><th>What it does</th></tr></thead><tbody><tr><td><a href="/options/option-types/shared-settings/conditional-logic-and-add-on-fields.md#add-on-quantity">Add-on quantity</a> / <a href="/options/option-types/shared-settings/conditional-logic-and-add-on-fields.md#quantity">Quantity</a></td><td>How add-ons scale — including <strong>Mixed quantity</strong>.</td></tr><tr><td><a href="/options/option-types/shared-settings/collapsible-layouts-and-sliders.md#enable-custom-layout">Enable custom layout</a></td><td>Unlocks the collapsible layouts.</td></tr><tr><td><a href="/options/option-types/shared-settings/collapsible-layouts-and-sliders.md#layout-type">Layout type</a></td><td><strong>Expand</strong> or <strong>Collapse</strong>. No slider on this type.</td></tr><tr><td><a href="/options/option-types/shared-settings/collapsible-layouts-and-sliders.md#scroll-type">Scroll type</a>, <strong>Scroll height</strong>, <strong>Number of option values</strong></td><td>Give a long list its own scroll area.</td></tr><tr><td><a href="/options/option-types/shared-settings/direction-width-and-css.md#direction-style">Direction style</a></td><td><strong>Vertical</strong> or <strong>Horizontal</strong>.</td></tr><tr><td><a href="/options/option-types/shared-settings/out-of-stock-options.md">Out of stock options</a></td><td>How sold-out values look.</td></tr><tr><td><a href="/options/option-types/shared-settings/placeholder-and-help-text.md#help-text-position">Help text position</a></td><td>Where the option-level help text sits.</td></tr><tr><td><a href="/options/option-types/shared-settings/direction-width-and-css.md#html-class">HTML class</a> / <a href="/options/option-types/shared-settings/direction-width-and-css.md#column-width">Column width</a></td><td>Styling hook and field width.</td></tr></tbody></table>

## Add-on pricing on a multi-select

This is the main difference from the single-select types: **every selected value with a price is charged**. Three selections at $4.00 each is $12.00.

Two settings matter here:

<table><thead><tr><th width="250">Setting</th><th>Why it matters here</th></tr></thead><tbody><tr><td><strong>Max selections</strong></td><td>Your ceiling on the total. Without it a customer can tick everything.</td></tr><tr><td><strong>Add-on quantity</strong></td><td><strong>Mixed quantity</strong> gives each value its own quantity box, so a customer can take two of one topping and one of another. Available on multi-select types only.</td></tr></tbody></table>

<table><thead><tr><th width="290">Mode</th><th>Three values ticked at $4.00, order quantity 2</th></tr></thead><tbody><tr><td><strong>Default</strong></td><td>$24.00 — each extra follows the product quantity</td></tr><tr><td><strong>One time charge</strong></td><td>$12.00 — each extra charged once</td></tr><tr><td><strong>Mixed quantity</strong></td><td>Whatever the customer sets per value, multiplied as configured</td></tr></tbody></table>

See [Advanced add-on modes](/options/add-on-pricing/advanced-add-on-modes.md).

## Personalizer

Supported as an **image layer**. Each selected value can draw an image onto the product photo. The settings are image shape, background mode, size, position, rotation, crop area, and customer controls. See [Image layers](/options/product-personalizer/layer-settings/image-layers.md).

Several selected values mean several layers, which can overlap. Use the position settings to place each one.

## Checkbox or Switch?

A [Switch](/options/option-types/input-types/switch.md) is for a single yes-or-no choice, with one price for the option. A **Checkbox** is for selecting from a list, with a separate price for each value.

Use a **Switch** when the customer can select exactly one extra, and a **Checkbox** when they can select two or more extras.

## Examples

**Pick any three toppings**

<table><thead><tr><th width="290">Setting</th><th>Value</th></tr></thead><tbody><tr><td>Label / Name</td><td><code>Toppings</code></td></tr><tr><td>Option values</td><td>Eight toppings, free</td></tr><tr><td>Min selections / Max selections</td><td><code>3</code> / <code>3</code></td></tr><tr><td>Help text</td><td><code>Choose exactly three.</code></td></tr></tbody></table>

**Paid extras, capped at two**

Values priced at $4.00 each, **Max selections** `2`, and **Add-on quantity** set to **One time charge**.

**A required acknowledgement**

One value, `I confirm the spelling is correct`, with **Required field** on and no price.

**Color add-ons with stock**

**Swatch style** set to **Color**, each value linked to a generated add-on product, and **Out of stock options** set to **Blur**.

**A long list, tidied away**

**Enable custom layout** on, **Layout type** set to **Collapse**, and **Scroll type** set to **By number of option values**, showing six.

## Notes

* Available on all plans.
* Works in Shopify POS.
* Always multi-select.
* **Required field** means at least one value must be selected. To require exactly two, set both **Min selections** and **Max selections**.
* There is no slider layout. Use [Color swatch](/options/option-types/selection-types/color-swatch.md) or [Image swatch](/options/option-types/selection-types/image-swatch.md) for that.
* Every selected value appears on the order, so a customer who selects five values produces five entries.
