Выбрать страницу

Документация по составлению шаблонов обработки контента из YML-каталогов

В данной статье мы описываем правила составления шаблонов для обработки партнерских каталогов в формате YML

Основным инструментом при переносе товарного контента из магазина-поставщика в магазин-партнер на WP Shop WordPress служит шаблон генерации товарных записей на основе YML-каталога магазина-поставщика. Общий принцип заключается в том, что поля оффера можно вставить в шаблон записи внутри скобок {xxx} как в контент записи, так и в дополнительные поля Custom Fields. Так же можно добавить свои статические параметры. Далее скрипт сгенерирует по заданному шаблону обычные записи WordPress с использованием данных из YML-каталога, создаст структуру рубрик и под-рубрик, установит связи между рубриками и записями, проставит цены и другие параметры.


Шаблон состоит из 3 основных блоков:

  1. Блок контента записи {post_content}
  2. Блок дополнительных полей записи {Custom Fields}
  3. Блок опций

Все указанные поля необязательны, приводятся просто для пояснения логики работы скрипта.
Блок контента записи [post_content]

  • {description} — описание товара из оффера

Так же сюда можно ставить другие поля из оффера внутри скобок {}, любой статический текст, шорткоды других плагинов и т.д. Все это будет содержаться в тексте записи (товарной или обычной). Не рекомендуем ставить сюда JS скрипты, сложный HTML-код. Может сломать структуру шаблона и не сработать.

Блок дополнительных полей записи [Custom Fields]

  • <yml_postmeta> — начало блока доп.полей
  • [#cost#]name=cost_1;value=|{price}[#/cost#] — доп.поле cost_1 с ценой из оффера. Выводится на фронтенде, умножается на повышающий коэффициент fee (если задан, см.ниже)
  • [#oldprice#]name=old_price;value=|{oldprice}[#/oldprice#] — доп.поле old_price со «старой ценой» из оффера. Нужно для отображения скидки. Выводится на фронтенде, если нет в оффере то не создается. Работает только на темах производства студии WP Shop
  • [#similar#]name=similar_products;value=|1[#/similar#] — доп.поле similar_products со значением 1. Нужно для отображения «похожих товаров». Выводится внутри товара, берет товары из тега, если нет то из рубрики (корневого товара). Работает только на темах производства студии WP Shop
  • [#url#]name=part_url;value=|{url}[#/url#] — доп.поле part_url со значением URL товара на магазине-поставщике. Работает только на темах производства студии WP Shop
  • [#noindex#]name=_yoast_wpseo_meta-robots-noindex;value=|1[#/noindex#] — доп.поле _yoast_wpseo_meta-robots-noindex со значением 1. Работает только если включен плагин SEO Yoast. Запрещает индексирование контента Яндексом (для снятия риска писсимизации за плагиат контента и чтобы не передавать вес)
  • [#nofollow#]name=_yoast_wpseo_meta-robots-nofollow;value=|1[#/nofollow#] — доп.поле _yoast_wpseo_meta-robots-nofollow со значением 1. Работает только если включен плагин SEO Yoast. Запрещает индексирование Гуглом ссылок внутри записи (для снятия риска писсимизации за плагиат контента и чтобы не передавать PR)
  • [#noimageindex#]name=_yoast_wpseo_meta-robots-adv;value=|noimageindex[#/noimageindex#] — доп.поле _yoast_wpseo_meta-robots-adv со значением noimageindex. Работает только если включен плагин SEO Yoast. Запрещает индексирование картинок Гуглом (для снятия риска писсимизации за плагиат контента)
  • [#picture#]name=Thumbnail;value=|{picture}[#/picture#] — доп.поле Thumbnail с внешним URL первой картинки товара из оффера. Выводится на фронтенде. Удобен в случае ускорения парсинга за счет отключения импорта картинок. Работает только на темах производства студии WP Shop
  • </yml_postmeta> — конец блока доп.полей

Блок опций

  • <yml_options> — начало блока опций
  • fee=1.2; — наценка 20% от цены поставщика. Умножает значение доп.поля cost_1 на указанный коэффициент (в данном случае 1,2)
  • no_img=1; — отключение импорта картинок в локальную папку из оффера. Используется для ускорения импорта и снижения нагрузки на сервер хостинга, где лежит ваш сайт
  • params_in_desc=1; — опция кладет внутрь описания товара список параметров из блока param в оффере. param часто используется в YML для некоторых групп товаров: одежда, техника и многое другое.
  • template_title=name,typePrefix,vendor,model — конструкция заголовка товара. Указывается перечень полей оффера, которые нужно включить в наименование. Данная конструкция универсальна, позволяет построить правильный заголовок как при наличии в оффере поля <name> так и без него (что часто встречается)
  • fields_update=old_price,new — задается набор полей, значения которых требуется обновлять. При каждом запуске обновления проекта, наряду с ценой и наличием, будет обновлено значение указанных в этом списке полей (по формуле, заданной в блоке доп.полей шаблона)
  • </yml_options> — конец блока опций

Все пункты шаблона пишутся в одну строку. Тут каждый с новой строки — для удобства описания

 

Базовый шаблон парсера

{description}
<yml_postmeta>
[#price#]name=cost_1;value=|{price}[#/price#]
[#oldprice#]name=old_price;value=|{oldprice}[#/oldprice#]
[#url#]name=part_url;value=|{url}[#/url#]
[#similar#]name=similar_products;value=|1[#/similar#]
[#noindex#]name=_yoast_wpseo_meta-robots-noindex;value=|1[#/noindex#]
[#nofollow#]name=_yoast_wpseo_meta-robots-nofollow;value=|1[#/nofollow#]
[#noimageindex#]name=_yoast_wpseo_meta-robots-adv;value=|noimageindex[#/noimageindex#]
[#picture#]name=Thumbnail;value=|{picture}[#/picture#]
</yml_postmeta>
<yml_options>no_img=1;params_in_desc=1;template_title=name,typePrefix,vendor,model</yml_options>

Все доступные опции шаблон парсера

  1. no_img=1; — отключение импорта файлов картинок в локальную папку из оффера. Используется для ускорения импорта и снижения нагрузки на сервер хостинга, где лежит ваш сайт
  2. params_in_desc=1; опция кладет внутрь описания товара список параметров из блока param в оффере. param часто используется в YML для некоторых групп товаров: одежда, техника и многое другое.
  3. cat_ar=1192,1208,1212; — определяет ID рубрик (1192,1208,1212 — указаны для примера), товары которых импортировать. Важная опция, с помощью которой можно разбивать большой YML-фид на части и грузить несколькими проектами, потому что обычные хостинги не могут переварить более 3000-4000 офферов в 1 фиде. Большие массивы обязательно надо делить на части с помощью данной опции. ID рубрик проще всего взять, открыв YML в обычном MS Excel
  4. fee=1.2; — возможность делать наценку к цене поставщика. Умножает значение доп.поля cost_1 на указанный коэффициент (в данном случае 1,2)
  5. template_title=name,typePrefix,vendor,model; — конструкция заголовка товара. Указывается перечень полей оффера, которые нужно включить в наименование
  6. id_as_field=1; — пишет в доп.поле prod_id идентификатор оффера offer id. Опция используется для работы с API поставщиков для передачи туда данных о заказанном товаре.
  7. project_as_field=1; — пишет в доп.поле project_id номер проекта. Опция используется для работы с API поставщиков
  8. fields_update=old_price,new; — в опции задаются имена доп.полей, которые требуется обновлять при запуске синхронизации каталога с поставщиком.

Пример оффера в YML сайта-поставщика

<offer id="24086748" available="true" group_id="31218056">
<url>http://www.ozon.ru/context/detail/id/24086748/?from=wpshop</url>
<price>32384</price>
<oldprice>34384</oldprice>
<currencyid>RUR</currencyid>
<categoryid>1178973</categoryid>
<picture>http://static.ozone.ru/multimedia/spare_covers/1012094012.jpg</picture>
<picture>http://static.ozone.ru/multimedia/spare_other/1011485421.jpg</picture>
<picture>http://static.ozone.ru/multimedia/spare_other/1011485422.jpg</picture>
<delivery>true</delivery>
<ordering>На складе</ordering>
<name>Apple iPad mini with Retina display Wi-Fi + Cellular 16GB, Space Gray</name>
<vendor>Apple</vendor>
<vendorcode>ME800RU/A</vendorcode>
<description>
Мощный процессор A57 Процессор A7 имеет 64-разрядную архитектуру класса настольных компьютеров и отличается от 
предыдущих поколений передовыми графическими возможностями и улучшенной обработкой сигнала изображения. Благодаря
 четырехкратному приросту производительности центрального и восьмикратному графического процессоров на iPad mini 
 с дисплеем Retina любые задачи выполняются быстрее и эффективнее - от загрузки приложений и редактирования 
 фотографий до игр со сложной графикой, при этом заряда аккумулятора по-прежнему хватает на весь день. Процессор А7 
 с 64-битной архитектурой и поддержкой OpenGL ES версии 3.0 обеспечивает визуальные эффекты на уровне игровой консоли. 
 Кроме того, iPad mini оснащен сопроцессором движения M7, который собирает данные с датчика ускорения, гироскопа и 
 компаса, чтобы разгрузить процессор A7 и повысить энергоэффективность. Дисплей идеального размера с подсветкой LED.
 На дисплее Retina нового iPad mini...
</description>
<barcode>0885909896936</barcode>
<param name="Цвет">темно-серый
<param name="Комплектация">Адаптер питания, Кабель Lightning-USB
<param name="Размеры, мм">200 х 134.7 х 7.5
<param name="Размер упаковки (ДхШхВ), см">21 x 14.5 x 5.5
<param name="Вес, г">300
<param name="Гарантия">12 мес.
<param name="Год выпуска">2013
<param name="Страна-изготовитель">Китай
<param name="Страна бренда">США
<param name="Тип">Планшет
<param name="Диагональ">7.9"
</offer>
Translate »