
- MODX 3
- PHP 8.2
- Vue 3


Hero магазина или «товар недели»: крупное фото, цена, описание и добавление в корзину. Один товар из msProducts.

Информация
Требуются PageBuilder Pro и miniShop3.
Поиск товара идёт в mgr/ms3/products/search. Поле product обязательно. Тип помечен "cacheable": false.
Перед chunk ProSectionRenderSupport пишет product_id и pb_product_resource. Chunk берёт $pb_product_resource. Если id нет, посетитель видит «Товар не выбран или недоступен.»
| Параметр | Значение |
|---|---|
| key | product_spotlight |
| Слой | Pro |
| Категория | магазин (commerce) |
| Chunk | pagebuilderpro_product_spotlight |
| Требования | pro, minishop3 |
Заполните поля в инспекторе секции на ресурсе. Описание типов полей: справочник типов.
title) Тип text. Необязательное.
product) Тип relation. Обязательное. Выбор одного ресурса MODX в модальном окне поиска.
Двухколоночный pb-product-spotlight через msProducts.
Пример JSON после сохранения секции. Для media, video и map значения на выводе могут быть обогащены:
{
"title": "Заголовок секции",
"product": 201
}Fenom chunk pagebuilderpro_product_spotlight:
{set $productId = $pb_product_resource !: ($product_id !: 0)}
{set $listing = ''}
{if $productId}
{set $listing = $modx->runSnippet('msProducts', [
'parents' => 0,
'resources' => $productId,
'limit' => 1,
'tpl' => 'pagebuilderpro_ms3_product_spotlight_row',
'includeVendorFields' => '*',
'includeOptions' => 'color,size',
'withCurrency' => 1,
'showZeroPrice' => 1
])}
{/if}
<section class="pb-section pb-section--product-spotlight pb-product-spotlight{if $cssClass} {$cssClass|escape}{/if}" data-pb-section="product_spotlight"{if $id} id="pb-{$id|escape}"{/if}>
<div class="pb-section__inner pb-product-spotlight__inner">
{if $title}
<h2 class="pb-heading">{$title|escape}</h2>
{/if}
{if $listing}
{$listing}
{else}
<p class="pb-listing__empty">{'pagebuilder_fe_listing_empty_product' | lexicon}</p>
{/if}
</div>
</section>