Размерная сетка при YML выгрузке

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

Актуально для версии 18.

Если при выгрузке одежды в Яндекс.Маркет необходимо добавить к параметру "Размер" атрибут unit, то нужно воспользоваться следующей инструкцией:

Создадим в шаблоне данных товара поле "Размерная сетка" с идентификатором "razmernaya_setka" и типом строка: Размерная сетка.PNG


В товаре добавим в данное поле необходимое значение, например, 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>