Skip to main content

Select

Deprecated

Product subscription app extensions won't be supported as of December 3, 2025. You should migrate existing product subscription app extensions to purchase options extensions.

Select allows merchants to choose one option from a dropdown menu.

Consider Select when you have 4 or more options, to avoid creating clutter and make your component more scalable.

import {extend, Select} from '@shopify/admin-ui-extensions';

const options = [
{
label: 'Cool option',
value: 'cool-option',
},
{
label: 'Cooler option',
value: 'cooler-option',
},
{
label: 'Coolest option',
value: 'coolest-option',
},
];

extend('Playground', (root) => {
const select = root.createComponent(Select, {
label: 'Select an option',
options,
labelInline: true,
onChange: (value) => console.log(value, 'was selected'),
value: 'cooler-option',
});

root.appendChild(select);

root.mount();
});
import React from 'react';
import {extend, render, Select} from '@shopify/admin-ui-extensions-react';

const options = [
{
label: 'Cool option',
value: 'cool-option',
},
{
label: 'Cooler option',
value: 'cooler-option',
},
{
label: 'Coolest option',
value: 'coolest-option',
},
];

function App() {
return (
<Select
label="Select an option"
options={options}
labelInline
onChange={(value) => console.log(value, 'was selected')}
value="cooler-option"
/>
);
}

extend(
'Playground',
render(() => <App />),
);

optional = ?

NameTypeDescription
error?stringDisplay an error state
labelstringLabel for the select.
labelInline?booleanShow the label to the left of the value, inside the control.
optionsOption[]Array of Options to select from.
onChange?(value: string) => voidCallback when selected Option changes.
onBlur?() => voidCallback when focus is removed
value?stringThe value of the currently selected Option.

NameTypeDescription
labelstringRendered
valuestringNon-rendered

✅ Do🛑 Don't
Use Select when you have 4 or more optionsHave only a single item

For more guidelines, refer to Polaris' Select best practices.


Was this page helpful?