MODX RevoПохожие товары в miniShop2

7 февраля, 2017
24
Выборка похожих товаров по общей опции, в примере «model»

Многие путаются в подобной задаче и забывают про параметр optionFilters.

Итак, у нас есть  товары, у которых могут быть идентичные значения поля. В моём примере — это кастомное поле model, но решение подойдёт и для опция миниШопа. Задача вывести в карточке товара блок, в котором будут отображатся товары с таким же значением поля model.

Делаем выборку, загоняем всё в плейсхолдер и выводим с проверкой на наличие результата:

{var $similarModels = $_modx->runSnippet('!msProducts', [
  'depth' => 3,
  'resources' => '-' ~ $_modx->resource.id,
  'parents' => 0,
  'includeThumbs' => 'medium',
  'limit' => 0,
  'optionFilters' => '{"model:LIKE":"' ~ $_modx->getPlaceholder('model') ~ '"}',
  'tpl' => 'PATH-TO-CHUNK',
])}
 
{if $similarModels != ''}
 <h3 class="block-title">Ещё из серии {$modx->placeholders.model}</h3>
 <div id="similarGoods">
    {$similarModels}
  </div>
{/if}

Не забываем исключить из выборки ресурс, на странице которого мы показываем этот блок.

Про чанк не забудьте:)

Теги:

Поделиться