The Product Summary Shelf is the main block exported by the Product Summary app. It includes the child blocks required to display the Product Summary component in your store.
)
Configuration
- Import the
vtex.product-summary
app to your theme dependencies in themanifest.json
file:
_10 dependencies: {_10 "vtex.product-summary": "2.x"_10 }
- Add the
product-summary.shelf
block as a child of thelist-context.product-list
block:
_10 "list-context.product-list": {_10+ "blocks": ["product-summary.shelf"]_10 },
- Declare the
product-summary.shelf
block, passing the desired blocks exported by the Product Summary app to build your Product Summary component. For example:
_12{_12+ "product-summary.shelf": {_12+ "children": [_12+ "product-summary-image",_12+ "product-summary-name",_12+ "product-rating-inline",_12+ "product-summary-space",_12+ "product-summary-price",_12+ "product-summary-buy-button"_12+ ]_12+ }_12}
Remember to define the other Product Summary blocks in your theme, otherwise the component will not be displayed.
Prop name | Type | Description | Default value |
---|---|---|---|
priceBehavior | enum | Determines whether the component should fetch the most up-to-date price (async ) or (default ). Remember to configure the Search Result's simulationBehavior prop to skip and use the Product Price product-price-suspense block to render a loading spinner while the price information is being fetched. | default |
trackListName | boolean | Determines whether the component should send the list name to the product page when the product summary is clicked. Disabling it will prevent the productDetail GTM event sent on the PDP to identify from which list the user navigated. | true |
sponsoredBadgeLabel | String | The text of the "Sponsored" tag, if applicable. | "store/sponsored-badge.label" |
sponsoredBadgePosition | enum | The position of the "Sponsored" tag, if applicable. Possible values are titleTop , containerTopLeft and none . | "titleTop" |
Customization
The Product Summary Shelf merely establishes the block structure to render the Product Summary component. Therefore, this block does not have CSS Handles for its specific customization.
Instead, you should use its child block Handles.