Импортирование Единицы измерения номенклатурной позиции
Материал из Umicms
В файле с данными из 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>
