--- title: Product API description: >- The Product API provides read-only access to product data. Use this API to get product information and build contextual experiences based on the selected product context. The API offers product details for implementing product-specific functionality and workflows. api_version: 2025-10 api_name: pos-ui-extensions source_url: html: >- https://shopify.dev/docs/api/pos-ui-extensions/latest/target-apis/contextual-apis/product-api md: >- https://shopify.dev/docs/api/pos-ui-extensions/latest/target-apis/contextual-apis/product-api.md --- # Product API The Product API provides read-only access to product data. Use this API to get product information and build contextual experiences based on the selected product context. The API offers product details for implementing product-specific functionality and workflows. ## ProductApi The `ProductApi` object provides access to product data. Access this property through `shopify.product` to interact with the current product context. * id number required The unique identifier for the product. Use for product lookups, implementing product-specific functionality, and integrating with external systems. * variantId number required The unique identifier for the product variant. Use for variant-specific operations, cart additions, and inventory management. ## Best practices * **Use product ID for data lookups:** Use the product ID to fetch additional product information from external systems, inventory management platforms, or Shopify APIs when building comprehensive product experiences. * **Implement variant-specific features:** Use the variant ID to enable specialized functionality like variant-specific pricing, inventory checks, or cart operations. * **Validate product access:** Verify that the product ID and variant ID are valid before performing product-specific operations or external API calls. ## Limitations Product data reflects the current POS session and may not include real-time updates from other channels until the session is refreshed. ## Examples Learn how to access product information in product detail contexts. ### Examples * #### Retrieve a product ID ##### Description Access the unique identifier of the current product in a product detail action context. This example shows how to use \`shopify.product.id\` to retrieve the product ID. This can be used for fetching additional product data, analytics, or implementing product-specific features and workflows. ##### jsx ```jsx import {render} from 'preact'; export default async () => { render(, document.body); }; const Extension = () => { return ( Product ID: {shopify.product.id} ); }; ``` * #### Retrieve product and product variant IDs ##### Description Access both product and variant identifiers to implement variant-specific functionality. This example shows how to retrieve \`shopify.product.id\` and \`shopify.product.variantId\` together. Use this pattern for variant-aware features like inventory checks, variant-specific pricing, or detailed product information displays. ##### jsx ```jsx import {render} from 'preact'; export default async () => { render(, document.body); }; const Extension = () => { const {id, variantId} = shopify.product; return ( Product ID: {id} Variant ID: {variantId} ); }; ```