Размерная сетка при YML выгрузке
Материал из Umicms
Версия от 08:36, 20 августа 2018; Whoa (обсуждение | вклад)
Актуально 18
Если при выгрузке одежды в Яндекс.Маркет необходимо добавить к параметру "Размер" атрибут unit, то нужно воспользоваться следующей инструкцией:
Создадим в шаблоне данных товара поле "Размерная сетка" с идентификатором "razmernaya_setka" и типом строка:
В товаре добавим в данное поле необходимое значение, например, RU.
Затем в файл /xsl/export/custom/YML.xsl добавим наш кастомный код:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl"
xmlns:udt="http://umi-cms.ru/2007/UData/templates"
extension-element-prefixes="php"
exclude-result-prefixes="xsl php udt">
<!-- Добавляем нижеуказанный код -->
<xsl:template match="field" mode="filterable">
<xsl:param name="page_id" />
<xsl:variable name="field_title" select="@title" />
<xsl:variable name="field_name" select="@name" />
<xsl:variable name="field_type" select="./type/@data-type" />
<xsl:variable name="unit" select="//page[@id = $page_id]//property[@name = 'razmernaya_setka']/value" />
<xsl:if test="//page[@id = $page_id]//property[@name = $field_name]/value != '' and $field_title != 'Цена' and $field_title != 'Штрихкод'">
<xsl:variable name="field_value" select="//page[@id = $page_id]//property[@name = $field_name]/value" />
<xsl:choose>
<xsl:when test="//page[@id = $page_id]//property[@name = $field_name]/value/item/@name">
<xsl:choose>
<xsl:when test="$field_title = 'Размер'">
<param name="{$field_title}" unit="{$unit}"><xsl:value-of select="//page[@id = $page_id]//property[@name = $field_name]/value/item/@name"/></param>
</xsl:when>
<xsl:otherwise>
<param name="{$field_title}"><xsl:value-of select="//page[@id = $page_id]//property[@name = $field_name]/value/item/@name"/></param>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$field_type != 'boolean'">
<param name="{$field_title}"><xsl:value-of select="$field_value"/></param>
</xsl:if>
<xsl:if test="$field_type = 'boolean' and $field_value = '1'">
<param name="{$field_title}">Да</param>
</xsl:if>
<xsl:if test="$field_type = 'boolean' and $field_value = '0'">
<param name="{$field_title}">Нет</param>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
Теперь в YML файл выгружается атрибут unit
<param name="Размер" unit="RU">52-54</param>
<param name="Сезон">Лето</param>
<param name="Цвет">Синий</param>
<param name="Тип застежки">Молния</param>