---
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);
});
```