Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Вывод количества объектов в категории. XSLT

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

Ответов: 6
Просмотров: 4706
Последний ответ 18 Октября 2014, 17:39:24
от idu.kuru
Сортировка по алфавиту в xslt

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

Ответов: 2
Просмотров: 4201
Последний ответ 14 Января 2012, 17:25:36
от admin
Не выводятся все теги в xslt

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

Ответов: 2
Просмотров: 3821
Последний ответ 03 Июня 2014, 13:52:04
от goodprofy
webforms & XSLT & модальное окно

Автор graveРаздел JS и AJAX

Ответов: 8
Просмотров: 8539
Последний ответ 13 Июня 2011, 00:41:56
от talanter
Как вывести itemprop="position" content="" в XSLT?

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

Ответов: 0
Просмотров: 1530
Последний ответ 15 Ноября 2018, 09:30:06
от makarov2979

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

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
Снова здравствуйте, замучил уже Вас наверно плодить темы, но извините, уж так получается!

Правлю шаблон письма заказа, чтобы все приходило на почту (все данные).
Воспользовался памяткой http://wiki.umisoft.ru/%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D1%83_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5,_%D1%81%D0%BE_%D0%B2%D1%81%D0%B5%D0%BC_%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D1%8B%D0%BC%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8_(emarket)_XSLT

И вроде все нормально получилось, все приходит, но вот незадача, если клиент не зарегистрирован и делает заказ, то его данные а именно адрес и самое главное телефон, не приходят, код письма получился следующий:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output encoding="utf-8" method="html" indent="yes" />

<xsl:template match="status_notification">
<xsl:apply-templates select="document(concat('udata://emarket/order/',order_id))" mode= "unic"/>
<xsl:text>Ваш заказ #</xsl:text>
<xsl:value-of select="order_number" />
<xsl:text> </xsl:text>
<xsl:value-of select="status" />
<br/><br/>
<xsl:text>Посмотреть историю заказов вы можете в своем </xsl:text>
<a>
<xsl:call-template name="personal_link" />
<xsl:text>личном кабинете</xsl:text>
</a>.
</xsl:template>

<xsl:template match="status_notification_receipt">
<xsl:apply-templates select="document(concat('udata://emarket/order/',order_id))" mode= "unic"/>
<xsl:text>Ваш заказ #</xsl:text>
<xsl:value-of select="order_number" />
<xsl:text> </xsl:text>
<xsl:value-of select="status" />
<br/><br/>
<xsl:text>Посмотреть историю заказов вы можете в своем </xsl:text>

<a>
<xsl:call-template name="personal_link"/>
<xsl:text>личном кабинете</xsl:text>
</a>.
<br/><br/>
<xsl:text>Квитанцию на оплату вы можете получить, перейдя по </xsl:text>
<a href="http://{domain}/emarket/receipt/{order_id}/{receipt_signature}/">
<xsl:text>этой ссылке</xsl:text>
</a>.
</xsl:template>

<xsl:template match="neworder_notification">
<xsl:apply-templates select="document(concat('udata://emarket/order/',order_id))" mode= "unic"/>
<xsl:text>Поступил новый заказ #</xsl:text>
<xsl:value-of select="order_number" />
<xsl:text> (</xsl:text>
<a href="http://{domain}/admin/emarket/order_edit/{order_id}/">
<xsl:text>Просмотр</xsl:text>
</a>
<xsl:text>)</xsl:text><br/><br/>
<xsl:text>Способ оплаты: </xsl:text>
<xsl:value-of select="payment_type" /><br/>
<xsl:text>Статус оплаты: </xsl:text>
<xsl:value-of select="payment_status" /><br/>
<xsl:text>Сумма оплаты:  </xsl:text>
<xsl:value-of select="price" /> руб.<br/>


<xsl:variable select="document(concat('uobject://',order_id))//property[@name='customer_id']/value/item/@id" name="customer1"/>
<xsl:text>Имя:  </xsl:text>
<xsl:value-of select="document(concat('uobject://',$customer1))//property[@name='fname']/value" />
<br />
<xsl:text>Фамилия: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$customer1))//property[@name='lname']/value" />
<br />
<xsl:text>Отчество: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$customer1))//property[@name='father_name']/value" />
<br />
<xsl:text>E-mail: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$customer1))//property[@name='email']/value" />
<br />
<xsl:text>Телефон:  </xsl:text>
<xsl:value-of select="document(concat('uobject://',$customer1))//property[@name='phone']/value" />
<br />
<xsl:text>Адрес доставки: </xsl:text>
<br />
<xsl:variable select="document(concat('uobject://',order_id))//property[@name='delivery_address']/value/item/@id" name="delivery1"/>
<xsl:text>Страна: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='country']/value" />
<br />
<xsl:text>Индекс: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='index']/value" />
<br />
<xsl:text>Регион: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='region']/value" />
<br />
<xsl:text>Город:  </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='city']/value" />
<br />
<xsl:text>Улица: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='street']/value" />
<br />
<xsl:text>Дом: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='house']/value" />
<br />
<xsl:text>Квартира: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='flat']/value" />
<br />
<xsl:text>Комментарий к адресу: </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='order_comments']/value" />
</xsl:template>

<xsl:template match="invoice_subject">
<xsl:text>На сайте </xsl:text>
<xsl:value-of select="domain" />
<xsl:text> успешно сформирован счет</xsl:text>
</xsl:template>

<xsl:template match="invoice_content">
<xsl:text>Вы можете распечатать счет для юридических лиц, </xsl:text>
<xsl:text>перейдя по следующей ссылке</xsl:text>
<p>
<a href="http://{domain}{invoice_link}">
<xsl:value-of select="concat('http://', domain, invoice_link)" />
</a>
</p>
</xsl:template>





<xsl:template match="udata" mode= "unic">
   <div class="order">
   <hr/>
   <xsl:apply-templates select="items/item" mode = "lin"/>
   <hr/>
  <b>Всего товаров: </b> <xsl:value-of select="summary/amount" /> шт.
   <b>На сумму:</b> <xsl:value-of select="summary/price" /> <xsl:value-of select="summary/price/@suffix" />.
    <hr/>
   </div>
</xsl:template>


<xsl:template match="udata//item" mode= "lin">

   <a href="{page/@link}"><xsl:value-of select="@name"/></a> Цена: <xsl:value-of select="price"/> <xsl:value-of select="price/@suffix" />. Кол-во: <xsl:value-of select="amount"/> шт. <br />
 
   
 

</xsl:template>











<xsl:template name="personal_link">
<xsl:attribute name="href">
<xsl:choose>
<xsl:when test="personal_params">
<xsl:value-of select="concat('http://', domain, '/emarket/personal/void/', personal_params, '/')" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat('http://', domain, '/emarket/personal/')" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:template>

</xsl:stylesheet>

Извините, что такой огромный, но думаю надо видеть общую картину.

Помогите плиз вставить данные гостя
(хотя бы его телефон).
Заранее огромное спасибо!

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Для отладки письма я лично пользуюсь следующим способом:
1. вставляю copy-of в тело письма (в частности, copy-of заказа)
2. присылаю себе письмо
3. открываю оригинал письма
4. перевожу его из base64 в нормальный вид
5. открываю в редакторе html и проверяю что именно получилось

Ваши данные гостя хранятся в каком-то месте вашего заказа. Их нужно оттуда достать и просто вставить куда нужно. А вот где они хранятся - нужно смотреть уже по факту.
Мой блог http://umicms.me

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
Вот именно, что хрен поймешь где они хранятся, и макросом даже не нашел (

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Обратитесь по uobject к вашему заказу - увидите что там
Мой блог http://umicms.me

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
Подскажите плиз, как это сделать, или ткните носом в инструкцию, заранее спасибо

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
У каждого заказа есть id
Это не номер заказа, а именно id объекта в системе
Например 127463

Вы можете обратиться к указанному объекту по протоколу uobject используя следующую конструкцию:
http://site.ru/uobject/127463
Мой блог http://umicms.me

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
обратился, и к сожалению нужных полей там нету, что делать?

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля


Скриншот из админки, со страницы редактирования заказа, отсюда передаются только данные адреса, Мобильный телефон не передается. Чуть выше данные зарегистрированного пользователя (они передаются все), но когда заказывает гость, то в редактировании заказа в админки, только эта табличка.

Как выдернуть этот мобильный телефон, и фио гостя?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Судя по всему вы либо что-то не то смотрели, либо смотрели невнимательно

В каждом заказе есть customer_id и внутри содержится тот самый объект покупателя
Мой блог http://umicms.me

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
 customer_id это данные пользователя, а не гостя, посмотрите внимательно код в первом сообщении, он там есть и если клиент зарегистрирован все передается, но если отправляет гость, то нет

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Серьезно? Нет, ну раз вы так считаете - переубеждать не буду
Мой блог http://umicms.me

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
Но ведь данные  customer_id есть в шаблоне, или я не прав?

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
Нашел в справочниках данные незарегистрированного пользователя
Контакты: Идентификатор - [contact_props]
E-mail: Идентификатор - [email]
Телефон: Идентификатор - [phone]

Персональные данные: Идентификатор -  [personal_info]
Имя: Идентификатор - [fname]
Фамилия: Идентификатор - [lname]
Отчество: Идентификатор -  [father_name]

Доставка: Идентификатор - [delivery]
Адреса доставки: Идентификатор - [delivery_addresses]

Как я понял передается только адрес доставки вот этим макросом
<xsl:variable select="document(concat('uobject://',order_id))//property[@name='delivery_address']/value/item/@id" name="delivery1"/>
<xsl:text>Город:  </xsl:text>
<xsl:value-of select="document(concat('uobject://',$delivery1))//property[@name='city']/value" />

Подскажите, как передать остальные данные?

*

Canekt

  • *
  • 43
  • +0/-0
    • Просмотр профиля
Судя по всему вы либо что-то не то смотрели, либо смотрели невнимательно

В каждом заказе есть customer_id и внутри содержится тот самый объект покупателя


Вот код uobject при заказе незарегистрированного покупателя:

<udata xmlns:xlink="http://www.w3.org/TR/xlink" generation-time="0.026472">
<object id="5745" name="Заказ #52" type-id="51" type-guid="emarket-order" update-time="1471525306">
<properties>
<group id="56" name="order_props">
<title>Свойства заказа</title>
<property id="117" name="order_items" type="relation" multiple="multiple" is-important="1">
<title>Наименования заказа</title>
<value>
<item id="5746" name="Черная маска Pilaten (6ml)" type-id="44" type-guid="emarket-orderitem" update-time="1471525163" xlink:href="uobject://5746"/>
<item id="5747" name="Fullips для губ" type-id="44" type-guid="emarket-orderitem" update-time="1471525172" xlink:href="uobject://5747"/>
<item id="5748" name="Шланг для полива MAGIC HOSE 15м с насадкой" type-id="44" type-guid="emarket-orderitem" update-time="1471525191" xlink:href="uobject://5748"/>
</value>
</property>
<property id="118" name="number" type="int" is-important="1">
<title>Номер заказа</title>
<value>52</value>
</property>
<property id="121" name="customer_id" type="relation" is-important="1">
<title>Покупатель</title>
<value>
<item id="5744" name="37.145.224.219" type-id="86" type-guid="emarket-customer" update-time="1471525305" ownerId="335" xlink:href="uobject://5744"/>
</value>
</property>
<property id="122" name="domain_id" type="int" is-important="0">
<title>Домен</title>
<value>1optom.com</value>
</property>
<property id="124" name="status_id" type="relation" is-important="1">
<title>Статус заказа</title>
<value>
<item id="159" guid="emarket-orderstatus-27262" name="Ожидает проверки" type-id="38" type-guid="emarket-orderstatus" update-time="1465026107" ownerId="35" xlink:href="uobject://159"/>
</value>
</property>
<property id="125" name="total_original_price" type="float" is-important="1">
<title>Стоимость заказа без скидки</title>
<value>34320</value>
</property>
<property id="126" name="total_price" type="float" is-important="1">
<title>Стоимость заказа</title>
<value>34820</value>
</property>
<property id="127" name="total_amount" type="int" is-important="1">
<title>Количество товаров</title>
<value>1193</value>
</property>
<property id="128" name="status_change_date" type="date" is-important="0">
<title>Дата последнего изменения статуса заказа</title>
<value formatted-date="18.08.2016 16:01" unix-timestamp="1471525305">Thu, 18 Aug 2016 16:01:45 +0300</value>
</property>
<property id="129" name="order_date" type="date" is-important="1">
<title>Дата оформления заказа</title>
<value formatted-date="18.08.2016 16:01" unix-timestamp="1471525306">Thu, 18 Aug 2016 16:01:46 +0300</value>
</property>
<property id="130" name="is_reserved" type="boolean" is-important="0">
<title>Товары зарезервированы</title>
<value>1</value>
</property>
</group>
<group id="58" name="statistic_info">
<title>Статистическая информация</title>
<property id="139" name="http_target" type="text" is-important="0">
<title>Адрес, на который пришел пользователь</title>
<value>/</value>
</property>
<property id="145" name="order_create_date" type="date" is-important="0">
<title>Дата создания заказа</title>
<value formatted-date="18.08.2016 15:59" unix-timestamp="1471525163">Thu, 18 Aug 2016 15:59:23 +0300</value>
</property>
</group>
<group id="59" name="order_payment_props">
<title>Свойства оплаты заказа</title>
<property id="146" name="payment_id" type="relation" is-important="1">
<title>Способ оплаты</title>
<value>
<item id="2842" name="Оплата наличными" type-id="99" type-guid="emarket-payment-802" update-time="1465302538" ownerId="35" xlink:href="uobject://2842"/>
</value>
</property>
</group>
<group id="60" name="order_delivery_props">
<title>Свойства доставки заказа</title>
<property id="151" name="delivery_id" type="relation" is-important="1">
<title>Способ доставки</title>
<value>
<item id="2838" name="Курьер" type-id="95" type-guid="emarket-delivery-784" update-time="1465296833" ownerId="35" xlink:href="uobject://2838"/>
</value>
</property>
<property id="153" name="delivery_address" type="relation" is-important="1">
<title>Адрес доставки</title>
<value>
<item id="5749" name="Address for customer #5744" type-id="40" type-guid="emarket-deliveryaddress" update-time="1471525305" xlink:href="uobject://5749"/>
</value>
</property>
<property id="155" name="delivery_price" type="float" is-important="1">
<title>Стоимость доставки</title>
<value>500</value>
</property>
</group>
<group id="62" name="integration_date">
<title>Свойства для интеграции с 1С</title>
<property id="158" name="need_export" type="boolean" is-important="0">
<title>Выгружать заказ в 1С при следующем сеансе связи</title>
<value>1</value>
</property>
</group>
</properties>
</object>
</udata>

Подскажите как выдернуть оттуда его мыло и телефон?

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Написано же: uobject://5744
Мой блог http://umicms.me