Массивы

Массивы

Массивы содержат переменные для вывода динамического содержимого на странице. Например, массив store содержит переменную с именем name , которую можно использовать для вывода названия склада.
Чтобы вывести переменную массива, оберните имя объекта в {{и }}, как показано ниже:
1
{{ store.name }}
Copied!
Для каждого документа справочник доступных массивов и переменных в них отличается.
Полный список объектов и переменных в них, доступный для того или иного документа МойСклад можно найти в справочнике "Язык Шаблонов" на странице создания или редактирования шаблонов.

Массивы в многомерных массивах

Для некоторых документов МоегоСклада вы можете обнаружить массивы, которые содержатся в многомерных массивах. О них стоит упомянуть отдельно.
На скриншоте выше приведен справочник Языка Шаблонов для документа "Заказ покупателя". Массивы attributes, purchaseOrders, demand, payments, invoicesOut, positions многомерные.
Это означает, что у "Заказа покупателя" может быть несколько "Дополнительных полей", "Заказов поставщику", "Отгрузок" и т.д.
Например, если нужно отправить название первой отгрузки для данного заказа покупателя, объект Liquid будет следующего содержания:
1
Заказ {{ name }} отгружен!
2
Номер отгрузки {{ demands[0].name }}
3
Номер отгрузки {{ demands.first.name }}
Copied!
Говоря простым языком, в массиве demands (Отгрузки) содержится несколько других массивов demand (Отгрузка), у каждого из которых есть переменная name.
Индекс [0] и first говорят, что нужно выбрать переменную name для первой отгрузки.
1
Заказ 00005 отгружен!
2
Номер отгрузки 00001
3
Номер отгрузки 00001
Copied!
Если нужно выбрать вторую отгрузку, надо использовать индекс [1], третью [2], четвертую [3] и т.д.
Следующий код шаблона, если у заказа есть две отгрузки:
1
Заказ {{name }} отгружен!
2
Номер первой отгрузки {{ demands[0].name }}
3
Номер второй отгрузки {{ demands[1].name }}
Copied!
Соответсвенно выведет:
1
Заказ 00005 отгружен!
2
Номер первой отгрузки 00001
3
Номер второй отгрузки 00002
Copied!
Если количество отгрузок неизвестно, можно вывести все, используя логику Liquid - тег итератора {% for %}:
1
Заказ {{name }} отгружен!
2
{% for demand in demands %}
3
Номер отгрузки {{demand.name}}
4
{% endfor %}
Copied!
Соответственно выведет
1
Заказ 00005 отгружен!
2
Номер отгрузки 00001
3
Номер отгрузки 00002
Copied!
Если нужно выбрать определенную отгрузку (например, нужно отправить номер отгрузки, которая находится в статусе Выполнена) - нужно использовать логику Liquid - теги итератора {% for %} и проверки условия {% if %}
1
{% for demand in demands %}
2
{% if demand.state.name == "Выполнена" %}
3
Ваша отгрузка {{ demand.state.name }} выполнена.
4
{% endif %}
5
{% endfor %}
Copied!
Подробнее про теги логики языка Liquid {% for %} {% if %} {% else %} и другие читайте по ссылке.
Last modified 1yr ago