
- MODX 3
- PHP 8.2
- Vue 3


Unlike Products grid, no single category: you pick exact product IDs in multirelation.

Информация
Requires PageBuilder Pro and miniShop3.
Product search uses mgr/ms3/products/search. products is required. The type is "cacheable": false.
On render, ProSectionRenderSupport builds curated_product_ids: at most 12 ids, comma-separated, in selection order. The chunk passes that string to msProducts (parents = 0). An empty list shows the chunk text «Выберите товары в инспекторе секции.»
| Parameter | Value |
|---|---|
| key | curated_products |
| Layer | Pro |
| Category | commerce (commerce) |
| Chunk | pagebuilderpro_curated_products |
| Requires | pro, minishop3 |
Fill these fields in the section inspector. Field types are documented in the field types reference.
title) Type text. Optional.
products) Type multirelation. Required. Pick multiple resources. JSON stores resource IDs.
intro) Type textarea. Optional.
pb-curated-products grid from multirelation IDs.
Example payload after save. Media, video, and map values may be enriched on output:
{
"title": "Section title",
"products": [
201,
202,
203
],
"intro": "Short intro before the main content."
}Fenom chunk pagebuilderpro_curated_products:
{set $resourceIds = $curated_product_ids|default:''}
{set $listing = ''}
{if $resourceIds}
{set $listing = $modx->runSnippet('msProducts', [
'parents' => 0,
'resources' => $resourceIds,
'limit' => 12,
'tpl' => 'pagebuilderpro_ms3_product_row',
'includeVendorFields' => '*',
'includeOptions' => 'color,size',
'withCurrency' => 1,
'showZeroPrice' => 1
])}
{/if}
<section class="pb-section pb-section--curated-products pb-curated-products pb-listing{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="curated_products"{if $id} id="pb-{$id|escape}"{/if}>
<div class="pb-section__inner">
{if $title}
<h2 class="pb-heading">{$title|escape}</h2>
{/if}
{if $intro}
<p class="pb-listing__intro">{$intro|escape}</p>
{/if}
{if $listing}
<div class="pb-listing__grid">
{$listing}
</div>
{else}
<p class="pb-listing__empty">{'pagebuilder_fe_listing_empty_curated' | lexicon}</p>
{/if}
</div>
</section>