Перейти к основному содержимому
Обновлено: 

Обработка и вывод данных из YML-файла

При реализации e-commerce сценариев Брошенная корзина, Брошенный просмотр и других сведения о товарах выводятся в письмо на основе данных, которые содержатся в подключенном к аккаунту YML-файле.

Для подключения к шаблонизатору данных из YML-файла используется вызов подключения внешних данных, в котором необходимо указать url с yml-файлом, который был подключен к вашему аккаунту.

[% external_extra("YOUR_YML_URL","format","yml") %]

Все содержимое YML-файла доступно в объекте yml:

[% yml %]

Пример описания товара из YML-файла:

<offer id="123" type="vendor.model" available="true" bid="1" group_id="136010368">
<url>http://www.xxxxxx.ru/xxxx</url>
<price>1749.0000</price>
<currencyId>RUR</currencyId>
<caategoryId>490</categoryId>
<market_category>Дом и дача/Дом и интерьер/Текстиль Шторы</market_category>
<picture>http://media.xxxxx.xx/products/641by641/13/60/10/XXXXXXXXXXXXXX.jpg</picture>
<delivery>true</delivery>
<local_delivery_cost>0</local_delivery_cost>
<typePrefix>Шторы, занавески</typePrefix>
<vendor>La Interieurs</vendor>
<vendorCode>136010368</vendorCode>
<model>Занавеска с вышивкои по низу</model>
<description>- Качество VALEUR SURE. Качественная отделка. Со сборкои 60 мм (3 варианта высоты). 91% полиэстера, 9% льна. Красивая вышивка по низу. Простои уход: стирка при 40°, не нужно гладить. Расстояние от отделки до низа 30 см (для размеров 240 и 260 см). Размер в см.</description>
<sales_notes>Минимальный заказ 1500 руб</sales_notes>
<manufacturer_warranty>true</manufacturer_warranty>
<param name="country_of_origin">Франция</param>
<param name="Пол">OTHER</param>
<param name="Возраст">OTHER</param>
<param name="Цвет">белый</param>
<param name="Размер" unit="FR">240 x 175 см</param>
</offer>

Прямой доступ к элементам оcуществляется по значение параметра id из тега offer:

[% id = 123 %]
[% dump(yml.$id) %]

Параметры товара доступны как свойства основного объекта:

[% id = 123 %]

[% yml.$id.model %]

[% yml.$id.description %]

[% yml.$id.param.Razmer %]

[% yml.$id.param.Razmer_unit %]

Параметр picture в YML-файле может содержать как одно изображение, так и несколько и, следовательно, у нас это может быть строка или массив. Если вам надо вывести одно изображение из списка доступных, то можно использовать следующий код:

[% IF yml.$id.picture[0] %] [% yml.$id.picture[0] %] [% ELSE %] [% yml.$id.picture %] [% END %]
Важно

Код в примере отформатирован для удобства восприятия. Если вам необходимо вставить значение в параметр в HTML-теге (например, src в теге img), то вам необходимо удалить все пробелы между командами и переносы строк.

Вывод данных, собранных для сценария Брошенная корзина

Вывести товары, которые лежат в корзине у пользователя:

[% basket_list = ssecquery('basket') %]
[% external_extra("ССЫЛКА_НА_ВАШ_YML","method","get","ignore_error","1","format","yml") %]
[% FOREACH item in basket_list[0].items %]
<a href="[% yml.${item.product.id}.url %]><img src="[% IF yml.${item.product.id}.picture[0] %][% yml.${item.product.id}.picture[0] %][% ELSE %][% yml.${item.product.id}.picture %][% END %]"></a><br>
<a href="[% yml.${item.product.id}.url %]">[% yml.${item.product.id}.name %]</a><br>
Цена: [% yml.${item.product.id}.price %] руб.<br>
Количество: [% item.product.qnt %] шт<br>
Стоимость: [% yml.${item.product.id}.price*item.product.qnt %] руб.<br>
<a href="[% yml.${item.product.id}.url %]">Купить</a><br>
[% END %]

Вывод данных, собранных для сценария Брошенный просмотр

Вывести 6 последних просмотренных товара:

[% product_view_list = ssecquery('product_view','dt','>','current - 24 hours') %]
[% external_extra("ССЫЛКА_НА_ВАШ_YML","method","get","ignore_error","1","format","yml") %]
[% used_ids = []; showed_ids = 0 %]
[% FOREACH t in product_view_list %]
[% NEXT IF exists_val(used_ids,t.product.id) %]
[% used_ids.push(t.product.id) %]
<a href="[% yml.${t.product.id}.url %]"><img src="[% yml.${t.product.id}.picture[0] %]"></a><br>
<a href="[% yml.${t.product.id}.url %]">[% yml.${t.product.id}.name %]</a><br>
[% yml.${t.product.id}.price %] руб.<br>
<a href="[% yml.${t.product.id}.url %]">Купить</a><br>
[% showed_ids = showed_ids+1; LAST IF showed_ids >= 6 %]
[% END %]

Вывод данных, собранных для сценария Брошенная категория

Вывести товары из категории, которую пользователь просматривал последний раз:

[% category_view_list = ssecquery('category_view','dt','>','current - 1 day') %]
[% external_extra("ССЫЛКА_НА_ВАШ_YML","method","get","ignore_error","1","format","yml") %]
[% category_view_items = [] %]
[% FOREACH item IN yml.values() %][% IF item.categoryId == category_view_list[0].product.category_id AND item.available == 'true' %][% category_view_items.push(item) %][% END %][% LAST IF category_view_items.size() == 6 %][% END %]
[% IF category_view_items.size() < 1 %][% Cancel_Letter() %][% END %]
[% IF category_view_items.size() > 0 %]
[% FOREACH item IN category_view_items %]
<a href="[% item.url %]"><img src="[% IF item.picture[0] %][% item.picture[0] %][% ELSE %][% item.picture %][% END %]"></a><br>
<a href="[% item.url %]">[% item.name %]</a><br>
[% item.price %] руб.<br>
<a href="[% item.url %]">Купить</a><br>
[% LAST IF loop.count() == 6 %]
[% END %]
[% END %]