--- title: pos.product-details.block.render description: >- Renders a custom information section within the product details screen. Use this target for displaying supplementary product data like detailed specifications, inventory status, or related product recommendations alongside standard product details. Extensions at this target appear as persistent blocks within the product details interface and support interactive elements that can launch modal workflows using `api.action.presentModal()` for more complex product operations. api_version: 2025-07 api_name: pos-ui-extensions source_url: html: >- https://shopify.dev/docs/api/pos-ui-extensions/2025-07/targets/product-details/pos-product-details-block-render md: >- https://shopify.dev/docs/api/pos-ui-extensions/2025-07/targets/product-details/pos-product-details-block-render.md --- # pos.​product-details.​block.​render Renders a custom information section within the product details screen. Use this target for displaying supplementary product data like detailed specifications, inventory status, or related product recommendations alongside standard product details. Extensions at this target appear as persistent blocks within the product details interface and support interactive elements that can launch modal workflows using `api.action.presentModal()` for more complex product operations. ### Examples * #### Add a product details block ##### Description Display custom information within the product details screen as a persistent block. This example shows how to create blocks that show supplementary product data like detailed specifications, inventory status, or related recommendations with interactive elements. ##### React ```tsx import React from 'react'; import { Text, useApi, reactExtension, POSBlock, POSBlockRow, } from '@shopify/ui-extensions-react/point-of-sale'; const Block = () => { const api = useApi<'pos.product-details.block.render'>(); return ( {'This is a block extension'} {`Product ID for this product: ${api.product.id}`} ); }; export default reactExtension('pos.product-details.block.render', () => ( )); ``` ##### TS ```ts import { POSBlock, Text, POSBlockRow, extension, } from '@shopify/ui-extensions/point-of-sale'; export default extension('pos.product-details.block.render', (root, api) => { const block = root.createComponent(POSBlock, { action: {title: 'Open action', onPress: api.action.presentModal}, }); const mainText = root.createComponent(Text); mainText.append('This is a block extension'); const subtitleText = root.createComponent(Text); subtitleText.append(`Product ID for this product: ${api.product.id}`); const blockMainRow = root.createComponent(POSBlockRow); blockMainRow.append(mainText); const blockSubtitleRow = root.createComponent(POSBlockRow); blockSubtitleRow.append(subtitleText); block.append(blockMainRow); block.append(blockSubtitleRow); root.append(block); }); ```