Как создать условие в MiniShop2?

Здравствуйте! Как правильно сформулировать условие для вывода товаров, если они имеются? <br/> <pre><code>[!msProducts?
              &amp;parents=`[[*parent]]`
              &amp;depth=`0`
              &amp;tpl=`tpl.msProducts`
              &amp;resources=`-[[*id]]`
              &amp;includeTVs=`1`
              &amp;includeContent=`1`
              &amp;sortby=`menuindex`
              &amp;sortdir=`ASC`
          ]]</code></pre>
  • 10 марта 2025 г. 7:04
Ответы на вопрос 2
Для того чтобы создать условие в MiniShop2 и вывести товары только в том случае, если они имеются в наличии, вы можете использовать плейсхолдеры и условия в зависимости от наличия товаров. 

Для этого вам понадобится сделать запрос на получение товаров и проверить их количество с помощью переменной, чтобы вывести нужные данные только если товары существуют.

Попробуйте следующий код:

```html
[!msProducts?
    &parents=`[[*parent]]`
    &depth=`0`
    &tpl=`tpl.msProducts`
    &resources=`-[[*id]]`
    &includeTVs=`1`
    &includeContent=`1`
    &sortby=`menuindex`
    &sortdir=`ASC`
    &limit=`1`
    &toPlaceholder=`products`
!]

[[!if?
    &subject=`[[+products]]`
    &operator=`!=`
    &operand=``
    &then=`<div>Товары есть в наличии:</div>
            [[!pdoTools?
                &tpl=`tpl.msProducts`
                &parents=`[[*parent]]`
                &depth=`0`
                &resources=`-[[*id]]`
                &includeTVs=`1`
                &includeContent=`1`
                &sortby=`menuindex`
                &sortdir=`ASC`
            ]]`
    &else=`<div>Товары отсутствуют.</div>`
]]
```

### Пояснение:
1. `[!msProducts? ...]` - здесь вы запрашиваете продукты, ограничивая количество возвращаемых товаров до 1 с помощью `&limit=`1``. Это нужно, чтобы проверить наличие хотя бы одного товара.
2. `&toPlaceholder=`products`` - сохраняет результат запроса в плейсхолдер `products`.
3. `[[!if? ...]]` - проверяет, не пуст ли плейсхолдер `products`:
    - Если в плейсхолдере `products` есть данные (`&operator=`!=`` и `&operand=``), выводится блок с товарами.
    - Если товаров нет, отображается сообщение о том, что товары отсутствуют.

Таким образом, вы сможете выводить информацию о товарах только в случае, если они имеются в наличии.
Используйте параметры &tplWrapper и &wrapIfEmpty , подробнее об этом можно почитать здесь: Как ничего не выводить, если ресурсов (товаров) нет ?
Похожие вопросы