Импорт всех типов Цен — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) |
Velross (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
[[category:Интеграция с 1С]] | [[category:Интеграция с 1С]] | ||
+ | Актуально для версии 2.9.6 | ||
+ | |||
+ | ---- | ||
'''Есть более простое решение - [[Импорт_всех_типов_цен_при_обмене_данными_с_1С]]''' | '''Есть более простое решение - [[Импорт_всех_типов_цен_при_обмене_данными_с_1С]]''' | ||
Строка 78: | Строка 81: | ||
О том как использовать несколько Цен, назначенных для одного товара, можно прочитать в данной статье: [http://wiki.umisoft.ru/Использование_нескольких_Цен_для_одного_товара Использование нескольких Цен для одного товара] | О том как использовать несколько Цен, назначенных для одного товара, можно прочитать в данной статье: [http://wiki.umisoft.ru/Использование_нескольких_Цен_для_одного_товара Использование нескольких Цен для одного товара] | ||
+ | |||
+ | [[Категория:Интеграция с 1С]][[Категория:Модуль Обмен данными]][[Категория:Модуль Каталог]] |
Текущая версия на 09:55, 30 апреля 2014
Актуально для версии 2.9.6
Есть более простое решение - Импорт_всех_типов_цен_при_обмене_данными_с_1С
Если вам необходимо при импорте данных из 1С, импортировать все типы цен, допустим такие как Оптовая, Розничная, Закупочная и т.п., то необходимо переписать xsl шаблон импорта. Можно воспользоваться следующим вариантом шаблона /xsl/import/custom/commerceML2.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<!-- TODO: // Write here your own templates -->
<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:key name="pricetype" match="ТипыЦен/ТипЦены" use="Ид"/>
<!-- Предложения -->
<xsl:template match="ПакетПредложений">
<meta>
<source-name>commerceML2</source-name>
</meta>
<pages>
<xsl:apply-templates select="Предложения/Предложение" />
</pages>
</xsl:template>
<xsl:template match="Предложения/Предложение">
<page id="{Ид}" update-only="1">
<properties>
<xsl:apply-templates select="Цены" />
<group name="catalog_stores_props" title="Склады">
<property name="common_quantity" title="Общее количество на складах" type="float" is-public="1" allow-runtime-add="1">
<type data-type="float" />
<title>Общее количество на складах</title>
<value>
<xsl:value-of select="Количество"/>
</value>
</property>
</group>
</properties>
</page>
</xsl:template>
<xsl:template match="Цены">
<group name="cenovye_svojstva" title="Ценовые свойства">
<xsl:apply-templates select="Цена" />
</group>
</xsl:template>
<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" />
<property name="price{position()}" is-public="1" visible="visible" allow-runtime-add="1">
<xsl:attribute name="title">
<xsl:value-of select="key('pricetype', ИдТипаЦены)/Наименование"/>
</xsl:attribute>
<type data-type="float" />
<title>Цена<xsl:value-of select="position()"/></title>
<value currency_code="{$currency}">
<xsl:value-of select="ЦенаЗаЕдиницу"/>
</value>
</property>
</xsl:template>
<xsl:template match="Цена[position() = 1]">
<xsl:variable name="currency_ref" select="concat('udata://exchange/getCurrencyCodeByAlias/?alias=', php:function('urlencode', string(Валюта)))" />
<xsl:variable name="currency" select="document($currency_ref)/udata" />
<property name="price" is-public="1">
<xsl:attribute name="title">
<xsl:value-of select="key('pricetype', ИдТипаЦены)/Наименование"/>
</xsl:attribute>
<type data-type="price" />
<title>Цена</title>
<value currency_code="{$currency}">
<xsl:value-of select="ЦенаЗаЕдиницу"/>
</value>
</property>
</xsl:template>
</xsl:stylesheet>
После импорта всех данных, необходимо вручную сделать небольшую правку, необходимо изменить название основной (1-ой) Цены в типе данных «Объект каталога».
О том как использовать несколько Цен, назначенных для одного товара, можно прочитать в данной статье: Использование нескольких Цен для одного товара