ResourcePicker
This is a legacy API. Use the latest version of Resource Picker
instead.
The ResourcePicker
action set provides a search-based interface to help users find and select one or more products, collections, or product variants, and then returns the selected resources to your app.

You can use the resoure picker action set in the following ways:
Anchor to Plain JavaScriptPlain Java Script
Anchor to Example codeExample code
Create an app and import the ResourcePicker
module from @shopify/app-bridge/actions
. Note that we'll be referring to this sample application throughout the examples below.
In the following example, config
is a valid App Bridge configuration object. Learn more about configuring App Bridge.
Anchor to Create a product pickerCreate a product picker
Anchor to Create a product variant pickerCreate a product variant picker
Anchor to Create a collection pickerCreate a collection picker
Anchor to Picker selection and cancellationPicker selection and cancellation
Resource pickers have two main actions that you can subscribe to:
ResourcePicker.Action.CANCEL
- App Bridge dispatches this action when the user cancels the resource picker, without making a selection.ResourcePicker.Action.SELECT
- App Bridge dispatches this action after the user confirms a selection. This action provides aSelectPayload
: anObject
withid
andselection
keys. Theselection
key is an array of all the selected resources.
If you require additional information about the selected resources, then query the GraphQL Admin API.
Anchor to OptionsOptions
Anchor to initialQueryinitial Query
- default value:
undefined
- optional
- type:
string
- note: Prepopulates the search bar of the resource picker.
- default value:
[]
- optional
- type:
Resource[]
- note:
initialSelectionIds
takes an array of minimal resource objects, which only need to contain a resource ID (in GraphQL ID format, ie'gid://shopify/Product/1'
). Product resources may also contain selected variants. If no variants are specified, all variants will be selected.
Anchor to actionVerbaction Verb
- default value:
ResourcePicker.ActionVerb.Add
- optional
- type:
ResourcePicker.ActionVerb
(values:Add
,Select
) - note: The actionVerb appears in the title
<actionVerb> <resourceType>
and as the primary action of the resource picker.
Anchor to selectMultipleselect Multiple
- default value:
true
- optional
- type:
boolean
ornumber
- note: Whether to allow selecting multiple items of a specific
resourceType
or not. If a number is provided, then limit the selections to a maximum of that number of items. Providing a number requires version 1.28.0. WhenresourceType
isProduct
, the user may still select multiple variants of a single product, even ifselectMultiple
isfalse
.
Anchor to Boolean optionsBoolean options
Option | Default | Optional | Version | Note |
---|---|---|---|---|
showHidden | true | ✔️ | hidden refers to products that are not published on any sales channels. | |
showVariants | true | ✔️ | Only applies to the Product resource type picker. | |
showDraft | true | ✔️ | 1.28.0 | Whether to show draft products or not. Only applies to the Product resource type picker. |
showArchived | true | ✔️ | 1.28.0 | Whether to show archived products or not. Only applies to the Product resource type picker. |
showDraftBadge | false | ✔️ | 1.28.0 | Whether to show draft badge for draft products or not. Only works when showDraft prop is set, and only applies to the Product resource type picker. |
showArchivedBadge | false | ✔️ | 1.28.0 | Whether to show archived badge for archived products or not. Only works when showArchived prop is set, and only applies to the Product resource type picker. |
Anchor to SubscribeSubscribe
You can subscribe to modal actions by calling subscribe
. This returns a function that you can call to unsubscribe from the action:
Anchor to UnsubscribeUnsubscribe
You can call unsubscribe
to remove all subscriptions on the resource picker:
Anchor to Dispatch actionsDispatch actions
Anchor to Update optionsUpdate options
You can call the set
method with partial picker options. This automatically triggers the update
action on the modal and merges the given options with the existing options:
Anchor to ReactReact
Anchor to Example codeExample code
Import the ResourcePicker
component from @shopify/app-bridge-react
.
In the following example, config
is a valid App Bridge configuration object. Learn more about configuring App Bridge.
When using the App Bridge React library, you need to wrap all of your App Bridge React code inside of a single App Bridge Provider
.
Anchor to PropsProps
Name | Type | Description | Required |
---|---|---|---|
open | boolean | Whether the picker is open or not | Yes |
resourceType | "Product" , "ProductVariant" , "Collection" | The type of resource you want to pick | Yes |
initialQuery | string | GraphQL initial search query for filtering resources available in the picker. See search syntax for more information | |
initialSelectionIds | Resource[] | Resources that should be preselected when the picker is opened. See example below. | |
showHidden | boolean | Whether to show hidden products or not | |
selectMultiple | boolean | Whether to allow selecting multiple items of a specific resourceType or not. If a number is provided, then limit the selections to a maximum of that number of items. Providing a number requires version 1.28.0. When resourceType is Product , the user may still select multiple variants of a single product, even if selectMultiple is false . | |
showVariants | boolean | Whether to show product variants or not. Only applies to the product resource type picker. Requires version 1.28.0. | |
showDraft | boolean | Whether to show draft products or not. Only applies to the Product resource type picker. Requires version 1.28.0. | |
showArchived | boolean | Whether to show archived products or not. Only applies to the Product resource type picker. Requires version 1.28.0. | |
showDraftBadge | boolean | Whether to show draft badge for draft products or not. Only works when the showDraft prop is set, and only applies to the Product resource type picker. Requires version 1.28.0. | |
showArchivedBadge | boolean | Whether to show archived badge for archived products or not. Only works when the showArchived prop is set, and only applies to the Product resource type picker. Requires version 1.28.0. | |
onSelection | (selectPayload: SelectPayload) => void | Callback when a selection has been made. It receives a SelectPayload argument, which is an Object with id and selection keys. The selection key is an array of all the selected resources. | |
onCancel | () => void | Callback when the picker is closed without selection |
Use the initialSelectionIds
prop to specify resources that should already be selected when the picker is opened: