Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Перенаправление на страницу регистрации покупателя перед оформлением заказа

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

Ответов: 16
Просмотров: 12034
Последний ответ 11 Марта 2013, 11:54:29
от Axiomateria
Проблемы уведомления клиента при смене статуса заказа и доставки

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

Ответов: 7
Просмотров: 5660
Последний ответ 05 Января 2016, 00:59:01
от admin
Не суммировать скидку на товар с общей скидкой от суммы заказа

Автор smartwebРаздел Шаблоны TPL

Ответов: 3
Просмотров: 3787
Последний ответ 19 Декабря 2016, 12:29:09
от aghigay
Как в форму заказа в один шаг добавить свое поле адрес?

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

Ответов: 3
Просмотров: 2801
Последний ответ 03 Мая 2017, 23:21:19
от aghigay
статус заказа - с отображением цветом в списке заказов

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

Ответов: 0
Просмотров: 2890
Последний ответ 10 Ноября 2011, 16:01:14
от kroxa

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Пытаюсь вывести сумму заказа на странице с уведомлением об успешном оформлении заказа.

После того как покупатель нажал на кнопку "Оформить заказ" ему загружается страница  www.domen/emarket/purchase/result/successful/
которая формируется из шаблона demodizzy ../modules/emarket/purchase.xsl

В ней для пользователя выводится номер заказа №10 по такому вызову:

    <xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
               <xsl:value-of select="document(concat('uobject://', //order/@id))/udata/object/@name" />
    </xsl:template>

я добавляю вызов для вывода общей стоимости оформленного заказа № 10 в этот шаблон

<xsl:apply-templates select="document(concat('uobject://', //order/@id))/udata/object/properties/group[@name = 'order_props']" mode="final_price" /

и обрабатываю его :

    <xsl:template match="field" mode="final_price"/>
    
    <xsl:template match="field[@name ='total_price']" mode="final_price">
        <xsl:value-of select="." />
    </xsl:template>

Но при этом выводятся все поля из группы 'order_props', в том числе и требуемая сумма заказа, когда как требуется только вывести данные из
<field name="total_price" title="Стоимость заказа" field_id="122" input_name="data[106620][total_price]" type="float" id="122">25950</field>
Что-то видно я не дорабатываю, а xml этого заказа из админки выглядит так:
<result xmlns:xlink="http://www.w3.org/TR/xlink" module="emarket" method="order_edit" lang="ru" lang-id="1" domain="tempbs.bikesalon.pixy.pro" domain-id="3" session-lifetime="600" system-build="22723" user-id="92834" interface-lang="ru" csrf="463a537881bc41103261441e65922c15" request-uri="/admin/emarket/order_edit/106620/.xml" edition="pro" disableTooManyChildsNotification="1" domain-floated="tempbs.bikesalon.pixy.pro">
<data type="form" action="modify">
<object id="106620" name="Заказ #85" type-id="50" type-guid="emarket-order" owner-id="0">
<properties>
<group name="order_props" title="Свойства заказа">
<field name="order_items" title="Наименования заказа" field_id="113" multiple="multiple" type-id="41" input_name="data[106620][order_items][]" type="relation" id="113">...</field>
<field name="number" title="Номер заказа" field_id="114" input_name="data[106620][number]" type="int" id="114">85</field>
<field name="social_order_id" title="Номер заказа в социальной сети" field_id="115" input_name="data[106620][social_order_id]" type="int" id="115"/>
<field name="yandex_order_id" title="Номер заказа в Яндекс.Маркет" field_id="116" input_name="data[106620][yandex_order_id]" type="int" id="116"/>
<field name="customer_id" title="Покупатель" field_id="117" type-id="51" input_name="data[106620][customer_id]" type="relation" id="117">...</field>
<field name="domain_id" title="Домен" field_id="118" input_name="data[106620][domain_id]" type="int" id="118">tempbs.bikesalon.pixy.pro</field>
<field name="manager_id" title="Ответственный менеджер" field_id="119" type-id="51" input_name="data[106620][manager_id]" type="relation" id="119">...</field>
<field name="status_id" title="Статус заказа" field_id="120" type-id="42" public-guide="1" input_name="data[106620][status_id]" type="relation" id="120">...</field>
<field name="total_original_price" title="Стоимость заказа без скидки" field_id="121" input_name="data[106620][total_original_price]" type="float" id="121">25950</field>
<field name="total_price" title="Стоимость заказа" field_id="122" input_name="data[106620][total_price]" type="float" id="122">25950</field>
<field name="total_amount" title="Количество товаров" field_id="123" input_name="data[106620][total_amount]" type="int" id="123">2</field>
<field name="status_change_date" title="Дата последнего изменения статуса заказа" tip="Выставляется автоматически, когда происходит изменение статуса заказа" field_id="124" timestamp="1414619049" formatted-date="30.10.2014 00:44" input_name="data[106620][status_change_date]" type="date" id="124">2014-10-30 00:44:09</field>
<field name="order_date" title="Дата оформления заказа" tip="Дата, когда заказ был оформлен покупателем" field_id="125" timestamp="1414619050" formatted-date="30.10.2014 00:44" input_name="data[106620][order_date]" type="date" id="125">2014-10-30 00:44:10</field>
</group>
<group name="order_credit_props" title="Свойства кредита">...</group>
<group name="statistic_info" title="Статистическая информация">...</group>
<group name="order_payment_props" title="Свойства оплаты заказа">...</group>
<group name="order_delivery_props" title="Свойства доставки заказа">...</group>
<group name="order_discount_props" title="Свойства скидки на заказ">...</group>
<group name="integration_date" title="Свойства для интеграции с 1С">...</group>
<group name="oneclick_props" title="Свойства Заказ в один клик">...</group>
<group name="purchase_one_click" title="Заказ в 1 клик">...</group>
</properties>
</object>
</data>
</result>
« Последнее редактирование: 30 Октября 2014, 15:32:03 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
у вас вызов обрабатывает узел group
<xsl:apply-templates select="document(concat('uobject://', //order/@id))/udata/object/properties/group[@name = 'order_props']" mode="final_price" /

а шаблон вы пишете для узла field
<xsl:template match="field" mode="final_price"/>

и все бы ничего, система при выводи group не находит шаблона и вываливает вам текст. Ваш шаблон для field не применяется

Поменяйте вызов на
<xsl:apply-templates select="document(concat('uobject://', //order/@id))/udata/object/properties/group[@name = 'order_props']/field" mode="final_price" /

и странно, что у вас протокол uobject возвращает информацию в field, а не в property узлах

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
и странно, что у вас протокол uobject возвращает информацию в field, а не в property узлах

Странное  ещё и то, что при получении данных о объекте заказа через протокол uobject возвращаются данные в формате, отличном от формата данных, которые могут быть получены при добавлении .xml к адресу при редактировании заказа в административной панели.
В шаблоне
<xsl:template match="purchasing[@stage = 'result' and @step = 'successful']">
с помощью следующей строки кода удаётся вывести общую стоимость заказа вот так:
 <xsl:value-of select="document(concat('uobject://', //order/@id))//property[@name='total_price']/value" />