В данном типе выгрузки можно редактировать шаблон выгрузки и блока offer с помощью переменных. Благодаря этому данная выгрузка является наиболее гибкой в настройке из всех YML-выгрузок.
Технические требования к содержимому блока offer доступны в Яндекс.Справке.
Настройки выгрузки (за исключением полей шаблонов выгрузки и блока offer) аналогичны настройкам выгрузки на Яндекс.Маркет произвольного товара. Прочитать об их заполнении можно в соответствующей инструкции.
Поле "Шаблон выгрузки" содержит базовую структуру файла. Ее можно редактировать, и благодаря этому можно создать XML-файл, никак не относящийся к стандарту YML.
Важно: для редактирования шаблона нужно точно понимать принцип его работы.
Переменная content_for_layout выводит информацию из поля "
Для того чтобы переменная параметра, дополнительного поля товара или цикл по вариантам товара заработали в блоке offer, необходимо включить соответствующую настройку в настройках выгрузки.
Это сделано для управления кэшированием файла и более быстрого его формирования.
Важно: набор переменных в выгрузке несколько отличается от набора переменных, доступных в шаблонах магазина, полный список переменных для выгрузки см. ниже.
Настройки аккаунта. В переменной содержатся параметры из настроек аккаунта:
account.phone - телефон из настроек аккаунта
account.title - название интернет-магазина из настроек аккаунта
account.email - e-mail магазина
account.url - url магазина
marketplace.shop_name - значение поля "" в натройках выгрузки
marketplace.company- значение поля "Название компании" в натройках выгрузки
marketplace.shop_name - основной домен вашего магазина
currency.id - код данной валюты (USD, EUR и т.д.)
currency.rate - курс валюты, указанный в Настройки → Валюты для данной валюты
currency.plus - надбавка к курсу, указанная в Настройки → Валюты для данной валюты
{% for option in delivery_options %}
<option cost="{{option.cost}}" days="{{option.days}}" {% if option.order-before %}order-before="{{option.order-before}}" {% endif %} />
{% endfor %}
Отвечает за вывод данных из полей настроек выгрузки "Способы доставки":
Товар из каталога на сайте
product.id - идентификатор товара (уникальный числовой номер)
product.handle - пермалинк товара (название товара в URL)
product.title - название товара
product.available - наличие товара
product.price - цена товара (минимальная цена, если несколько модификаций)
product.price2, product.price3, ..., product.price(n) - вторая и последующая цена товара (при использовании типов цен)
product.old_price - старая цена товара (цена до скидки)
product.cost_price - закупочная цена
product.currency_id - код валюты товара
product.short_description - краткое описание товара
product.description - описание товара
product.raw_description - полное описание товара с HTML-тегами использованием XML-escape символов
product.original_description - полное описание товара с HTML-тегами для CDATA. Пример применения:
<description><![CDATA[{{ product.original_description }}]]></description>
product.image_urls - массив ссылок на изображения
product.images.last.url - последнее изображение товара
Проверка наличия изображений у товара:
{% if product.images.size %} ... {% endif %}
product.sku - артикул первой модификации
product.dimensions - габариты товара. Кроме того отдельно данные можно вывести по product.dimensions.width product.dimensions.depth и product.dimensions.height
product.vat - налоговая ставка товара
product.properties - массив параметров товара с единственным или одним из значений (product.properties.vendor - возвращает сразу значение параметра с handle vendor)
Вывод всех параметров выгрузки с единственным или одним из значений:
{% for property in product.properties %}
<param name="{{property[0]}}">{{property[1]}}</param>
{% endfor %}
product.full_properties - массив параметров товара со всеми их значениями
Вывод всех параметров выгрузки со всеми значениями:
{% for property in product.full_properties %}
<param name="{{ property.title }}">{% for item in property.characteristics %}{{ item.title }}{% unless forloop.last %}, {% endunless %}{% endfor %}</param>
{% endfor %}
Вывод конкретного параметра:
{% for item in product.full_properties.handle.characteristics %}{{ item.title }}{% unless forloop.last %}, {% endunless %}{% endfor %}
product.supplementaries - массив сопутствующих товаров
В них работают те же переменные, что и у обычных товаров.
Вывод всех сопутствующих товаров:
{% if product.supplementaries.size > 0 %}
<rec>{{product.supplementaries | map: "id" | join: ","}}</rec>
{% endif %}
product.fields - массив доп. полей товара (product.fields.book - возвращает сразу значение поля с handle book)
product.canonical_collection - объект коллекция
product.variants - массив объектов модификаций
product.properties.kategoriya-tovara-v-google - значение параметра "Категория товара в Google"
product.variants.first - первый вариант товара
product.variants[n] - n-ый вариант товара
Вывод дополнительных полей товара:
<param name="Видео с YouTube">{{ product.fields['youtube'] }}</param>
Модификации товара
variant.id - id модификации
variant.title - название модификации. Например “Красный / 36"
variant.sku - артикул модификации
variant.quantity - остаток модификации
variant.price - цена модификации
variant.price2, variant.price3, ..., variant.price(n) - вторая и последующая цена модификации (при использовании типов цен)
variant.old_price - старая цена модификации
variant.cost_price - закупочная цена модификации
variant['Название свойства'] - получение значений модификации
Вывод свойства "Размер":
{% if variant['Размер'] %}
<param name="Размер">{{ variant['Размер'] }}</param>
{% endif %}
Вывод всех свойств товара:
{% for option in product.option_name_titles %}
<param name='{{ option }}'>{{ variant[option] }}</param>
{% endfor %}
variant.barcode - штрих-код модификации
variant.image.url - ссылка на изображение модификации
variant.weight - вес модификации
variant.dimensions - габариты модификации
Переменная collection, соответствует категории из каталога товаров
collection.id - id коллекции
collection.handle - пермалинк коллекции
collection.title - название категории
collection.parent_id - id родительской категории
promo.id - идентификатор акции
promo.start_date - дата начала акции
promo.end_date - дата окончания акции
promo.description - описание акции
promo.url - ссылка на описание акции
promo.code - купон акции
promo.percent? - является ли скидка по акции процентной
promo.discount - размер скидки по акции
promo.matching_offers_ids - массив товаров, подпадающих под акции.
Вывод массива товаров, попадающих под акции:
{% for offer_id in promo.matching_offers_ids %}
<product offer-id="{{offer_id}}" />
{% endfor %}
Если в произвольную выгрузку необходимо добавить вывод всех вариантов товаров, то нужно все содержимое блока offer "обернуть" в цикл:
{% for variant in product.variants %}
[здесь тег <offer> и его содержимое]
{% endfor %}
Тег <offer> при выгрузке всех вариантов товара:
<offer type='vendor.model' available='{% if variant.quantity != 0 %}true{% else %}false{% endif %}' {% if product.variants.size > 1 %}id='{{ variant.id }}' group_id='{{ product.id }}'{% else %}id='{{ variant.id }}'{% endif %}>
Тег <url> при выгрузке всех вариантов товара:
<url>{{ account.url }}/product/{{ product.handle }}{% if product.variants.size > 1 %}?variant_id={{ variant.id }}{% endif %}</url>
Важно: если нужно дописать utm-метку в тег <url>, то амперсант (&) нужно записывать как "&".