Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Выгрузка заказа в 1с с опциональными свойствами товара

Автор denis_savinРаздел Custom макросы

Ответов: 10
Просмотров: 3962
Последний ответ 14 Мая 2014, 15:35:27
от denis_savin
Выгрузка заказов со всеми товарами заказа?

Автор muldyРаздел Custom макросы

Ответов: 2
Просмотров: 1322
Последний ответ 14 Февраля 2014, 13:07:45
от muldy
Выгрузка заказов в 1С с контактными данными?

Автор muldyРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 1873
Последний ответ 19 Августа 2013, 12:15:41
от admin
Выгрузка для Я.Маркета <delivery-options>

Автор MisagoРаздел Шаблоны XSLT

Ответов: 2
Просмотров: 391
Последний ответ 02 Мая 2016, 23:14:29
от Misago
YML выгрузка - вопрос по изображениям

Автор webtrendРаздел Шаблоны XSLT

Ответов: 8
Просмотров: 529
Последний ответ 04 Февраля 2016, 20:20:28
от webtrend

0 Пользователей и 1 Гость просматривают эту тему.

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Выгрузка в YML
« : 28 Апреля 2014, 11:30:33 »
Необходимо выгрузить из юми в YML данные о товаре с учетом скиди
(по умолчанию выгружается без скидки)

открыл статью
http://wiki.umisoft.ru/Настройка_экспорта_в_YML_(Яндекс-маркет)
и начал делать по ней.
1)скопировал вот этот шаблон в /custom/YML.xsl
<xsl:template match="page[basetype/@method = 'object']">
</xsl:template>
в раздел
<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:param name="price" select="number(.//property[@name = 'price']/value)" />
вот на это
<xsl:param name="price" select="document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual" />

Нажимаю кнопку подготовить к экспорту
и  вылезает ошибка


при этом когда в вызываю в каталоге с товаром вот эту строку
<xsl:value-of select="document(concat('udata://emarket/price/', @id))/udata/price/actual" />
то цена отображается правильно(с учетом скидки)

*

ilyar

  • ***
  • 128
  • +28/-0
  • UMI.CMS, Yii, Vagrant, BEM
    • Просмотр профиля
    • ilyar на toster
Re:Выгрузка в YML
« Ответ #1 : 28 Апреля 2014, 11:37:00 »
Пробуй так, не проверял, но может быть это поможет:
xsl/export/custom/YML.xsl

Код: 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:template match="page[basetype/@method = 'object']">
        <xsl:param name="price" select="document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual" />
        <xsl:if test="$price &gt; 0">
            <offer id="{@id}">
                <xsl:choose>
                    <xsl:when test=".//property[@name = $vendor]/value != '' and .//property[@name = $model]/value != ''">
                        <xsl:attribute name="type">vendor.model</xsl:attribute>
                    </xsl:when>
                    <xsl:when test=".//property[@name = $isbn]/value != ''">
                        <xsl:attribute name="type">book</xsl:attribute>
                    </xsl:when>
                    <xsl:when test=".//property[@name = $title]/value != ''">
                        <xsl:attribute name="type">artist.title</xsl:attribute>
                    </xsl:when>
                    <xsl:when test=".//property[@name = $place]/value != ''">
                        <xsl:attribute name="type">event-ticket</xsl:attribute>
                    </xsl:when>
                    <xsl:when test=".//property[@name = $transport]/value != ''">
                        <xsl:attribute name="type">tour</xsl:attribute>
                    </xsl:when>
                </xsl:choose>
                <xsl:attribute name="available">
                    <xsl:choose>
                        <xsl:when test=".//property[@name = 'common_quantity']/value &gt; 0"><xsl:text>true</xsl:text></xsl:when>
                        <xsl:otherwise><xsl:text>false</xsl:text></xsl:otherwise>
                    </xsl:choose>
                </xsl:attribute>
                <url><xsl:value-of select="concat('http://', /umidump/meta/domain, @link)" /></url>
                <price><xsl:value-of select="$price"/></price>
                <currencyId>
                    <xsl:choose>
                        <xsl:when test="string-length($default-currency)"><xsl:value-of select="$default-currency" /></xsl:when>
                        <xsl:otherwise>RUR</xsl:otherwise>
                    </xsl:choose>
                </currencyId>
                <categoryId><xsl:value-of select="@parentId"/></categoryId>
                <xsl:if test=".//property[@name = 'photo']/value != ''">
                    <picture>
                        <xsl:value-of select="concat('http://', /umidump/meta/domain, .//property[@name = 'photo']/value)"/>
                    </picture>
                </xsl:if>
                <!--
                    <delivery>!!!delivery(true|false)!!!</delivery>
                -->
                <xsl:choose>
                    <!-- vendor.model -->
                    <xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')">
                        <xsl:if test=".//property[@name = $typePrefix]/value != ''">
                            <typePrefix><xsl:value-of select=".//property[@name = $typePrefix]/value"/></typePrefix>
                        </xsl:if>
                        <vendor><xsl:value-of select=".//property[@name = $vendor]/value"/></vendor>
                        <model><xsl:value-of select=".//property[@name = $model]/value"/></model>
                    </xsl:when>
                    <!-- book -->
                    <xsl:when test=".//property[@name = $isbn]/value != ''">
                        <xsl:if test=".//property[@name = $author]/value != ''">
                            <author><xsl:value-of select=".//property[@name = $author]/value"/></author>
                        </xsl:if>
                        <name><xsl:value-of select="name"/></name>
                        <xsl:if test=".//property[@name = $publisher]/value != ''">
                            <publisher><xsl:value-of select=".//property[@name = $publisher]/value"/></publisher>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $series]/value != ''">
                            <series><xsl:value-of select=".//property[@name = $series]/value"/></series>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $year]/value != ''">
                            <year><xsl:value-of select=".//property[@name = $year]/value"/></year>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $isbn]/value != ''">
                            <ISBN><xsl:value-of select=".//property[@name = $isbn]/value"/></ISBN>
                        </xsl:if>
                    </xsl:when>
                    <!-- artist.title -->
                    <xsl:when test=".//property[@name = $title]/value != ''">
                        <xsl:if test=".//property[@name = $artist]/value != ''">
                            <artist><xsl:value-of select=".//property[@name = $artist]/value"/></artist>
                        </xsl:if>
                        <title><xsl:value-of select=".//property[@name = $title]/value"/></title>
                        <xsl:if test=".//property[@name = $year]/value != ''">
                            <year><xsl:value-of select=".//property[@name = $year]/value"/></year>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $media]/value != ''">
                            <media><xsl:value-of select=".//property[@name = $media]/value"/></media>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $starring]/value != ''">
                            <starring><xsl:value-of select=".//property[@name = $starring]/value"/></starring>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $director]/value != ''">
                            <director><xsl:value-of select=".//property[@name = $director]/value"/></director>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $originalName]/value != ''">
                            <originalName><xsl:value-of select=".//property[@name = $originalName]/value"/></originalName>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $country]/value != ''">
                            <country><xsl:value-of select=".//property[@name = $country]/value"/></country>
                        </xsl:if>
                    </xsl:when>
                    <!-- event-ticket -->
                    <xsl:when test=".//property[@name = $place]/value != ''">
                        <name><xsl:value-of select="name"/></name>
                        <place><xsl:value-of select=".//property[@name = $place]/value"/></place>
                        <xsl:if test="(.//property[@name = $hall]/value != '') and (.//property[@name = $hall-plan]/value != '')">
                            <hall plan="{.//property[@name = $hall-plan]/value}"><xsl:value-of select=".//property[@name = $hall]/value"/></hall>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $hall_part]/value != ''">
                            <hall_part><xsl:value-of select=".//property[@name = $hall_part]/value"/></hall_part>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $date]/value != ''">
                            <date><xsl:value-of select=".//property[@name = $date]/value"/></date>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $is_premiere]/value != ''">
                            <is_premiere><xsl:value-of select=".//property[@name = $is_premiere]/value"/></is_premiere>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $is_kids]/value != ''">
                            <is_kids><xsl:value-of select=".//property[@name = $is_kids]/value"/></is_kids>
                        </xsl:if>
                    </xsl:when>
                    <!-- tour -->
                    <xsl:when test=".//property[@name = $transport]/value != ''">
                        <xsl:if test=".//property[@name = $worldRegion]/value != ''">
                            <worldRegion><xsl:value-of select=".//property[@name = $worldRegion]/value"/></worldRegion>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $country]/value != ''">
                            <country><xsl:value-of select=".//property[@name = $country]/value"/></country>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $region]/value != ''">
                            <region><xsl:value-of select=".//property[@name = $region]/value"/></region>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $days]/value != ''">
                            <days><xsl:value-of select=".//property[@name = $days]/value"/></days>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $dataTour]/value != ''">
                            <dataTour><xsl:value-of select=".//property[@name = $dataTour]/value"/></dataTour>
                        </xsl:if>
                        <name><xsl:value-of select="name"/></name>
                        <xsl:if test=".//property[@name = $hotel_stars]/value != ''">
                            <hotel_stars><xsl:value-of select=".//property[@name = $hotel_stars]/value"/></hotel_stars>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $room]/value != ''">
                            <room><xsl:value-of select=".//property[@name = $room]/value"/></room>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $meal]/value != ''">
                            <meal><xsl:value-of select=".//property[@name = $meal]/value"/></meal>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $included]/value != ''">
                            <included><xsl:value-of select=".//property[@name = $included]/value"/></included>
                        </xsl:if>
                        <xsl:if test=".//property[@name = $transport]/value != ''">
                            <transport><xsl:value-of select=".//property[@name = $transport]/value"/></transport>
                        </xsl:if>
                        <xsl:if test=".//property[@name = 'price_min']/value != ''">
                            <price_min><xsl:value-of select=".//property[@name = 'price_min']/value"/></price_min>
                        </xsl:if>
                        <xsl:if test=".//property[@name = 'price_max']/value != ''">
                            <price_max><xsl:value-of select=".//property[@name = 'price_max']/value"/></price_max>
                        </xsl:if>
                    </xsl:when>
                    <xsl:otherwise>
                        <name><xsl:value-of select="name"/></name>
                    </xsl:otherwise>
                </xsl:choose>
                <xsl:if test=".//property[@name = 'description']/value != ''">
                    <description><xsl:value-of select=".//property[@name = 'description']/value"/></description>
                </xsl:if>
                <xsl:if test=".//property[@name = 'bar_code']/value != '' and string-length(.//property[@name = 'bar_code']/value) &lt; 13">
                    <barcode><xsl:value-of select=".//property[@name = 'bar_code']/value"/></barcode>
                </xsl:if>
                <xsl:variable name="type_id" select="@type-id" />
                <xsl:variable name="page_id" select="@id" />
                <xsl:apply-templates select="../../types/type[@id = $type_id]" mode="filterable">
                    <xsl:with-param name="page_id" select="$page_id" />
                </xsl:apply-templates>
            </offer>
        </xsl:if>
    </xsl:template>
    
</xsl:stylesheet>


*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #2 : 28 Апреля 2014, 12:19:57 »
не помгло  :(

вот листинг полностью если что
<?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:template match="page[basetype/@method = 'object']">
<xsl:param name="price" select="document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual" />
<xsl:if test="$price &gt; 0">
<offer id="{@id}">
<xsl:choose>
<xsl:when test=".//property[@name = $vendor]/value != '' and .//property[@name = $model]/value != ''">
<xsl:attribute name="type">vendor.model</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $isbn]/value != ''">
<xsl:attribute name="type">book</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $title]/value != ''">
<xsl:attribute name="type">artist.title</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $place]/value != ''">
<xsl:attribute name="type">event-ticket</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $transport]/value != ''">
<xsl:attribute name="type">tour</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:attribute name="available">
<xsl:choose>
<xsl:when test=".//property[@name = 'common_quantity']/value &gt; 0"><xsl:text>true</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>false</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<url><xsl:value-of select="concat('http://', /umidump/meta/domain, @link)" /></url>
<price><xsl:value-of select="$price"/></price>
<currencyId>
<xsl:choose>
<xsl:when test="string-length($default-currency)"><xsl:value-of select="$default-currency" /></xsl:when>
<xsl:otherwise>RUR</xsl:otherwise>
</xsl:choose>
</currencyId>
<categoryId><xsl:value-of select="@parentId"/></categoryId>
<xsl:if test=".//property[@name = 'photo']/value != ''">
<picture>
<xsl:value-of select="concat('http://', /umidump/meta/domain, .//property[@name = 'photo']/value)"/>
</picture>
</xsl:if>
<!--
<delivery>!!!delivery(true|false)!!!</delivery>
-->
<xsl:choose>
<!-- vendor.model -->
<xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')">
<xsl:if test=".//property[@name = $typePrefix]/value != ''">
<typePrefix><xsl:value-of select=".//property[@name = $typePrefix]/value"/></typePrefix>
</xsl:if>
<vendor><xsl:value-of select=".//property[@name = $vendor]/value"/></vendor>
<model><xsl:value-of select=".//property[@name = $model]/value"/></model>
</xsl:when>
<!-- book -->
<xsl:when test=".//property[@name = $isbn]/value != ''">
<xsl:if test=".//property[@name = $author]/value != ''">
<author><xsl:value-of select=".//property[@name = $author]/value"/></author>
</xsl:if>
<name><xsl:value-of select="name"/></name>
<xsl:if test=".//property[@name = $publisher]/value != ''">
<publisher><xsl:value-of select=".//property[@name = $publisher]/value"/></publisher>
</xsl:if>
<xsl:if test=".//property[@name = $series]/value != ''">
<series><xsl:value-of select=".//property[@name = $series]/value"/></series>
</xsl:if>
<xsl:if test=".//property[@name = $year]/value != ''">
<year><xsl:value-of select=".//property[@name = $year]/value"/></year>
</xsl:if>
<xsl:if test=".//property[@name = $isbn]/value != ''">
<ISBN><xsl:value-of select=".//property[@name = $isbn]/value"/></ISBN>
</xsl:if>
</xsl:when>
<!-- artist.title -->
<xsl:when test=".//property[@name = $title]/value != ''">
<xsl:if test=".//property[@name = $artist]/value != ''">
<artist><xsl:value-of select=".//property[@name = $artist]/value"/></artist>
</xsl:if>
<title><xsl:value-of select=".//property[@name = $title]/value"/></title>
<xsl:if test=".//property[@name = $year]/value != ''">
<year><xsl:value-of select=".//property[@name = $year]/value"/></year>
</xsl:if>
<xsl:if test=".//property[@name = $media]/value != ''">
<media><xsl:value-of select=".//property[@name = $media]/value"/></media>
</xsl:if>
<xsl:if test=".//property[@name = $starring]/value != ''">
<starring><xsl:value-of select=".//property[@name = $starring]/value"/></starring>
</xsl:if>
<xsl:if test=".//property[@name = $director]/value != ''">
<director><xsl:value-of select=".//property[@name = $director]/value"/></director>
</xsl:if>
<xsl:if test=".//property[@name = $originalName]/value != ''">
<originalName><xsl:value-of select=".//property[@name = $originalName]/value"/></originalName>
</xsl:if>
<xsl:if test=".//property[@name = $country]/value != ''">
<country><xsl:value-of select=".//property[@name = $country]/value"/></country>
</xsl:if>
</xsl:when>
<!-- event-ticket -->
<xsl:when test=".//property[@name = $place]/value != ''">
<name><xsl:value-of select="name"/></name>
<place><xsl:value-of select=".//property[@name = $place]/value"/></place>
<xsl:if test="(.//property[@name = $hall]/value != '') and (.//property[@name = $hall-plan]/value != '')">
<hall plan="{.//property[@name = $hall-plan]/value}"><xsl:value-of select=".//property[@name = $hall]/value"/></hall>
</xsl:if>
<xsl:if test=".//property[@name = $hall_part]/value != ''">
<hall_part><xsl:value-of select=".//property[@name = $hall_part]/value"/></hall_part>
</xsl:if>
<xsl:if test=".//property[@name = $date]/value != ''">
<date><xsl:value-of select=".//property[@name = $date]/value"/></date>
</xsl:if>
<xsl:if test=".//property[@name = $is_premiere]/value != ''">
<is_premiere><xsl:value-of select=".//property[@name = $is_premiere]/value"/></is_premiere>
</xsl:if>
<xsl:if test=".//property[@name = $is_kids]/value != ''">
<is_kids><xsl:value-of select=".//property[@name = $is_kids]/value"/></is_kids>
</xsl:if>
</xsl:when>
<!-- tour -->
<xsl:when test=".//property[@name = $transport]/value != ''">
<xsl:if test=".//property[@name = $worldRegion]/value != ''">
<worldRegion><xsl:value-of select=".//property[@name = $worldRegion]/value"/></worldRegion>
</xsl:if>
<xsl:if test=".//property[@name = $country]/value != ''">
<country><xsl:value-of select=".//property[@name = $country]/value"/></country>
</xsl:if>
<xsl:if test=".//property[@name = $region]/value != ''">
<region><xsl:value-of select=".//property[@name = $region]/value"/></region>
</xsl:if>
<xsl:if test=".//property[@name = $days]/value != ''">
<days><xsl:value-of select=".//property[@name = $days]/value"/></days>
</xsl:if>
<xsl:if test=".//property[@name = $dataTour]/value != ''">
<dataTour><xsl:value-of select=".//property[@name = $dataTour]/value"/></dataTour>
</xsl:if>
<name><xsl:value-of select="name"/></name>
<xsl:if test=".//property[@name = $hotel_stars]/value != ''">
<hotel_stars><xsl:value-of select=".//property[@name = $hotel_stars]/value"/></hotel_stars>
</xsl:if>
<xsl:if test=".//property[@name = $room]/value != ''">
<room><xsl:value-of select=".//property[@name = $room]/value"/></room>
</xsl:if>
<xsl:if test=".//property[@name = $meal]/value != ''">
<meal><xsl:value-of select=".//property[@name = $meal]/value"/></meal>
</xsl:if>
<xsl:if test=".//property[@name = $included]/value != ''">
<included><xsl:value-of select=".//property[@name = $included]/value"/></included>
</xsl:if>
<xsl:if test=".//property[@name = $transport]/value != ''">
<transport><xsl:value-of select=".//property[@name = $transport]/value"/></transport>
</xsl:if>
<xsl:if test=".//property[@name = 'price_min']/value != ''">
<price_min><xsl:value-of select=".//property[@name = 'price_min']/value"/></price_min>
</xsl:if>
<xsl:if test=".//property[@name = 'price_max']/value != ''">
<price_max><xsl:value-of select=".//property[@name = 'price_max']/value"/></price_max>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<name><xsl:value-of select="name"/></name>
</xsl:otherwise>
</xsl:choose>
<xsl:if test=".//property[@name = 'description']/value != ''">
<description><xsl:value-of select=".//property[@name = 'description']/value"/></description>
</xsl:if>
<xsl:if test=".//property[@name = 'bar_code']/value != '' and string-length(.//property[@name = 'bar_code']/value) &lt; 13">
<barcode><xsl:value-of select=".//property[@name = 'bar_code']/value"/></barcode>
</xsl:if>
<xsl:variable name="type_id" select="@type-id" />
<xsl:variable name="page_id" select="@id" />
<xsl:apply-templates select="../../types/type[@id = $type_id]" mode="filterable">
<xsl:with-param name="page_id" select="$page_id" />
</xsl:apply-templates>
</offer>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

*

ilyar

  • ***
  • 128
  • +28/-0
  • UMI.CMS, Yii, Vagrant, BEM
    • Просмотр профиля
    • ilyar на toster
Re:Выгрузка в YML
« Ответ #3 : 28 Апреля 2014, 13:00:15 »
Давай последовательно. Пробовал мой код? Какой результат? Сделай тестовую категория с одним товаром и покажи что создается при экспорте.

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #4 : 28 Апреля 2014, 15:23:39 »
Код пробовал
Результат 1 в 1 - ошибка
выгрузку попробую чуть позже сделать

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #5 : 29 Апреля 2014, 07:05:37 »
Вот код без применения скидки
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<yml_catalog date="2014-04-28 09:56">
<shop>
<name>umicms.demo site</name>
<company>umicms.demo site</company>
<url>http://aaaappp.ru</url>
<currencies>
<currency id="RUR" rate="1"/>
<currency id="USD" rate="31.5"/>
<currency id="EUR" rate="35"/>
</currencies>
<categories>
<category id="3">Каталог</category>
<category id="13" parentId="3">iPhone</category>
<category id="22" parentId="13">iPhone 4S</category>
</categories>
<offers>
<offer id="26" available="false">
<url>
http://aaaappp.ru/catalog/iphone/iphone_4s/iphone_4s_8gb_black1/
</url>
<price>18000</price>
<currencyId>RUR</currencyId>
<categoryId>22</categoryId>
<name>iPhone 4S 8Gb Black</name>
</offer>
</offers>
</shop>
</yml_catalog>
<!--
 This page generated in 0.037596 secs by XSLT, ADMIN MODE
-->
« Последнее редактирование: 29 Апреля 2014, 07:10:58 от rellai »

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #6 : 29 Апреля 2014, 07:13:45 »
Вот применил твой код на нескольких товарах
теперь ошибка не вылетает
Но стоимость товара по прежнему указана без скидки....
чего то я не понял

<offer id="26" available="false">
<url>
http://aaaappp.ru/catalog/iphone/iphone_4s/iphone_4s_8gb_black1/
</url>
<price>18000</price>
<currencyId>RUR</currencyId>
<categoryId>22</categoryId>
<name>iPhone 4S 8Gb Black</name>
</offer>

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #7 : 05 Мая 2014, 16:08:29 »
Нет ни у кого идей?

*

ilyar

  • ***
  • 128
  • +28/-0
  • UMI.CMS, Yii, Vagrant, BEM
    • Просмотр профиля
    • ilyar на toster
Re:Выгрузка в YML
« Ответ #8 : 05 Мая 2014, 18:10:34 »
Нет ни у кого идей?

И так, цену мы декларируем в переменной $price:

Код: XSL [Выделить]

<xsl:param name="price" select="document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual" />


Если цена отображается, значит она берется из /udata/price/actual, и если скидки нет, то вывод: скидка по какой то причине к данному товару не переменилась.

Если скидка настроена правильно и должна применяться к товару без дополнительных условий (время, пользователь, общая цена заказа), то в экспорте должна быть цена со скидкой, а также ее можно увидеть по ссылке http://aaaappp.ru/udata://emarket/price/26/0/0/.

*

ilyar

  • ***
  • 128
  • +28/-0
  • UMI.CMS, Yii, Vagrant, BEM
    • Просмотр профиля
    • ilyar на toster
Re:Выгрузка в YML
« Ответ #9 : 05 Мая 2014, 21:56:45 »
Нет ни у кого идей?

Еще может быть все дело в том что товара нет в наличии: available="false"

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #10 : 14 Мая 2014, 13:18:10 »
Нет ни у кого идей?

в итоге решения твоего вопроса (спасибо ilyar) мы получили вывод ньд файла в котором нет скидки, хотя цена и выводится через макрос
document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual

,но пир просмотре данного товара на сайте происходит вывод цены со скидкой.

Возможно, дело в правилах скидки? какие правила должны менять цену товара? опиши эти правила ("скидка при суммарной стоимости заказа покупателя больше n-ой суммы", "скидка на определенного пользователя" и т.п.)

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #11 : 17 Мая 2014, 02:36:32 »
Скидка - обычная, на время и на конкретный товар, скидка выражается в %

Цитировать
скидка при суммарной стоимости заказа покупателя больше n-ой суммы", "скидка на определенного пользователя
-- не учитывается по этим правилам

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #12 : 17 Мая 2014, 07:40:47 »
Протестировал у себя. Выскочила проблема с какой-то ошибкой во время подготовки данных (как у вас) и ошибка ругалась на APC кэш.
Выключит кэш в настройках, дополнительно очистив его перед этим (кнопка тамже). После его отключения (на время подготовки данных) yml отработал как надо.

*

rellai

  • **
  • 58
  • +5/-0
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #13 : 18 Мая 2014, 00:35:30 »
Спасибо, перезалил xls файл из другого сайта, отключил кеш выгрузилось как надо. правда просто отключение кеша не помогло. видимо файл для выгрузки в юмл испорчен что ли был. сейчас с включенным кешем все работает как надо

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Выгрузка в YML
« Ответ #14 : 18 Мая 2014, 10:37:49 »
Возможно, yml был не тот, хотя я тестировал на свежем локалпаке, с demodizzy.

Но главное, что все заработало.