Импортирование Единицы измерения номенклатурной позиции
Материал из Umicms
Версия от 06:11, 28 октября 2011; VITL' (обсуждение | вклад) (Новая страница: « category:Интеграция с 1С В файле с данными из 1С, а именно в файле с ценами на товары и количес…»)
В файле с данными из 1С, а именно в файле с ценами на товары и количеством на складе (offers.xml), указывается также Единица измерения товара:
<Предложение>
<Ид>wbcf2934-55bc-11d9-848a-03890f43529a</Ид>
<Штрихкод>20029845734</Штрихкод>
<Наименование>Телевизор</Наименование>
<Цены>
<Цена>
<Представление>9 500 руб за шт</Представление>
<ИдТипаЦены>bd72d8fc-55bc-11d9-848a-00112f43529a</ИдТипаЦены>
<ЦенаЗаЕдиницу>9500,00</ЦенаЗаЕдиницу>
<Валюта>руб</Валюта>
<Единица>шт</Единица>
<Коэффициент>1</Коэффициент>
</Цена>
</Цены>
<Количество>1,00</Количество>
</Предложение>
Чтобы импортировалось значение узла:
<Единица>шт</Единица>
необходимо модифицировать шаблон для узла <Цена>, поэтому добавим в файл \xsl\import\custom\commerceML2.xsl, в блок xsl:stylesheet следующий шаблон:
<xsl:template match="Цена">
<xsl:variable name="currency_ref" select="concat('udata://exchange/getCurrencyCodeByAlias/?alias=', php:function('urlencode', string(Валюта)))" />
<xsl:variable name="currency" select="document($currency_ref)/udata" />
<xsl:variable name="definition" select="key('price-definition', ИдТипаЦены)" />
<property name="price" title="Цена" type="price" is-public="1" allow-runtime-add="1">
<type data-type="price" />
<title>Цена</title>
<value currency_code="{$currency}"><xsl:value-of select="ЦенаЗаЕдиницу"/></value>
</property>
<property name="Единица" title="Единица" type="string" is-public="1" allow-runtime-add="1">
<type data-type="string" />
<title>Единица</title>
<value><xsl:value-of select="Единица"/></value>
</property>
</xsl:template>
От оригинального шаблона, в файле \xsl\import\commerceML2.xsl, отличие в том что добавлен блок добавления поля "Единица"
<property name="Единица" title="Единица" type="string" is-public="1" allow-runtime-add="1">
<type data-type="string" />
<title>Единица</title>
<value><xsl:value-of select="Единица"/></value>
</property>