Как осуществить экспорт в YML?

Материал из Umicms

Перейти к: навигация, поиск

На данный момент сиcтема создает YML файл с описанием предложения следующего формата:

<offer>

 <url></url>

 <price></price>

 <currencyId></currencyId>

 <categoryId></categoryId>

 <name></name>

 <description>

 </description>

</offer>

В описании этого формата присутствуют и другие элементы, например ссылка на картинку (тег <picture>).


Как экспортировать другие поля, кроме перечисленных выше?

В шаблонах данных нужного вам типа (к примеру, Раздел сайта -> Объект каталога -> Товар в магазине -> телевизор) измените название поля, которое выводит изображение для этого объекта каталога с "photo" на "izobrazhenie". Теперь, в выводе файла импорта YML у тех объектов каталога, у которых есть поле "izobrazhenie" будет присутствовать тег <picture>.

Таким образом, чтобы в файле экспорта появились новые элементы, переименуйте необходимые поля в типах данных, основываясь этой таблице соответствий полей данных и тегов yml:

<xsl:variable name="picture">izobrazhenie</xsl:variable>
<xsl:variable name="deliveryIncluded">deliveryIncluded</xsl:variable>
<xsl:variable name="price">price</xsl:variable> 
<xsl:variable name="description">opisanie</xsl:variable>
<xsl:variable name="sales_notes">sales_notes</xsl:variable>
<xsl:variable name="rate">rate</xsl:variable> 
<xsl:variable name="plus">plus</xsl:variable>


(полный список можно посмотреть в файле ~/xsl/dump2yml.xsl)


Если необходимо в узел offer добавить id объекта каталога, то необходимо переписать начало шаблона (~/xsl/dump2yml.xsl):

  <xsl:template match="object">
  ...
  </xsl:template>

следующим образом:

  <xsl:param name="objectId" select="@id"/>
  <xsl:param name="elementId" select="../element[@objectId = $objectId]/@id"/>
 
  <offer id="{$elementId}">
  ...
  </offer>

Кэширование YML для решения проблемы больших каталогов

Для того, чтобы Яндекс получил файл с максимально возможной скоростью, результат в YML кешируется в файл относительно корня сайта ./cache/yml.xml.

В случае, если файла ./cache/yml.xml не существует или время его последней модификации превысило 1 день, то файл создается заново. При изменении параметров конфигурации в панели администрирования (/admin/eshop/export_yml) при нажатии на кнопку "сохранить" кэшированный файл удаляется. И будет создан вновь при обращении к /eshop/yml/


Загрузка каталога в партнерском разделе Яндекса

Убедитесь, в том, что ваш каталог заполнен с указанием цен на товары, т.к. товары у которых нет цены не выгрузятся в YML файл.

Личные инструменты