Импортирование Единицы измерения номенклатурной позиции

Материал из 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>