Skip to main content

Consent checkbox

Requires enabling of the sms_marketing capability of the Customer Privacy capability group to work.

The consent checkbox component collects buyer approval for a given policy. Use consent checkbox to gather opt-in consent for marketing, terms, or privacy policies.

Consent checkboxes support a policy attribute that connects to Shopify's consent framework. For standard multi-purpose checkboxes, use checkbox instead.

Only the sms-marketing policy is supported. Other consent policy types aren't available through this component.

Support
Targets (29)

Configure the following properties on the consent checkbox component.

Anchor to accessibilityLabel
accessibilityLabel
string

A label used for users using assistive technologies like screen readers. When set, any children or label supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.

Anchor to checked
checked
boolean
Default: false

Whether the control is currently checked.

Anchor to command
command
'--auto' | '--show' | '--hide' | '--toggle'
Default: '--auto'

Sets the action the commandFor target should take when this component is activated. Available options:

  • '--auto': Performs the default action appropriate for the target component.
  • '--show': Displays the target component if it's currently hidden.
  • '--hide': Conceals the target component from view.
  • '--toggle': Alternates the target component between visible and hidden states.
  • '--copy': Copies the target clipboard item.

The supported actions vary by target component type. Learn more about the command attribute.

Anchor to commandFor
commandFor
string

The ID of the component to control when this component is activated. Pair with the command property to specify what action to perform on the target component. Learn more about the commandFor attribute.

When both commandFor and href are set, commandFor takes precedence. The command runs and the link doesn't navigate.

Anchor to defaultChecked
defaultChecked
boolean
Default: false

Whether the control is checked by default.

Anchor to disabled
disabled
boolean
Default: false

Whether the control is disabled, preventing any user interaction.

Anchor to error
error
string

An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.

string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to label
label
string

The text displayed as the control label, which identifies the purpose of the control to users. This label is associated with the control for accessibility.

string

The name attribute for the control, used to identify its value when the form is submitted. Must be unique within the nearest containing form.

Anchor to policy
policy
'sms-marketing'

The policy for which buyer consent is being collected. Used by the consent checkbox and consent phone field components to identify the type of marketing permission requested.

  • sms-marketing: Represents the policy for SMS marketing consent.
Anchor to value
value
string

The value used in form data when the control is checked.

The consent checkbox component provides event callbacks for handling user interactions. Learn more about handling events.

Anchor to change
change
<typeof tagName>

A callback fired when the consent checkbox value changes.

Learn more about the change event.


Show a pre-checked consent checkbox tied to a marketing policy. This example uses an s-consent-checkbox with defaultChecked and policy set to sms-marketing.

Collect SMS marketing consent

A rendered example of the consent-checkbox component

html

<s-consent-checkbox
defaultChecked
label="Text me with news and offers"
policy="sms-marketing"
></s-consent-checkbox>

Prompt the buyer to actively opt in by leaving the checkbox unchecked. This example presents an s-consent-checkbox without defaultChecked, requiring the buyer to check it manually.

html

<s-consent-checkbox
label="I agree to receive text message promotions"
policy="sms-marketing"
></s-consent-checkbox>

  • Write transparent labels: Clearly describe what the buyer is agreeing to receive, including the type and frequency of messages.
  • Use supported policies: For SMS marketing, set policy to sms-marketing so Shopify records consent on the customer. You can query the consent state with the GraphQL Admin API (SMS marketing consent).
  • Respect opt-in preferences: Use defaultChecked when opt-out is the norm. Leave it unchecked when explicit opt-in is required by regulation.

Was this page helpful?