Skip to main content
Migrate to Polaris

Version 2025-07 is the last API version to support React-based UI components. Later versions use web components, native UI elements with built-in accessibility, better performance, and consistent styling with Shopify's design system. Check out the migration guide to upgrade your extension.

Product Details Configuration API

Requires the AdminBlock component.

The Product Details Configuration API lets you build product configuration extensions for bundles that define product relationships and manage bundle compositions. Use this API to build configuration interfaces for bundle and component product experiences.

  • Bundle configuration: Configure product bundles by defining relationships between bundle and component products.
  • Component selection: Build interfaces for selecting component products in bundle configurations.
  • Product relationships: Manage product-to-product relationships for merchandising.
  • Variant handling: Handle bundle configuration across products with multiple variants.
Support
Targets (1)

The Product Details Configuration API object provides access to product configuration data. Access the following properties on the API object to interact with the current product context, navigate within the admin, and select resources in the admin.product-details.configuration.render target.

required

Provides methods for authenticating calls to your app backend. Use the idToken() method to retrieve a signed JWT token that verifies the current user's identity for secure server-side operations.

& { product: ; app: { launchUrl: string; applicationUrl: string; }; }
required

Product configuration data including the current product, selected items, and app URLs. Use this to access the product being configured and build your configuration interface.

Anchor to extension
extension
{ target: ; }
required

The identifier of the running extension target. Use this to determine which target your extension is rendering in and conditionally adjust functionality or UI based on the extension context.

required

Utilities for translating content according to the current localization of the admin. Use these methods to provide translated strings that match the merchant's language preferences, ensuring your extension is accessible to a global audience.

Anchor to intents
intents
required

Provides information to the receiver of an intent. Use this to access data passed from other extensions or parts of the admin when your extension is launched through intent-based navigation.

Anchor to navigation
navigation
required

Navigates to other extensions or admin pages. Currently supports navigation from a block to an action extension on the same resource page. For example, navigate from a product details block (admin.product-details.block.render) to a product details action (admin.product-details.action.render).

Anchor to picker
picker
required

Opens a custom Picker API dialog for selecting from a list of custom options. Use this when you need merchants to choose from app-specific data that isn't a standard Shopify resource.

Anchor to query
query
< = unknown, Variables = { [key: string]: unknown; }>(query: string, options?: { variables?: Variables; version?: Omit<, "2023-04">; }) => Promise<{ data?: ; errors?: []; }>
required

Executes GraphQL queries against the GraphQL Admin API. Use this to fetch shop data, manage resources, or perform mutations. Queries are automatically authenticated with the current user's permissions. Optionally specify GraphQL variables and API version for your query.

Anchor to resourcePicker
resourcePicker
required

Opens the Resource Picker API modal for selecting products, variants, or collections. Use this to let merchants choose resources that your extension needs to work with.


  • Design for products with multiple variants: Products in api.data.selected might have multiple variants. Design your bundle configuration to either apply to all variants or allow variant-level configuration.
  • Use the Resource Picker to select components: Use the Resource Picker API to let merchants select component products for bundle configurations.
  • Implement cart transforms to enforce bundles: Configuration only defines relationships in admin. Use Shopify Functions cart transforms to actually bundle products at checkout based on your saved configuration.

  • Configuration extensions only render in the admin. They don't affect storefront display or checkout behavior. You must implement storefront and checkout logic separately.
  • Bundles aren't enforced automatically. Saving configuration doesn't automatically create bundles. You must implement cart transforms or other mechanisms to enforce bundling at purchase time.
  • Your extension can't directly modify product properties. The API is read-only for product data. Use GraphQL mutations like productUpdate to update products if needed.

Was this page helpful?